`
aric_chen
  • 浏览: 8968 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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


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



大家都知道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代码!!



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


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


敬请期待!


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






版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    轻量级Java EE企业应用实战 源码

     本书不再介绍struts 1.x相关内容,如果读者希望获取《轻量级j2ee企业应用实战》第一版中关于struts 1.x的知识,请登录http://www.crazyit.org下载。当读者阅读此书时如果遇到技术难题,也可登录...

    轻量级java ee企业应用实战(第3版) 源代码 3

    《轻量级java ee企业应用实战(第3版)—struts 2+spring 3+hibernate整合开发》是《轻量级java ee企业应用实战》的第3版,第3版保持了第2版内容全面、深入的特点,主要完成全部知识的升级。 《轻量级java ee企业...

    轻量级java ee企业应用实战(第3版) 源代码 7

    《轻量级java ee企业应用实战(第3版)—struts 2+spring 3+hibernate整合开发》是《轻量级java ee企业应用实战》的第3版,第3版保持了第2版内容全面、深入的特点,主要完成全部知识的升级。 《轻量级java ee企业...

    轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发chap2

    本书是《轻量级J2EE企业应用实战》的第二版,同时还融合了《整合Struts+Hibernate+Spring应用开发详解》理论部分。实际上,本书凝结了前两本书的精华部分。 本书介绍了Java EE领域的三个开源框架:Struts 2、Spring...

    轻量级java ee企业应用实战(第3版) 源代码 8

    《轻量级java ee企业应用实战(第3版)—struts 2+spring 3+hibernate整合开发》是《轻量级java ee企业应用实战》的第3版,第3版保持了第2版内容全面、深入的特点,主要完成全部知识的升级。 《轻量级java ee企业...

    轻量级java ee企业应用实战(第3版) 源代码 4

    《轻量级java ee企业应用实战(第3版)—struts 2+spring 3+hibernate整合开发》是《轻量级java ee企业应用实战》的第3版,第3版保持了第2版内容全面、深入的特点,主要完成全部知识的升级。 《轻量级java ee企业...

    轻量级java ee企业应用实战(第3版) 源代码 1

    《轻量级java ee企业应用实战(第3版)—struts 2+spring 3+hibernate整合开发》是《轻量级java ee企业应用实战》的第3版,第3版保持了第2版内容全面、深入的特点,主要完成全部知识的升级。 《轻量级java ee企业...

    轻量级java ee企业应用实战(第3版) 源代码 6

    《轻量级java ee企业应用实战(第3版)—struts 2+spring 3+hibernate整合开发》是《轻量级java ee企业应用实战》的第3版,第3版保持了第2版内容全面、深入的特点,主要完成全部知识的升级。 《轻量级java ee企业...

    轻量级java ee企业应用实战(第3版) 源代码 5

    《轻量级java ee企业应用实战(第3版)—struts 2+spring 3+hibernate整合开发》是《轻量级java ee企业应用实战》的第3版,第3版保持了第2版内容全面、深入的特点,主要完成全部知识的升级。 《轻量级java ee企业...

    轻量级java ee企业应用实战(第3版) 源代码 2

    《轻量级java ee企业应用实战(第3版)—struts 2+spring 3+hibernate整合开发》重点介绍如何整合struts 2.2+spring 3.0+hibernate 3.6进行java ee开发,主要包括三部分。第一部分介绍java ee开发的基础知识,以及...

    轻量级J2EE企业应用实战:Struts+Spring+Hibernate整合开发

    书中所介绍的轻量级J2EE应用,是目前最流行、最规范的J2EE架构,分层极为清晰,各层之间以松耦合的方法组织在一起。书的最后配备了两个实例,均采用了贫血模式的架构设计,以便于读者更快地进入J2EE应用开发。而第8...

    轻量级J2EE 企业应用实战 Struts+Spring+Hibernate整合开发

    书中所介绍的轻量级J2EE 应用,是目前 最流行、最规范的J2EE 架构,分层极为清晰,各层之间以松精合的方法组织在一起。书的最后配备了两 个实例,均采用了贫血模式的架构设计,以便于读者更快地进入J2EE 应用开发。...

    轻量级J2EE企业应用实战:Struts+Spring+Hibernate 整合开发.part1

    书中所介绍的轻量级J2EE应用,是目前最流行、最规范的J2EE架构,分层极为清晰,各层之间以松耦合的方法组织在一起。书的最后配备了两个实例,均采用了贫血模式的架构设计,以便于读者更快地进入J2EE应用开发。而第8...

    轻量级J2EE企业应用实战:Struts+Spring+Hibernate 整合开发.part2

    书中所介绍的轻量级J2EE应用,是目前最流行、最规范的J2EE架构,分层极为清晰,各层之间以松耦合的方法组织在一起。书的最后配备了两个实例,均采用了贫血模式的架构设计,以便于读者更快地进入J2EE应用开发。而第8...

    轻量级J2EE企业应用实战:Struts+Spring+Hibernate 整合开发.part3

    书中所介绍的轻量级J2EE应用,是目前最流行、最规范的J2EE架构,分层极为清晰,各层之间以松耦合的方法组织在一起。书的最后配备了两个实例,均采用了贫血模式的架构设计,以便于读者更快地进入J2EE应用开发。而第8...

    轻量级 J2EE 企业应用实战:Struts+Spring+Hibernate 整合开发.part2.rar

    书中所介绍的轻量级J2EE应用,是目前最流行、最规范的J2EE架构,分层极为清晰,各层之间以松耦合的方法组织在一起。书的最后配备了两个实例,均采用了贫血模式的架构设计,以便于读者更快地进入J2EE应用开发。而第8...

    轻量级 J2EE 企业应用实战:Struts+Spring+Hibernate 整合开发.part1.rar

    书中所介绍的轻量级J2EE应用,是目前最流行、最规范的J2EE架构,分层极为清晰,各层之间以松耦合的方法组织在一起。书的最后配备了两个实例,均采用了贫血模式的架构设计,以便于读者更快地进入J2EE应用开发。而第8...

    基于SpringCloud-微服务系统设计方案.docx

    每个服务运行于独立的进程,并且采用轻量级交互。多数情况下是一个HTTP的资源API。这些服务具备独立业务能力并可以通过自动化部署方式独立部署。这种风格使最小化集中管理,从而可以使用多种不同的编程语言和数据...

    新版Android开发教程.rar

    盟组织。这一联盟将会支持 Google 发布的 Android 手机操作系统或者应用软件,共同开发名为 Android 的 开 放源代码的移动系统。开放手机联盟包括手机制造商、手机芯片厂商和移动运营商几类。目前,联盟成员 数 量...

Global site tag (gtag.js) - Google Analytics