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

相关文章
|
存储 边缘计算 固态存储
玄铁RISC-V处理器入门与实战-平头哥玄铁CPU IP-面向高性能领域CPU
玄铁RISC-V处理器入门与实战-平头哥玄铁CPU IP-
2865 1
|
10月前
|
消息中间件 人工智能 Apache
阿里云两大 AI 原生实践荣获 2025 年度 OSCAR “开源+”典型案例
恭喜阿里云微服务引擎 MSE、Apache RocketMQ for AI 获权威认可!
513 78
|
小程序 前端开发
2025商业版拓展校园圈子论坛网络的创新解决方案:校园跑腿小程序系统架构
校园跑腿小程序系统是一款创新解决方案,旨在满足校园配送需求并拓展校友网络。跑腿员可接单配送,用户能实时跟踪订单并评价服务。系统包含用户、客服、物流、跑腿员及订单模块,功能完善。此外,小程序增设信息咨询发布、校园社区建设和活动组织等功能,助力校友互动、经验分享及感情联络,构建紧密的校友网络。
488 1
2025商业版拓展校园圈子论坛网络的创新解决方案:校园跑腿小程序系统架构
|
10月前
|
存储 数据采集 人工智能
拔俗AI一体化教学平台:让教、学、评真正“一键打通”
在教育信息化2.0背景下,针对数据孤岛、个性化不足等痛点,本文基于阿里云AI与大数据技术,构建“三横三纵”云原生架构的AI一体化教学平台,实现教、学、管全流程智能化。通过多模态数据采集、教育数据湖治理、大模型驱动的智能引擎及多角色应用协同,打通系统壁垒,提升教学效率与个性化水平,并已在省级重点中学成功落地,显著提效增质。
866 0
|
分布式计算 DataWorks 监控
dataworks组件
DataWorks 可能会添加新的功能或改进现有的组件,因此建议查阅最新的官方文档以获取最准确的信息。
505 2
|
监控 安全 测试技术
《API接口大揭秘:如何让你的业务快人一步?》
API(应用程序编程接口)是连接不同系统和服务的桥梁,通过标准化协议简化开发流程。其核心价值在于提升效率、降低成本并加速创新,使企业能聚焦核心业务。API分为开放API、内部API和合作伙伴API,适用于不同业务场景。设计与开发API需遵循关键原则,如标准化协议、清晰文档和安全机制。高效集成API可通过使用SDK、自动化测试与监控及容错重试机制实现。在电商、物联网和数据分析等领域,API有广泛应用。未来,Serverless架构、AI驱动API和性能优化将成为发展趋势。商业化运营需关注安全防护、性能优化和策略制定,以释放API的商业潜力。
|
安全 网络协议 网络安全
|
安全 网络安全 数据安全/隐私保护
HTTP与HTTPS协议区别及应用场景
在互联网高速发展的今天,HTTP与HTTPS作为数据传输的基石,作用至关重要。HTTP允许客户端与服务器间传输超文本文档,但其数据传输过程未加密,存在安全隐患;HTTPS则在此基础上加入了SSL/TLS协议,实现了数据加密传输,增强了安全性,广泛应用于电子商务、网上银行、政府网站及社交媒体平台等涉及敏感信息传输的领域,有效保护了用户隐私和数据安全。随着网络安全意识提升,HTTPS正逐渐成为主流。
|
设计模式 Java 测试技术
【Selenium使用误区】Iframe元素定位失败:避免误提GitHub Issue的技巧
本文分享了作者在使用Selenium进行UI自动化测试时遇到的一个常见问题:在模拟登录163邮箱的过程中,元素定位失败,原因是没有正确地定位到iframe内的元素。文章通过分析问题原因、提供解决方案和附录代码,指导读者如何避免类似的错误,并强调了在UI自动化测试中准确定位页面元素的重要性。
509 1
|
安全 Java Go
【Golang入门】简介与基本语法学习
Golang语言入门教程,介绍了Go语言的简介、基本语法、程序结构、变量和常量、控制结构、函数、并发编程、接口和类型、导入包、作用域以及错误处理等关键概念,为初学者提供了一个全面的学习起点。
606 0