H5W3
当前位置:H5W3 > java > 正文

【Java】【译文】工作六年后,我对软件开发的认知转变

【译文】工作六年后,我对软件开发的认知转变

qqxx6661发布于 12 分钟前

前言

大家好,在下蛮咕咕(我是“鸽”王),好久不见啊。

最近我司已经放假过年了,在家里就不免会多逛一些“稀奇古怪”的网站,通过阮一峰的每周新闻,发现了一篇比较不错的英文文章。

里面的大部分观点我都比较认同,在这里做了一个比较接地气的翻译,分享给大家。

正文

在软件产业工作六年后,我对软件行业的一些想法发生了改变。

以下这些观点是我以前内心比较矛盾,但是现在坚信的事情:

以下是我这一路以来了解到并认可的观点:

以下是这么多年来我依然不变的观点:

英文原文

Software development topics I’ve changed my mind on after 6 years in the industry.

Things I now believe, which past me would’ve squabbled with:

  • Typed languages are better when you’re working on a team of people with various experience levels
  • Standups are actually useful for keeping an eye on the newbies.
  • Sprint retrospectives have their place so long as they’re for actual course correction (i.e. “holy shit, that went poorly!”) and not some god awful ‘agile’ / ‘scum master’ driven waste of everyone’s time
  • Software architecture probably matters more than anything else. A shitty implementation of a good abstraction causes no net harm to the code base. A bad abstraction or missing layer causes everything to rot.
  • Java isn’t that terrible of a language.
  • Clever code isn’t usually good code. Clarity trumps all other concerns.
  • Bad code can be written in any paradigm
  • So called “best practices” are contextual and not broadly applicable. Blindly following them makes you an idiot
  • Designing scalable systems when you don’t need to makes you a bad engineer.
  • Static analysis is useful

DRY is about avoiding a specific problem, not an end goal unto itself.
In general, RDBMS > NoSql
Functional programming is another tool, not a panacea.

Opinions I’ve picked up along the way

  • YAGNI, SOLID, DRY. In that order.
  • Pencil and paper are the best programming tools and vastly under used
  • Trading purity in exchange for practicality is usually a good call
  • Adding more technology is rarely a good call
  • Talking directly to the customer always reveals more about the problem, in less time, and with higher accuracy
  • The word “scalable” has a mystical and stupefying power over the mind of the software engineer. Its mere utterance can whip them into a depraved frenzy. Grim actions have been justified using this word
  • Despite being called “engineers,” most decision are pure cargo-cult with no backing analysis, data, or numbers
  • 90% – maybe 93% – of project managers, could probably disappear tomorrow to either no effect or a net gain in efficiency.
  • After performing over 100 interviews: interviewing is thoroughly broken. I also have no idea how to actually make it better.

Old opinions unchanged:

  • People who stress over code style, linting rules, or other minutia are insane weirdos
  • Code coverage has absolutely nothing to do with code quality
  • Monoliths are pretty good in most circumstances
  • TDD purists are just the worst. Their frail little minds can’t process the existence of different workflows.

We’ll see which of these have flipped or changed at year 10.

小尾巴

之前也翻译过一篇比较经典的外文文章,感兴趣的朋友可以回看下之前的文章:

通俗易懂的生产环境Web应用架构介绍

参考

https://chriskiehl.com/articl…

关注我

我是一名奋斗在一线的互联网后端开发工程师。

主要关注后端开发,数据安全,边缘计算等方向,欢迎交流。

各大平台都能找到我

  • 微信公众号:后端技术漫谈
  • Github:@qqxx6661
  • CSDN:@蛮三刀把刀
  • 知乎:@后端技术漫谈
  • 掘金:@蛮三刀把刀
  • 腾讯云+社区:@后端技术漫谈
  • 博客园:@后端技术漫谈
  • BiliBili:@蛮三刀把刀

原创文章主要内容

  • 后端开发实战
  • 后端技术面试
  • 算法题解/数据结构/设计模式
  • 生活趣闻

个人公众号:后端技术漫谈

【Java】【译文】工作六年后,我对软件开发的认知转变

如果文章对你有帮助,求各位大佬点赞支持一下,你的点赞和在看是我更新的动力~

java程序员
阅读 12发布于 12 分钟前
本作品系原创,采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议

后端技术漫谈的专栏
后端技术漫谈的专栏,主要聚焦后端技术后端、设计模式、数据结构、算法题解等
avatar

qqxx6661
17 声望
1 粉丝

0 条评论
得票时间

avatar

qqxx6661
17 声望
1 粉丝

宣传栏

前言

大家好,在下蛮咕咕(我是“鸽”王),好久不见啊。

最近我司已经放假过年了,在家里就不免会多逛一些“稀奇古怪”的网站,通过阮一峰的每周新闻,发现了一篇比较不错的英文文章。

里面的大部分观点我都比较认同,在这里做了一个比较接地气的翻译,分享给大家。

正文

在软件产业工作六年后,我对软件行业的一些想法发生了改变。

以下这些观点是我以前内心比较矛盾,但是现在坚信的事情:

以下是我这一路以来了解到并认可的观点:

以下是这么多年来我依然不变的观点:

英文原文

Software development topics I’ve changed my mind on after 6 years in the industry.

Things I now believe, which past me would’ve squabbled with:

  • Typed languages are better when you’re working on a team of people with various experience levels
  • Standups are actually useful for keeping an eye on the newbies.
  • Sprint retrospectives have their place so long as they’re for actual course correction (i.e. “holy shit, that went poorly!”) and not some god awful ‘agile’ / ‘scum master’ driven waste of everyone’s time
  • Software architecture probably matters more than anything else. A shitty implementation of a good abstraction causes no net harm to the code base. A bad abstraction or missing layer causes everything to rot.
  • Java isn’t that terrible of a language.
  • Clever code isn’t usually good code. Clarity trumps all other concerns.
  • Bad code can be written in any paradigm
  • So called “best practices” are contextual and not broadly applicable. Blindly following them makes you an idiot
  • Designing scalable systems when you don’t need to makes you a bad engineer.
  • Static analysis is useful

DRY is about avoiding a specific problem, not an end goal unto itself.
In general, RDBMS > NoSql
Functional programming is another tool, not a panacea.

Opinions I’ve picked up along the way

  • YAGNI, SOLID, DRY. In that order.
  • Pencil and paper are the best programming tools and vastly under used
  • Trading purity in exchange for practicality is usually a good call
  • Adding more technology is rarely a good call
  • Talking directly to the customer always reveals more about the problem, in less time, and with higher accuracy
  • The word “scalable” has a mystical and stupefying power over the mind of the software engineer. Its mere utterance can whip them into a depraved frenzy. Grim actions have been justified using this word
  • Despite being called “engineers,” most decision are pure cargo-cult with no backing analysis, data, or numbers
  • 90% – maybe 93% – of project managers, could probably disappear tomorrow to either no effect or a net gain in efficiency.
  • After performing over 100 interviews: interviewing is thoroughly broken. I also have no idea how to actually make it better.

Old opinions unchanged:

  • People who stress over code style, linting rules, or other minutia are insane weirdos
  • Code coverage has absolutely nothing to do with code quality
  • Monoliths are pretty good in most circumstances
  • TDD purists are just the worst. Their frail little minds can’t process the existence of different workflows.

We’ll see which of these have flipped or changed at year 10.

小尾巴

之前也翻译过一篇比较经典的外文文章,感兴趣的朋友可以回看下之前的文章:

通俗易懂的生产环境Web应用架构介绍

参考

https://chriskiehl.com/articl…

关注我

我是一名奋斗在一线的互联网后端开发工程师。

主要关注后端开发,数据安全,边缘计算等方向,欢迎交流。

各大平台都能找到我

  • 微信公众号:后端技术漫谈
  • Github:@qqxx6661
  • CSDN:@蛮三刀把刀
  • 知乎:@后端技术漫谈
  • 掘金:@蛮三刀把刀
  • 腾讯云+社区:@后端技术漫谈
  • 博客园:@后端技术漫谈
  • BiliBili:@蛮三刀把刀

原创文章主要内容

  • 后端开发实战
  • 后端技术面试
  • 算法题解/数据结构/设计模式
  • 生活趣闻

个人公众号:后端技术漫谈

【Java】【译文】工作六年后,我对软件开发的认知转变

如果文章对你有帮助,求各位大佬点赞支持一下,你的点赞和在看是我更新的动力~

本文地址:H5W3 » 【Java】【译文】工作六年后,我对软件开发的认知转变

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址