10x程序员工作法
郑晔
火币网首席架构师,前ThoughtWorks首席咨询师 ,TGO鲲鹏会会员
立即订阅
7943 人已学习
课程目录
已完结 56 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 程序员解决的问题,大多不是程序问题
免费
思考框架 (1讲)
01 | 10x程序员是如何思考的?
以终为始 (11讲)
02 | 以终为始:如何让你的努力不白费?
03 | DoD的价值:你完成了工作,为什么他们还不满意?
04 | 接到需求任务,你要先做哪件事?
05 | 持续集成:集成本身就是写代码的一个环节
06 | 精益创业:产品经理不靠谱,你该怎么办?
07 | 解决了很多技术问题,为什么你依然在“坑”里?
08 | 为什么说做事之前要先进行推演?
09 | 你的工作可以用数字衡量吗?
10 | 迭代0: 启动开发之前,你应该准备什么?
答疑解惑 | 如何管理你的上级?
划重点 | 关于“以终为始”,你要记住的9句话
任务分解 (11讲)
11 | 向埃隆·马斯克学习任务分解
12 | 测试也是程序员的事吗?
13 | 先写测试,就是测试驱动开发吗?
14 | 大师级程序员的工作秘笈
15 | 一起练习:手把手带你分解任务
16 | 为什么你的测试不够好?
17 | 程序员也可以“砍”需求吗?
18 | 需求管理:太多人给你安排任务,怎么办?
19 | 如何用最小的代价做产品?
答疑解惑 | 如何分解一个你不了解的技术任务?
划重点 | 关于“任务分解”,你要重点掌握哪些事?
沟通反馈 (12讲)
20 | 为什么世界和你的理解不一样
21 | 你的代码为谁而写?
22 | 轻量级沟通:你总是在开会吗?
23 | 可视化:一种更为直观的沟通方式
24 | 快速反馈:为什么你们公司总是做不好持续集成?
25 | 开发中的问题一再出现,应该怎么办?
26 | 作为程序员,你也应该聆听用户声音
用户故事 | 站在前人的肩膀上,领取属于你的高效工作秘籍
27 | 尽早暴露问题: 为什么被指责的总是你?
28 | 结构化:写文档也是一种学习方式
答疑解惑 | 持续集成,一条贯穿诸多实践的主线
划重点 | 一次关于“沟通反馈”主题内容的复盘
自动化 (12讲)
加餐 | 你真的了解重构吗?
29 | “懒惰”应该是所有程序员的骄傲
30 | 一个好的项目自动化应该是什么样子的?
31 | 程序员怎么学习运维知识?
32 | 持续交付:有持续集成就够了吗?
33 | 如何做好验收测试?
34 | 你的代码是怎么变混乱的?
35 | 总是在说MVC分层架构,但你真的理解分层吗?
36 | 为什么总有人觉得5万块钱可以做一个淘宝?
37 | 先做好DDD再谈微服务吧,那只是一种部署形式
答疑解惑 | 持续集成、持续交付,然后呢?
划重点 | “自动化”主题的重点内容回顾汇总
综合运用 (7讲)
38 | 新入职一家公司,怎么快速进入工作状态?
39 | 面对遗留系统,你应该这样做
40 | 我们应该如何保持竞争力?
答疑解惑 | 如何在实际工作中推行新观念?
划重点 | “综合运用”主题内容的全盘回顾
总复习 | 重新审视“最佳实践”
总复习 | 重新来“看书”
结束语 (1讲)
结束语 | 少做事,才能更有效地工作
10x程序员工作法
登录|注册

14 | 大师级程序员的工作秘笈

郑晔 2019-01-30
前面我和大家分享了 TDD 的来龙去脉,那些尚未将 TDD 烂熟于胸的同学会分为两个派别。一派是摩拳擦掌,准备动手实践一番;另一派是早就自我修炼过,但实践之路不通。所以,市面上经常会听到有人说,TDD 不实用。
但是 TDD 真的不实用吗?
和任何一门技能一样,TDD 也是需要练习的。更重要的是,你需要打通 TDD 的“任督二脉”,而这关键正是我们这个模块的主题:任务分解。而且,在今天的内容中,我还将带你领略大师级程序员的工作风范。让我们开始吧!

TDD 从何而来?

要学最原汁原味的 TDD ,莫过于从源头学起。
从前 TDD 只在小圈子里流行,真正让它在行业里广为人知的是 Kent Beck 那本知名的软件工程之作《解析极限编程》(Extreme Programming Explained)。这是一本重要的作品,它介绍了一种软件开发方法:极限编程
当年他写作之时,许多人都在努力探寻瀑布开发方法之外的软件工程方法,除了极限编程,还有特征驱动开发水晶开发方法等等,正是这些开发方法的探索,才有了后面敏捷方法的诞生。
极限编程对于行业最大的贡献在于,它引入了大量的实践,比如,前面提到过的持续集成、这里提到的 TDD,还有诸如结对编程、现场客户等等。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《10x程序员工作法》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(30)

  • 极客不落🐒
    Feature toggle(功能开关)分享两篇文章:
    https://martinfowler.com/articles/feature-toggles.html

    https://www.infoq.cn/article/function-switch-realize-better-continuous-implementations

    作者回复: 多谢补充!

    2019-02-03
    13
  • ~~
    老师好, 关于基于主分支的策略上线流程是怎么样的, 假如两个人同时在开发两个功能, 并不断的进行小的粒度提交, 那其中一个人完成功能要上线的话, 另一个人的功能才完成一部分, 待主干中已经有他那没完成的任务的代码了, 是要一块发布吗

    作者回复: 这种问题的常见解决方案是Feature Toggle。

    2019-01-30
    6
  • 葛聂
    很受启发
    2019-01-30
    6
  • 小龙
    看了这么多,忍不住发个言:这是我定过的所有极客专栏里 写的最有诚意、最有价值的一个!

    作者回复: 欢迎把它分享给你的朋友!

    2019-03-22
    5
  • 邵俊达
    又发现了几个任务分解都好处,
      1. 让自己的工作可以被量化。
      2. 可以加强对任务估算的能力。
      3. 可以掌控项目的进度。
      4. 每完成一组任务就可以提交一个 PR,这时就可以去休息一下。之前是一直坐到「天荒地老」...而且不知道任务什么时候完成,感觉自己做完了,想一想又有几点需要做...

    作者回复: 很高兴看到了你的进步!

    2019-04-18
    4
  • shniu
    任务分解也是我目前最想做好的,也是最无从下手的,概念都懂,做起来吃力,即使做一份分解清单出来,也不知道是不是好的。因为现在也在带团队做项目,所以对做任务分解的重要性深有体会,现在尝试让所有人在思维认知上有变化,一步步去实操微操作级别的任务分解,学好这些软技能才能快速成长为大牛级的人物。而所有问题中最大最迫切的问题是如何能快速合理的做任务分解,得到任务清单,希望老师能多拿些实际需求来讲解下如何分解出合理的任务清单,是否可以在后面的章节中留些任务分解的作业,实践后老师给一些指正

    作者回复: 稍安勿躁,下一讲,我就带着大家做一次任务分解,先体会一下分解可以做到什么程度。

    2019-01-30
    2
  • 丁丁历险记
    这世界很简单,忽视啥就在啥上面吃亏。

    开发多年,潜移默化的,我习惯了在稳定的根基上构建代码,
    重构,改善代码既有设计是本神书,推荐大家看看,里面套路包满满,例如代码意图与实现分离这句话,我在第一次看到时感受到了震撼,突然觉得自己之前写代码好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-07
    1
  • Geek_fe0336
    想起某个广告词,每天一小步,向上走就是新高度。小步快跑是关键
    2019-03-22
    1
  • 如明如月
    对任务分解的体会非常深刻,刚入职的时候任务评估不准。现在想想主要是两个原因:1、需求梳理的不清晰,还没清楚地搞明白需求就动手写代码,导致返工、导致一些“意想不到”的情况。2、任务分解做的不好,没有将任务分解成非常清晰地可执行的单元,导致有些时候无从下手,而且任务时间评估不准确。
    2019-01-31
    1
  • 划时代
    听了老师的音频讲解,有种醍醐灌顶的感觉,很多以前没有想明白的问题,都得到了答案,感谢!

    编辑回复: 加油💪

    2019-01-31
    1
  • 西西弗与卡夫卡
    刚刚做完2018年项目的复盘,其中很重要的一个教训就是拆解不细致。依赖供应商的系统,而他们习惯于完成全部接口开发后才对接交付,结果其他依赖于此的系统迟迟不能交付,这段时间业务方增加很多工作量不说,等完成上线才发现移动端体验距离我们习惯差很远,再加上其他问题,导致供应商项目暂停。幸好之前有预见,提前做了二手准备,才不至于项目整体失败。没有做细致的推演,没有做细致的拆分和迭代交付,道理容易懂,但教训仍然要自己品尝才会深刻

    作者回复: 你已经能理解任务分解的价值,缺少的就是分解得小,拆小才能对任务有更深的理解。

    2019-01-30
    1
  • norton/Dark
    极客时间里,我买了二十门课了,这是第一门我看得欲罢不能的课程,思路连贯清晰,看完让人惊叹。这么普通的主题讲的这么高水准确实不易。
    2019-08-24
  • 夏奇
    “如果不能很好地分解,那说明我还没想清楚,还需要更多信息,或者需要找到更好的解决方案。” 那么怎么样快速想清楚一个问题呢,想清楚这个过程是否也可以做任务分解
    2019-08-04
  • 小爱
    任务分解得不够小带来的问题,比如接到一个需求,就马上动手,没有进行任务分解,或者凭感觉任务分解。
    2019-07-02
  • Practice_蚂蚁骨头
    “在我的实际工作中,我带的团队基本上都会采用基于主分支的策略。“,這難道不嘲讽吗?口口声声说任务 越细越好,最后却选择主分支吞噬了小心翼翼呵护出来的“小”。。。

    为什么不把任务的小执行透彻?

    从头到尾强调小,最后却选择主干,难道值得骄傲?

    2019-06-11
  • 陈斯佳
    讲任务原子化,拆分的越小,越容易做到
    2019-05-16
  • kyo
    Feature Toggle 并不算一个好的解决方案. 我们使用的是频繁的分支合并. 每次 master 分支有提交会自动向其他分支合并, 这样有冲突就可以第一时间发现了.

    作者回复: 这取决于你怎么定义“频繁”,如果真的能够每天都提交,分支也可以接受,但如果真能每天都提交,你还会开分支吗?

    2019-05-09
  • 红糖白糖
    baby step~

    主干分支用着委实不错。但有几个点,一个是在已用线上产品的时候,我们通常会有一条release分支。这样当有线上bug出现的时候,我们能在release分支上快速修复 + 上线。
    另外一个是,在规律性的迭代上线时,难免会遇到有story没有完成(开发或者测试),此时,就得使用feature toggle 或者 revert代码了。
    最后是当在做一个很明显上线前不可能完成的大feature的时候,一般我们会启另一条分支来开发。此时会定时从主分支merge代码,因为有些改动可能会影响已用的业务
    2019-03-10
  • 苦行僧
    任务足够小的操作也方便切换 这个思路不错
    2019-03-08
  • Wei
    首先感谢作者,这个是我在极客最喜欢的专栏,收益良多;再有一个小建议: 在每一个主题模块的小结中,把文章中提到的书籍做一个书单方便读者;期待后面内容越来越精彩!

    编辑回复: 感谢你的建议😊

    2019-03-05
收起评论
30
返回
顶部