程序员进阶攻略
胡峰
京东成都研究院技术专家
立即订阅
7526 人已学习
课程目录
已完结 65 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 程序行知:走在同样的路上,遇见自己的风景
免费
征途:启程之初 (4讲)
01 | 初心:为什么成为一名程序员?
02 | 初惑:技术方向的选择
03 | 初程:带上一份技能地图
04 | 初感:别了校园,入了江湖
修炼:程序之术 (10讲)
05 | 架构与实现:它们的连接与分界?
06 | 模式与框架:它们的关系与误区?
07 | 多维与视图:系统设计的思考维度与展现视图
08 | 代码与分类:工业级编程的代码分类与特征
09 | 粗放与精益:编程的两种思路与方式
10 | 炫技与克制:代码的两种味道与态度
11 | 三阶段进化:调试,编写与运行代码
12 | Bug的空间属性:环境依赖与过敏反应
13 | Bug的时间属性:周期特点与非规律性
14 | Bug的反复出现:重蹈覆辙与吸取教训
修行:由术入道 (24讲)
15 | 根源:计划的愿景——仰望星空
16 | 方式:计划的方法——脚踏实地
17 | 检视:计划的可行——时间与承诺
18 | 评估:计划的收获——成本与收益
19 | 障碍:从计划到坚持,再到坚持不下去的时候
20 | 执行:从坚持到持续,再到形成自己的节奏
21 | 信息:过载与有效
22 | 领域:知识与体系
23 | 转化:能力与输出
24 | 并行:工作与学习
25 | 时间:塑造基石习惯(上)——感知与测量
26 | 时间:塑造基石习惯(下)——切割与构建
27 | 试试:一种“坏”习惯
28 | 提问:从技术到人生的习惯
29 | 偏好:个人习惯的局限与反思
30 | 写作:写字如编码
31 | 画图:一图胜千言
32 | 演讲:表达的技术
33 | 定义:阶梯与级别
34 | 晋升:评定与博弈
35 | 关系:学徒与导师
36 | 核心:安全与效率——工程技术的两个核心维度
37 | 过程:规模与协作——规模化的过程方法
38 | 思维:科学与系统——两类问题的两种思维解法
徘徊:道中彷徨 (15讲)
39 | 职业倦怠:如何面对?
40 | 局部最优:如何逃离?
41 | 沟通之痛:如何改变?
42 | 技术停滞:如何更新?
43 | 无法实现:困扰与反思
44 | 完成作品:理想与现实
45 | 代码评审:寄望与哀伤
46 | 人到中年:失业与恐惧
47 | 该不该去创业公司?
48 | 该不该接外包?
49 | 技术干货那么多,如何选?
50 | 技术分歧,如何决策?
51 | 技术债务,有意或无意的选择?
52 | 选择从众,还是唯一?
53 | 选择工作,还是生活?
寻路:路在何方 (7讲)
54 | 侠客行:一技压身,天下行走
55 | 江湖路:刀剑相接,战场升级
56 | 御剑流:一击必杀,万剑归心
57 | 三维度:专业、展现与连接
58 | 三人行:前辈、平辈与后辈
59 | 三角色:程序员、技术主管与架构师
60 | 三视角:定位、自省与多维
蜕变:破茧成蝶 (3讲)
61 | 工作之余,专业之外
62 | 跨越断层,突破边界
63 | 成长蓝图,进化跃迁
结束语 (1讲)
尾声 | 始于知,终于行
程序员进阶攻略
登录|注册

50 | 技术分歧,如何决策?

胡峰 2018-11-26
作为一名程序员或技术人,总会碰到这样的场景:在一些技术评审会上,和其他程序员就技术方案产生分歧与争论。如果你是一名架构师或技术 Leader,站在技术决策者的立场和角度,该如何去解决分歧,做出决策呢?
这背后,有什么通用的方法和原则吗?

绝对

曾几何时,我以为技术是客观的,有绝对正确与否的标准判断。
在学校我刚开始学习编程技术时,捧着一本数据库教材,它在述说着经典的关系数据库表设计原则:第一、第二、第三范式。后来,我参加工作,那时的企业应用软件系统几乎都是以数据库为核心构建的,严格遵守范式定义的表结构。所以,当时觉得所有不符合范式设计的应用肯定都是错的,直到后来进入大规模的分布式领域,碰到了反范式设计。
也还是在学校做课程设计时,一起学习的同学总跟我讨论设计模式。一边写代码,一边研究这个代码到底符不符合某种模式,似乎没有套进某种模式中的代码就像没有拿到准生证的婴儿,带有某种天生的错误。直到后来,我碰到了反模式设计。
刚工作不久,同事和我讨论当用户删除自己的数据时,我们到底应不应该删掉它?我那时觉得理所应当写个 Delete 的 SQL 语句把它删掉。因为当时是这么想的:既然用户都不要他的数据了,我们还把它保留下来做什么呢?不是浪费资源嘛,而且服务器存储资源还算挺贵的。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《程序员进阶攻略》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(9)

  • 公号-代码荣耀
    技术决策无关乎是非对错,但是存在合适与否。
    技术决策的确是成本,效率,质量,政治综合博弈的综合结果。所以在实践中会对上述进行优先级排序。

    在决策考虑的因素方面,优先级是由以下几个方面所决定:不同的组织环境(传统与扁平化),所开发的不同的软件系统(业务系统,用户产品,中间件等),约束性条件(团队的人力与技术储备,开发与运维环境条件,进度等)。

    形式上一般会是一主两备(第三选择),先民主后集中,在讨论各种中大家充分表达意见,但是最后还是需要技术团队的老大拍板,避免议而不决;原则上采用遵循简单,合适,不断演进的思路;最终决定了大家就统一行动。

    技术决策很重要,会花费一定的时间去做讨论与取舍。这个时间是值得的,越是越早发现问题,其后期的成本消耗就越少,磨刀不费砍材功,应该就是这个道理。

    作者回复: 理解了博弈,就没那么多纠结了😄

    2018-11-27
    5
  • hua168
    大神能分享一下你的自学方法吗?为了提高视频学习的速度,我是不是不截图直接一次去看过,然后就按着记忆去练习写代码?不截图的话又感觉忘的很快,学习完一章之后,我简单做个笔记会好一点?还是直接看书来得更快一点?我的学习方法效率太低,花大量时间得到的是入门级的技能。

    作者回复: 只能照着视频写代码是不够的,或者你搭配个入门级书籍,要消化教程样例代码,举一反三

    2018-11-26
    2
  • hua168
    大神,我想请教一下一个关于自学的问题,我自学习惯一般是这样的:
    1.去下载过购买视频,利用业余时间或周末学习,学习时边看视频边截图,周一到周五上班有时间就敲代码 2.再找下有什么相关的书,简单看下

    这样造成了:
    1.看视频花时间太长,1小时视频得花3小时才搞完,截图,打字
    2. 视频比较简单,讲得不深入,所以找书看下,外看下spring官网哪些更新。
    3.发现了,学完了没经验,而已水平也是视频教入门的程度
    疑问:
    我总觉得好像自己不是这样的,怎么提高学习效率,深入这,找经验?


    作者回复: 视频学习的局限就在这,估计大部分视频教程都是入门用的。还需要自己把技术用在实践中去磨练,编程是实践的技术和艺术。想一个真实的场景和真的有个问题,再用技术实践去解决

    2018-11-26
    2
  • 汪玉斌
    就算有好的,新的解决方案,实施的过程不能贯彻好,最后也很坑。

    解决方案的评估需要和团队的情况结合!不只是技术上的事,还有成本和团队效率。

    作者回复: 嗯,需要多维全面的考察并平衡

    2019-04-04
    1
  • 亚林
    旁边的波波老师也提到了康威定律

    作者回复: 想成为架构师的程序员都需要知道这个定律😄

    2018-12-23
    1
  • third
    决策的本质是总成本最小,总收益最大。
    但是个体和群体的收益和成本可能正相反。

    康威定律。
    所有群体在设计一套方案时,所提交的系统方案在结构上都与该组织的沟通结构保持一致。

    成本与效率背后的考量

    团队:人
    环境:能利用的环境支持
    技术:技术的成熟度和发展趋势
    约束:
    2018-12-15
    1
  • godtrue
    我们会先讨论,如果能定下来就定,如果还存在分歧就找相关方及架构师,让架构来定,到这基本能定,还有些方案都行的情况就有自己来定了,leader只关心结果。能搞定就行,不管你怎么弄的!

    作者回复: 😂Leader也太high了

    2018-11-28
    1
  • Ripper
    中国特色社会主义道路😃
    2019-06-24
  • 艾尔欧唯伊
    理论上模式,范式。。。实际上都要权衡。。
    2018-12-02
收起评论
9
返回
顶部