读《构建之法》的心得体会
软件工程涉及的范围很广,对于即将投身IT业的学生而言,软件工程的内容又非常重要。读构建之法,尽管本书介绍了不少IT业正在使用的理论和技术,但是,这本书的主要思想并不是介绍所有的新思想和新技术,而是从这些新思想、新技术中总结出对自己在未来的工作中有用的东西。
在整本书中,印象最让我深刻的是“两个人的合作”这一章节。现代的软件产业经过几十年的发展,软件的结构随着用户需求的不断增加,软件的功能不断朝多元化与复杂化发展。不管是两个人的合作还是团队的合作,谈到合作不免提及规范这个词。你写出来的代码人在看,机器也在看。所以我们的代码要让我们的合作伙伴看得清楚。因此,要做一个有价值的项目,或者在团队工作里,代码的规范就显得尤为重要。除了规范,我还想提一个词,那就是“技巧”。不管是两个人的合作还是团队的合作都需要技巧,从了解阶段到熟悉彼此从而能从不同的意见中学到自己所欠缺的东西。或者是说服别人自己的观点的时候都需要技巧,要保证能够有效地有传递正确的讯息。
书中有一个问题我想拿出来谈谈,那就是:软件开发是一门工程还是一门艺术?以我现在的程度来看软件开发更是一门工程,如果软件开发是一门艺术,那么只有软件工程师和软件爱好者能够懂得欣赏。为什么我觉得软件开发更是一门工程?因为艺术是人们进行情感和思想交流的一种文化形式,人们进行情感和思想交流是以语言为基础的,所以,艺术的发生基础是人类的语言。艺术可以定义为“人类以创造美为主要目的的技术及其产品”。 艺术需要技术,但不是技术。虽然软件开发的基础也是语言,但是却是机器语言,它已在各行各业得到广泛而深入的应用,真正在为社会服务,和人们的日常生活分不开了,直接关系到人民的生命财产。现在软件无处不在,已和大家的工作、生活密不可分。
在软件开发过程中,软件工程肩负着诸多责任。比如说将种种条件确定下来,把资源安排妥当,使工作过程确定清晰,产出稳定可靠。其中大量与人的协作、与时间的较量的经验和体会,都要通过实践才能慢慢累积起来。书本中一方面宣传软件工程的非常重要性,另一面却又很难体现从中如何受益。此书的优势之处在于其强大的实用性和超级趣味性,把软件工程换一种角度描写得这么有意思。最近十多年来,软件产业和互联网产业的迅猛发展,给众多计算机和软件专业的学生们提供了用武之地,同时也对大学软件工程的教育提出了很大的挑战。
问题:
(1)、当在用户不知情的情况下安装了其他软件,然后用户摆脱不掉的这种情况要怎么处理?
(2)、哲学家的宗旨是:我思,故我在。科学家的宗旨是:我发现,故我在。工程师的宗旨是:我构建,故我在。那么,我们从最底层做起的时候的宗旨是什么?要掌握在什么样的程度才能刚刚好?
(3)、在软件测试中有提到过要避免自己测试自己的代码,那为什么在代码复审的时候要把自己的代码当成别的菜鸟写的代码进行复审?
(4)、敏捷的方法能帮助你更早地知道你是否能如期完成任务仅此而已,那是不是意味着使用敏捷这个方法的后果就是许多工程师更加频繁的加班?工程师自己的生活时间减少了,工作热情下降,是不是对整个项目进度有影响?那么为什么许多项目还要号称敏捷的项目?
(5)、大部分的先行者都不是创新者,那为什么还鼓励创新?创新的优势在哪里体现?