个人项目在开发之前需要进行详细的设计吗
谢题主 @姜山 之邀!在独立开发一些中小型项目的时候,特别是web项目,我之前的做法就是上手就做。但是这样做显然是非常不好的…在开发途中稍有需求变动代码就会变得混乱。这是一个常见的 bad smell,说明你可能设计模式用得不好(许多设计模式就是用来应对需求的变化),或者架构设计不足。代码反映你的设计(尤其是你大脑中的思考),代码混乱,说明你的设计混乱,稳定性差,设计的前瞻性不够。上手就做,这没错,但写代码、做的同时,依然需要你随时做出足够的设计(Just Enough Design or Just-In-Time Design)。我想知道其他的个人开发者除了做单元测试以外,会在开发之前进行一些很详细的设计吗?大家又是如何设计的呢?个人开发(一个人的项目),同样可以是敏捷开发,迭代、递增、演进式的开发。通常不需要而且没必要做详细设计(如细化到每个类的每个方法、参数),但通常都会做架构设计(概要设计),演进式地设计。首先,开发前要把你这一次迭代中做的需求搞清楚。我用的是 Use Case(用例)分析,比 User Story 强 n 倍。最好把用例文本写出来,便于搞清楚各种复杂的需求细节。其次,架构设计用 UML 来做,对整个系统的骨架、基本轮廓要做到心中有数、胸有成竹。开发的前几个迭代主要是验证架构设计(主体结构)的正确性。架构模型包括系统分层,核心的执行流程,有哪些关键的接口、包、类,关键的交互等等。对于较复杂的设计,最好把 UML 图画出来,便于反复研究和思考。
■网友
必要的设计肯定还是需要的。比如数据库的设计,采用什么样的框架,等等。不过我觉得也不需要过于详细的设计。在实现代码的时候,为将来可能的变化做一下考虑。单元测试是一个好的实践。编码规范,代码评审,重构这些都是很好的实践。如果有可能,和公司的其他人讨论下设计方案,效果会更好一些。
推荐阅读
- 滁宁城际铁路一期项目汊河新城特大桥箱梁架设完成
- 盐都区|15个高质量项目签约落户盐城高新区
- |盐城在建省级农业农村重大项目已完成投资65.9亿元
- 南通大学|创业项目聚焦二孩家庭,南通大学喜获国赛金奖
- 农民工工资|海门三项目被省住建厅列入拖欠农民工工资预警名单
- 有啥方法,网站,项目可以自己练习计算广告学
- 在上海陆家嘴附近工作,请问去哪边租房会比较好
- |第七届淮海科学技术奖获奖名单揭晓121个创新项目、10名科技人才获奖
- 为啥5G和2.4G默认的BSSID是相同的
- 上市公司孵化新项目成熟之后,拆分出去成立新公司,这样不会损害其他股东的利益吗
