微信号:ac_aric

介绍:通俗幽默为您讲解编程技术!涉及JavaScript,Web,Java,架构,HTTP,JSON,MVC等方面

如何搭建轻量级架构-代码组织篇

2015-07-26 21:19 Aric

很多程序员看到标题,估计心里一愣:一个组织代码,有什么可讲的,无非是公司网址倒着写,外加命名规范,最多分模块管理而已!怎么这都能忽悠一篇文章来?


代码组织确实是一件简单的事情,但是如果我说的“代码组织”不仅仅限于这些内容呢...



大家都知道Web项目的架构,文件很琐碎。一个模块前台包含JS,CSS,HTML文件,后台还有模块的逻辑处理类,实体的数据库访问类,以及实体本身。

如果这个模块需要打印,还要有打印的模板文件!

如果这个模块还有一些关联数据,比如学员的学分数据等等。

算下来,一个最简单的模块都要有10个左右的文件!



由于Java Web的架构,很多开发人员都知道,js,css等文件是和Java代码分离的。

文件的分离本身就增加了复杂性,如果文件数量上再有所增加,复杂度更是呈几何倍数增长。


可能绝大多数开发人员并没有质疑如此做的问题,认为既然大家都如此做,这么做肯定没有问题。


但是你可能没有注意到,这给你增加了多少麻烦,又浪费了多少时间。

1. 你经常修改完后台代码,再去修改前台代码,却要点几下鼠标才能找到文件!

2. 项目越来越大,文件也越来越多,经常找错文件?

3. 经常发现出现了一些不知所谓的文件,不知道所属哪个模块,又所属哪个人....处女座看到都要哭了。

4. 每个月总有那么几天,处女座在流血!别想多,他只是看不下去,要重构项目中所有的文件......


这些情况想必很多人遇到过,或者正在经历.....那么如何才能避免这种情况呢?


模块所有文件一起放,千万别分开

如果你的文件结构是这样的,是不是解决了很多问题?模块中包含了模块的所有文件!


这就是我们目前的结构,在Java中,有很多Lib支持从JAR中读取资源文件,有点经验的不难搞定。


这样做之后,程序员就完全专注于逻辑,而不用频繁的找文件

而且,开发任务可以细粒度的按模块划分,而不是按前台后台划分


自动生成模块框架

如果你的结构定了,就可以使用Freemarker直接生成代码框架!


很多程序员对这个不屑一顾,就几个文件,Copy来改改就行了!

当你Copy一个,倒没什么,当你每天的工作都在Copy,还不想着改进,那你就太悲哀了!



自动生成代码,不仅保持了系统的高度一致性,还为我们带来另外一个好处! 很多程序员每天都在为文件名纠结上几个小时,我就是如此!

当你为他自动生成,无论多丑,他都不会纠结! 有选择是一个很可怕的事情,是吧?



聊完了代码组织,来聊聊单元测试。

单元测试就是对模块代码的测试,基于单元测试,延伸出了大名鼎鼎的TDD!

TDD全称:测试驱动开发。说简单点,就是:做功能之前,先把单元测试写好,然后一步步补全功能,直到测试通过。


TDD应该适合专业化的团队!!不适合一般的屌丝团队.....屌丝团队玩玩单元测试就好了。


你可能和我之前一样,看不起单元测试!都忙成狗了,哪有时间写单元测试??


如果你的时间宝贵,那我更要给你推荐单元测试。当你在web中要测试一个功能,步骤大致分为如下:

1. 编译代码

2. 发布到服务器

3.清空浏览器缓存

4.登陆构造测试数据

5.测试不通过,再来一次!

重复2次,估计你就要日了狗了吧。



而你只要搭建好Mock测试,以上步骤够可以节省了,你要做的就是Debug代码!!



本章就到此结束,当你完成了项目管理,设计原则以及开发方法的轻量级,剩下的就是更新部署了。


下一章我们就来讲解更新部署的智能化,让你的平台完成从头到尾的“轻量级”!


敬请期待!


如果您对我的文章感兴趣,请关注我的微信公众号,谢谢。







 
Aric 更多文章 React大热?再来泼冷水! 写不完的工作总结? 来~聊聊绩效考核 Java开发必用的工具包 “云”到底是什么 Bootstrap VS Semantic VS Foundation
猜您喜欢 剩者为王-无锡上海游玩 国民级游戏 H5版《世界OL》9月14日全面上线! 某榴开放注册3天? 日本如何设计“9 Hours“ perl黑魔法13-无处不在的引用