经过这一段时间项目的洗礼后,我明白很多时候项目的技术要求是跟项目的阶段挂钩,不要第一眼看到别人项目代码不好看就说不行,可能我到人家项目当时的阶段做的还不如人家,当然事实也正是如此。项目的阶段深深的影响到你的技术成本和技术的层次,这也要多感谢
文斌,这时候我已经深深明白境界就是境界的意思。项目的阶段
ps:针对中小型项目,我的理解
项目初期
在项目刚上线,初运营时,因为产品流程可能会调整,这就会造成会一直迭代,其实技术的的侧重点不在多么牛x,而在可以快速的迭代以来跟上产品脚步。并且其实代码在这时候是不需要什么优化的,因为可能会面临:发现bug-修改bug-上线这一频繁的阶段,并且这个阶段的周期可能会在1天,乃至一会。
代码应该劲量的放低技术点,技术没必要多么花哨,其实可以实现功能就ok,你写一堆很牛b的代码,如果明天这个功能就会被替换你能忍受么?
代码合并,压缩?其实也没什么必要了,这样倒是更好的发布上线。什么?你在担心速度慢?在日UV没达到5K的时候我想cdn可以搞定这些。当然也不贵。
你做的最多的应该是用户反馈问题,你修复她。总而言之,你所有的技术应该围绕产品走,应该只有挣钱才可以进入下一关,如果不挣钱即使你技术再好请问有用么?
项目稳定期
这时候通常就是项目的流程大体定了,且有一定的用户群体,这时候你会考虑以下:
前端代码结构的梳理是否考虑模块化,当然可以全异步,cdn不是吃干饭的用户体验,比如用户在点击按钮频率达到4次/s总不能报错吧?
项目升华期
到这时候通常项目已经可以很稳定的盈利和运行了,且你的团队也会有可观的人数支撑,那么你可能会考虑:
代码规范接口规范文档的完善代码压缩,合并是否考虑单元测试整个前端项目编译过程,是用命令行呢,还是做成可视化界面
项目牛B期
其实我没有经历这步,这步也通常是指牛x型公司吧,比如美团,百度,阿里之类的吧,以下是我想象的:
专用VIPCDN服务为了提高速度常常把样式合到当前文件有一套成熟的开发模式和上线流程各种压力测试开发的分工更明确
以下专为FED原创,其他地方绝无翻版
使用什么框架?
现在前端模板一直在快速的发展,且应用的库相当多,比如prototype.js,jquery,kissy等,还有很多框架,如:angularjs,jqm等,包括很多前端脚手架,如coolie,fis,fekit等,其实这些很牛但不一定适合你,你应该根据自己项目阶段和团队人员能力来整体的寻找一个平衡点~
要考虑的
项目阶段是否需要这么做这么做带来了什么硬性的好处这么做给团队带来了什么困难团队成员流失是否会造成影响新员工对模式的接受能力快速迭代的能力
不要出现的
员工离职后模式无人维护团队很抵触或者成员不配合不适合项目现阶段
如何推广应用新的模式
说这里前,我先说下我的经历:
我曾(01)就职于北京美天,面试时跟ceo聊的很来,然后我入职,给我的title是新版负责人,于是我入职后就先拿一个频道改版试点,然后成立了以下的功能:
Api接口文档,把所有的接口说明都记录下来,并严格按照文档来码字公用js说明文档,公用js注释必须规范,使用jsdoc生成文档页面规范文档,页面统一的结构优化,加载优化,各种前端规范性的文档前端模式,使用的namespace方式,以模块化思想存放文件,使用nginxconcat合并请求,分公用,频道,私有三大块
然后经我独立应用一个频道试点后项目挺好,然后让所有的开发者应用,但接着问题就来了,因为团队可能遇到形形色色的人,经验尚欠的我遇到致命的错误,这种模式别人并不