程序员晋级方法:从野路子到职业化

在2017年年初时,这个问题啪的一下,贴到了眼前—“职业的软件工程师的代码是怎样的?”。以前念书也有这个疑问,但因为不工作,所以也只是放在了心上。但2017年是个拐点,从16年懵懂的试水,到17年找到职业发力的方向。构建高质量的代码是刚需,因此,这一年有认真考虑这个问题,在一定的代码积累下,也有了自己的答案。同时,也想把这份经验分享给有同样困惑的人。

其实,问题的答案也很简单。只要做好如下4个方面,就能构建职业化的代码。其分别是:遵循规范、写注释、日志输出、函数IO。

(1)遵循Google代码规范

遵循规范是指要遵循一份统一的代码规范来写代码。这个规范可以来自公司,或者参照谷歌规范。规范里有变量和函数的命名等。比如,表示年份的变量名用 year;等

程序是一种计算机语言,使用统一的语言,一方面是减少出错的可能;另一方面,是便于将代码提交给维护人员。《代码大全》的作者讲,“很多人以为程序语言是人与机器进行交流,实际上,程序语言还是人和人进行交流,比如代码的维护,是人与人的交流;实际代码产品的提交,其最终的用户是人,而不是机器”。

吴军老师给出了Google员工是怎样参照代码规范的,“在Google,写代码的规范是有严格规定的,那种规定近乎苛刻,不仅要求给变量起名字要有特定的格式,单元测试要覆盖100%的代码,程序的注释要占到篇幅的三分之一左右,就连多一个空格都不允许。任何不符合这样不近人情的规矩的代码,是不能提交的。”

(2)使用Doxygen写注释

写好注释是职业化代码构建的第二个需求,注释的重要性不言自明。个人建议是使用Doxygen规范来写注释,该规范的注释能自动生成说明文档,也减轻了不必要的工作量。

(3)使用GLOG进行日志输出

日志输出是指,输出代码的中间结果。一方面,中间结果有助于检查代码是否正确。如果出错,也能快速定位到函数进行debug。另一方面,日志是一份代码结果的记录,这也是一份需要保留的资料。

(4)函数的IO

函数的IO是指,函数的输入需要检查是否正常,函数的输出需要返回结果,用于标记函数的运行是否正常。

程序的基本单元之一是函数。也就是说,如果函数写的不规范,整个工程出错的可能性会大大提升。如果说细胞是生物的基本单元,如果细胞有问题,那么肌体组织就很可能有问题,整个生物的健康情况可想而知。

《代码大全》里指出,要使用防御式编程的思维。也就是说,要防止错误的输入值,因为,错误的输入会导致错误的输出值,这会导致结果的不可控。但如果在函数一开始就对参数进行检查,确认其正确性,这就能快速定位错误,有助于debug;输出是指要确认函数运行是否正常。如果运行过程出错,要显示出错的类型,最好是错误码。

以上4点是基本需求,除此之外,培养debug习惯、使用开源工具也是职业化工程师的基本需求。

当然,这4点说起来容易,做起来是需要付出时间,养成习惯的。如果新手想要一次性的把这4点规范都用到,实现上会有难度。所幸代码的构建是一个迭代的过程,从简单的Google规范开始,逐步来增加和培养自己的编程习惯,做到比上次好就可以了。

下图是跨年在双月湾拍的,烟花很绚烂。也很符合新年的氛围。

绽放


心愿
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,219评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,363评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,933评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,020评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,400评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,640评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,896评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,597评论 0 199
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,327评论 1 244
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,581评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,072评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,399评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,054评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,083评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,849评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,672评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,585评论 2 270

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,100评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,569评论 25 707
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,059评论 0 13
  • 我,被坟墓中的一种力量,死死地拉住泪水 也许在达到你心里的那个地方 不是我能待的... 相互走过的街道,淡淡的古香...
    蓝少阅读 460评论 0 1
  • 今天,聆听了樊登说书中《精神问题有什么可笑》一书,感触最大的是一些关于情绪管理,正念练习的方法的介绍。起先是被这本...
    小多媛媛阅读 257评论 0 0