前端架构思考

其实这个问题我从来没有想过,因为自己是一个菜鸟(虽然现在也是)不是前端领头人,所以只能熟悉公司的框架,然后在里面做业务。

现在虽不是前端Leader,但是需要参与到公司的一些前端架构的东西,所以近期也思考了一些,也经历了一些,则总结一下。

我个人觉得前端架构包括:

  1. 技术的选型 (Less,Sass,CoffeeScript…)

  2. 代码的调试 (本地直接debug线上代码,SourceMap…)

  3. 项目的构建 (合并,压缩,上线…)

这个顺序也是大多数开发关心的等级,从高到底。但是对于参与到架构的人来说,每一项都很重要。

技术选型

技术的选型始终要围绕三个点:项目,开发人员以及社区。

项目类型的不同导致技术选择上会有差异,有时候一个项目也会有多种技术或手段实现,这时候就要看对应开发人员的技术能力。

项目类型这个因素中有两个点需要特别注意:上线时间和功能点,这两个会在技术选型上起到决定性作用。你肯定会问 Why?,比如一个功能点只能使用那个唯一的技术,怎么办?别无选择,只能使用它。当然在web开发上,据我个人所知(有限的所知)还没有功能只能通过一个技术手段实现的,因为Hack技术在web开发中无处不在。

上线时间会在何时起作用?在有多种技术选择,比如一个是新技术,你还不是很熟悉,另一个是你的拿手本领,它们都可以满足需求。此时你会怎么抉择?这时候你应该会看项目周期的安排,在时间允许的情况下,你当然可以使用新技术来实践一下,但是时间紧迫的时候你就会乖乖的选择后者。

社区这个对于技术的选择也是蛮重要的,一个持续发展的社区肯定比突然爆红的好的多,那在自己经验有限的情况下,如何选择一个有好社区背景的技术呢?我给几个建议:1.GitHub star的数量以及issue的提问以及反馈是否及时,2.公司背景,是否出自大公司,但是也不排除大公司喜欢玩票,3.问你所认识的牛人,这是最快速,最直接的。

代码调试

谁也不会保证自己写的代码不会出问题,谁也不敢保证上线的代码会一直运行良好。此时调试的便利程度,会对定位问题起到帮助作用。线上代码的直接debug会显得很重要,因为线上的前端代码都是经过合并,压缩,混淆的,正常人一般是看不懂的。所以这时候就应该要借助工具实现。

项目构建

这个部分对大多数开发来说,不需要过分关注(除了架构组),以至于感觉不到它的存在。它就默默的帮你把所有的事情都做好了,现在的工具很多:gulp,grunt,webpack等,选择一个适合公司业务以及社区发展良好的工具。

这只是简单的一篇记录,肯定还有好多遗漏,待我长发及腰(待我牛B)肯定还会删改!

分享到: