10x程序员工作法
郑晔
火币网首席架构师,前ThoughtWorks首席咨询师 ,TGO鲲鹏会会员
立即订阅
7982 人已学习
课程目录
已完结 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程序员工作法
登录|注册

答疑解惑 | 如何分解一个你不了解的技术任务?

郑晔 2019-02-13
在“任务分解”这个模块,我以测试为核心,讲解了任务分解这个原则,同时也给你介绍了一些最佳实践,帮助你更好地理解任务分解的重要性,以及应该怎样分解任务。
同学们对任务分解这个原则大多是表示认同的,但就一些具体应用的场景,还是提出了自己的问题。
在今天的答疑中,我选择了几个非常典型的问题来进行深入讨论。

问题 1:面对不了解的技术,我该如何分解任务?

pyhhou 同学提到
很想听听老师的意见,就是在一个自己不熟悉的,充满未知的项目中该怎么更好地进行任务分解?
shniu 同学提到
想请问一下老师,面对探索型的需求,调研型的需求如何做任务分解呢?
这是一个很好的问题。在这个模块讨论开发中的任务分解时,我说的都是确定了解的某项技术,比如,数据库、REST 服务等等,因为这是开发中最常见的场景,也是最基础的能力,连熟悉的技术都做不好分解,就别说不熟悉的技术了。
那如果不了解这项技术呢?答案很简单,先把它变成你熟悉的技术。一旦变成了你熟悉的技术,你就可以应用在这个模块中学到的,面对确定性技术的分解方案。
我知道,这个答案你并不满意。其实,你真正的问题是,怎么把它变成你熟悉的技术。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《10x程序员工作法》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(9)

  • 西西弗与卡夫卡
    “技术Spike”可以翻译成“技术撩”,就是撩妹的那个撩。试探下,有戏就继续,撩不动就算或者放一段时间再说😃

    作者回复: 神来之笔!

    2019-02-13
    40
  • 🌲树根🌲
    spike 我翻译成刺探😁 ,从medium一篇文章也了解到这个来自于极限编程。里面也有一些建议觉得蛮有用的。翻译整理了一下 http://t.cn/EIjW8su

    作者回复: 很好的补充!

    2019-03-06
    3
  • 对于不了解的技术任务,我会采用写伪代码的方式展开,先肢解成块,后续逐个突破。也就是先完成粗粒度的任务分解,看看哪些是现有的知识储备可以搞定的,把拦路虎限定在小范围内,战略上藐视它,树立解决问题的信心,然后是二次任务分解,着手预研和定型。

    作者回复: 我不确定写伪代码的效率是否高,你如果很擅长,可以坚持。

    2019-02-14
    2
  • 陈斯佳
    学习任何新知识,最好都先有个框架性的认识,然后抱着最终目的去分析,都能很快入门。这比起系统性学习的想法更加高效有用
    2019-05-23
    1
  • zhengfc
    老师您好,spring-boot 项目有什么简单易用的测试覆盖率检查工具呢?

    作者回复: jacoco,我现在常用的工具。

    2019-02-27
    1
  • Xunqf
    最近我们团队也用到了不了解的技术做项目,一开始先用不到一周的时间去了解,写demo.又花了一周多写了一个简单一点的新项目,并且成功上线了。但是这个时候我只能说只是会用这个新技术,虽然使用起来很熟练,但是对他的底层原理还是不太了解。这个时候公司有一个老项目,功能比较复杂一些,因为这个老项目历史遗留问题比较多,崩溃率也比较高,这时候老大发话了,大家要不试着用新的技术重构一遍吧!因为新技术还不够成熟,各种功能缺失,或是尚未提供,一些常用的组件都要自己一个个去实现,因为项目涉及到的功能比较多,也不太可能一个一个的去验证,这个时候也只有在做的时候才会暴露问题,所以一再延期。一开始评估的时候也知道新技术对这些功能都提供了支持,但是不清楚能支持到哪一步,到具体去实现的时候才发现很多坑,目前已经陷入这个项目三四个月了,感觉离完成瑶瑶无期啊,不知道老师有什么好的建议没。

    作者回复: “怎么把新技术用在自己的项目中”,在这个问题中,很多人有一个严重的误区,他们眼中看到的更多的是“新技术”,而我思考这个的逻辑在于“自己的项目”。

    只有理解清楚了自己的问题,才好应用新技术去解决,盲目地采纳新技术,只会让自己不断地纠结,小程序库还好,要是引入一个大框架,无穷的问题就会吞噬你的时间。

    2019-02-20
    1
  • 丁丁历险记
    1 技术撩。
    2 明确关注点,快速对假设进行验证。
    30防止发散,防止发散。
    3 记得丢失原型代码,隔离第三方。

    目标与现状的思考,不忙了如何改进。忙是不思考改进的接口。

    这里想到某经济学家的一句话,有时后,勤劳是思考上的懒惰,去躲避那些需要深度思考,反复权衡理解分析调整需要用脑的事
    2019-11-11
  • Twinkle
    spike 可以理解为技术探针
    2019-07-10
  • helloworld
    遇到紧急性的需求并且用到的技术自己不熟悉,首先要对这个技术有一个大致的了解,其最主要的功能是什么,再就是结合需求,看看如何利用这个技术解决这个需求。当需求做完后,并且市场对这个技术有很大的需求的话,可以对这项技术的细节加以学习研究。

    作者回复: 只要不跑偏,效率都不低。

    2019-03-06
收起评论
9
返回
顶部