• 《人月神话》阅读笔记


           我在微博随便看了一下,这本书大概可以称作软件工程领域的名著,是因为人们在管理复杂项目等方面提供了很多颇具洞察力的见解,既有很多发人深省的观点,也有大量的软件工程方面的实践指导。

            在这本《人月神话》中,其中提到了软件系统的复杂性远远超过了建筑行业和制造行业,软件的需求是在人的脑子中很快形成的一种想法,用我们的自然语言都很难完整、准确的表达给对方。一般情况下,人们只有在看到一个已运行的APP或者网站以后才会说:“哦,我要的其实不是这个功能,其实我想得是能够这样这样的或者那样那样的... ”,需求的不确定性更加导致了软件构建过程的复杂性。简单来说就是如果你想解决问题,有些事情是必须要做的,但是因为做事的方式方法不对,导致多做了很多不必要的事,软件也变得更加复杂了。

            之前我在做项目时没有很好的构思,这样做出的项目就很混乱,在今后的工作中,我们在构建一个软件之前,首先应该准确构思,并对软件进行规划,减少在过程中的不必要的时间、精力方面的损失,提高工作效率!

    数据的重要性:对编程来说,技艺改进的结果往往是战略上的突破,而不仅仅是技巧上的提高。这种战略上突破有时是一种新的算法,如快速傅立叶变换,或者是将比较算法的复杂度从 n2降低到 n log n。更普遍的是,战略上突破常来自数据或表的重新表达——这是程序的核心所在。如果提供了程序流程图,而没有表数据,我仍然会很迷惑。而给我看表数据,往往就不再需要流程图,程序结构是非常清晰的。 由于缺乏空间而绞尽脑汁的编程人员,常常能通过从自己的代码中挣脱出来,回顾、分析实际情况,仔细思考程序的数据,最终获得非常好的结果。

            时间的重要性在众多软件项目中,缺乏合理的时间进度是造成项目滞后的最主要原因,它比其他所有因素加起来的影响还大。

            任务分配的重要性:对一个进度落后的项目增加人生,进度会更加落后。之前没有进行团队协作,做起项目来没有他人配合,思维单一,这样非常不好。

  • 相关阅读:
    【Linux_Unix系统编程】Chapter4 文件IO
    【Unix网络编程】chapter6 IO复用:select和poll函数
    【Unix网络编程】 chapter5 TCP客户,服务器程序实例
    【Unix网络编程】chapter3 套接字编程简介
    VS自动编译脚本
    【Python编程:从入门到实践】chapter4 操作列表
    【Python编程:从入门到实践】chapter3 列表简介
    【Python编程:从入门到实践】chapter2 变量和简单数据类型
    【Unix网络编程】chapter2传输层:TCP,UDP和SCTP
    vim配置编辑php
  • 原文地址:https://www.cnblogs.com/moxihuishou/p/13084462.html
Copyright © 2020-2023  润新知