毛[文强]老师的一堂前端课程
对于像我们这样的后端程序员来说,前端似乎总是难于把握。可能并非因为难度,而是因为在前端的世界里,缺乏条理性和逻辑性。知识是分散的,工具是分散的,库是分散的。尤其像我这样的,没啥毅力的人,或者说想象力比较惨淡的人,前端进步不大。
好了,吐槽结束。
------------- 毛老师 说话 -------------
各大前端框架可以按照“封装度”的标准来区分。
设计刚出的一套网页皮肤,封装度为0。层层封装到可以直接用后台语言写页面,封装度为10。那么我是这样来区分前端框架的。
1级——纯html+css
放5年前,基本就是用Dreamweaver刚排出来的页面或者网页查看源代码扒下来的皮肤。不涉及到js,就是纯页面皮肤。
--------------------------------
--------------------------------
5级—— jQuery-ui
<img src="https://pic4.zhimg.com/494173ca84cd589c8d0403c80b6080d7_b.png" data-rawwidth="709" data-rawheight="261" class="origin_image zh-lightbox-thumb" width="709" data-original="https://pic4.zhimg.com/494173ca84cd589c8d0403c80b6080d7_r.png">--------------------------------
--------------------------------
<img src="https://pic4.zhimg.com/aec387db3f85bb45e166f9de63f8bd0b_b.png" data-rawwidth="1439" data-rawheight="789" class="origin_image zh-lightbox-thumb" width="1439" data-original="https://pic4.zhimg.com/aec387db3f85bb45e166f9de63f8bd0b_r.png">
--------------------------------
--------------------------------
综上,针对不同的编程方式,给出以下参考:
1 DOP(Deadline Oriented Program,面向截止日期编程)的程序猿们有两种选择:a、努力学习html/css/js,使用2~3级框架;b、看不上前端代码的,6~8级是不错的选择。对于业务优先、老板整天嚷嚷时间有多紧、客户有多急切的项目,你可以直接选b了,我觉得老板是不会给你时间学习html/css/js的。
2 EOP(Experience Oriented Program,面向用户体验编程)的程序猿们,大多数做的是追求极致用户体验的互联网产品吧。那果断选1级封装度的框架,可适当借鉴2~4级的框架。
3 MOP(Money Oriented Program,面向人民币编程)对于一直做后台,趁过年放假想赚个外快的程序猿们,我知道你们也不想在前端领域有多大发展,搞好后台就足够一辈子衣食无忧了,所以还是选择6~8级吧。
此外,需要考虑搜索引擎优化的项目,慎用富客户端或者重ajax应用。
什么?你还需要考虑ie6的兼容性?出门左转有一面墙,你可以撞上去了,不送!
最后告诉大家,这些都是几年前我为了治疗自己的选择恐惧症而进行的一些分析。
现在,答主我已经不再纠结各种前端框架了。因为心中有剑,枝叶、落花皆可为剑。
----------------------------------------
有朋友提到backbonejs/angularjs/reactjs/vuejs这些新兴框架,感觉很有必要补充完善一下这个答案。
大约五六年前,前端还是一个边缘岗位,前端的工作中:css方面的由设计师用dreamveaver等工具顺带就做了;js方面的由后台程序员写写实现了效果就行了。
究其原因,主要还是由于当时在html5尚未大面积支持的情况下,浏览器网页端的表现力有限。为增强表现力甚至还需要依靠flash的支持。近几年随着移动端的兴起以及html5/css3等技术的推广,web端表现力日渐丰富,也越来越复杂。
计算机这门学科就是这样,当一件事物复杂到一定程度就一定有人抽象出各种框架来提高可维护性与可扩展性。
传输复杂了,有了osi 7层和5层框架;服务器集群复杂了,有了云计算各种框架;乃至销售问题复杂了,也有人总结出《销售技巧xx招》…这种抽象也是人类的一种基本思维方式。
前端岗位正是在网页前端复杂性逐渐增加的推动下产生的。说实话,很多老程序员以前是是看不上前端行业的,认为无非是一些奇巧淫技而已。而现在,以javascript为基础的前端技术已经成功逆袭,nodejs的发展更是让js有了扬眉吐气的一天。
现在回过头来看backbonejs/angularjs/reactjs/vuejs系列框架,它们其实并不是给后台程序员准备的框架。不要轻信它们官网上的提到的“简单易用快速上手”之类的宣传语,那不是跟后台程序员和js初学者说的。如果你对js原型链、作用域、异步回调的概念还很模糊,用了这些框架只会让自己陷入泥潭难以自拔!
虽然你也可以将这些框架简单粗暴得划分到7级封装度左右,但是我并不认为这些“深度前端”框架适合后台开发者。
当然啦,事无绝对,如果你像我一样兴趣广泛,喜欢折腾,前后端双修,那你自然清楚该选什么前端框架,也就不会到知乎上来问这个问题了。
这就是现在的我,有了一定的前端功力,开源社区的森林里那么多丰富的资源,枝叶、落花都是利刃,也无需在框架上纠结了。
毛老师谈的前端分层比较有意思。至于其他什么思想的,大家自己看,不做评论。
毛[文强]老师的一堂前端课程相关推荐
- 【邵老师】大前端爱前端学习课程初中高级课程全套
[邵老师]大前端爱前端学习课程初中高级课程全套,课程很全面,名师讲座,由博学会员分享,未一一检测是否可用,大家可选择学习 北京航空航天大学软件工程硕士,前端开发培训名师.讲课幽默.有***,学生称他的 ...
- 静态HTML网页设计作品商城网站设计——蘑菇街商城(1页) HTML+CSS+JavaScript web前端课程设计_web前端课程设计代码,web课程设计-HTML网页制作代码
HTML5期末大作业:商城网站设计--蘑菇街商城(1页) HTML+CSS+JavaScript web前端课程设计 文章目录 HTML5期末大作业:商城网站设计--蘑菇街商城(1页) HTML+CS ...
- mysql查询不同老师所教不同课程_mysql学习训练记录及笔记(二)
接着训练一 I.sql训练 21.查询不同老师所教不同课程平均分从高到低显示 selectt3.t_id, t3.t_name,avg(t1.s_score) asavg_scorefromscore ...
- 小程序弹出层禁止列表滑动_是时候展现真正的技术了!小程序教程来了——百战Web前端课程更新05.07...
百战程序员十大精品课程,实时更新,保持行业领先.本次更新课程Web前端第二十九阶段安心食疗-微信小程序全部7个章节及课程资料.小程序是依托微信而生的,是一种不用下载就能使用的应用,也是一项创新,经过近 ...
- 2019新版《黑马web前端课程+项目实践课程》
黑马web前端课程+项目实践课程 黑马web前端课程+项目实践课程 黑马web前端课程+项目实践课程 下载地址:百度网盘
- 李宏毅老师《机器学习》课程笔记-6 GAN
注:本文是我学习李宏毅老师<机器学习>课程 2021/2022 的笔记(课程网站 ),文中图片均来自课程 PPT.欢迎交流和多多指教,谢谢! 6 Unsupervised Learning ...
- 李宏毅老师《机器学习》课程笔记-5 Transformer
注:本文是我学习李宏毅老师<机器学习>课程 2021/2022 的笔记(课程网站 ),文中图片除一张来自 transformer论文,其余均来自课程 PPT.欢迎交流和多多指教,谢谢! L ...
- 李宏毅老师《机器学习》课程笔记-3卷积神经网络
注:本文是我学习李宏毅老师<机器学习>课程 2021/2022 的笔记(课程网站 ),文中图片除了一幅我自己绘制的图和一幅来自 Stanford cs231n 教程的图,其余图片均来自课程 ...
- 李宏毅老师《机器学习》课程笔记-2.1模型训练技巧
注:本文是我学习李宏毅老师<机器学习>课程 2021/2022 的笔记(课程网站 ),文中图片除了两幅是我自己绘制外,其余图片均来自课程 PPT.欢迎交流和多多指教,谢谢! 文章目录 Le ...
- 李宏毅老师《机器学习》课程笔记-4.1 Self-attention
注:本文是我学习李宏毅老师<机器学习>课程 2021/2022 的笔记(课程网站 ),文中有一张图片来自于 The Illustrated Transformer ,其余图片均来自课程 P ...
最新文章
- Spring源码分析【0】-框架的基础:继承和接口调用链
- Numpy入门教程:02. 索引、切片与迭代
- 细说接口性能优化的11个小技巧
- 深度 | 谷歌的新CNN特征可视化方法,构造出一个华丽繁复的新世界
- Microsoft Expression Blend 2 密钥,key
- Xcode开发的常见问题与解决方案
- 每天改變或學習一點點 終究聚沙成塔
- 每日两SQL(7),欢迎交流~
- SQL Server 2005 分页SQL
- php中curl的用法
- centos7编写shell批处理文件和执行方法
- 笔记本无线网卡开启wifi方法
- Linux下conda安装caffe(超简单),pb转caffe
- cadence Virtuoso ADE原理图库中的VCVS(压控电压源)使用
- iOS编译cURL库并链接darwinssl,zlib,c-ares库操作步骤
- 【陈秀秀往事】---一个战痘8年成功的感人故事!
- 【机试】2011-2020年复旦大学考研复试机试真题
- linux sda sdb 问题 .
- 反射及在运用过程中出现的IllegalAccessException异常
- [Video and Audio Data Processing] 截取部分PCM16LE单声道音频采样数据
热门文章
- 审计一波appcms-持续更新。
- TZC 3012-Fibnacci Numbers(矩阵快速幂+降幂公式)
- 微信生态圈的发展分析
- 押宝线下渠道 能否拯救陷入芯片困境的魅族?
- 输入带有累计折旧的资产
- matinee和matin区别_【近义词辨析】An和Année, Jour和Journée如何区别
- http域名跳转到https域名
- kubeadm,kubevip,containerd部署高可用的kubernetes集群
- springboot集成Swagger3.0
- 微信小程序图片加载太慢;uni-app微信小程序加载图片优化;微信小程序图片image加载成功事件@load;图片加载成功触发@load事件