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