她会让你成长,但她不会把你变成另一个人。
我曾经为某个著名的开源项目贡献过代码。这个项目的编码之规范、测试之完整、文档之清晰在我见过的开源项目中名列前茅。
它曾经是我代码编写过程中的参考标准。我的编码规范,代码风格,都是从这个项目中学到的。现在,我将会为它添砖加瓦。
我修改的部分只有十几行代码,但我前前后后修改了七八次。因为我怕我的代码增加了这个项目的熵。让这个项目变得不够完美。
软件开发中有一个著名的熵增加定理——随着代码复杂度的增加,系统的混乱程度也会成倍增加。
所以,我在提交代码时,会确保自己的编码风格和已有的风格保持一致;确保单元测试能够测到新增代码的全部情况;确保注释清楚表达了我的逻辑;确保更新了这一段代码对应的文档;确保这一段代码看起来和它周围的代码就像是来自于同一个开发者。
曾经有朋友说,Github上活跃的一些大佬,都有自己的编码风格,只要看到他们的代码,就能知道出自谁之手。为什么你在给开源项目提交代码的时候,总是会模仿已有代码的写法,而隐藏自己的风格?
因为这是受到我女朋友的影响吧。一个优秀的女朋友,会让你希望和她一起成长,但又不会让她改变本来的样子。
我们都是自己生活的主角,他人生活里的NPC。我们能在自己的生活里活出自己的风格,我们试图让所有东西都朝着我们期望的方向发展。
但有一天,当你看到了一个人,你会怀疑,她应该才是这部戏的主角吧。这个时候,你突然发现你之前的幻想全都实现了。你不敢去触碰,害怕眼前的人像是水里的倒影,轻轻触碰就碎成一片一片。
你会发现自己变了,你做了之前下了无数次决心又无数次拖延的事情,过去的你跑不了一千米,现在你能在跑步机上坚持5公里;过去的你只会在代码里消磨每个周末,现在的你有她一起探索生活里的小惊喜;过去的你是一个死宅,现在的你想陪她拿着相机看遍世界的景色。你似乎变得不一样了,但你知道你还是你自己。你迷失在她的话语里,你清醒于她的眼眸中。
背对背,面对360度的世界
在一些祖传代码里面,每一个函数开头几行一定是检查传入参数的合法性。他们怀疑一切传入的参数,即使调用这些函数之前已经充分检查。
有人说这是防御性编程,对所有第三方的接口都不能完全信任,要做好接口故障的准备。但在同一个项目中的优秀开发们,应该充分相信自己的伙伴。
滥用异常捕获,会让代码臃肿不堪,一个函数50行代码,其中49行都在捕获异常。Shit of Mountain就是这样来的。
优秀的开发者,只在合适的地方捕获异常,他充分信任同伴的代码,他写的代码也会让同伴放心使用。
一个优秀的女朋友,可以让你把后背完全信任地交给她。你专注于自己最擅长的事情,给她的后背以安全,而她擅长的,你也会完全相信她会处理得很好。
产品经理和开发的相处模式
写代码的人分成很多种,码畜,码农,程序员和工程师。
码畜又叫调参侠、调包侠。自己写不出几行代码。只会调用别人写好的模块,改几个参数反复尝试。
码农是代码翻译员,把精确到每一步的逻辑翻译成对应的语言。
程序员把业务逻辑转写成代码逻辑。
工程师把现实世界映射到代码世界。
产品经理没有这么多等级,但差的产品经理分为两种,一种只管提需求,不考虑开发能不能实现。一种恨不得亲自帮开发写代码。
好的产品经理只有一种。她知道什么任务能做,什么任务不能做。她会挡在开发和需求方的面前,帮开发挡开不合理的需求。
优秀的女朋友会帮助你成为一个优秀的工程师,她会给你合理的目标,然后给你足够的自由,让你自己决定怎么做。她知道什么时候应该提什么需求,一切都恰到好处。你们的生活,就在她的指引下,你的建设下,逐渐迭代出新的版本。
Hello World;你好,另一半。
你让我对明天有所期许,希望你能和我一起生活在明天里。
大家520快乐~