程序设计的方法论

完成以下步骤:

1、正确的问题

明确问题,这场战役就成功了90%。必须仔细定义一个问题的输入、输出的流程场景和数据范围、以及对应的约束条件和性能指标。对小问题的仔细分析有时可以得到明显的实际益处、几分钟的仔细研究可以大幅度消减代码的长度、程序员时间和程序运行时间。

2、定义数据结构

不同的问题需求需要定义不同的数据结构,有限定义内的稠密集合?稀疏?树?索引?…

3、设计算法

设计复杂度更精巧的算法


4、时间空间折中与双赢

没有双全法,那么就得根据需要用空间换时间,或者相反。通常前者的资源更稀缺需求更重要,当然有时候减少程序的空间需求也会减少运行时间,比如减少了IO操作。


5、简单的设计

正如机械设计师赞扬一个好的系统:“结构简单、部件很少、易于维护、非常坚固”;“设计者确定其设计已经达到了完美的标准不是不能再增加任何东西我,而是不能再减少任何东西。” 更多程序员应该使用该标准来检验自己完成的程序。简单的程序通常比具有相同功能的复杂程序更可靠、更安全、更健壮、更高效、而且易于实现和维护。

ps:就此突然想到了前几日分享的国宝级折纸大师,其完成折纸前反复计算推演才最终仅仅用一张纸不用任何工具折成生动万物,这其实和我们老祖宗高超的榫卯设计一样,不要一根钉子。

高低之别其实是沉浸的匠心,都是工程,从折纸和榫卯中我们可以有很多的思考、灵感和启发,故配上几张图。


   掌门艾老师

   2017年3月18日晨读且思

图片发自简书App


图片发自简书App
图片发自简书App
图片发自简书App
图片发自简书App
图片发自简书App
图片发自简书App
图片发自简书App
图片发自简书App
图片发自简书App
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 178,978评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,544评论 19 139
  • 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及...
    dle_oxio阅读 11,384评论 6 244
  • 我的助教和我告别的时候曾经说过这样一句话:不要对今天绝望,因为更痛苦的永远是明天。当时的我沉浸在考研失败人生茫茫求...
    书书书书宁阅读 575评论 0 1
  • “清明时节雨纷纷,路上行人欲断魂。借问酒家何处有?牧童遥指杏花村。”耳边渐渐响起阵阵朗朗的读书声,暮然间回首看了一...
    玩命飞哥阅读 782评论 0 1

友情链接更多精彩内容