生命会逝去,但一个好的软件不会。
要想写出一个“永垂不朽”的软件,关键是你能否遵循以下规则:
1、模块化
规则1:模块化。在一个模块中找bug总比在整个代码库里找简单得多。
人脑是极其复杂的生物,可以设计出能处理复杂问题的CPU,但自我本身却处理不来这些问题。想要证明吗?那么告诉我,在不使用任何计算器,纯心算的条件下,你能算出13*35是多少么。我敢打赌,你不能。至少在短时间内你办不到。
但是,我们擅长将复杂的问题分解为更容易解决的问题。
13*10是多少?130。
13*5呢?那就是130/2=65。
130*3?390。
390+65是多少?455。答案就是它了!
这就是如何分解问题的一个事例:将一个大型的复杂问题分解为一个个独立的小型的简单问题,从而快速得出正确的答案。
我们也可以按照同样的逻辑对待软件。模块化的代码不仅易于阅读,而且更容易调试。在大多数情况下,堆栈跟踪只会导致非常小的代码子集,而不是一下子出来个1000行代码的文件。甚至在更新某个特定模块时,也不需要捣腾整个系统——只要正在更新的那部分就可以了。
2、测试
规则2:任何不经过测试的代码都是耍流氓。
很多人认为测试和写软件是两码事,即使是在学校中,教师会教你如何使用C ++模板,却不会告诉你如何测试。在线教程能教你如何在Brainfuck制作web服务器,却不会说明如何测试。而这就是问题的所在。
有人说,我们应该在编写实际的应用程序逻辑之前就先写好测试。
但是在我看来,什么时候写测试其实并没有关系,只要写了就ok。不要试图一步登天,不要想着刚开始就写得出完美的测试:从简单的起步。用蛮力方式测试(如print(add(1,1)=2)),然后再测试对应语言的框架。
测试有助于我们了解软件的复杂性。你可以学到如何将软件模块化为可以独立的测试件。
3、持续集成
规则3:使用持续集成。只要出现问题代码,就会通知你。
你写的测试,你必须确保可以应用于多种环境(例如Python的多个版本)。并且如果需要作出任何改动,也得测试。
小编推荐阅读
《热血江湖手游技能加点攻略》(掌握技能加点要诀,成就无敌江湖之王)
阅读新版本赏金玩法出装攻略(全面解析最优出装方案,让你在新版本赏金玩法中独领风骚)
阅读《公主级2-6攻略技能大揭秘》(掌握攻略技能,成为公主级2-6的王者!)
阅读《赵云关羽出装铭文攻略视频大揭秘》(如何为赵云和关羽选择最佳装备和铭文?—MOBA游戏攻略)
阅读P5Sband攻略技能加点详解(P5Sband技能加点策略与建议)
阅读《狐狸职业比赛出装攻略男》(以狐狸为主角,揭秘职业比赛中的最佳出装策略)
阅读《钻石局炸鱼英雄出装攻略》(了解最强出装搭配,带你玩转炸鱼英雄局!)
阅读