读书笔记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/ 

相关文章
|
6月前
|
SQL 人工智能 自然语言处理
用 SQL 调大模型?Hologres + 百炼,让数据开发直接“对话”AI
阿里云Hologres深度集成百炼大模型平台,推出AI Function能力——无需Python、GPU或额外服务,用熟悉的SQL即可直接调用大模型,实现PDF解析、多模态理解、向量检索等AI功能,让数据开发者零门槛构建智能应用。
|
关系型数据库 MySQL Linux
MariaDB启动/停止/重启命令大全
MySQL在CentOS 7+版本后改名为MariaDB,码笔记分享mariadb重启、启动和停止命令: MariaDB启动/停止/重启命令 启动MariaDB命令:systemctl start mariadb.service 停止MariaDB命令:systemctl stop mariadb.service 重启MariaDB命令:systemctl restart mariadb.service以上为码笔记分享的MariaDB启动、停止和重启命令。
10856 0
|
18天前
|
人工智能 Cloud Native 数据库
向量数据库选型实战:从 Embedding、ANN 索引到三条落地路线
本文直击向量数据库本质:不堆概念,不列产品,专讲它“是什么”、三条选型路径(专用库/关系库扩展/云托管)如何取舍,以及开发者落地必须关注的召回率、延迟、更新一致性等真实问题。聚焦RAG实战,强调“先用pgvector跑通再升级”,拒绝盲目上马。
113 0
|
26天前
|
缓存 人工智能 API
Qwen3.8‑Flash深度解析:模型底层特性、API实操开发与计费体系完整拆解
大模型产业逐步由概念验证走向大规模生产落地,开发者与企业选型模型服务时,不再只盯着公开评测榜单分数,推理延迟、上下文承载上限、多模态解析能力、工具调用稳定性,以及真实业务下的综合调用成本,共同决定AI项目能否平稳上线运行。Qwen3.8‑Flash作为新一代原生多模态混合专家模型,主打高吞吐推理与低成本开销,面向编程开发、智能Agent工作流、超长文档解析、图文混合理解等高频业务场景提供托管API服务,同时开放对应权重支持本地私有化部署,兼容主流接口协议,能够无缝对接市面上绝大多数开发工具链。
391 0
|
2月前
|
数据采集 数据管理 数据挖掘
什么是标签体系?和数据中台有什么关系?一文讲清
数据标签是将分散数据转化为业务可理解特征的关键工具,通过对象、规则、特征三要素,把原始数据“翻译”成高价值判断(如沉睡客户、滞销商品)。其落地依赖数据中台支撑:打通多源数据、统一口径、固化规则。标签体系重在结构化管理,而非数量堆砌——先聚焦核心对象,由业务与数据共建规则,并持续治理生命周期。
|
4月前
|
存储 弹性计算 人工智能
阿里云服务器选配与省钱指南:新手用户购买云服务器实例、云盘、带宽选购与省钱方法参考
阿里云服务器购买实例规格、带宽云盘配置及省钱策略参考:实例选择应匹配业务场景:轻量服务器适合个人建站,经济型e实例适合低成本Web应用,通用算力型u系列适合中小型企业应用,第九代企业级实例则面向高性能需求。带宽建议按业务预估一步到位,避免后期高价升级。省钱方面,新手应善用新用户专属折扣、免费试用(最高660元额度)、先领券后下单(含迁云/出海补贴券、百炼先用后返券),并通过组合购买、购物车满减及选择"新购续费同价"机型锁定长期成本,实现综合支出最优。
|
3月前
|
人工智能 JSON 机器人
构建 Gerrit AI 代码审查机器人:从零到自动部署
本文介绍如何从零构建Gerrit AI代码审查机器人:通过SSH监听Gerrit事件流,自动获取变更文件,调用大模型进行结构化代码审查(识别高/中/低风险问题),并以Markdown评论+Code-Review打分形式自动提交结果。含断线重连、Base64解码、JSON严格解析等关键实现,支持手动测试与7×24自动部署。(239字)
|
4月前
|
人工智能 Java 开发者
Java做AI不行?2026年最大的认知误区
2026年,Java做AI已成现实:Spring官方集成DeepSeek,JBoltAI等框架支持MCP协议与Agent工程化落地。Java凭借稳定性、类型安全与现有系统优势,正成为企业级AI应用的首选底座——不换语言,即可构建可运行的AI服务。
509 1
|
4月前
|
人工智能 运维 自然语言处理
大模型应用:从数字关联到语义解释:互信息+大模型解锁数据关联分析.107
本文介绍“互信息+大模型”协同分析法:用互信息精准量化变量间关联强度,再由大模型生成通俗易懂的自然语言解释。兼顾准确性与可解释性,适用于电商、教育、运维等多场景的归因分析与业务决策,让数据洞察既算得准、又说得清。
216 0
|
XML 安全 Oracle
看完这篇 教你玩转渗透测试靶机vulnhub——EvilBox-One
看完这篇 教你玩转渗透测试靶机vulnhub——EvilBox-One
822 1
看完这篇 教你玩转渗透测试靶机vulnhub——EvilBox-One

热门文章

最新文章