Java背后的故事与初心

金旋
• 阅读 432

别人都说我们是搬砖的码农,但我们知道自己是追求个性的艺术家。也许我们不会过多在意自己的外表和穿着,但在我们不羁的外表下,骨子里追求着代码的美、系统的美,代码规范其实就是一个对程序美的定义。

但是这种美离程序员的生活有些遥远,尽管编码规范的价值在业内有着广泛的共识,在现实中却被否定得一塌糊涂。工程师曾经最引以为豪的代码,因为编码规范的缺失、命名的草率而全面地摧毁了彼此的信任,并严重地制约了相互的高效协同。工程师一边吐槽别人的代码,一边写着被吐槽的代码,频繁的系统重构和心惊胆战的维护似乎成了工作的主旋律。

那么如何走出这种怪圈呢?众所周知,互联网公司的优势在于效率,它是企业核心竞争力。体现在产品开发领域,就是沟通效率和研发效率。对于沟通效率的重要性,可以从程序员三大“编程理念之争”说起:

1.缩进采用空格键,还是Tab键。

  1. if单行语句需要大括号,还是不需要大括号。

3.—左大括号不换行,还是单独另起一行。

在美剧《硅谷》中,你也许会记得这样一个经典镜头:主人公Richard与同为程序员的女友分手,理由是两人对缩进方式有着不同的习惯,互相拧巴地鄙视着对方的cody style。Tab键和空格键的争议在现实编程工作中确实存在。《阿里巴巴Java开发手册》(以下简称“《手册》”)明确地支持了4个空格的做法,如果一定要问理由,没有理由,因为能够想出来的理由,就像最坚固的盾一样,总有更加锋利的矛会戳破它。只想说,一致性很重要,无边无际争论的时间成本与最后的收益是成反比的。

Java背后的故事与初心

if单语句是否需要换行,也是争论不休的话题。相对来说,写过格式缩进类编程语言的开发者,更加习惯于不加大括号。《手册》中明确if/for单行语句必须加大括号,因为单行语句的写法,容易在添加逻辑时引起视觉上的错误判断。此外,if不加大括号还会有局部变量作用域的问题。

Java背后的故事与初心

左大括号是否单独另起一行?因为Go语言的强制不换行,在这点上,“编程理念之争”的销烟味没有那么浓。如果一定要给一个理由,那么换行的代码可以增加一行,对于按代码行数考核工作量的公司员工,肯定倾向于左大括号前换行。《手册》明确左大括号不换行。

Java背后的故事与初心

这些理念之争的本质就是自己多年代码习惯生的茧,不愿意对不一样的风格妥协,不愿意为了团队的整体效能提升而委屈自己。其实,很多编程方式客观上没有对错之分,一致性很重要,可读性很重要,团队沟通效率很重要。

有一个理论叫帕金森琐碎定律:一个组织中的成员往往会把过多的精力花费在一些琐碎的争论上。程序员天生需要团队协作,而协作的正能量要放在问题的有效沟通上。个性化应尽量表现在系统架构和算法效率的提升上,而不是在合作规范上进行纠缠不休的讨论、争论,最后没有结论。规范不一,就像下图中的小鸭子和小鸡对话一样,言语不通,一脸囧相。
Java背后的故事与初心

鸡同鸭讲也恰恰形容了人与人之间沟通的痛点,自说自话,无法达成一致意见。再举个生活中的例子,交通规则靠左行还是靠右行,两者孰好孰坏并不重要,重要的是必须要在统一的方向上通行,表面上限制了自由,但实际上是保障了公众的人身安全。试想,如果没有规定靠右行驶,那样的路况肯定拥堵不堪,险象环生。同样,过分自由随意、天马行空的代码会严重地伤害系统的健康,影响到可扩展性及可维护性。

为了学习工作与休闲娱乐互不冲突,现新建圈【码农茶水铺】用于程序员生活,爱好,交友,求职招聘,吐槽等话题交流,希望各位大神工作之余到茶水铺来喝茶聊天。

点赞
收藏
评论区
推荐文章
专注IP定位 专注IP定位
3年前
什么是SDK,它是怎样威胁我们的隐私?
依据《个人信息保护法》《网络安全法》《电信条例》《电信和互联网用户个人信息保护规定》等法律法规,工业和信息化部近期组织第三方检测机构对移动互联网应用程序(APP)进行检查,截至目前,尚有107款APP未完成整改,洋码头、中公教育等APP在列。检测过程中发现,13款内嵌第三方软件开发工具包(SDK)存在违规收集用户设备信息的行为。工业和信息化部要求相关APP及
C语言编程,初学者必学代码规范,你知道哪些?
C语言编程,初学者必学代码规范,你知道哪些?一个好的程序编写规范是编写高质量程序的保证。清晰、规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性。本文章适合编程初学者,对于具有一定工程项目开发经验的程序员,建议学习C语言程序代码编写规范—高级版。1代码书写规范1.1函数定义花括号:每个函数的定义和说明
码农如何提高自己的品味
软件研发工程师俗称程序员经常对业界外的人自谦作码农,一来给自己不菲的收入找个不错的说辞(像农民伯伯那样辛勤耕耘挣来的血汗钱),二来也是自嘲这个行业确实辛苦,辛苦得没时间捯饬,甚至没有驼背、脱发加持都说不过去。不过时间久了,行外人还真就相信了程序员就是一帮没品味,木讷的low货,大部分的文艺作品中也都是这么表现程序员的。可是我今天要说一下我的感受,编程是个艺术活,程序员是最聪明的一群人,我们的品味也可以像艺术家一样。
为什么我们没有自己的编程语言?
应该要明确一个问题就是在中国会赚钱的公司不一定是厉害和令人尊敬的公司。其实在外面也差不多,只是外面市场环境更好,你能做出好东西,养活自己有点发展的问题不大。编程语言其实说白了也是计算机的一个工具罢了,你
Stella981 Stella981
3年前
Netflix:我们是如何评估Codec性能的?
Netflix会定期评估现有和即将推出的视频编解码器,不断优化视频编码技术以提供更高质量的服务。本文介绍了视频编码器性能评估中的几项重要元素以及如何从传统与自适应流媒体两种视角进行编解码器性能对比。本文来自Netflix技术博客,LiveVideoStack进行了翻译。文/JoelSole,LiweiGuo,AndreyNorkin
Wesley13 Wesley13
3年前
Java字节码详解
也许你写了无数行的代码,也许你能非常溜的使用高级语言,但是你未必了解那些高级语言的执行过程。例如大行其道的Java。Java号称是一门“一次编译到处运行”的语言,但是我们对这句话的理解深度又有多少呢?从我们写的java文件到通过编译器编译成java字节码文件(也就是.class文件),这个过程是java编译过程;而我们的java虚拟机执行的就是字节码文件
Stella981 Stella981
3年前
Google 是如何收集我们的个人数据的
简评:还有其他公司比Facebook更能收集我们的数据么?大概,可能,没准是谷歌。(文末彩蛋)最近Facebook已经因为收集个人数据而站在了聚光灯前,它收集用户数据并因此获利。但是要知道,Facebook不是单独一家「在用户毫不知情」的情况下收集数据的公司,Google可能更甚:它的信息搜集量,追踪范围,以及用户在Google相
Stella981 Stella981
3年前
Intellij IDEA安装阿里代码规范插件
要养成一个好的编码习惯从自己编码开始,对自己代码的合理化命名,编码不仅对自己有好处,而且别人也容易读懂你的代码。所以下载阿里的代码规范插件来约束自己凌乱的代码。阿里规范插件GitHub地址:https://github.com/alibaba/p3cIDEA安装该插件步骤:1.打开IDEA,FileSetteingsPlug
Stella981 Stella981
3年前
Linux内核源码分析方法
一、内核源码之我见Linux内核代码的庞大令不少人“望而生畏”,也正因为如此,使得人们对Linux的了解仅处于泛泛的层次。如果想透析Linux,深入操作系统的本质,阅读内核源码是最有效的途径。我们都知道,想成为优秀的程序员,需要大量的实践和代码的编写。编程固然重要,但是往往只编程的人很容易把自己局限在自己的知识领域内。如果要扩展自己知识的广度,我们需要多
Stella981 Stella981
3年前
53w字!阿里首推系统性能优化指南太香了,堪称性能优化最优解
性能优化我们都知道代码是系统的基石,没有良好的代码,系统架构就不牢固。但作为一般一个普通程序员,很少有机会参与系统架构级别的优化,甚至暂时不能理解架构上的调整。在开发新功能或审查组内的代码时,优化系统的方式主要是优化自己或他人写的代码。但是真实的情况是:且不说其他层次的优化,就一个代码优化很多入行没有多久的小伙伴甚至都还没入门,更别说啥实现
kenx kenx
2年前
程序员的十级孤独,你体会过几级
都说天才程序员是和疯子就差一步之遥。有极致孤独与追求,有自己的精神世界,我就是有代码洁癖的,追求极致代码要求。如何看到别人写代码不按照自己的,来我就会很抓马就会不通过他的代码质量检查,以致于我现在有点极致的病态要求了尤其作为项目中的leader我感受更加深
金旋
金旋
Lv1
我还是很喜欢你,只是少了当初非在一起的理由。
文章
3
粉丝
0
获赞
0