|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
为什么技术人员包括 leader 都要做 code review
2 R1 Q C; l0 G9 n# J谚语曰: ‘Talk Is Cheap, Show Me The Code’。知易行难,知行合一难。嘴里要讲出来总是轻松,把别人讲过的话记住,组织一下语言,再讲出来,很容易。绝知此事要躬行。设计理念你可能道听途说了一些,以为自己掌握了,但是你会做么?有能力去思考、改进自己当前的实践方式和实践中的代码细节么?不客气地说,很多人仅仅是知道并且认同了某个设计理念,进而产生了一种虚假的安心感—自己的技术并不差。但是,他根本没有去实践这些设计理念,甚至根本实践不了这些设计理念,从结果来说,他懂不懂这些道理/理念,有什么差别?变成了自欺欺人。$ h' ?1 Y7 o& h2 x o
# a6 B# f; \! L+ F# K代码,是设计理念落地的地方,是技术的呈现和根本。同学们可以在 review 过程中做到落地沟通,不再是空对空的讨论,可以在实际问题中产生思考的碰撞,互相学习,大家都掌握团队里积累出来最好的实践方式!当然,如果 leader 没时间写代码,仅仅是 review 代码,指出其他同学某些实践方式不好,要给出好的实践的意见,即使没亲手写代码,也是对最佳实践要有很多思考。
9 m" w" a3 z8 E6 B# g7 j. \: O! F* ]4 {# t& P" t V9 P
为什么同学们要在 review 中思考和总结最佳实践
5 M9 A0 j9 l; `, e# y7 S' z4 h* I4 V我这里先给一个我自己的总结:所谓架构师,就是掌握大量设计理念和原则、落地到各种语言及附带工具链(生态)下的实践方法、垂直行业模型理解,定制系统模型设计和工程实践规范细则。进而控制 30+万行代码项目的开发便利性、可维护性、可测试性、运营质量。( h! _: e- \) d$ v8 i
( _6 b: ~9 M5 v; E: a J2 a- n+ j厉害的技术人,主要可以分为下面几个方向:4 `: p! [4 f! K. l+ a# v
) n2 I( q$ C( k7 L: v9 [
掌握很多技巧,以及发现技巧一系列思路,比如很多编程大赛,比的就是这个。但是,这个对工程,用处好像并不是很大。
% [6 [3 H/ p" g' `" m& `# G$ n7 a o0 y# I$ D2 b
领域奠基0 r# R; R; `- d# B# u. Q$ G
' Q5 y6 z, q* [2 ~ I
比如约翰*卡马克,他创造出了现代计算机图形高效渲染的方法论。不论如果没有他,后面会不会有人发明,他就是第一个发明了。1999 年,卡马克登上了美国时代杂志评选出来的科技领域 50 大影响力人物榜单,并且名列第 10 位。但是,类似的殿堂级位置,没有几个,不够大家分,没我们的事儿。, ^5 z2 m) |! b- `& S/ x; s! O
5 D' L; `. ]* B) u" h+ U6 f, s
理论研究
& a/ V! I. Y# m9 d: H3 V- X2 G
# ^7 n4 d2 n+ n八十年代李开复博士坚持采用隐含马尔可夫模型的框架,成功地开发了世界上第一个大词汇量连续语音识别系统 Sphinx。我辈工程师,好像擅长这个的很少。
4 B2 R* J' d6 U% ?) Q
* R9 u% A2 i# ?, @产品成功
& E. ?1 U3 n+ t# m& P5 j9 D" o$ Q4 d* Y) n% G2 C- u- Y
小龙哥是标杆。
: {5 o8 [! c; K, a& s9 V2 g8 O; y6 ]' e- E% a
最佳实践: f& L }7 u9 F& b& h
& d( u0 q. ?* }* }
这个是大家都可以做到,按照上面架构师的定义。在这条路上走得好,就能为任何公司组建技术团队,组织建设高质量的系统。( X0 _$ H3 J& j8 V: T6 k
; P/ F$ B9 U' U- L. _
从上面的讨论中,可以看出,我们普通工程师的进化之路,就是不断打磨最佳实践方法论、落地细节。
- H$ [/ V5 @5 J6 O! F% E. Y, S, F4 V7 O9 X9 b1 U) X& m- g9 n
代码变坏的根源
5 I" T3 m# X3 T8 B! U在讨论什么代码是好代码之前,我们先讨论什么是不好的。计算机是人造的学科,我们自己制造了很多问题,进而去思考解法。0 r4 R( O( r2 L d* b
@) M& S" e" C/ [9 P
* G5 d1 z0 \# d9 I% U) y. | |
|