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

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

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

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

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

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

敬请期待!

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

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

时间: 2024-12-22 06:49:30

如何搭建轻量级架构-代码组织篇的相关文章

怎样搭建轻量级架构-代码组织篇

非常多程序猿看到标题,预计心里一愣:一个组织代码,有什么可讲的,无非是公司网址倒着写,外加命名规范,最多分模块管理而已!怎么这都能忽悠一篇文章来? 代码组织确实是一件简单的事情.可是假设我说的"代码组织"不只限于这些内容呢... 大家都知道Web项目的架构,文件非常琐碎.一个模块前台包括JS,CSS,HTML文件,后台还有模块的逻辑处理类,实体的数据库訪问类.以及实体本身. 假设这个模块须要打印,还要有打印的模板文件! 假设这个模块另一些关联数据,比方学员的学分数据等等. 算下来.一个

如何搭建轻量级架构-更新部署篇

搞定了前期所有的问题,你的平台架构也在慢慢完善中...余下的就是更新部署方面的问题了. 大家都知道,平台运行需要一个运行环境.抛开操作系统以及服务器这方面的安装,平台本身运行就需要数据库,数据等需要初始化. 平台的打包我们之前有讲过Maven,使用Maven可以自动化构建你的项目,本篇不再多讲. 而关于数据库以及相关数据的配置,在部署时是一件很麻烦琐碎的工作. 需要创建每一个表的结构以及索引,如果更新时,还要通过软件比对数据库差异,生成更新SQL... 通常在部署时,都没有开发人员在场,一旦出了

如何搭建轻量级架构-辅助工具篇

我们要搭建轻量级的架构,首先要确保有一套轻量高效的"辅助工具",确保平台架构可以正常推进. 项目的"辅助工具"包括协作平台,管理工具. 首先来说说 项目协作工具 比较老旧的团队协作,都是枯燥的会议记录,列表式的Task,还有附件形式的项目文档... 很多公司总是想通过这些方式来把控项目,认为有"协作平台"就能为项目带来便利. 然而真实的结果呢?? 由于其枯燥性,"协作平台"仅仅变成了形式主义,最后反而成了项目的累赘. 那么,如

怎样搭建轻量级架构-辅助工具篇

我们要搭建轻量级的架构,首先要确保有一套轻量高效的"辅助工具",确保平台架构能够正常推进. 项目的"辅助工具"包含协作平台,管理工具. 首先来说说 项目协作工具 比較老旧的团队协作,都是枯燥的会议记录.列表式的Task,还有附件形式的项目文档... 非常多公司总是想通过这些方式来把控项目,觉得有"协作平台"就能为项目带来便利. 然而真实的结果呢?? 因为其枯燥性,"协作平台"只变成了形式主义,最后反而成了项目的累赘. 那么,怎

怎样搭建轻量级架构-敏捷开发普及篇

搭建轻量级的架构.没有轻量级的开发原则是不行的. 传统的软件project理论是统一软件过程.统一软件过程说的简单点就是沟通.建模,开发,维护. 大家注意,这是一个一次性的过程,也就是每一个阶段必需要力求具体,确认功能的务必完好.然后一次性搞定. 所以依照传统的project理论,开发反而是一个可控性最高的阶段,依据前期"超级完好"的模型,程序猿全然是流水线工人.俗称码农! 假设依照这样的project理论去开发软件,两方在前期要耗费巨大的精力去建模.并且也不能保证在真正开发时.不会超

如何搭建轻量级架构

一直专注于构建高效的开发平台,在这方面颇有一些心得.今天就和大家聊聊关于平台架构的一些话题. 何为平台?从狭隘的角度来看,有二个方面: 1. 提供可扩展的开发 2. 提供基础功能,例如:查询,导入导出,打印,BI,工作流,表单,数据权限等. 好的平台,不仅仅要满足这两个硬条件,更要在软实力上有亮点,如项目管理,实施方面都极具效率性,便捷性.我称这种特性为"轻量级". 相反,很多企业,在软件开发的过程中,都过于"重量级".如此久而久之,导致整个团队以及平台的"

如何基于阿里云搭建适合初创企业的轻量级架构?

摘要: 在项目的初期往往存在很多变数,业务逻辑时刻在变,而且还要保证快速及时,所以,一个灵活多变.快速部署.持续集成并可以适应多种情况的架构便显得尤为重要.本文主要介绍基于阿里云搭建适合项目初期的后端架构 ----基于阿里云搭建的适合初创企业的轻量级架构 前言在项目的初期往往存在很多变数,业务逻辑时刻在变,而且还要保证快速及时,所以,一个灵活多变.快速部署.持续集成并可以适应多种情况的架构便显得尤为重要.本文主要介绍基于阿里云搭建适合项目初期的后端架构,至于细节操作不作描述,比如nginx配置优

搭建LMAP架构之 PHP 配置(最终篇)

搭建LMAP架构之 PHP 配置(最终篇) [TOC] 文章目录 一.PHP简介 二.安装前的准备工作 三.PHP的手工编译安装 四.论坛的安装过程 一.PHP简介 PHP,用于解释动态网页文件,提供 Web 应用程序的开发和运行环境. PHP 是一种被广泛应用的开放源代码的多用途脚本语言,可嵌入到 HTML 中,适用于 Web 应用开发 PHP拥有更好的网页执行速度.支持绝大多数流行的数据库及多种操作系统. 二.安装前的准备工作 本次安装PHP是为了搭建LAMP架构,实现自创网页论坛. 在安装

iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController)

iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController) 这里我们就直接上实例: 一:新建一个项目singleView Controller,命名未iCocos 二:由于我们使用的纯代码实现的,所以删除其中的StoryBoard和Viewtroller的两个文件 三:新建一个继承自TabBar Controller的类,我们命名问iCocos ViewController 三:在Appdelegate的实现文件中导入刚刚