公益广告 公司网站建设中...,广州做贷款有什么网站,wordpress检测手机端,项目管理师告前端同学书 一年前#xff0c;InfoQ的编辑约请我对前端技术做了些回顾总结#xff0c;说了三个方面的话题#xff1a;其一#xff0c;前端过去的15年大致可以怎样划分#xff1b;其二#xff0c;前端的现状以及面临的挑战#xff1b;其三#xff0c;前端会有怎样的未…告前端同学书 一年前InfoQ的编辑约请我对前端技术做了些回顾总结说了三个方面的话题其一前端过去的15年大致可以怎样划分其二前端的现状以及面临的挑战其三前端会有怎样的未来。后来刊发成综述是《技术15年》。缘于文体变动访谈的味道十不存一所以这里再次整理成文是为《告前端同学书》。 周爱民/aimingoo 各位前端同学就我的所知来看每⼀个具体的技术在其⽅向上都有着不同的标志事件也因此有着不同的阶段划分。但是我想如果从我们这个领域对“前端”的认识来观察这件事⼤概会对不同的前端 阶段能有更清晰的认识。
早期前端的从业⼈员⼤多来⾃后端开发者、应⽤软件开发者或者⽹⻚设计师⽽并没有专职的前端开发。例如说阿⾥巴巴在2010年之前都把前端归在产品部⻔可⻅前端⼯程师的来源和定位⼀直都很模糊。这个时代ECMAScript还陷在Ed4的泥坑中没有⾛出来IE浏览器带来的标准分裂还没有得到全⾯的修补源于对这个领域的漠视⼤⼚优势也没有体现出来前端开发者们基本上各⾃为战框架和中间件层出不穷⽽⼜良莠难分开发⼯具和环境却荒草凄凄以⾄于乏善可陈。但是也正是在这个时代ES6、CSS3、HTML5等等都在筑基、渗透与蓄势。
随着专⽤⼯具链和开发流程的成熟前后端分离的运动从项⽬内部开始蔓延到整个领域出现了专⻔的前端开发⼯程师、团队以及随之⽽来的⻆⾊细分很多独⽴的技术社区就是在这个时代出现的。前后端分离不仅仅是⼀种技术表现更是⼀种⾏业协作的模式与规范并且反过来推动了⼯具和框架的⼤发展。信⼼满满的前端不拘于⼀城⼀地⼀⽅⾯向前、向专业领域推进从⽽影响到交互与接触层。因此更丰富的界⾯表现以及从移动设备到⼈机交互界⾯等领域都成了前端的研究⽅向是所谓“⼤前端”。⽽另⼀⽅⾯则向后、向系统领域渗透有了所谓⼯程师“全栈化”运动。这个时候的“全栈”在⼯程上正好符合敏捷团队的需求在实践上正好⼜叠加上DevOPS、云端开发和⼩应⽤的⼏阵助⼒前端因此⼀⽚繁华景象。
所以2008年左右开始的前后端分离是整个前端第⼆阶段的起点这场运动改变了软件开发的体系与格局为随后⼗年的前端成熟期拓开了局⾯。那⼀年的SD2C我谈了《VCL已死、RAD已死》⽽⼗年后阿⾥的圆⼼在GMTC上讲了《前端路上的思考》可算作对这个时代的预⾔和反思。
相对于之前所说的第⼀、第⼆阶段我认为如今我们正⾏进在⼀个全新阶段中。这个阶段初起的主要表现是前端分离为独⽴领域并向前、后两个⽅向并进之举已然势微。其关键在于前端这个领域中的内容已经逐渐复杂⽽其应⽤的体量也将愈加庞⼤因此再向任何⽅向发展都难尽全⼒、难得全功。
摊⼦铺得⼤了就需要再分家。所以下⼀个阶段中将再次发⽣横向的领域分层⼀些弥合层间差异的技术、⽅法与⼯具也将出现类似于Babel这样的“嵌缝膏”产品将会再次成为⼀时热⻔。但⻓期来说领域分层带来的是更专精的职业与技能跨域协作是规约性的、流程化的以及⼯具适配的。从ECMAScript的实践来看规范的快速更新和迭代已经成为现实因此围绕规范与接⼝的新的开发技术与⼯程模型将会在这个阶段中成为主要⼒量并成为维持系统稳定性的主要⼿段。
这是在⼀个新阶段的前夜。故此有很多信息并不那么明朗⽐如说像前后端分离这样的标志性事件并没有出现亦或者出现了也还没有形成典型影响。我倾向于认为引领新时代的或者说开启下⼀个阶段的运动将会发⽣在交互领域也就是说新的交互⽅式决定了前端的未来。之前⾏业⾥在讲的VR和AR虚拟现实和增强实境是在这个⽅向上的典型技术但不唯于此。⼏乎所有在交互⽅式上的变⾰都会成为⼈们认识与改变这个世界的全新动⼒像语⾳识别、视觉捕捉、脑机接⼝等等这些半成熟的或者实验性的技术都在影响着我们对“交互”的理解从⽽也重新定义了前端。
⾏业⽣态也会重构如同今天的前端⼤会已经从“XX技术⼤会”中分离出来⼀样不久之后“交互”也会从前端分化出来设计、组件化、框架与平台等等也会成体系地分化出来。前端会变得⽐后端更复杂、更多元以及更加的⽣机勃勃。这样的⽣态起来了⼀个新的时代也就来临了。简单地说1、要注重领域与规范2、要跟进交互与体验3、要在⽣态中看到机会。
然而前端的同学们我们也不要忘记在这背景中回望自身正视我们前端自己的问题。
其⼀底⼦还是薄前端在技术团队与社区的积累上仍然不够。看起来摊⼦是铺开了但是每每只在“如何应⽤”上下功夫真正在⽹络、系统、语⾔、编译、机器学习等等⽅⾯有深⼊研究的并不多。⼀直以来真正有创建性或预⻅性的思想、⽅法与理论鲜⻅于前端根底薄是⾸要原因。
其⼆思维转换慢有些技术与思想抛弃得不够快不够彻底。不能总是把核⼼放在“三⼤件JSCSSHTML”上⾯核⼼要是不变前端的⾰命也就不会真正开始。要把“Web前端”前⾯的“Web”去掉就现实来说很多⼈连“观望”都没有开始。
其三还没有找到跟“交互”结合起来的有效⽅法与机制。前端过去⼗年在IoT、机器学习、云平台等等每⼀次潮流都卡上了点⼉但是如果前端的下⼀次转型起于“交互”那么我们⽬前还没有能⼒适应这样的变化。当然契机也可能不在于“交互”但如果这样我们的准备就更不充分了。
其四向更多的应⽤领域渗透的动机与动⼒不明确。⻓期以来前端在各个领域上都只是陪跑缺乏真正推动这些领域的动机与动⼒。往将来看这些因素在前端也将持续缺乏。寻求让前端持续发展甚⾄领跑某些领域的内驱⼒量任重⽽道远。
同学们我想我们必须有一种共同的、清醒的认识与认知浏览器是未来。去操作系统和云化是两个⼤的⽅向当它们达成⽬标时浏览器将成为与⽤户接触的唯⼀渠道。研究浏览器其本质就是研究交互和表现是前端的“终极私活”。但不要局限于“Web浏览器”它必将成为历史如同操作系统的“⽂件浏览器”⼀样。
要极其关注JavaScript的类型化弱类型是这⻔语⾔在先天条件上的劣势是它在⼤型化和系统化应⽤中的明显短板。这个问题⼀旦改善JavaScript将有⼒量从其它各种语⾔中汲取营养并得以⾯向更多的开发领域这是JavaScript的未来。
AI和WASM在前端可以成为⻬头并进的技术⼀个算法⼀个实现。对于前端来说性能问题⼀直是核⼼问题⽽交互与表现必将“⼤型与复杂化”例如虚拟现实交互以及模拟反馈等等⽽WASM是应对这些问题的有效⼿段。
所谓交互与表现本质上都是“空间问题”。亦即是说前端表现中的所谓布局、块、位置、流等等传统模式与技术与将来的交互技术在问题上是同源的。就像“盒模型”确定了CSS在前端的核⼼地位⼀样新的空间定位技术以及与之匹配的表现与交互⽅法是值得关注和跟进的。
前端要有更强的组织⼒才能应付更⼤规模的系统。这⾥的组织⼒主要是针对⼯程化⽽⾔所有⼯程化⼯具其最终的落脚点都在快速、可靠并以体系化的⽅式来组织⼯程项⽬。这包括⼈、资源、信息、时间、能⼒与关系等等⼯程因素每个⽅⾯都有问题都值得投⼊技术⼒量。
相较于新入行的前端的同学们我能从没有前端走到如今前端的⼤发展何其幸也。以我⼀路之所⻅前端真正让我钦佩的是持久的活⼒。前端开发者⼏乎总是⼀个团队中“新鲜⾎液”的代名词因此前端在业界的每个阶段都⾛在时代的前列。如今看C语⾔的⽼迈操作系统的封闭后台的保守以及业务应⽤、产品市场等等各个领域都在筑城⾃守再看前端种种便总觉得开放与探索的信念犹在。
曾经与我⼀道的那些早期的前端开发者们如今有做了主管的有搞了标准的有带了团队的有转了后端的有做架构做产品做运维等等⼀肩担之也有开了公司做了顾问从商⼊政的但也仍然还有在前端⼀线上做着努⼒仍看好于这⼀个⽅向并在具体事务上勉⼒前⾏的。我曾经说“任何事情做个⼗年总会有所成绩的”如今看来这个时间还是说少了得说是⼏个⼗年地做下去前端总能做到第⼀。
惟只提醒⼤家领域分层的潮流之下层间技术的核⼼不是功能functional⽽是能⼒capabilities。向应⽤者交付能⼒需要有体系性的思维要看向系统的全貌。我们专精于细节没错专注于⼀城⼀地也没错然而眼光⾼远⽽脚踏实地是前端朋友们当有之势。
亦是这个时代予我们的当为之事
周爱民/aimingoo 初稿于2022.06 此稿于2023.10