|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
为什么技术人员包括 leader 都要做 code review1 i, X4 i5 ^; |* B
谚语曰: ‘Talk Is Cheap, Show Me The Code’。知易行难,知行合一难。嘴里要讲出来总是轻松,把别人讲过的话记住,组织一下语言,再讲出来,很容易。绝知此事要躬行。设计理念你可能道听途说了一些,以为自己掌握了,但是你会做么?有能力去思考、改进自己当前的实践方式和实践中的代码细节么?不客气地说,很多人仅仅是知道并且认同了某个设计理念,进而产生了一种虚假的安心感—自己的技术并不差。但是,他根本没有去实践这些设计理念,甚至根本实践不了这些设计理念,从结果来说,他懂不懂这些道理/理念,有什么差别?变成了自欺欺人。
, f! m$ A- K$ v: p" O, E1 t" o# w
+ w! p% l9 ^+ t l$ C$ U3 Y代码,是设计理念落地的地方,是技术的呈现和根本。同学们可以在 review 过程中做到落地沟通,不再是空对空的讨论,可以在实际问题中产生思考的碰撞,互相学习,大家都掌握团队里积累出来最好的实践方式!当然,如果 leader 没时间写代码,仅仅是 review 代码,指出其他同学某些实践方式不好,要给出好的实践的意见,即使没亲手写代码,也是对最佳实践要有很多思考。# ~( l5 i! T" \+ ^
. w) ?" ~6 ?, _3 ]为什么同学们要在 review 中思考和总结最佳实践
$ W2 N4 I- o6 v2 x我这里先给一个我自己的总结:所谓架构师,就是掌握大量设计理念和原则、落地到各种语言及附带工具链(生态)下的实践方法、垂直行业模型理解,定制系统模型设计和工程实践规范细则。进而控制 30+万行代码项目的开发便利性、可维护性、可测试性、运营质量。! h8 X8 z p9 M4 \; b
2 ]1 [) y! G& H9 M
厉害的技术人,主要可以分为下面几个方向:
5 G4 q: [. L4 C" }8 `9 ]0 x
6 p0 V0 `9 d8 f5 p7 |8 X% z! W) A掌握很多技巧,以及发现技巧一系列思路,比如很多编程大赛,比的就是这个。但是,这个对工程,用处好像并不是很大。4 ]* @" j1 e/ ^! S9 \
* V0 ^6 ^6 _3 d& P; Q" u
领域奠基
0 i6 o6 O- X( A3 ?2 r
9 ~* [& ^# D5 R5 I2 `7 p: H ~比如约翰*卡马克,他创造出了现代计算机图形高效渲染的方法论。不论如果没有他,后面会不会有人发明,他就是第一个发明了。1999 年,卡马克登上了美国时代杂志评选出来的科技领域 50 大影响力人物榜单,并且名列第 10 位。但是,类似的殿堂级位置,没有几个,不够大家分,没我们的事儿。
, w( O9 N+ V! W- z- w
/ i/ M2 X2 g3 F+ f) y" V理论研究" G2 ?! C7 n8 F/ G
- V* X7 e: D2 ?, @& z; L3 i, n
八十年代李开复博士坚持采用隐含马尔可夫模型的框架,成功地开发了世界上第一个大词汇量连续语音识别系统 Sphinx。我辈工程师,好像擅长这个的很少。( H- B$ r/ G6 D$ p* l
! ^- j- P/ X8 t/ J3 q产品成功 k- x4 O# P" {* ~# q) m# x* [7 D. q
; j- c( v" ~$ I3 p( b$ w. k小龙哥是标杆。/ S% b/ m; k. a# w# {, r
! C' d4 e- [! B- V最佳实践$ M' H" ]! t& [; e9 |) Y
8 H# \/ |! ^/ E5 u这个是大家都可以做到,按照上面架构师的定义。在这条路上走得好,就能为任何公司组建技术团队,组织建设高质量的系统。1 e$ O3 E# J5 l& A/ |
) V+ k/ N: N7 |: i从上面的讨论中,可以看出,我们普通工程师的进化之路,就是不断打磨最佳实践方法论、落地细节。! ]& U8 Z3 Q) z( b9 W
' x2 R0 x; ]0 B0 a, s: ?/ |' r
代码变坏的根源% [' L2 i; V, c- T4 \4 I
在讨论什么代码是好代码之前,我们先讨论什么是不好的。计算机是人造的学科,我们自己制造了很多问题,进而去思考解法。' U: d. O, P- F6 \) ?8 z" ~7 i
& ^& N9 ]: j ^6 b+ S
" S0 `2 z* T1 s% c3 J# E |
|