事情是这样的,两三年前做了几个Java Web项目,由于薪资原因,原主程都离开了。

由于公司不规范,也没有留下正规的开发文档,只有一个源程序在手里。后面的很多系统维护都很被动。

领导就觉得说,这样不好,你们做软件要实现模块化、标准化,即使有人离职,新来的人也能迅速上手维护系统。

初衷是好的,我也想这样,可是,这些已经开发完成的系统还能如何模块化标准化呢?

谁能告诉我?


自己想的几个方案:

1. 整理数据库表结构

2. 整理界面样式,截图留存

3. 整理复杂业务的逻辑和流程图

这些都是文档,其实我不明白的是 Java Web系统如何模块化?微服务,面向服务?这些新名词我了解过,

不过像我们这种只会 SSM、SSH的小作坊根本不知道这些名词怎么实践出来,并且架构设计之出也没有考虑

这么多。

So...慢慢摸索。


资料:

1. 可以看到,模块过大或过小都会滋生更多的bug。Hatton的经验表明,200~400行之间的逻辑行的代码是最佳的。

2. 正交性是有助于使复杂设计也能紧凑的最重要特性之一。在纯正交设计的软件中,任何操作均无 副作用。每一个动作(方法调用)只做一件事,不会影响其它。

Douglas McIlroy 的“只做好一件事”的忠告是针对简单性的建议,但其实也暗含了对正交性的强调。

3. 紧凑型是一个设计是否能装入人脑的的设计。紧凑的设计让人乐于使用,不会在你的想法与实际工作之间格格不入。紧凑不等同于“薄弱”,也不等同于“容易学习”。对于某些紧凑学习而言,在掌握其精妙的内在概念模型之前,要理解它是非常困难的。比如 Lisp 语言的设计就是紧凑的,又如 jQuery 库的设计也是非常紧凑的。

1. 软件的模块化开发

最新文章

  1. Ubuntu 16.04 安装 arm-linux-gcc 嵌入式交叉编译环境 问题汇总
  2. Mac读取Andriod屏幕截图
  3. .Net读取Excel文件时丢失数据的问题 (转载)
  4. Ext.encode 抛出异常“Uncaught RangeError: Maximum call stack size exceeded”
  5. LINUX信息安全系统设计基础第一周学习总结
  6. 【Shell脚本学习9】Shell替换:Shell变量替换,命令替换,转义字符
  7. 添加多盟SDK 库函数
  8. boost::asio 的同、异步方式
  9. 【锋利的Jquery】读书笔记四
  10. bootstrap模态框内容替换时会重新触发模态框?<a>标签到底有哪些特殊的特性呢?
  11. 《Linux就该这么学》第十六天课程
  12. 点赞功能与redis
  13. [C++ Primer Plus] 第6章、分支语句和逻辑运算符(二)课后习题
  14. Spring源码-循环依赖源码解读
  15. 【转】Spring学习---为什么要用spring,springMVC
  16. 【luogu3768】简单的数学题 欧拉函数(欧拉反演)+杜教筛
  17. linux 信号处理 一 (基本概念)
  18. 关于RabbitMQ一点
  19. fastdfs5.11+centos7.2 按照部署(二)【转载】
  20. kernel-release为 2.6.35-32-generic 详解

热门文章

  1. Maven的相关知识及使用
  2. 《SQL 进阶教程》 自连接排序
  3. iOS客户端与网页交互文档
  4. 未找到与约束 Micorosoft.CodeAnalysis.Editor.TypeScript.ToolsOptions.IUserSettingsProvider
  5. Ubuntu ls可以查看到文件,图形界面却看不到
  6. CountDownLatch与CyclicBarrier的使用与区别
  7. JavaEE 7 新特性之WebSocket
  8. linux安装gcc和gcc-c++
  9. UiPath Studio 快捷键
  10. 2019年我的nodejs项目选型