0
0

前端的基础技术杂谈

rank 发表于 2013年09月17日 23:41 | Hits: 1708
Tag: 开发日志

博文只是我的思考未必完全正确,主要是记录的我身在其中的感悟与做法。
这次先开个头摘了几张PPT出来,也把一些事做个总结。

后端是一个厚架构的行业。分布式+操作系统+存储+cache+webserver+负载均衡+开发框架等等。
看似简单一个kv就博大精深,从原来最简的memcache到redis、TTserver还有现在甚至可以取代mysql的mongodb,光这上面就可以让人做上个一年半载的。
一般来说后端的服务升级相对原来的功能是一致的,出现扩容和省钱引起的架构升级比较多。

而前端我认为是个薄架构的行当。现在单一功能往一个方向持续做一两年的方向很难。
说一个案例 - 前几年,大家都是倒弄脚本库,出现百花齐放的局面。
去年开始,分久必合的趋势已经显现,做传统js lib(指的是解决兼容性,提供统一标准的api)已经成为『夕阳产业』。
现在整个行业的生产环境里不用jquery,也基本会是jquery API。

说到这里,估计很多人会辩驳前端与后端一样是每个功能也很牛逼的。我不否认,但上面的案例说明前端领域在计算机体系结构靠前金字塔知识体系的上层,前端面临的技术与行业变化是很快的,需要复合能力好的人才能做好前端。
这也要求我们每隔一个周期回顾与审视方向的正确性,不能因贪恋技术,而忘了技术服务的根本。

http://www.never-online.net/blog/uploads/201309/summery.png

我现在对基础技术上的三个方向划分是: 『端技术』、『数据监控』、『开发平台与工具』。
各方向上都是有重合,没有绝对独立的方向。

前端大致的开发流程是:
开发环境搭建-》业务开发模型-》模块化方案-》lint检查-》测试-》发布-》数据监控

之前提到了,单一功能前端较难持续一直往深了做,或者说是时机不成熟,所以从横向考虑的开发工程方向,从中解决掉开发的痛点,乱。
先开发平台方向需要从前端的开发流程去抽象工程模型,并从中提炼出开发的骨架:
fis就是干这个事的: F.I.S -http://fis.baidu.com
专注在利用最佳实践(例如模块化,我们开发模块遵循AMD、CMD,但release时经过编译,我们会有自己的运行时方案。)集成到开发平台里,让开发者感知不到它的存在。高效,高性能,高质量的开发模式。衡量方式只需要让最后的监控数据说明问题。
另外就是它会集中开发包与云服务信息管理的功能,将相关前端开发包聚合在此。

工具与平台密不可分,工具会大部分在云端,例如:性能工具在做请求时、运行时、渲染时,及相关规则检测的工具套件,自动化检测web页面的性能及其瓶颈。
整体上看,它偏向于工程方面。
http://www.never-online.net/blog/uploads/201309/workflow.png


端技术则是最佳实践的代表,无论在web端、native端上的基础技术。可选择性的将一些基础技术做好最后输出到开发平台中(FIS)。
例如,我们的web跨端上传解决方案的包(Webuploader)、编辑器包(http://ueditor.baidu.com)、可视化图表包、还有webapp解决方案的包。都会聚合到FIS平台中。也许,以后前端开发不能象app store一样,下载前端app包以后,拼装完成,通过开发平台开发,开发时不用关心架构与基础组件,只用专注业务写业务代码就应该可以了。再也许,后端也可以呢:)

native端目前是比较热的一个方向。目前我们期望找到一种纵向的切分方案(简单的说就是在native上也分前后端),使得原来从事传统web开发的同学可以无缝的切入到native开发中。并且也希望我们能够在这里找到它的基础技术上的一些方向。目前已经将编译时自动优化图片的方案调研成果共享到了其他团队(能优化25%+的图片体积)。

数据监控则很明显了,上面提到线下的代码模块统计?用户行为数据?线上异常统计数据?性能监控的数据统计?都会收集起来用于分析与展示。数据上重点在于性能监控的分析统计,数据看多了总会有感觉,用各产品线的经验共享出来,提供『页面性能定制优化服务』。
监控服务不限于线上的,还可以做线下的性能准入服务的监控,为减少性能衰减提供有力支撑。
掐住数据的数据收集,数据最终的展示,能够更快速的发现问题。

最后,也给我们自己泼点凉水。
公司最重要的不是基础技术。
但是,好的基础技术是可持续发展的架构的基础,是产品快速迭代的基石。
这也是基础技术的价值。

原文链接: http://www.never-online.net/blog/article.asp?id=330

0     0

评价列表(0)