|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
为什么技术人员包括 leader 都要做 code review
6 m, n* _( ]+ _* d谚语曰: ‘Talk Is Cheap, Show Me The Code’。知易行难,知行合一难。嘴里要讲出来总是轻松,把别人讲过的话记住,组织一下语言,再讲出来,很容易。绝知此事要躬行。设计理念你可能道听途说了一些,以为自己掌握了,但是你会做么?有能力去思考、改进自己当前的实践方式和实践中的代码细节么?不客气地说,很多人仅仅是知道并且认同了某个设计理念,进而产生了一种虚假的安心感—自己的技术并不差。但是,他根本没有去实践这些设计理念,甚至根本实践不了这些设计理念,从结果来说,他懂不懂这些道理/理念,有什么差别?变成了自欺欺人。5 u3 b( A6 |& d
. B) q" h" c$ Q& _) j% O
代码,是设计理念落地的地方,是技术的呈现和根本。同学们可以在 review 过程中做到落地沟通,不再是空对空的讨论,可以在实际问题中产生思考的碰撞,互相学习,大家都掌握团队里积累出来最好的实践方式!当然,如果 leader 没时间写代码,仅仅是 review 代码,指出其他同学某些实践方式不好,要给出好的实践的意见,即使没亲手写代码,也是对最佳实践要有很多思考。- M; l2 N1 t8 E4 R* D& l
& l+ ?" |2 c) f5 D1 {% i
为什么同学们要在 review 中思考和总结最佳实践* \8 t3 s3 b3 [' I/ S, w& S* T( i8 W
我这里先给一个我自己的总结:所谓架构师,就是掌握大量设计理念和原则、落地到各种语言及附带工具链(生态)下的实践方法、垂直行业模型理解,定制系统模型设计和工程实践规范细则。进而控制 30+万行代码项目的开发便利性、可维护性、可测试性、运营质量。9 u3 B9 r' x* d8 J+ G; }
) ^5 D5 [$ x5 a
厉害的技术人,主要可以分为下面几个方向:
1 ~9 c8 r! L+ s0 k) l
) t$ r/ c7 d" ~2 s掌握很多技巧,以及发现技巧一系列思路,比如很多编程大赛,比的就是这个。但是,这个对工程,用处好像并不是很大。2 B& J4 P* ~: M2 W' n3 l9 i1 Y
! _' f9 ~+ {1 @2 Y1 W
领域奠基
8 q9 o( m/ ?/ Z: ^
" ]+ P8 O2 w. S比如约翰*卡马克,他创造出了现代计算机图形高效渲染的方法论。不论如果没有他,后面会不会有人发明,他就是第一个发明了。1999 年,卡马克登上了美国时代杂志评选出来的科技领域 50 大影响力人物榜单,并且名列第 10 位。但是,类似的殿堂级位置,没有几个,不够大家分,没我们的事儿。; ?/ x5 k( l j6 R) i
- M2 R Z9 r# }$ X2 a F9 P理论研究
& w1 `: ~5 W8 r% Z( }: `, Q! Y# {) b* ?7 B4 {
八十年代李开复博士坚持采用隐含马尔可夫模型的框架,成功地开发了世界上第一个大词汇量连续语音识别系统 Sphinx。我辈工程师,好像擅长这个的很少。5 r4 O3 t% U- ]# I; i
4 b- T) m2 s/ l4 Y0 w( K1 P* q6 U7 Y% p产品成功) q; p/ y' `& T5 p
/ S4 _% Y; k4 X( P$ y; }, G4 d小龙哥是标杆。
7 ~: S1 Y+ I: H. c* n) N" x7 y t3 q8 X, s
最佳实践
0 w$ i9 h2 s+ h1 r7 q0 t: F& R3 {1 M; `$ T$ N1 \
这个是大家都可以做到,按照上面架构师的定义。在这条路上走得好,就能为任何公司组建技术团队,组织建设高质量的系统。& @) S: S/ @* N7 k1 p
( {5 `) o% V4 z, ^; x+ S从上面的讨论中,可以看出,我们普通工程师的进化之路,就是不断打磨最佳实践方法论、落地细节。' m6 A7 i" I2 n$ r) x; C/ w- O
; q4 ], a& \0 b" L, ]& h/ r! {/ @代码变坏的根源! z- U; d6 i8 r
在讨论什么代码是好代码之前,我们先讨论什么是不好的。计算机是人造的学科,我们自己制造了很多问题,进而去思考解法。: {, r# l" Z7 m( [
) P4 W/ n' R$ L- _% p/ Q
1 u4 i! M# I1 L% G
|
|