《人月神话》阅读推荐

news2024/11/23 15:34:47

  用了两周的时间,大致过了一遍。书中讲述的很多方面可能此时并没有很深刻的体会,但是该书的预见性和分析还是很让人钦佩的。书中对项目、产品、程序、程序员等一系列对象的分析是相当精准的。虽然距今已有四十多年,但很多依旧在发生。   书中第一章就针对程序编程者来说,为什么我们会喜欢编程?在工作中又有怎样的苦恼?例如乐趣有:创建事物的纯粹的快乐,开发对他人有用的东西,持续学习的快乐等。苦恼有:依靠他人程序(而这些程序设计的并不合理、实现拙劣、发布不完整或者文档记录很糟糕),不断重复寻找琐碎的bug等。   在一个产品的产出过程中,除了编程人员这个角色之外,还有项目经理,架构师,需求,测试等。   针对任务,如何正确对待人员数量和时间之间的关系,如何合理安排沟通、交流的工作,是延长了还是缩短的时间进度,以及如何安排计划、编码、测试等时间的分配。除了这些内部因素还有其他如客户需求等不定性因素,又如何能合理的应对。此外,针对团队的扩建,如何分配角色才能达到非常高的效率。书中有的给出了实例有的类比外科手术和厨房做出了类比。 ######书中观点:

  • 进度安排,1/3计划,1/6编码,1/4构件测试以及1/4系统测试。(以后留心目前敏捷开发的时间安排,感觉怪怪的)
  • Brooks法则:为进度落后的项目增加人手,只会使进度更加落后
  • 向软件项目中增派人手从三个方面增加了项目必要的总体工作量:任务重新分配本身和所造成的工作中断;培训新人员;额外的相互沟通。
  • 为了获得概念完整性,设计必须有一个人或者具有共识的小型团队来完成
  • 对于非常大型的项目,将体系结构方面的工作与具体实现相分离是获得概念完整型的强有力方法。

He'll sit here and he'll say, "Do this! Do that!" And nothing will happen. ——HAPPY S. TRUMAN, ON PRESIDENIAL POWER

  书中前五章主要概括的介绍了人员上可能存在的问题。之后介绍了具体的产品实现,例如过程,控制,规模,异常处理,产品性能与硬件之前的调整,语言选择与数据结构的重要性等。

  • 在项目开始之前,首先需要一个贯彻执行的方针
  • 其次就是良好的交流与组织,拥有一个合适的项目工作手册
  • 然后是对整体过程胸有成竹以及对开发系统以及其他方面规模的控制
  • 各式各样文档的编写与维护
  • 从容的应对过程中的变化(唯一不变的就是变化本身)
  • 工具的使用与管理(如果每个人都使用自己的一套工具,整合时应该会很麻烦吧)
  • 测试过程   书中也提到了自动化文档,“自动”编程,图形化编程,高级语言带来的效率提升等。

任何人若想看到意见完美无暇的作品,他所想的那种作品过去不存在,现在和将来也不会出现。 ——亚历山大 · 蒲柏,《批判论文》

  最后,提到了重用与增量式开发(个人认为类似如今的敏捷开发)。

Parnas 写道: 重用是一件说起来容易,做起来很难的事情。它同时需要良好的设计和卓越的文档。即使我们看到了非常罕见的优秀设计,但如果没有好的文档,我们也不会看到能重用的构件。

增量开发就如今的敏捷开发,渐进的精化。在每个阶段,我们都有一个可运行的系统。其优缺点就不在此论述,可参照以下论点: 论敏捷开发的优缺点

我们理解也好,不理解也好,描述都应该简短精炼。 ——塞缪尔 · 勃特勒,《休迪布拉斯》

哈哈,晚安。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/617241.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java设计模式(四)

系列文章目录 UML类图 文章目录 系列文章目录前言一、UML类图二、UML基本介绍三、UML图1.类图—依赖关系(Dependence)2.类图—泛化关系(generalization)3.类图—实现关系(Implementation)4.类图—关联关系(Association)5.类图—聚合关系(Aggregation)6.类图—组合关系(Composi…

分布式(二)-大型网站架构演化发展历程

大型网站架构演化发展历程 大型网站的技术挑战主要来自于庞大的用户,高并发的访问和海量的数据,任何简单的业务一旦需要处理数以 P 计的数据和面对数以亿计的用户,问题就会变得很棘手。大型网站架构主要解决这类问题。 初始阶段的网站架构 …

MinIO 分片上传

文章目录 1.MinIO 简介2.为什么要分片上传?3.实现思路4.具体实现初始化客户端获取分片上传的预签名 URL合并分片中止合并 5.FAQ端口错误协议错误 参考文献 1.MinIO 简介 MinIO 是适用于 AI 的高性能对象存储系统。 MinIO 简单易用。简单性是 EB 级数据基础设施的基…

宝塔配置MySQL队列调度 | ModStart

执行以下操作前提前进入网站根目录,如 cd /www/wwwroot/xxx.com执行 artisan 命令前请参照 开发教程 → 开发使用常见问题 → 如何运行 /www/server/php/xxx/bin/php artisan xxx 命令 ① 生成数据库队列表迁移文件 在执行该步骤前,请先检查迁移文件 da…

【CSS 05】文本颜色 文本对齐 文字装饰 文本转换 文字间距 文本阴影 字体 字体样式 字体大小 谷歌字体

CSS 说在前面文本 text文本对齐 text-align文字装饰 text-decoration文本转换 text-transform文字间距 text_spacing文本阴影 text-shadow字体 font字体样式 font-style字体大小 font-size谷歌字体简写属性 shorthand 说在前面 事实证明,Zoro只要出现在标题就会被识…

go-GUI开发:fyne解决中文乱码+注册windows服务

go-GUI框架:fyne教程及解决中文乱码等常见bug 1 fyne教程 fyne教程地址: https://www.topgoer.cn/docs/goday/goday-1crdp17nj4v6phttps://pkg.go.dev/fyne.io/fyne/v2#section-readme 1.1 介绍 简单易用,fyne提供了简单直观的API&#xff…

iOS编译提效插件cocoapods-jxedt方案详解

1. 前言 本篇文章是cocoapods-jxedt插件实现方案的详解,主要从以下几个方面阐述了一下插件的实现方案和历程。 插件文件目录介绍插件的工作流程介绍插件实现过程中的问题和解决方案记录 如果你对插件的使用还不了解,建议先读一下cocoapods-jxedt使用介…

CVE漏洞复现-CVE-2023-32233 NetFilter权限提升

CVE-2023-32233 NetFilter权限提升 Netfilter是Linux 内核中的网络数据包处理框架(iptables)通过各种规则和过滤器,基于数据包的来源、目标地址、协议类型、端口号等信息,控制网络流量和数据包的转发和处理具体,详情请…

使用贝叶斯网络预测糖尿病:从理论到实践

2023年9月数学建模国赛期间提供ABCDE题思路加Matlab代码,专栏链接(赛前一个月恢复源码199,欢迎大家订阅):http://t.csdn.cn/Um9Zd 引言 在现实世界中,许多变量之间存在着复杂的概率关系,例如天气、交通、健康等方面的因素都会相互影响。为了更好地理解…

音频基本概念

1.音频信号 音频信号是一种连续变化的模拟信号,但计算机只能处理和记录二进制的数字信号,由自然音源得到的音频信号必须经过一定的变换,成为数字音频信号之后,才能送到计算机中作进一步的处理。 数字音频系统通过将声波的波型转换…

调用腾讯云API实现英文识别

目录 1. 作者介绍2. 腾讯云英文识别API介绍2.1 英文识别原理—OCR技术2.2 腾讯云英文识别API 3. 实验过程3.1获得API3.2申请调用接口3.3调试接口3.4实验代码3.5实验结果3.6 问题分析 4. 参考连接 1. 作者介绍 乔奕婕,女,西安工程大学电子信息学院&#…

nginx系列第六篇:结合nginx梳理linux中信号的使用

nginx中master进程来管理整个nginx工作的全过程,运行时其通过接收外部信号输入的方式来对内部进行相关调整。本文对照nginx来梳理一下linux中信号常用API的使用。 目录 1.函数sigaction和signal 2.关于信号集sigset_t 2.1 测试程序1 2.2 测试程序1 3.信号屏蔽…

宝塔安装ModStart常见问题

Q:环境提示PHP未禁用危险函数 安装系统时通常会需要解禁 system,exec,passthru,shell_exec,popen,proc_open 等危险函数。部分集成环境会提示危险函数风险,通常可以如下方式解决: 该函数在通常只是在系统 系统安装/系统升级/模块安装/模块升…

【SpinalHDL快速入门】4.3、基本类型之UInt/SInt

文章目录 1.1、描述1.2、声明1.3、运算符1.3.1、逻辑运算(Logic)1.3.2、算术运算(Arithmetic)1.3.3、比较(Comparison)1.3.4、类型转换(Type Cast)1.3.5、部分赋值/提取操作符&#…

第一章:数据库概述

第一章:数据库概述 1.1:为什么要使用数据库 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以"固化"&a…

低代码平台简单分享

低代码平台简单分享 文章目录 低代码平台简单分享1、什么是低代码?什么是低代码平台?2、低代码平台的前世今生**一、低代码的起源**二、低代码的分类三、低代码的能力四、低代码开发的特点 3、目前主流的低代码平台有哪些?优缺点?…

常用模拟低通滤波器的设计——契比雪夫II型滤波器

常用模拟低通滤波器的设计——契比雪夫II型滤波器 切比雪夫 II 型滤波器的振幅平方函数为: 式中,为有效带通截止频率, 是与通带波纹有关的参量, 大,波纹大,; 为 N 阶契比雪夫多项式。 在 Matl…

几种常见数据库的表和列信息查询

文章目录 前言1. oracle数据库1.1 表信息和注释信息1.2 表的列信息 2. mysql数据库2.1 常用的几个命令2.2 使用desc查看表结构2.3 表结构信息主要存在information_schema数据库2.4 主要表是columns,tables,schemata2.4.1 schemata 数据库信息2.4.2 table…

三、opengles画三角形

第一部分Java端 1&#xff09;界面 <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.andro…

数据中台浅析——概念、架构以及未来

数据中台浅析 1. 引言 在当今的数字化时代&#xff0c;数据被誉为"新的石油"&#xff0c;越来越多的企业和组织开始深度挖掘数据的价值。在这个过程中&#xff0c;数据中台逐渐成为了数据管理和分析的核心架构&#xff0c;让我们来深入了解一下它。 1.1 数据中台…