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

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

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

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

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

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

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

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

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

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

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

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

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

背对背,面对360度的世界

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Hello World;你好,另一半。

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

大家520快乐~

目录
相关文章
|
9天前
|
数据采集 人工智能 算法
你要牢记的四个常用AI提示词框架:ICIO、CRISPE、BROKE、RASCEF,有助于获取更加稳定和高质量的内容
你要牢记的四个常用AI提示词框架:ICIO、CRISPE、BROKE、RASCEF,有助于获取更加稳定和高质量的内容
|
4月前
|
人工智能 算法 测试技术
【实测】关于‘钱学森弹道’应用软件测试的设计与实现(03)【终极方案-目标趋向】
【实测】关于‘钱学森弹道’应用软件测试的设计与实现(03)【终极方案-目标趋向】
|
敏捷开发 测试技术
【测试基础】三、为什么要做自动化测试?哪种项目合适?
【测试基础】三、为什么要做自动化测试?哪种项目合适?
【测试基础】三、为什么要做自动化测试?哪种项目合适?
|
安全
程序人生 - 怡宝和农夫山泉有什么区别,哪个更好一些?
程序人生 - 怡宝和农夫山泉有什么区别,哪个更好一些?
203 0
|
机器学习/深度学习 人工智能 JavaScript
手敲代码量降低47%!Kite用AI预测下一段代码,已支持13种语言和16款编辑器
你还在一行行地敲代码吗?「Kite」为开发人员提供代码片段自动补全功能,近期又新增了对11种编程语言的支持,使其支持的总数达到了13种。在Kite的帮助下,活跃开发者甚至每天只需编写由大约 175 个单词组成的代码。
351 0
手敲代码量降低47%!Kite用AI预测下一段代码,已支持13种语言和16款编辑器
WIN10升级的做法有待友好设计
WIN10升级的做法有待友好设计
89 0
|
自然语言处理 搜索推荐 iOS开发
电商搜索"提高输入效率,更快找到想要的商品"最佳实践
很多时候,搜索不仅仅只是“搜索”,不是单纯的在搜索框中输入Query这么简单,有时搜索还赋予了其他的价值和意义,今天和大家聊一聊如何通过搜索引导功能---“下拉提示”,优化业务的价值~
2668 0
电商搜索"提高输入效率,更快找到想要的商品"最佳实践
|
设计模式 缓存 JavaScript
90%的人会遇到性能问题,如何用1行代码快速定位?
今天,齐光将会基于之前列举的众多指标,给出一些常见的调优分析思路,即:如何在众多异常性能指标中,找出最核心的那一个,进而定位性能瓶颈点,最后进行性能调优。整篇文章会按照代码、CPU、内存、网络、磁盘等方向进行组织,针对对某一各优化点,会有系统的「套路」总结,便于思路的迁移实践。
2275 0
自然框架的定位
  首先从软件定义的角度来看,然后再从项目开发的几个阶段来看。     软件:是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为编程语言、系统软件、应用软件和介于这两者之间的中间件。
702 0
|
数据库
【自然框架.视频】基础设置(一)如何下载自然框架
  大家好,好久没有发博客了,这段时间是为了能够做出来更好的视频,做一些准备。目前还在锻炼中,以前一直很内向,话都说不利索,要做视频都很怵头。不过呢,要不断的提高自己,弥补自己的不足。现在还年轻,要多多努力!     打算做一套全新的视频,好好的把自然框架给详细的介绍一遍。
561 0