今天我读了一下构建之法,里面有一些独特的内容吸引了我。
软件=程序+软件工程 程序=数据结构+算法,后面这一个等式在我学习编程的时候就知道了,但是我对前一个还并不是十分了解。我的疑惑在于,软件和软件工程到底有什么区别。在我阅读了构建之法后明白了一些。软件工程就是把一个系统有序可量化的方法应用到软件的开发、运营和维护上的过程。它包括软件需求分析、软件设计、软件构建、软件测试和软件维护。软件工程和许多学科相关,比如设计,管理以及数学等等。软件工程的三大基础知识领域是计算基础、数学基础和工程基础。软件工程的目标是创造一个足够好的软件。什么是足够好?在我看来,足够好并不只是单纯的指设计出来的程序没有bug,虽然没有bug是我们编写程序的目标,但它并不是唯一的,还有许多要注意的,比如这个程序是不是用着用着就经常崩溃?用户使用这个程序是不是非常方便?程序如果要更新是不是很容易修改?
构建之法第二章也十分有趣。在我看来,计算机永恒的主题就是程序操作数据。而且,软件是由多人完成的,我们要学会合作。比如一个程序,每人负责一个部分,那么为了简洁,我们可以调用其他人的模块,由此来避免重复。