程序开发个人设计总结(更新)

       更新日志:2017-10-07 11:47:02 在学习了《大学计算机》后,整理了思维方式


        作为一个草莽出身的开发者,在学习《大学计算机》后,了解到自己没有计算思维,完全是靠着一点小聪明在写脚本,抄代码而已。

        现代科学分工已经很精细了,想要有所成就,必须经过专门的训练+长期的努力研究,才有可能,嗯,就是可能,而不是必然。

  1. 一个小程序、一个系统的某个模块到了需要编码的时候,该如何设计实现呢?

本文讲的就是,在学习没有接触过的Python过程中,一项考核作业对我的启示。

作业不难,但要用过程化方法来实现(还没有讲到面向对象),自己编写函数实现重复利用。

我被难住了两周,既要工作又要学习,导致只想不做,而且是东一榔头,西一棍子的想,毫无节奏。

怎么办?经过痛苦的思考,终于憋出来了,但总结一下,发现走得还是原来的老路。

每次遇到难题都是这样没有过程、没有规律的乱想,最终还要按规律来思考和实现。

那么规律是什么呢?

  1. 分层,对于复杂功能实现要分层设计。为什么这次没有做到呢?因为Python是我没接触过的,而在以前进行Java开发时,采用的是框架,自己就强迫自己分层了
  2. 画流程图,对于一时想不起如何分层的功能要画流程图,按照流程实现。先分功能、再分析实现、最后提炼可共用部分(重构)
  3. 根据计算思维来进行程序开发工作,或者更简单点,采用标准化程序设计方法,具体来说就是五点:问题描述、数学建模、算法设计、程序设计、测试运行
  4. 那么思考和实现的是什么?其实是算法,或者这么说太高端了,就是怎么解决核心难点,那就采用算法的描述方法就可以了,四种方法:自然语言、流程图、N-S图、伪代码。
  5. 如何应用?自然语言(注释);流程图(或N-S图)(整理思路);伪代码(程序实现结构);具体实现。
  6.  步骤:
    • 自然语言描述——写用例
    • 画流程图——在纸上——逐步实现规整——归档
    • 写注释——在代码中
    • 伪代码
    • 实现
    • 测试
    • 修改错误
    • 思考有没有更好的方式
    • 重构
    • 总结:计时、记录

看到这里你会发现,这真是老生常谈,多少大师都说烂了的事情了,可还是重蹈覆辙。为什么?

  1. 学习掌握程度不够,连如何实现都力不从心,谈何熟练设计
  2. 重构能力差
  3. 经常会有几种实现方法(例如:是按照功能来分层还是按照层来分功能,按功能分层,就是一个功能中分数据访问层、逻辑层、控制层,而层中分功能则相反;还有,层中再划分功能,还是层中把所有功能罗列在一起?),但不知道那种最好,犹豫不决,遇到这种情况,先实现了再说,其他的记下来,以后再验证
原文地址:https://www.cnblogs.com/koctr/p/7602202.html