[关闭]
@Helene 2017-09-07T07:56:43.000000Z 字数 1529 阅读 659

一个普通程序员距离一个优秀程序员,差距在哪儿?(参考)

采访提纲


简单,适用的代码规约背后,所传递的是技术上的追求卓越,协同合作的精神,是每个技术团队不可缺失的重要利器。

国内大多数中小企业的代码规范,通常都是各公司程序员基于个人开发过程中的经验总结出来的,验证不够充分,涉猎不够全面。行业代码,可谓鱼龙混杂,没有统一的标准。《阿里巴巴Java开发手册》对中小企业,乃至对行业都有着很强的借鉴作用。

一.开篇:宜未雨而绸缪,毋临渴而掘井无规矩不成方圆

  1. 在阿里正式发布代码规范之前,您有了解过哪些不规范,牵一发而动全身的坏代码案例?

  2. 对比国外,您认为国内的代码规范处于一个怎样的状态?

二.解题:领先半步,是基于行业背后的思考

扎根内部,立足行业,着眼未来,行业编码规范化水平,可以帮助行业人员提高开发质量和效率、大大降低代码维护成本。

  1. 《阿里巴巴Java开发手册》作为阿里巴巴的内部编码规范,阿里官方的Java代码规范标准,当初是基于什么考量决定对外正式发布的?预计多长时间会修正一次?在此之前,阿里内部的Java编程规范是怎样的?

  2. 据悉这本书历时3年,融汇了近万名开发者的智慧,涉及了日常Java开发中的方方面面。当时决定推出《阿里巴巴Java开发手册》的时候是如何权衡时间成本与人员成本的?又是如何逐步实战检验和完善的?

  3. 阿里代码作为行业标杆,愿景是打造世界级的代码托管平台以及代码智能化价值衍生平台。为了这一终极目标,团队在思想决策,战略上做了哪些定位和努力?

三.破题:剖析《阿里巴巴Java开发手册》的精髓

一.)不是一番寒彻骨,怎得梅花扑鼻香?

  1. 据了解,该手册分为五个章节:编程规约、异常日志规约、MYSQL规约、工程规约、安全规约;三个级别:强制、推荐、参考。其中,每条规范都有推荐的约束力度,包括从命名到项目拆分。这套如此缜密的逻辑划分背后是基于怎样的思考?

  2. 当时面临的最大的挑战有哪些?

  3. 编程规范,对于程序员而言,不是要靠强制约束,更关键的还是要让其从认知,思想觉悟上提高,每个程序员都是有个性的,在阿里内部是如何协同大家思想达成统一的?(此前听过一个例子,程序员A和B,A每天只写100行代码,其余大部分时间都在整理文档,备注的非常详细,B每天写5000行代码,却很少写注释,为此还嘲笑A不够高效。。。随着业务越来越复杂,客户需求随时可变,两个人都开始组建团队,这个时候,功夫不负苦心人,A之前的努力都派上了用场,B只能佩服加惭愧。)

二.)健壮的代码经得起重复的修改和重构(举例)

  1. 一个程序员曾经跟我说,他最大的不足就是写的SQL语句特别长,关联,嵌套好几层,一个SQL长达上百行。他跟客户说其然,客户完全不知其所以然。类似的情况,比如捕获异常定位不够精准,捕获到以后全部throw;还有日志输出很多重复等等。这些都大大影响到了效率。对此您怎么看?您认为编程规范与团队研发效能间有着怎样密不可分的关系?

四. 扣题:千淘万淘虽辛苦,吹尽狂沙始到金

  1. 都说普通程序员到优秀程序员的过程,无非就是量变到质变的过程。您认为普通程序员代码量一般要达到多少才会产生质变?在这其中,编码规范起着怎样的作用?

  2. 代码出现之前如何排除掉不给Bug出现的机会?您有哪些经验分享给广大程序员同胞们?

写在最后:最后的成功者,往往都是孤独前行的人。

  1. 您了解的Java程序员的日常大概是怎样的?阿里内部又是怎样的?

  2. 您的花名“孤尽”,是不是衍射出程序员特立独行的一面?

  3. 国外程序员,六七十岁还有专注写代码的,国内这种情况并不多见,大多程序员基于职业规划到一定阶段都转型了,对此,您怎么看?

  4. 给程序员同胞们的一些鼓励:
    1.) 您认为一名普通的程序员如何成为一名优秀的程序员?
    2.)一名优秀的程序员如何成为一名卓越的程序员?

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注