基于项目的最差实践,可以总结出一套项目架构的最佳实践原则以便今后的复用和改进。

原则1. 时间总是非常紧,需求总是在变化,技术问题总是层出不穷,千万不要认为软件工程的问题不会发生在规范的公司和项目。每次一定要根据自己所处的位置作出正确的评估,比如项目经理做评估要留出足够的时间buffer,开发人员应当正确评价自己的工作量,尽可能开始工作。
原则2. 项目架构必须得完成基本的内容,即使时间非常的紧迫。以一个三层架构的企业级网站来说,数据库建模,页面流程图和业务逻辑的sequence图是必须的。
原则3. 数据库模型一定要尽早考虑,从个人经验来看,无论是采用DDD还是TDD,数据库都是基石,尤其是采用hibernate这样的工具,数据库的建立意味着可以采用工具生成PO, DAO,那意味着你已经完成了20%的工作。
原则4. 使用中间的业务逻辑层。常常看到Action中直接调用dao编写业务逻辑的例子,这样做并非不可以,在一些小型的项目中能够节省时间,但在大型项目中,业务逻辑集成在action会导致可维护性变差,举例而言,比如客户临时变更需求需要将某项业务逻辑作为web service对外发A布;而后者的优势就显现了,只需要添加额外的包,重启运行测试的工作不涉及新包以外的代码,当然也就能减少系统的故障率。
原则5. 对中间的业务逻辑层,采用面向接口编程。很多人不知道spring提倡的面向接口编程在哪里使用,于是到处都用,事实上,使用得不好常常会因为接口和实现的变动而造成困扰,正确的做法是:将业务逻辑抽象出来作为接口,这套接口一定要像数据库一样千锤百炼,好的接口能更好的适应变化。业务逻辑层的稳固有助于工作的分离和解耦,一旦接口定义出来,开发struts和业务逻辑的人就可以分开并行工作,并且相互的变动不会受到影响,被非常好的分离了,所以,中间的业务层接口定义,是第二层基石,与数据库一起构成了三层结构,二层基石。
原则6. 美工页面要先于编写jsp完成。虽然说MVC的使用有助于分离美工与开发者,但是有的工作未必能完全并行,美工的页面需要基于pageflow完成,而页面的布局和样式需要得到客户认可,因此一定要尽早引入美工,当美工完成静态页面时,开发jsp才不会浪费时间,否则,常常会因为页面而影响到控制逻辑。
原则7. 采用统一的架构,预先写好基础代码。统一架构对于项目的可维护性尤为重要,比如读取日志,读取配置,基础DAO,基础ACTION,基础FORM等等。基础的架构减少了不必要的重复工作,加快了项目开发速度,其重要层度,是我每次都必然强调的。也正因为如此,该文章的系列将会连载架构一个项目的基础代码。
原则8. 如果不是非常特别的需要,尽量不要过多的使用代码生成工具。代码生成工具能够极大的提高编程效率,但是,如果不熟悉生成工具所采用的组件及配置,那么尽量不要使用,当生成的大量代码不能根据你的定制化复用或工作时,相信你只有欲哭无泪了。

转载于:https://blog.51cto.com/babyhe/252644

J2EE项目架构最佳实践相关推荐

  1. 港美股券商架构最佳实践

    美股券商架构最佳实践 2019年 3月 童军 技术总监 10 年以上互联网从业,5年互联网金融.6 年管理经验,重点关注互联网金融领域. 联系方式:微信 keyva33:Email:tongjun@a ...

  2. 基于AWS的云服务架构最佳实践

    近年来,对于打造高度可扩展的应用程序,软件架构师们挖掘了若干相关理念,并以最佳实践的方式加以实施.在今天的"信息时代",这些理念更加适用于不断增长的数据集,不可预知的流量模式,以及 ...

  3. 基于AWS的云服务架构最佳实践 #CSDN博文精选# #IT# #云服务实践#

    大家好,小C将继续与你们见面,带来精选的CSDN博文~ 在这里,你将收获: 将系统化学习理论运用于实践,系统学习IT技术 学习内容涵盖数据库.软件测试.主流框架.领域驱动设计和第三方生态等,离全栈工程 ...

  4. 基于云平台的41种可复用的架构最佳实践 | 赠书活动

    点击上方"程序猿技术大咖",关注并选择"设为星标" 回复"加群"获取入群讨论资格! 感谢大家对公众号"程序猿技术大咖"的 ...

  5. DDD分层架构最佳实践

    还在单体应用的时候就是分层架构一说,我们用得最多的就是三层架构.而现在已经是微服务时代,在微服务架构模型比较常用的有几个,例如:整洁架构,CQRS(命令查询分离)以及六边形架构.每种架构模型都有自己的 ...

  6. 沈剑:58同城数据库架构最佳实践

    声明:本文首发于CSDN,禁止未经许可的任何形式转载,可咨询文末的责编. 数据库的基本概念 基本概念这一块,主要是让大家就一些数据库方面的概念达成一致. 首先是"单库",最初的时候 ...

  7. 现代化Web的微服务架构最佳实践全景

    原文地址:点击打开链接 作者丨Vinay Sahni 编辑丨Cindy "基于搭建微服务架构的实践,作者总结出一套适用于现代化Web和云技术的实战经验,并从微服务领域的先行者(如Netfli ...

  8. 58同城数据库架构最佳实践

    http://geek.csdn.net/news/detail/52070 数据库的基本概念 基本概念这一块,主要是让大家就一些数据库方面的概念达成一致. 首先是"单库",最初的 ...

  9. 跨境互联网券商架构最佳实践\n

    引言 \n 近年来,随着监管层面对金融科技的拥抱态度,券商通过互联网展业的力度日渐加大,越信智能科技核心团队有幸加入两家港美股券商,并负责从0到1建设香港G券商的跨境互联网证券系统.因未有历史包袱,G ...

  10. 干货 | 携程机票大数据架构最佳实践

    本文转载自 携程技术中心(ctriptech) 公众号,本文PPT请点击下面 阅读原文 获取 作者简介 许鹏,携程机票大数据基础平台Leader,负责平台的构建和运维.深度掌握各种大数据开源产品,如S ...

最新文章

  1. 继往开来!目标检测二十年技术综述
  2. 内存条结构_CPU是电脑里最难坏的硬件,为什么不敢终身质保,而内存条却可以...
  3. NYOJ 453 小珂的烦恼 模拟
  4. Model/View 教程
  5. C语言 结构体里的元素前面有一点“.”代表什么意思?
  6. 结构体数组实现的简易学生信息管理系统
  7. yelee主题中的Busuanzi网站统计失效问题
  8. eclipse中tomcat启动不了_Eclipse怎样与Tomcat集成
  9. 随机森林降维matlab代码,随机森林代码实现问题
  10. 安装nrm,报错request@2.88.2: request has been deprecated, see https://github.com/request/request/issu
  11. 前端基于Canvas生成等值面的方案
  12. centos安装rpm格式jdk
  13. 20165309 《网络对抗技术》实验二:后门原理与实践
  14. 三体第一部(01到12节)-附带感想
  15. vb教材笔记_vb学习笔记
  16. 制作.rpgsave存档修改器
  17. 常用的控件样式风格设置(qss)——QtWidgets
  18. 寻找AR中的Big Difference - v4.0 #AR指南
  19. MySql将一张表的数据copy到另一张表中
  20. 网络世界有哪些不为人知的秘密?

热门文章

  1. 主机cpu突然飙高,如何快速排查问题
  2. docker-compose学习
  3. 使用简单的缓存提高程序执行速度
  4. ASM:《X86汇编语言-从实模式到保护模式》第8章:实模式下硬盘的访问,程序重定位和加载...
  5. 完美解决Win8声卡爆音破音、卡顿
  6. Cmdkey 凭证管理器工具
  7. DataTable转为JSON数据格式代码
  8. Python 学习入门(22)—— 线程同步
  9. 【luogu2272】 [ZJOI2007]最大半连通子图 [tarjan 缩点][拓扑排序]
  10. Python基础学习----异常