你为什么要做前端?
第一篇 初始
“你为什么要做前端?”
我问她。
“因为感觉写出来的东西可以直接看得到,可以写漂亮的网页。
不像后端一样,写出来的东西根本就看不见摸不着。”
她说的很对,可是我很久之后才明白。
等我明白了之后,却再也找不到她了。
![](https://img.haomeiwen.com/i12577968/75d5b0b125e5011d.gif)
我是一个后端工程师。
而我是一个后端工程师的时候,我从来都没觉得前端有什么可以吸引我的。
我的全部心思都在架构,逻辑,数据。
她说的这些看不到的东西,反而是我觉得最深刻,最能让我着迷的事情。
前端?那叫肤浅。
所以,她说完这些之后,我什么都没说,就是笑笑。
我教她做的第一个任务,就是做一个卡片的轮播效果。
那时候,她仅仅会写一些CSS而已。
第二篇 指引
没多大会儿,她告诉我说,她不会,做不出来,不知道轮播该怎么写。
我笑了。
这很简单啊,每一个卡片抽象出来,变成一个卡片类,卡片类里有自己的属性,标题,图片,摘要,跳转链接,等等等等,但是不重要,总之就是卡片。
然后第二步就是把所有的数据加载成一个卡组。
比如说我们现在有了100条新闻信息,当前窗口只能展示3个,可是这100条你虽然看不到,我们依然会把它放在卡组里去。
有了这个卡组,就决定了卡片轮播的顺序。那么剩下的第三步更简单了。
只需要决定哪三个卡片可以展示就好了。
我们可以称之为窗口卡组。
窗口卡组可以根据窗口的长度来决定展示的数据。默认展示就是第1个,第2个和第3个-假设只显示3个。
然后,点击右侧的按钮就很简单啊。
两种切换方式,一种是一张张的轮播,那就是把窗口卡组+1,取数据卡组的 2,3,4就好了。如果是全屏轮播,就取窗口卡组的长度就好了。
//在此我向大家推荐一个前端全栈开发交流圈:864305860 突破技术瓶颈,提升思维能力
当然要写成这么一个东西,还是要考虑一些简单的封装。
比如说,轮播到没有数据了,是从第一个开始循环,还是直接下一个失效?这些是不是也应该做成可以定制的?
比如说,当前轮播的是卡片,我们是不是可以认为卡片的里面存在的内容其实跟轮播没有关系?只要他是我们的卡片类,怎么展示完全可以交给用户自己来决定?
比如说,数据的初始化从哪来?我们是只接受Json格式的数据,还是说也支持一下从后端请求数据,直接封装好?
这些问题哪些该做,哪些不该做,都是要在需求中反复评估好的,这也是为什么我们要做方案评审的原因,毕竟,实现一个结果会有很多很多种方案的。
所以我经常说嘛,方案评审不是说一个方案行不行得通的判断题,而是多个方案对比的选择题,你必须对所有的方案的好处和坏处都理解,这样才能算得上方案评审,对不对?
//在此我向大家推荐一个前端全栈开发交流圈:864305860 突破技术瓶颈,提升思维能力
我说了好多。
她听的津津有味。
我问:听懂了么。
她说:没有。
我。。。。
好吧。这就是前端妹子。
想了想,我说:
这样,给我亲一口,亲一口我就手把手的教你怎么写。
第三篇 进展
是的。前端不需要懂太多数据结构,也不需要太多的数据模型,更没有复杂的框架体系,在几年前,前端需要懂的东西,真的不太多。
可是我一直对能做出来的眼花缭乱的东西,不感兴趣。
可是她可以。
她很快的从只会写简单的布局,变成了可以写自适应和响应式的布局。
轮播卡片的事儿,也在我手把手教她之后写出来了。
当然,很多我觉得可以想到,应该抽象,但是没有抽象出来的东西都没做好。
事情总是要慢慢来嘛。
然后我教她写Ajax。
写的第一件事就是键盘精灵。
“所谓键盘精灵,就是用户敲一个字母,就向服务器端发一个请求,服务器端根据用户输入的请求,返回可能的提示。”
“比如说,你敲一个暗,我是服务器端,我马上返回一个暗恋暗灭大人。”
“我知道你在担心什么,是不是觉得每敲一次代码,都向服务器端发一次请求,会很耗费时间?
不不不,你要这么想,讲方案,讲性能,必须要先知道数字。
我们是程序员,程序员不会有很快,或者是很慢去描述,只会说,多少毫秒。
所以,我先问一下你,发一个请求到服务器商,正常来讲,这个应该是多少毫秒?”
“嗯嗯。不知道没关系,打开F12,看一眼。是不是很快?
对的,我才可以做的这么快,哈哈。其他人都不行。
你看,几毫秒就可以了。几毫秒的负载,对服务器端没什么影响,所以这个功能这么实现没问题的。
而且,这只是一个简单的搜索功能而已,不是一个最常用的,不用怕,就算是负载大了,我们也可以在后端用其他办法维护。
网络慢的问题不用担心,用户的网络既然慢,那么他对响应时间就应该会有预期嘛。”
“所以,我们这次做的这个键盘精灵呢,希望是一个组件。这个组件最好是有几个功能。
第一个,可以去定制服务器端的接口,只要服务器端可以返回我们认可的格式,就可以。
第二个,可以定制显示的内容。反正显示的内容是一个下拉列表,里面展示 什么内容,都没有必要写死啊,虽然我们是做的股票,但是也许在未来会做其他的啊。
这个就是组件化,只有这样,你写的项目越多,积累的公用组件越多。”
然后她写出来了。磕磕跘跘。
这时间离她从懂一点点CSS,也就是一个月多一点而已。
我从未教过她JS语法,而她也从未怀疑过我说的话是不是正确。
//在此我向大家推荐一个前端全栈开发交流圈:864305860 突破技术瓶颈,提升思维能力
反正,我教什么,她学什么。
我跟她讲Http的请求,讲数据结构,讲算法。
我觉得,这是前端要学习的,也是有意思的事情。
根据UI做切图?做一个弹出框,做一个表单校验?提交一个请求给后端?
这些都不是我喜欢的前端啊。
我只是在想,在以后,我会不会再同样如此用心的教另外一个人?
不。
我看了看她。她在阳光下,笑的很温暖。
第四篇 分歧
可是我们最终还是有了分歧。
我说我不喜欢CallBack,可不可以把异步相关的,能改成同步的就全部用同步?
不要在CallBack里写代码?
我说我不喜欢在JS代码中看到有html和CSS的代码,也不喜欢看到有常量。
可不可以我们在功能上区分的很清楚,什么是View,什么是Controller,什么是Model?
她说:我看了其他开源框架的源码,都没有这么分过啊,全都是混在一起的。
我不知道说什么。
难道说,我比所有的开源框架的作者都厉害,只有我懂代码,别人都不懂,其他人写的都是渣渣?
“只要跟着我,你就必须这么写,如果有一天,你不需要我了,随便你怎么写,好么?”我对她吼了。
她没说话。
然后没多久,她走了。
我也很久没说话。
不想说话。
第五篇 离散
我按我自己的想法去写自己喜欢的代码,直到我遇到了Angular。
而她也开始用AppCan,backone等等等等。
后来就慢慢的变成了RequireJS,GruntJS,React,Vue全家桶,Nodejs等等等。
//在此我向大家推荐一个前端全栈开发交流圈:864305860 突破技术瓶颈,提升思维能力
做前后端分离的时候,我和她一直在争执,要不要把接口合并。
为什么不允许合并,什么时候才可以合并。
前端后端分离让WEB程序员,变的可以和Android和IOS一样的工作方式了。
要控制路由,要有过滤器,要有拦截器。
可是我和她的分歧也越来越大。
我还是喜欢Angular,她喜欢React.
我和她之间隔了一条看不见的河,河水全是墨色的,根本不知道有多深。
可是我知道,河底深处,有一朵白色的花。
她说要学后端。我坚决不同意。
“后端不是你现在半年一年就能学会的。”我说。
“我就是随便学学。”她说。“哼”
不要学NodeJS,我说,要学就学Python和Go。
也不要学PHP,我说。
(前端全栈开发交流圈一起吹水聊天学习交流:619586920)
可是学前端的意义倒底是什么?
我已经很久没见过她了。
我把她领到前端入门,在入门之后她有了自己的喜好。
对她来说,前端的意义是什么?
我不知道。
在很多年之后,我还是不知道。
我不喜欢她写的那些代码。
没有设计感。
有时候,我觉得代码就像是一个精心打造的工艺品。
每一个细节,每一个器件,都是反复衡量,仔细打磨的工艺品,我们看源码,实际上是透过源码去和源码的设计者,穿越时空的对话。
仿佛是,我们都遇到了同样的问题,然后我给出来了我的解决方案,源码设计者给出来了他的,然后我皱了眉头,去考虑两种方案的好坏。
随着对源码解读的过程,我慢慢懂了设计者。
就好像我希望,她能懂的我一样。
而我,是不是懂的她?我是不是在心里一直觉得,前端,就是无脑的代言?
我是不是一直在拿自己是后端而有一种莫名的优越感?
我不知道。
直到有一天,我突然看到有人说。
前端人号写无聊的业务逻辑算什么?做一些酷炫的效果,这才是前端程序员应该干的事儿!
原来。。。这个世界上还有人会这么想么?
我不知道。
第六篇 原来
原来 并不是业务逻辑,架构体系才是最好玩,最有意思的事情么?
那么前端的意义倒底是什么?
前端需要做UI,做兼容性,不需要考虑太多的性能,更没有分布式的概念,数据的持久化接触的比较少,也不会有太多的算法。
前端的变化可能会比较大,所以在扩展性上要考虑一些,另外就是复用程度,大部分都要考虑复用以提升开发效率。
还需要和后端定接口,讨论哪种方案更合理。从工程化的角度来说,前端也慢慢的变成了相对稳健的架构体系。
只是前端倒底代表什么含义?
我说:给我讲讲AngularJS的源码吧,我虽然一直在用,可是并没有认真去看过。
她看着我说:不好。
我的脸色慢慢变僵。我知道,我和她之间的河,越来越宽,越来越深。
“除非,你给我亲一口,我就给你讲一段~” 她笑。
我突然间觉得河底的花开了。
整个世界都温暖起来了。
只要她在我身边,前端和后端意义倒底是什么, 重要么?
“我想教更多的人写代码。"我突然对她说。
她说:“好啊,你说什么我都听你的。就是不许先亲再教了!”。
我笑了,不会。
其实我哪里是在教她写代码,而是带着她,去我心里的世界走一遍。
而我,却没有勇气去看她心里的世界是什么。
但是现在,我不可以亲一下教别人写代码了,其他人可以啊。
修真院里各种师兄师弟师妹师姐,可是基情无限啊~
第七篇 真和假
全文完,纯属虚构,瞎扯淡,广告时间开始。
在此我向大家推荐一个大美女可乐:2869729584
加她是可以领取前端资料以及后端资料!!!
突破技术瓶颈,提升思维能力
结语
感谢您的观看,如有不足之处,欢迎批评指正。
获取资料👈👈👈
本次给大家推荐一个免费的学习群,里面概括移动应用网站开发,css,html,webpack,vue node angular以及面试资源等。
对web开发技术感兴趣的同学,欢迎加入Q群:👉👉👉619586920,不管你是小白还是大牛我都欢迎,还有大牛整理的一套高效率学习路线和教程与您免费分享,同时每天更新视频资料。
最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。
网友评论