14 | 大师级程序员的工作秘笈
郑晔
该思维导图由 AI 生成,仅供参考
你好,我是郑晔。
前面我和大家分享了 TDD 的来龙去脉,那些尚未将 TDD 烂熟于胸的同学会分为两个派别。一派是摩拳擦掌,准备动手实践一番;另一派是早就自我修炼过,但实践之路不通。所以,市面上经常会听到有人说,TDD 不实用。
但是 TDD 真的不实用吗?
和任何一门技能一样,TDD 也是需要练习的。更重要的是,你需要打通 TDD 的“任督二脉”,而这关键正是我们这个模块的主题:任务分解。而且,在今天的内容中,我还将带你领略大师级程序员的工作风范。让我们开始吧!
TDD 从何而来?
要学最原汁原味的 TDD ,莫过于从源头学起。
从前 TDD 只在小圈子里流行,真正让它在行业里广为人知的是 Kent Beck 那本知名的软件工程之作《解析极限编程》(Extreme Programming Explained)。这是一本重要的作品,它介绍了一种软件开发方法:极限编程。
极限编程对于行业最大的贡献在于,它引入了大量的实践,比如,前面提到过的持续集成、这里提到的 TDD,还有诸如结对编程、现场客户等等。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
大师级程序员的工作秘诀:任务分解与微操作 本文深入探讨了大师级程序员的工作秘诀,强调了测试驱动开发(TDD)和任务分解的重要性。作者以Kent Beck和Ward Cunningham的工作方式为例,强调了任务分解对于代码提交频率和问题解决的清晰思路的重要性。通过练习任务分解,作者认为将任务分解到足够小的程度可以清晰地知道如何编写测试。文章还探讨了微操作的概念,强调将任务拆小的重要性。作者指出,任务分解成微操作后,可以更清晰地思考问题,避免代码漏洞。此外,文章还讨论了任务分解与分支模型的关系,指出了任务分解对于代码开发的分支策略的重要性。总之,本文通过介绍TDD的重要性和任务分解的实践,展现了大师级程序员的工作风范和秘诀。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《10x 程序员工作法》,新⼈⾸单¥68
《10x 程序员工作法》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(57)
- 最新
- 精选
- 邵俊达又发现了几个任务分解都好处, 1. 让自己的工作可以被量化。 2. 可以加强对任务估算的能力。 3. 可以掌控项目的进度。 4. 每完成一组任务就可以提交一个 PR,这时就可以去休息一下。之前是一直坐到「天荒地老」...而且不知道任务什么时候完成,感觉自己做完了,想一想又有几点需要做...
作者回复: 很高兴看到了你的进步!
2019-04-1867 - Y024Feature toggle(功能开关)分享两篇文章: https://martinfowler.com/articles/feature-toggles.html https://www.infoq.cn/article/function-switch-realize-better-continuous-implementations
作者回复: 多谢补充!
2019-02-0337 - 小龙看了这么多,忍不住发个言:这是我定过的所有极客专栏里 写的最有诚意、最有价值的一个!
作者回复: 欢迎把它分享给你的朋友!
2019-03-2229 - 丁丁历险记这世界很简单,忽视啥就在啥上面吃亏。 开发多年,潜移默化的,我习惯了在稳定的根基上构建代码, 重构,改善代码既有设计是本神书,推荐大家看看,里面套路包满满,例如代码意图与实现分离这句话,我在第一次看到时感受到了震撼,突然觉得自己之前写代码好sb. 然后随阅读量上升,当我看到这段文字时 An algorithm can be regarded as consisting of a logic component, which specifies the knowledge to be used in solving problems, and a control component, which determines the problem-solving strategies by means of which that knowledge is used. The logic component determines the meaning of the algorithm whereas the control component only affects its efficiency. The efficiency of an algorithm can often be improved by improving the control component without changing the logic of the algorithm. We argue that computer programs would be more often correct and more easily improved and modified if their logic and control aspects were identified and separated in the program text. 以及google 整理术后,更明白为啥要那样处理了。 不扯太远,话说回来,tdd 的精髓我认为就是任务细分和重构。而且很多时候重构就是为了更好的去理解和实现任务细分。形成更好的正向循环。并且每一步是建立在成功的根基上。 然而此事还可以继续再横向迁移一下。 一个计划能稳定可保障的执行,靠的就是合适粒度的分解。(放心,我们平时都分的过粗了,分的不适合我们的大脑高效工作了) 我自己是马拉松爱好者,更深知步子迈大了对跑全马来说意味者什么,更别提大铁,巨人,utmb(utmb 是我此生的梦想)了 高强度上班一天好累,本想早点睡觉,奈何点错了专栏,大脑被作者的内容给搞兴奋了,又一次没控制住自己,最后还是想说非常感谢,读好的文章是一种享受,灵魂在被洗礼的感觉,谢谢
作者回复: 学到了是开始,运用起来才是自己的。
2019-11-07324 - 🌲树根🌲昨天刚改了编程习惯,先在notion写出思路、需要用到的知识点,api等,写出各个小任务,然后对应写出关键代码段。最后真正敲代码就花了10来分钟。 重新开始看极客就看到这篇,实践过来读,很认同。 我特别佩服国外的工程师写的代码,代码块很小,非常清晰易读。特别记得之前参加infoq会议,听socketio作者的分享,看他现场撸码,思路、代码结构都非常顺畅和清晰。
作者回复: 学以致用!
2019-02-1417 - 程序员与厨子老师好, 关于基于主分支的策略上线流程是怎么样的, 假如两个人同时在开发两个功能, 并不断的进行小的粒度提交, 那其中一个人完成功能要上线的话, 另一个人的功能才完成一部分, 待主干中已经有他那没完成的任务的代码了, 是要一块发布吗
作者回复: 这种问题的常见解决方案是Feature Toggle。
2019-01-3016 - 灯火阑珊这个专栏最牛逼的地方就是,如果今天的内容你只能记住一句话,那么...
作者回复: 你能记住这句话,我就满意了。
2020-06-03214 - GaGi看完文章,我才发现我之前的做法跟任务分解的思想差不多,我在工作上喜欢将一个大的任务拆分成很小的任务,然后把每个小的任务在有必要的前提下都会画流程图进行思考,这种方式前期耗费的时间会比较多,但是好处也很多,不管对大任务的完成时间可以有一个比较准确的预估值。 不过这种做法被其中之前的技术总监认为会比较耗时,他的理由是做完方案(也是任务分解)已经占很多时间,尽量快去投入开发,那时我也一度接受他的点吧。 现在,在我看来,我会继续我之前的做法,虽然任务分解前期会比较耗时,但是带来的收益是很高的,最直接就是bug率很少。
作者回复: 坚持长期主义
2020-07-1510 - norton/Dark极客时间里,我买了二十门课了,这是第一门我看得欲罢不能的课程,思路连贯清晰,看完让人惊叹。这么普通的主题讲的这么高水准确实不易。
作者回复: 希望你有所收获。
2019-08-245 - 0xABC任务分解也是我目前最想做好的,也是最无从下手的,概念都懂,做起来吃力,即使做一份分解清单出来,也不知道是不是好的。因为现在也在带团队做项目,所以对做任务分解的重要性深有体会,现在尝试让所有人在思维认知上有变化,一步步去实操微操作级别的任务分解,学好这些软技能才能快速成长为大牛级的人物。而所有问题中最大最迫切的问题是如何能快速合理的做任务分解,得到任务清单,希望老师能多拿些实际需求来讲解下如何分解出合理的任务清单,是否可以在后面的章节中留些任务分解的作业,实践后老师给一些指正
作者回复: 稍安勿躁,下一讲,我就带着大家做一次任务分解,先体会一下分解可以做到什么程度。
2019-01-304
收起评论