热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

1509_人月神话阅读笔记_整体与部分

全部学习汇总:GitHub-GreyZhangThe_Mythical_Man_Month:MyreadingnotesofTheMythicalMan-Month.

全部学习汇总: GitHub - GreyZhang/The_Mythical_Man_Month: My reading notes of The Mythical Man-Month.

如同我在这一章的封面上标注的,我把整体部分改成了整体与部分用到了我这一份笔记的标题。因为整体部分可能会让人只会想到整体而忘记了部分,然而这不是书的本意。这本书的翻译,充斥了大量的类似问题,我估计可能会是老师带着几个学生翻译出来的。这本不是什么问题,但是校对又可能没有做到那么多的检查,也就出现了这样的局面了。

这里面有一个针对夸夸其谈的人的答复,我觉得很让人觉得透气。其实,我觉得现在流行的linus的评价也可以用来作为一个替代的回答:说都可以说,给我看看你的代码!

模块之间的交互可能会是bug的重灾区,而这种现象在于模块化设计以及分工合作的团队中肯定是如此。而减少这样问题发生的有效手段就是减少模糊性。

这里提出来了一个模式化的开发流程,其实在现在的软件开发行业中依然是奏效的。然而,这样的流程化的开发模式可能不见得在所有的团队中都适用。尤其是,很多团队的项目管理人员对此认识不够,而结构师又没有足够多的经验,就很可能只是放一个框架的说法在这里,实质上还是工程师信马由缰。

减少bug发生的有效手段,其实可以做一个精简的总结:1,架构设计明晰; 2,功能描述明确(需求) 3,细节属性到位 4,测试提前。

设计不能够总是看细节,也要有一定的大局观。

做什么之前先进性充分的思考,其实我觉得这个即使是现在计算机资源充足的条件下也是适用的。过去的多年的工作中,我从一些老牌程序员的故事中学到了这一点而且在我自己的实践中贯彻执行。而这些,都成了我成长的法宝。

曾经,软件调试是一个成本特别高的过程。而现在,虽然我们手头的资源有时候还是看似不足,但是已经好了太多。别的不说,看看曾经的电脑设备,16K的存储都得纠结,而我们现在单片机也都有超过这样资源的存储。

之前软件调试比较麻烦,很大的一个局面是一群人守着一台电脑设备,而这个电脑设备不支持分时复用,兴许也就不支持多用户同时使用。打破这个局面的方式可能是后来的unix的问世吧?

这里给出来了两种方法,其实,我觉得没有绝对的优劣。就我个人的理解来说,独立的开发人员开发一个项目,前面的方法好。而合作开发的时候,后面的方法好一些。

这种方法我自己感觉用不起来,但是这个是KEN老爷子的成名绝技。我尝试过做类似的调试,但是几次尝试都是失败的,还是没有获取到其中的精髓要点。

项目管理得感谢现在出现的一些优秀工具,其中就包括版本管理工具。其实,同时需要感谢这些工具的还有软件工程师,这些工具给软件工程师提供了时光机,有了可以后悔的机会。

软件究竟该一点点的逐步增长还是一次若干个模块一起增加?我觉得这个也是没有绝对的答案的,从开发者的角度考虑,至少局部开发的时间阶段逐步增加是好的。但是,不管如何处理,只要是有多人合作的开发的团队这种模块之间的交互耦合问题的产生以及面对是迟早的事情。

根据上面的信息,在版本升级的时候应该规划合理的变更条目。保证整个软件发布效率的同时也得有足够好的稳定性。如果,能够做到相对稳定,给出已经知道bug让用户能够合理避开,很多时候也不失为一种阶段性合理的选择。


推荐阅读
  • 从无到有,构建个人专属的操作系统解决方案
    操作系统(OS)被誉为程序员的三大浪漫之一,常被比喻为计算机的灵魂、大脑、内核和基石,其重要性不言而喻。本文将详细介绍如何从零开始构建个人专属的操作系统解决方案,涵盖从需求分析到系统设计、开发与测试的全过程,帮助读者深入理解操作系统的本质与实现方法。 ... [详细]
  • 六个接私活的平台,技术在手,财富自由!值得推荐给每一位专业人士!
    本文将介绍六个适合专业人士接私活的平台,帮助技术人才实现财富自由。这些平台不仅提供了丰富的项目机会,还为用户搭建了高效的合作桥梁,是每位技术人士不容错过的资源。 ... [详细]
  • 如何运用蒙特卡洛方法计算NPV:计算机专业毕业设计遇到难题怎么办?
    许多计算机科学专业的学生在大学期间都会遇到这样的困扰:课堂上教授的内容往往偏向理论,实际应用的知识点讲解得较为浅显和概括,导致在进行毕业设计时,如运用蒙特卡洛方法计算净现值(NPV)等复杂问题时感到无从下手。本文旨在探讨如何通过深入理解和实践蒙特卡洛模拟技术,解决这类计算难题,为学生的毕业设计提供实用指导。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • 在当前各种算法实现和开源软件包层出不穷的背景下,算法对程序员的重要性是否有所减弱?回顾历史,早期程序员必须熟练掌握算法并频繁自行编写。然而,随着技术的发展,算法逐渐成为一种“商品”,现代开发者更多依赖现成的库和商业算法解决方案。有观点认为,机器学习领域中,许多算法已经被高度封装,不再需要深入理解其背后的数学原理。然而,这种趋势也引发了关于技术深度与广度平衡的讨论,强调了基础理论知识在应对复杂问题时的不可替代性。 ... [详细]
  • 程序员的“语言奇缘”续篇:计算中心管理员小C的非正式编程之旅
    (以下故事纯属虚构,旨在为编程爱好者提供一丝轻松时光,如有雷同,纯属巧合,敬请读者勿过度联想)在操作系统课程中,我们认识了计算中心的管理员小C。小C虽然并非科班出身,却凭借对编程的浓厚兴趣和不懈努力,逐渐在技术领域崭露头角。她不仅熟练掌握了多种编程语言,还经常利用业余时间开发一些实用的小工具,帮助同事提高工作效率,成为了团队中的技术明星。小C的故事激励着每一个热爱编程的人,证明了技术之路不问出处,关键在于不断学习与实践。 ... [详细]
  • 本文深入探讨了IO复用技术的原理与实现,重点分析了其在解决C10K问题中的关键作用。IO复用技术允许单个进程同时管理多个IO对象,如文件、套接字和管道等,通过系统调用如`select`、`poll`和`epoll`,高效地处理大量并发连接。文章详细介绍了这些技术的工作机制,并结合实际案例,展示了它们在高并发场景下的应用效果。 ... [详细]
  • 推荐一个适合前PHP开发者学习Python基础的优质网站
    如果你曾是PHP开发人员,对PHP函数了如指掌(笔者本人就有这样的背景),而现在因职业发展或个人兴趣需要转向Python学习,推荐一个专为这类开发者设计的优质网站。该平台不仅提供Python基础教程,还结合了PHP开发者熟悉的概念,帮助你快速上手Python编程。 ... [详细]
  • NVIDIA最新推出的Ampere架构标志着显卡技术的一次重大突破,不仅在性能上实现了显著提升,还在能效比方面进行了深度优化。该架构融合了创新设计与技术改进,为用户带来更加流畅的图形处理体验,同时降低了功耗,提升了计算效率。 ... [详细]
  • 利用Redis HyperLogLog高效统计微博日活跃和月活跃用户数
    本文探讨了如何利用Redis的HyperLogLog数据结构高效地统计微博平台的日活跃用户(DAU)和月活跃用户(MAU)数量。通过HyperLogLog的高精度和低内存消耗特性,可以实现对大规模用户数据的实时统计与分析,为平台运营提供有力的数据支持。 ... [详细]
  • Windows环境下详细教程:如何搭建Git服务
    Windows环境下详细教程:如何搭建Git服务 ... [详细]
  • 在尝试使用 `psql` 命令连接到 GitLab 的 `gitlabhq_production` 数据库时,遇到了无法访问表空间的问题。具体表现为执行 `psql -d gitlabhq_production` 命令后,系统返回了“无法连接”的错误信息。这可能是由于数据库配置不当、网络问题或权限不足等原因导致的。建议检查数据库服务是否正常运行,网络连接是否稳定,以及用户是否有足够的权限访问该数据库。 ... [详细]
  • Python作为一门高级编程语言,在全球脚本语言排名中长期位居前列,广泛应用于多个领域。当前,Python开发人才市场需求旺盛,而专业人才供给相对不足,这使得相关培训课程备受关注。本课程旨在全面培养Python技能,满足行业需求。 ... [详细]
  • 软件开发史上最具影响力的十位编程大师(附图解)
    在软件开发领域,有十位编程大师对行业发展产生了深远影响。本文基于国外知名社区的一项评选,通过图文并茂的形式,详细介绍了这十位杰出人物,包括游戏开发先驱John Carmack等,为读者呈现了他们卓越的技术贡献与创新精神。 ... [详细]
  • 在 CentOS 7 上部署和配置 RabbitMQ 消息队列系统时,首先需要安装 Erlang,因为 RabbitMQ 是基于 Erlang 语言开发的。具体步骤包括:安装必要的依赖项,下载 Erlang 源码包(可能需要一些时间,请耐心等待),解压源码包,解决可能出现的错误,验证安装是否成功,并将 Erlang 添加到环境变量中。接下来,下载 RabbitMQ 的 tar.xz 压缩包,并进行解压和安装。确保每一步都按顺序执行,以保证系统的稳定性和可靠性。 ... [详细]
author-avatar
mobiledu2502890207
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有