先找到爱的人,再写出色的代码

简介: 先找到爱的人,再写出色的代码

她会让你成长,但她不会把你变成另一个人。

我曾经为某个著名的开源项目贡献过代码。这个项目的编码之规范、测试之完整、文档之清晰在我见过的开源项目中名列前茅。

它曾经是我代码编写过程中的参考标准。我的编码规范,代码风格,都是从这个项目中学到的。现在,我将会为它添砖加瓦。

我修改的部分只有十几行代码,但我前前后后修改了七八次。因为我怕我的代码增加了这个项目的熵。让这个项目变得不够完美。

软件开发中有一个著名的熵增加定理——随着代码复杂度的增加,系统的混乱程度也会成倍增加。

所以,我在提交代码时,会确保自己的编码风格和已有的风格保持一致;确保单元测试能够测到新增代码的全部情况;确保注释清楚表达了我的逻辑;确保更新了这一段代码对应的文档;确保这一段代码看起来和它周围的代码就像是来自于同一个开发者。

曾经有朋友说,Github上活跃的一些大佬,都有自己的编码风格,只要看到他们的代码,就能知道出自谁之手。为什么你在给开源项目提交代码的时候,总是会模仿已有代码的写法,而隐藏自己的风格?

因为这是受到我女朋友的影响吧。一个优秀的女朋友,会让你希望和她一起成长,但又不会让她改变本来的样子。

我们都是自己生活的主角,他人生活里的NPC。我们能在自己的生活里活出自己的风格,我们试图让所有东西都朝着我们期望的方向发展。

但有一天,当你看到了一个人,你会怀疑,她应该才是这部戏的主角吧。这个时候,你突然发现你之前的幻想全都实现了。你不敢去触碰,害怕眼前的人像是水里的倒影,轻轻触碰就碎成一片一片。

你会发现自己变了,你做了之前下了无数次决心又无数次拖延的事情,过去的你跑不了一千米,现在你能在跑步机上坚持5公里;过去的你只会在代码里消磨每个周末,现在的你有她一起探索生活里的小惊喜;过去的你是一个死宅,现在的你想陪她拿着相机看遍世界的景色。你似乎变得不一样了,但你知道你还是你自己。你迷失在她的话语里,你清醒于她的眼眸中。

背对背,面对360度的世界

在一些祖传代码里面,每一个函数开头几行一定是检查传入参数的合法性。他们怀疑一切传入的参数,即使调用这些函数之前已经充分检查。

有人说这是防御性编程,对所有第三方的接口都不能完全信任,要做好接口故障的准备。但在同一个项目中的优秀开发们,应该充分相信自己的伙伴。

滥用异常捕获,会让代码臃肿不堪,一个函数50行代码,其中49行都在捕获异常。Shit of Mountain就是这样来的。

优秀的开发者,只在合适的地方捕获异常,他充分信任同伴的代码,他写的代码也会让同伴放心使用。

一个优秀的女朋友,可以让你把后背完全信任地交给她。你专注于自己最擅长的事情,给她的后背以安全,而她擅长的,你也会完全相信她会处理得很好。

产品经理和开发的相处模式

写代码的人分成很多种,码畜,码农,程序员和工程师。

码畜又叫调参侠、调包侠。自己写不出几行代码。只会调用别人写好的模块,改几个参数反复尝试。

码农是代码翻译员,把精确到每一步的逻辑翻译成对应的语言。

程序员把业务逻辑转写成代码逻辑。

工程师把现实世界映射到代码世界。

产品经理没有这么多等级,但差的产品经理分为两种,一种只管提需求,不考虑开发能不能实现。一种恨不得亲自帮开发写代码。

好的产品经理只有一种。她知道什么任务能做,什么任务不能做。她会挡在开发和需求方的面前,帮开发挡开不合理的需求。

优秀的女朋友会帮助你成为一个优秀的工程师,她会给你合理的目标,然后给你足够的自由,让你自己决定怎么做。她知道什么时候应该提什么需求,一切都恰到好处。你们的生活,就在她的指引下,你的建设下,逐渐迭代出新的版本。

Hello World;你好,另一半。

你让我对明天有所期许,希望你能和我一起生活在明天里。

大家520快乐~

目录
相关文章
2017计科01-08编译原理练习题一运行时空间组织管理&优化&目标代码生成
2017计科01-08编译原理练习题一运行时空间组织管理&优化&目标代码生成
2017计科01-08编译原理练习题一运行时空间组织管理&优化&目标代码生成
|
2月前
|
自然语言处理 关系型数据库 MySQL
PHP编程入门:构建你的第一个网页应用
【10月更文挑战第29天】本文旨在引导初学者步入PHP编程的世界,通过深入浅出的方式介绍PHP的基础知识,并指导读者如何动手实践,搭建一个简单的网页应用。文章不仅涉及PHP代码的编写,还包括了环境配置、项目结构设计以及前后端交互的基本概念。适合对Web开发感兴趣且希望快速入门的朋友阅读。
53 0
|
8月前
|
数据采集 人工智能 算法
你要牢记的四个常用AI提示词框架:ICIO、CRISPE、BROKE、RASCEF,有助于获取更加稳定和高质量的内容
你要牢记的四个常用AI提示词框架:ICIO、CRISPE、BROKE、RASCEF,有助于获取更加稳定和高质量的内容
|
JSON 小程序 前端开发
小程序长列表优化实践
小程序如何实现长列表优化呢
小程序长列表优化实践
程序三大结构-系统学习一
编程从三大结构考虑问题,这样的思考方式、学习方式也有了更加深刻的认识与理解
jira学习案例124-代码分割优化性能
jira学习案例124-代码分割优化性能
92 0
jira学习案例124-代码分割优化性能
|
开发框架 小程序 JavaScript
挑战新形式,小程序之手势解锁登录功能教程【附完整代码及思路】
挑战新形式,小程序之手势解锁登录功能教程【附完整代码及思路】
373 0
|
敏捷开发 测试技术
【测试基础】三、为什么要做自动化测试?哪种项目合适?
【测试基础】三、为什么要做自动化测试?哪种项目合适?
【测试基础】三、为什么要做自动化测试?哪种项目合适?
|
缓存 前端开发 JavaScript
需要学习哪些东西,才能找到前端开发工作?
在万物皆可转前端的当下,很多人好奇需要学习什么东西,才能找到一份前端开发工作。 西瓜哥今天就来说一说。
256 0
|
安全
程序人生 - 怡宝和农夫山泉有什么区别,哪个更好一些?
程序人生 - 怡宝和农夫山泉有什么区别,哪个更好一些?
258 0

热门文章

最新文章

下一篇
开通oss服务