读书笔记2014第4本:程序员修炼之道-从小工到专家(第二章)

简介:

《程序员修炼之道-从小工到专家》是一本1999年写的老书,但15年之后,书中的许多道理依然没变,时不时拿出一章咀嚼一下仍有许多可回味之处。

第二章 注重实效的途径

7、重复的危害

开发一个软件,大量的时间都会用在维护上,牢记DRY原则(不要重复你自己Don't Repeat Yourself)

系统中的每一项知识都必须具有单一、无歧义、权威的表示。

8、正交性

就是不相依赖性和解耦性。

正交性使问题局部化,一个模块的问题不会扩散到其它模块;促进复用,便于与其它组件组合在一起;使系统更健壮;更利于测试。

项目团队的设置也有正交性的问题,尽量不要让2个团队的责任重叠。

面向对象的技术虽有许多好处,但也非常容易乱用,从而制造出非正交的代码来。

9、可撤消性

10、曳光弹

就是敏捷开发的理念,要即时反馈。

曳光代码与原型系统不是一回事,曳光弹是一个可以运转的整体,虽然功能不全;而原型通常只是一个界面,原型代码通常要丢弃。

11、原型与便笺

原型制作是一种学习经验。其价值并不在于所产生的代码,而在于所学到的经验教训。

12、领域语言

哪些时候需要给程序设计一种领域语言?我写的程序里还没有像VB自动化式的功能需求。

13、估算

估算一个软件项目到底要花多长时间来完成是一个不可能完成的任务。

看看这篇帖子提到的3种方法:

1)想要搞清楚一个事情需要多少时间完成,这最好的方法是找一个程序员已经完成的、相似的项目。对一些简单的网站和应用来说非常有效,或者那些使用标准CRUD的项目也是适用。当项目小且简单时这种方法最好用。这种方法可以用在软件1.0版本时,但以后的版本就不行了,因为这时你跟相参照的项目开始慢慢的产生差异,这时写的代码是你以前没有写过的。 
2)我的好朋友、并且是以前的同事John Walker(不是这个John Walker)喜欢用这种方法。把项目拆解成最小的任务。然后记录完成每个任务你认为可能需要多少小时、天、周、月。遵循这种原则,如果一个任务需要几小时,就是算成一天,如果需要数天,就是算成一周,如果是数周,就算成一月。如果超过一个月,那你就无法知道需要多少时间了,或你根本不知道要做什么。 
3)我有自己的预估方法,但事实上跟John的把任务拆分成最小的子任务的方法非常相似。我是以最坏的情况下每个最小单元需要的完成时间为标准。汇总,然后乘以4。再向上取舍到最近的素数,就算是对我的这种没谱的方法的讽刺吧。

 

第一章 注重实效的哲学
第二章 注重实效的途径
第三章 基本工具
第四章 注重实效的偏执
第五章:弯曲或折断
第六章:当你编码时
第七、八章 

本文转自申龙斌的程序人生博客园博文,原文链接:http://www.cnblogs.com/speeding/p/3662851.html,如需转载请自行联系原作者

http://www.cnblogs.com/speeding/ 

相关文章
|
7月前
|
SQL 人工智能 自然语言处理
用 SQL 调大模型?Hologres + 百炼,让数据开发直接“对话”AI
阿里云Hologres深度集成百炼大模型平台,推出AI Function能力——无需Python、GPU或额外服务,用熟悉的SQL即可直接调用大模型,实现PDF解析、多模态理解、向量检索等AI功能,让数据开发者零门槛构建智能应用。
|
1月前
|
传感器 数据采集 机器学习/深度学习
发动机故障诊断智能体(一):气路状态感知与多航段时序输入模块
作为故障诊断智能体感知物理世界的前端中枢,数据采集与输入构建模块决定了后续算法对发动机真实运行状态的表征质量。
|
1月前
|
人工智能 Cloud Native 数据库
向量数据库选型实战:从 Embedding、ANN 索引到三条落地路线
本文直击向量数据库本质:不堆概念,不列产品,专讲它“是什么”、三条选型路径(专用库/关系库扩展/云托管)如何取舍,以及开发者落地必须关注的召回率、延迟、更新一致性等真实问题。聚焦RAG实战,强调“先用pgvector跑通再升级”,拒绝盲目上马。
155 0
十进制与二进制、八进制、十六进制之间的互相转换,本文让你全部理清
十进制与二进制、八进制、十六进制之间的互相转换,本文让你全部理清
3014 0
十进制与二进制、八进制、十六进制之间的互相转换,本文让你全部理清
|
3月前
|
人工智能 IDE 开发工具
【开发者必看】WindSurf官网下载安装:AI编程IDE让写代码更轻松
Windsurf 是 Codeium 推出的新一代 AI 原生 IDE,深度集成 Cascade 智能代理,支持实时代码库理解、多行智能补全、自然语言驱动的跨文件修改与错误诊断。区别于插件式方案,它从底层重构开发体验,免费版即享核心功能。(239字)
|
5月前
|
存储 弹性计算 人工智能
阿里云服务器选配与省钱指南:新手用户购买云服务器实例、云盘、带宽选购与省钱方法参考
阿里云服务器购买实例规格、带宽云盘配置及省钱策略参考:实例选择应匹配业务场景:轻量服务器适合个人建站,经济型e实例适合低成本Web应用,通用算力型u系列适合中小型企业应用,第九代企业级实例则面向高性能需求。带宽建议按业务预估一步到位,避免后期高价升级。省钱方面,新手应善用新用户专属折扣、免费试用(最高660元额度)、先领券后下单(含迁云/出海补贴券、百炼先用后返券),并通过组合购买、购物车满减及选择"新购续费同价"机型锁定长期成本,实现综合支出最优。
|
4月前
|
人工智能 JSON 机器人
构建 Gerrit AI 代码审查机器人:从零到自动部署
本文介绍如何从零构建Gerrit AI代码审查机器人:通过SSH监听Gerrit事件流,自动获取变更文件,调用大模型进行结构化代码审查(识别高/中/低风险问题),并以Markdown评论+Code-Review打分形式自动提交结果。含断线重连、Base64解码、JSON严格解析等关键实现,支持手动测试与7×24自动部署。(239字)
|
5月前
|
人工智能 Java 开发者
Java做AI不行?2026年最大的认知误区
2026年,Java做AI已成现实:Spring官方集成DeepSeek,JBoltAI等框架支持MCP协议与Agent工程化落地。Java凭借稳定性、类型安全与现有系统优势,正成为企业级AI应用的首选底座——不换语言,即可构建可运行的AI服务。
539 1
|
5月前
|
人工智能 运维 自然语言处理
大模型应用:从数字关联到语义解释:互信息+大模型解锁数据关联分析.107
本文介绍“互信息+大模型”协同分析法:用互信息精准量化变量间关联强度,再由大模型生成通俗易懂的自然语言解释。兼顾准确性与可解释性,适用于电商、教育、运维等多场景的归因分析与业务决策,让数据洞察既算得准、又说得清。
224 0
|
9月前
|
人工智能 JavaScript Python
搞定这两个工具,让你玩转AI的效率翻倍!
环境配置不是技术,而是生产力!本文揭秘AI开发两大“护法”:uv(Python环境管理神器,秒装多版本、告别pip地狱)和nvm(Node.js版本自由切换),助你5分钟搞定环境,把时间留给创造,而非报错调试。
851 3