问题分析: 当我开发一个软件或一个模块的时候,需要考虑两件事情: A. 需求是什么 B. 如何实现 大多数程序的逻辑是较为复杂的。除非拥有一颗超级大脑,否则无法轻易将两件事情思考的周密且合理。会碰诸如下列的问题: A. 需求本身较为复杂 B. 具体的实现的方式工艺较为复杂,或同一问题在不同情况下需要进行不同的处理 C. 需求和实现中的某些环节互相影响和制约甚至互为前置条件 D. 计算机科学的特点和能力有限性能因素反作用于需求 …… 这些问题使得程序员不得不有序的考虑一部分需求再考虑一部分实现,然后翻回头来再考虑需求…这样经常会将程序员搞的晕头转向精疲力尽,最后出现难以想象的各种悲剧。
我的方式: 在软件开发的过程中遵从这四个步骤: 需求分析—>功能拆分—>模块划分—>代码开发 这四个步骤中,每一步都是下一步不可或缺的前置工作,每一步都是100%在上一步的工作基础上进行的。这样明确的工作流程,可以使我们免于陷入如同漩涡迷宫般混乱的思维陷阱之中。具体规则如下:
1. 需求分析。将原始功能进行整理和抽象,转化为程序的行为,即我们都要完成那些具体的逻辑行为,如截图上传,复杂Panel显示隐藏等等。2. 功能拆分。将步骤1得到的每一条行为,转化为程序需要实现的几个步骤,我称之为行为的有向步骤链,简称步骤链,其上的每个节点成为步骤节点,简称节点。并且节点需要由哪个类或哪几个类进行支撑。可以视情形,将所有行为进行拆解也可分批次甚至一条一条的进行拆分并转到步骤3和4串行实现。大部分前端步骤链可大致归纳为下列两种: 用户操作—>访问服务器或本地数据拿所需的数据—>根据数据刷新界面 获取服务器数据或时间片函数—>计算并修改本地数据—>根据新数据刷新界面 3. 模块划分。即对类的规划,根据步骤2中的每个节点的需求,统计出需要哪些类,每个类提供哪些功能,这个时候可以考虑使用UML工具进行辅助设计。4. 代码开发。严格按照模块划分开编写每一个类。
很有可能在进行某一步的时候,发现前置工作不足以支撑这件事情。则回到上一步中来完成所需要的工作,如发现此步骤的前置工作也缺少则再向前回溯到再上一步。(见下图)
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!