前端开发 前端开发技术进阶点

原创 高志飞 随笔 前端 125阅读 2019-05-24 13:51:41 举报

单纯讲技术进阶点意义不大,脱离场景都是耍流氓。我举个实际例子,今天的阿里大文娱优土,阿里接管后,底层替换差不多了,由内容为王转变为产品技术驱动。

这种情况下,前端如何进阶呢?业务很多,历史问题很多,老板迫切希望创新,赶超对手。

  • 端上,我有pc、h5、小程序,播放器
  • api代理层,我有node,可以快速实现api保证,1、内部有直接用,2)内部没有,自己写,3)不够用,我自己包装,不会让api层限制我的发展
  • 历史问题,我可以快速的想办法吃掉,尤其是老的php,这部分要做的是1)稳定改造2)提高团队技术栈
  • 我有端,我有api,即所有应用层面的事儿我都可以做。那么,新业务如何应对呢?根本还是在产品技术2个方面,对于团队技术,慢慢培养就好了,对于产品摸清他们的水平。

有哪些方向可以突破

  • 全局方向: 做业务整体架构,进可攻退可守,技术不行做技术,产品不行做产品,不要给自己设限
  • 深度方向: 做性能调优(前端、node)、高并发(node)、分布式(node)等专业要求很高的领域,node完全可以做任何java可以做的事儿,别抬杠
  • 延伸方向: 以js 和node为中心很多大神转移到大前端,移动端、ai、区块链、大数据等方面,算是传统Web的延伸方向

前端不该只写页面,node也只是基本技能,最重要的一点,技术要驱动商业,否则没有任何价值。你是一个工程师,征途是星辰大海,何苦给自己设限?

计算机教会我很多原理,我却用它来更好的生活

这里推荐一下我的前端学习交流群:767273102,里面都是学习前端的从最基础的HTML+CSS+JS【炫酷特效,游戏,插件封装,设计模式】到移动端HTML5的项目实战的学习资料都有整理,送给每一位前端小伙伴。最新技术,与企业需求同步。好友都在里面学习交流,每天都会有大牛定时讲解前端技术!

点击:前端学习圈

  1. 就觉得最好笑的事情,一方面口口声声称前端不应该
  2. 被语言局限,跑过去用nodejs做后端,
  3. 一方面说前端的进阶就应该是懂算法懂底层懂框架
  4. 懂所有后端要懂的东西做了 几乎所有后端要做的事用nodejs做服务器端渲染
  5. 还继续声称自己是前端仅仅是因为用了js。
  • 前端和语言关系不大,而是通过预编译、转译来提高效率。
  • 用node做后端,明显是理解有问题,随便举个前端库,node在里面是什么定位,想必大家都懂。node是辅助提效的,虽然理论上它应该做后端。
  • 前端是open的,只要最终编译结果是js就可以,至于用什么语言编写无所谓,所以typescript、kottlin、webassembly等等都可以,黑的点不对
  1. 所以明确一下,
  2. 前端是指在用户端运行的代码, 后端是指在服务器端运行的代码。
  3. 你用nodejs做什么中转层,
  4. 你的nodejs只要不是在浏览器端运行的,
  5. 它就归属于后端。

这话挑不出毛病。如果非要挑,今天大环境下,前端和api之间关系越来越复杂。于是才有了我们经常说的bff(backend for frontend)和api proxy。这是历史必然性。

  • 端不一样,ue不一样,所以api不一样,h5和pc共用一套api就很恶心。很容易理解
  • 业务发展,今天强调速度,二周一个迭代,如果前端过度依赖后端,几乎是很难快速的迭代的。这种情况就比较坑了。那么,又要有kpi,又要快速实现,无疑组装api和服务是最快的方式。不得不承认,这世界不是完美的。敏捷和微服务的结合点是完美小组,万能,但却可遇不可求。
  • 前端是背锅侠,后端api宕机或者重启或者api字段变化等,故障都要前端先查,其实是非常浪费时间。前端是要有能力反制的,api代理层是有能力做到这点的。
  • 最后说一下api mock,多端并行开发,明显提高效率的,可以看看yapi做法

如果不理解node做中间层的意义,可能不了解一线痛点,对前端指指点点不太合适。

  1. 你可以说招募一个JavaScript工程师
  2. 用nodejs来做后端开发,兼做着前端开发,
  3. 不要再说我们招一个前端工程师,
  4. 但是要你去做nodejs了。
  5. 最不喜欢PHPer和前端er的就是
  6. 他们永远都学不会什么场景下用什么语言
  7. 或工具解决什么问题, 一个好的工程师不会是语言的奴隶, 后端架构师之所以是架构, 在某种程度上就是包含了异构的元素。
  8. 你把自己始终束缚在JavaScript的层面上,
  9. 反反复复的去争什么JAVA做到的,
  10. nodejs也能做到纯属扯淡和赌气。

前端会写js这是基本技能。至于对后端了解多少,能否直接编写后端代码,这是另外一个话题。我的做法,先培养node小弟,把node底层服务、devops和开发框架搭建起来,前端在上面实现具体业务,真是毫无难度。

如果非要扯淡,公司所有人都不了解node,然后前端去用node写后端代码。。。存在不确定性是必然的。

在我看来,PHPer和前端er都是勇于面对自己问题并积极寻找解决方案的职业。非常棒。学习能力超强,“永远都学不会什么场景下用什么语言或工具解决什么问题”,这话说的真的很傻,能用一种语言解决的问题,为啥一定要学那么多呢?

一个好的工程师不会是语言的奴隶,能focus不focus的工程师也不是好工程师

“后端架构师之所以是架构,在某种程度上就是包含了异构的元素。“,说的好像前端不够复杂,不需要架构师一样。不同端,不同api,以及各种复杂的业务逻辑,稳定高效的输出,不需要架构师,只能说不够复杂。

node和php都是具有后端的基础,比如io,理论上java能做的事儿,它们都能做。这话没毛病。唯一的问题是积累问题,比如node处理excel就是比不过java,比如node做大数据,不是不行,是你真能投入那么多精力然而roi不高,你也能接受么?

  1. 前端的进阶有两个方向,横向来说,
  2. 去做Android,iOS,vr,动画,js这些。
  3. 这才是真正的大前端, 你的领域就应该是在用户这一方, 需要我做什么,就应该做什么, 这三个部门就应该合并在一起, 统一安排,统一规划。
  4. 这种横向发展可以帮助你更深入的理解语言的差异, 也可以帮助公司更好的控制成本和进度。
  5. 纵向发展就是复用性和扩展性。
  6. 前端变化快,不确定强, 那么到底有哪些内容是可以本项目复用, 跨项目复用的?能支持到什么程度的需求变化?
  7. 这是你的业务,你的架构思想, 你的编程能力和视野决定的深度, 你的功底越深,抽象能力越好,
  8. 封装的越强,写出来的代码越赏心悦目。

这个大前端的定义是狭隘的。

  • 去做Android,iOS,这话不能这样说,不是让你写oc或java。而是基于react、vue这样的组件化方案,让前端能够主导移动端开发。对于前端来说,掌握react、vue之外,如果能够编写Android,iOS插件,了解sdk是加分项。
  • 至于vr、动画,js,这明显前端基础,列出来不合适
  • 前端能做更多,可以帮助公司更好的控制成本和进度。这话是没错的。而且更能应变,快速迭代。

大前端只考虑端,不考虑api,是不全面的。1)端(各种端,pc、h5、移动端、小程序、iot等等) 2)api聚合能力(有开发能力更好) 3)辅助提效,对团队发展,技术栈升级,开发效率等提供保障。

这段话,横向和纵向分法是没问题的,也很会拿话套路大家,唯一的问题的是理解的深度不够。

  1. 工程师除了性能,稳定性,扩展性之外,
  2. 还要考虑的就是开发效率,
  3. 什么方法能让我一天之内
  4. 完成过去两周才可以完成都事情?
  5. 算法切页面不也是一个很开心的方向么。
  6. 如果你乐意完全可以做这个啊,
  7. 虽然更偏算法工程师,
  8. 但你是用它来应用在前端。
  9. 也许未来有一天前端工程师的职责
  10. 就是跳个参数重跑算法和简单调整。

这又是套路话,前端开发效率,大家都是拿node做的。我们在讨论前端解决的时候,必然会提到node,无论工程化还是基本技能都躲不开。前端热衷于造轮子,其实都是在提效的。比如一个大组,没有人做基础设施,我不相信他们开发速度能多快。业务开发和基础支持是2个开发方向。

算法切页面是个方向,但问题是,前端来做还是后端做。后端做,就没前端什么事儿,意图干死前端。前端做就是创新,辅助自身开发,减少重复劳动。如果前端做,不用node,你要再学一门语言么?只能呵呵了。node做DeepLearning,也需要了解算法,这点上,所有语言都是互同的。不是不能做,不过你的成熟度,各种文档,学习资料真的能拼过py?

最后那句更傻,不是前端工程师,而是所有工程师都可能面临的问题。ai究竟能如何,我们要有这个危机意识,也要积极的想好应变办法,这一定是难不倒大家的。

  1. 系统的性能,扩展,复用和研发效率的提升,
  2. 是前端目前来说最重要的四个方向。
  3. 后端来说多了一个稳定,
  4. 对复用的期望程度略低于前端。
  5. 所以这就是前端工程师的技术进阶,
  6. 做出angular这种工程化思维强烈的框架,
  7. 大概就是长期期内的努力反向。

系统的性能,扩展,复用和研发效率的提升,是所有工程师都要关注的方向,拿这个绑定前端,呵呵。

后端就只有稳定性么?呵呵,我想问,为什么后端要现有架构?不是因为过于复杂嘛?如果不是为了复用,为啥会出现ssh、ssi、spring boot等等框架,如果不是为了复用,为啥会出现rpc,soa、以及微服务?如果不是为了复用,为啥要提倡敏捷?

其实,复杂到一定程度,架构出现是必然的,和前端后端有关系么?

最后再说工程化思维,我不认为只有angular算。从grunt、gulp到webpack到ykit,我们到底在折腾啥?难道react、vue就没有工程化思维么?组件复用都不算么?很明显写这句话的人是不太了解前端的。

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复