|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
为什么技术人员包括 leader 都要做 code review
: w( @% M3 d2 |, W6 D7 l$ i' K谚语曰: ‘Talk Is Cheap, Show Me The Code’。知易行难,知行合一难。嘴里要讲出来总是轻松,把别人讲过的话记住,组织一下语言,再讲出来,很容易。绝知此事要躬行。设计理念你可能道听途说了一些,以为自己掌握了,但是你会做么?有能力去思考、改进自己当前的实践方式和实践中的代码细节么?不客气地说,很多人仅仅是知道并且认同了某个设计理念,进而产生了一种虚假的安心感—自己的技术并不差。但是,他根本没有去实践这些设计理念,甚至根本实践不了这些设计理念,从结果来说,他懂不懂这些道理/理念,有什么差别?变成了自欺欺人。
: I2 g* r2 J9 e" b) M5 l$ W& I$ L; G- U- t6 b5 v/ w* \# a/ u
代码,是设计理念落地的地方,是技术的呈现和根本。同学们可以在 review 过程中做到落地沟通,不再是空对空的讨论,可以在实际问题中产生思考的碰撞,互相学习,大家都掌握团队里积累出来最好的实践方式!当然,如果 leader 没时间写代码,仅仅是 review 代码,指出其他同学某些实践方式不好,要给出好的实践的意见,即使没亲手写代码,也是对最佳实践要有很多思考。
7 Z; @) f. W! f
, }" `7 D- B. u- X$ u为什么同学们要在 review 中思考和总结最佳实践
7 }$ b2 s1 U5 S5 f. E我这里先给一个我自己的总结:所谓架构师,就是掌握大量设计理念和原则、落地到各种语言及附带工具链(生态)下的实践方法、垂直行业模型理解,定制系统模型设计和工程实践规范细则。进而控制 30+万行代码项目的开发便利性、可维护性、可测试性、运营质量。, M$ u6 D8 i$ [! N4 C: R
# _# @0 [8 @. O; g- k) E
厉害的技术人,主要可以分为下面几个方向:
" V: \4 q, Z3 |- k3 b1 C
4 ]! f! h8 X4 |" h3 b掌握很多技巧,以及发现技巧一系列思路,比如很多编程大赛,比的就是这个。但是,这个对工程,用处好像并不是很大。3 i7 E4 L; {) y5 C
v4 @; C- H. A5 u$ i& A3 n
领域奠基9 \2 O( y4 Y$ X/ V8 M
M# l6 g. ~: x/ N) [5 D2 c
比如约翰*卡马克,他创造出了现代计算机图形高效渲染的方法论。不论如果没有他,后面会不会有人发明,他就是第一个发明了。1999 年,卡马克登上了美国时代杂志评选出来的科技领域 50 大影响力人物榜单,并且名列第 10 位。但是,类似的殿堂级位置,没有几个,不够大家分,没我们的事儿。* E8 }+ j' q& i
- }- Q5 q4 v% B, t! ^$ U y理论研究
" O' r( e0 O1 @, [6 W
7 ?/ _6 s" j5 D. a7 ?, j! j八十年代李开复博士坚持采用隐含马尔可夫模型的框架,成功地开发了世界上第一个大词汇量连续语音识别系统 Sphinx。我辈工程师,好像擅长这个的很少。/ s* A: K+ O: r) a7 |5 X
7 u- C3 d. C) |$ X产品成功' g# t7 f* G# [5 W8 s
5 { P4 [% c+ z2 C小龙哥是标杆。
: t1 N3 ?' |. ]% u. h. z X8 Q' Q8 s
9 @8 D. Y# v& r3 M最佳实践* W! a5 M7 R8 @5 l$ ?7 w% m
5 }; P$ n4 H D9 d* w- D# h4 ?这个是大家都可以做到,按照上面架构师的定义。在这条路上走得好,就能为任何公司组建技术团队,组织建设高质量的系统。/ O3 s" @5 d. g0 d3 M
6 W) M1 `1 ^# B3 h5 w2 S) T
从上面的讨论中,可以看出,我们普通工程师的进化之路,就是不断打磨最佳实践方法论、落地细节。
4 ?" {* V9 M5 z+ s& F6 `
7 w j9 o; q( V8 Z- Y: z代码变坏的根源
$ i; k! L" ^. w# Y' S ~在讨论什么代码是好代码之前,我们先讨论什么是不好的。计算机是人造的学科,我们自己制造了很多问题,进而去思考解法。' ]. v. f. i. y- Q7 k, y# W
' D L$ s8 A5 d0 s' C# q: p- F' X& V. l9 T% c2 t0 b4 b2 A
|
|