《程序员修炼之道--从小工到专家》读书笔记

  • 注重实效的哲学-让你的用户参与与权衡
  • 注重实效的途径-可撤销性
  • 基本工具
  • 小结

前段时间看完了《程序员修炼之道–从小工到专家》这书。该书没有涉及什么很深奥的技术,或者有特别复杂的设计,都是一些来自经验的总结。它涉及的内容比较广,涵盖了整个软件开发过程中需要注意的地方,从需求分析,到程序编写测试重构,再到项目管理都涉及。它提倡程序员应该拥有良好的素质,必须有正确的观念,良好的习惯。

注重实效的哲学-让你的用户参与与权衡

作为一个优秀的程序员,编写出完美的产品是我们一生的追求。但是实际情况中,需要考虑很多不特定因素,如时间、技术、成本等,导致我们没有办法一步到位。而且用户在向你提需求的时候,很多时候他们只有一个方向,也不清楚具体的细节,不知道自己真正所需要的产品的最终形态。如果你先给用户一个不完美,存在瑕疵,但是可用的软件,让他们及早使用,他们会向你反馈他们真正的需求,能把你引向更好的最终解决方案。今天了不起的软件比明天的完美软件更加可取。
我现在所做的项目就很好的印章了这一点。这是一个线下售卖收银系统,由于在项目搭建初期时间特别紧急,我们只能快速设计,快速编程,快速上线,然后不断的迭代,不断修复各种问题。虽然该项目上线后存在不少的问题,但是至少能够满足用户的核心业务,能够正常的售卖商品。而且在得到用户的反馈后,产品在不断的完善,到目前为止产品已经基于稳定,已经无限接近用户的真实需求了。以现在的角度来看,这也是一个成功的项目。

注重实效的途径-可撤销性

书中举了个切换关系数据库供应商的例子。大概意思就是如果讲数据库的概念抽象出来(抽象到数据库知识把持久作为服务提供出来的程度),你就会拥有“中流换马”的灵活性,抽象能让你的程序更加健壮。
但我想说的是,如果程序都是单一的解决方案,没有可以替代的方案,那有时候对你的程序将是一个毁灭性的隐患。例如你的收银系统只有建行一个供应商,正常情况下系统跑着不会出现什么问题,但是但凡建行端出现任何问题就会导致你的收银系统瘫痪,无法完成在线支付,这对业务来说绝对是一个毁灭性的消息。而且你还无能为力,只能依赖你的供应商进行解决。所以这就要求我们在程序设计必须考虑可替代性、灵活性。

上图将支付相关的所有操作都封装到一个类里面,这样不但可读性极差,而且不易扩展。如果我们仔细考虑下,其实支付、支付查询、退款、退款查询等的模式都是一致的,我们完全可以奖每个特定的动作抽象出来。改造后如下:

基本工具

工欲善其事,必先利其器,这个道理中国人都懂。作为一个优秀的开发人员除了必须熟悉基本的开发工具完,还应该熟悉了解自己所在公司的工具。毕竟公司开发出来的工具就是为了解决员工在实际工作中遇到的一些问题,能帮助员工快速的完成开发、快速定位生产问题等。作者就因为对公司的工具不是特别的了解导致很多工作都很难往下开展,甚至还导致了bug的出现(痛苦的领悟)。

小结

当然除了以上内容,该书还有很多内容和细节值得我们细细的去品味,如正交性、按合约设计、需求之坑、无处不在的自动化等等。读完这本书给我最大的感触是,优秀的程序员必须注重实效,培养良好的素质,将正确的观念当成习惯。以用户需求为基准,设计可配置的软件,但不能过分设计。支持拔插式的软件设计,能让你的程序更加灵活,更容易应对各种不确定因素。

作者:张伟峰

《程序员修炼之道--从小工到专家》读书笔记相关推荐

  1. 读书笔记 | 墨菲定律

    1. 有些事,你现在不做,永远也不会去做. 2. 能轻易实现的梦想都不叫梦想. 3.所有的事都会比你预计的时间长.(做事要有耐心,要经得起前期的枯燥.) 4. 当我们的才华还撑不起梦想时,更要耐下心来 ...

  2. 读书笔记 | 墨菲定律(一)

    1. 有些事,你现在不做,永远也不会去做. 2. 能轻易实现的梦想都不叫梦想. 3.所有的事都会比你预计的时间长.(做事要有耐心,要经得起前期的枯燥.) 4. 当我们的才华还撑不起梦想时,更要耐下心来 ...

  3. 洛克菲勒的38封信pdf下载_《洛克菲勒写给孩子的38封信》读书笔记

    <洛克菲勒写给孩子的38封信>读书笔记 洛克菲勒写给孩子的38封信 第1封信:起点不决定终点 人人生而平等,但这种平等是权利与法律意义上的平等,与经济和文化优势无关 第2封信:运气靠策划 ...

  4. 股神大家了解多少?深度剖析股神巴菲特

    股神巴菲特是金融界里的传奇,大家是否都对股神巴菲特感兴趣呢?大家对股神了解多少?小编最近在QR社区发现了<阿尔法狗与巴菲特>,里面记载了许多股神巴菲特的人生经历,今天小编简单说一说关于股神 ...

  5. 2014巴菲特股东大会及巴菲特创业分享

     沃伦·巴菲特,这位传奇人物.在美国,巴菲特被称为"先知".在中国,他更多的被喻为"股神",巴菲特在11岁时第一次购买股票以来,白手起家缔造了一个千亿规模的 ...

  6. 《成为沃伦·巴菲特》笔记与感想

    本文首发于微信公众帐号: 一界码农(The_hard_the_luckier) 无需授权即可转载: 甚至无需保留以上版权声明-- 沃伦·巴菲特传记的纪录片 http://www.bilibili.co ...

  7. 读书笔记002:托尼.巴赞之快速阅读

    读书笔记002:托尼.巴赞之快速阅读 托尼.巴赞是放射性思维与思维导图的提倡者.读完他的<快速阅读>之后,我们就可以可以快速提高阅读速度,保持并改善理解嗯嗯管理,通过增进了解眼睛和大脑功能 ...

  8. 读书笔记001:托尼.巴赞之开动大脑

    读书笔记001:托尼.巴赞之开动大脑 托尼.巴赞是放射性思维与思维导图的提倡者.读完他的<开动大脑>之后,我们就可以对我们的大脑有更多的了解:大脑可以进行比我们预期多得多的工作:我们可以最 ...

  9. 读书笔记003:托尼.巴赞之思维导图

    读书笔记003:托尼.巴赞之思维导图 托尼.巴赞的<思维导图>一书,详细的介绍了思维发展的新概念--放射性思维:如何利用思维导图实施你的放射性思维,实现你的创造性思维,从而给出一种深刻的智 ...

  10. 产品读书《滚雪球:巴菲特和他的财富人生》

    作者简介 艾丽斯.施罗德,曾经担任世界知名投行摩根士丹利的董事总经理,因为撰写研究报告与巴菲特相识.业务上的往来使得施罗德有更多的机会与巴菲特亲密接触,她不仅是巴菲特别的忘年交,她也是第一个向巴菲特建 ...

最新文章

  1. html中放大镜案列,Canvas实现放大镜效果完整案例分析(附代码)
  2. 华为云.NET Core支持情况调查
  3. 【qxbt day1】 P2367 语文成绩
  4. 内部类详解————静态内部类
  5. python基础—字典
  6. 2021年二月下旬文章导读与开源项目仓库 | scatter-gather DMA,SR-IOV,ARP欺骗,中断,Lockdep,virtio,vhost
  7. CodeDom系列--事件(event)定义和反射调用
  8. CSS属性小结之--半透明处理
  9. 使用jquery检查/取消选中复选框? [重复]
  10. SEO搜索引擎优化二十八条经验建议
  11. python批量查询ip归属地_利用python实现批量查询ip地址归属地址
  12. 【数值计算之二】数值积分之牛顿——科斯特公式:梯形、辛普森、辛普森3/8和布尔 高斯积分公式:勒让德、切比雪夫、拉盖尔和埃尔米特
  13. Redis_04_Redis客户端
  14. LaTeX大括号用法
  15. Mac网络热点的配置Charles移动端抓包实战
  16. PDF文件压缩和优化的原理是什么?看了这篇C#案例实践就知道了
  17. 对于刚毕业的学弟学妹对即将要就业产生迷茫,下面我来为大家揭晓该如何选择!
  18. 物联网之路由器和交换机篇
  19. php头像获取,php获取QQ头像并显示的方法
  20. react native关于FlatList的随手记

热门文章

  1. AVR 上的汇编圈圈操作系统
  2. FastReport 2021版中文手册PDF下载
  3. socks代理和http代理的区别_浅析socks代理如何使用TCP和UDP协议
  4. 天翼云搭建socks5和搭建http
  5. java培训一般有哪些课程_java培训有哪些课程
  6. 如何用word制作英语答题卡_英语考试答题卡(word 版)
  7. 江西师大计算机系周洁,江西师大2005年学习之星申报者汇总表-江西师范大学教务在线.DOC...
  8. 2015-5-23PDF的下载链接
  9. 易语言大漠多线程模板日志输出
  10. 基于STM32和SIM900A的监测系统设计(上位机基于labVIEW开发,数据库采用MySQL)