写点什么

干了 6 年软件开发,我的那些变与不变的想法

  • 2021-02-07
  • 本文字数:975 字

    阅读完需:约 3 分钟

干了6年软件开发,我的那些变与不变的想法

随着时间的流逝,人们对某些事情的看法会不断改变。在软件开发这个行业,这个道理依然适用。作为一名程序员,Chris Kiehl 在工作 6 年后,他原有的许多想法有所改变,但也有一些保持不变的旧观点。

我对这些事情的看法改变了


以下这些事情,在过去,我会争论不休,但现在相信了。


  • 如果你所在团队成员的技术经验水平参差不齐,那么使用强类型的编程语言会更好。

  • 开站会对于关注新人来说其实很有用。

  • 只要是为了修正行动路线,那么 Sprint 回顾就很有用,这并不是为了“敏捷”而敏捷,浪费大家的时间。

  • 软件架构或许比其他任何东西都要来得重要。一个好的抽象层,即使它的实现像一坨屎,也不会给项目带来纯粹的伤害。但是,一个糟糕的抽象层会让整个项目烂掉。

  • Java 并不是一种很糟糕的编程语言。

  • 看似聪明的代码通常不是好代码。清晰度胜过一切。

  • 遵循任何一种范式都可能写出糟糕的代码。

  • 所谓的“最佳实践”是与实际情况相关的,并非广泛适用的。盲目追随它们会让你变成白痴。

  • 在非必要的情况下去设计一个可伸缩的系统,这会让你成为一名糟糕的工程师。

  • 静态代码分析非常有用。

  • DRY 原则是为了避免某些特定的问题,并不是其本身的最终目标。

  • 一般来说,RDBMS 好过 NoSQL。

  • 函数式编程是另一种可选的工具,但不是万能的。

这些年形成的新想法

  • 按照 YAGNI、SOLID、DRY 这样的顺序来。

  • 铅笔和纸其实是最好的编程工具,但却被忽视了。

  • 用纯粹性来换取实用性通常是个不错的选择。

  • 添加太多的技术很少会是一个好的选择。

  • 直接与客户沟通总是能以更少的时间和更高的准确性揭示出更多的问题。

  • “可伸缩”这个词对于软件工程师来说有着一种神秘而令人震惊的力量,足以让他们陷入一种堕落的疯狂。

  • 虽然开发者被称为“工程师”,但他们的大多数决策都是纯粹的货物崇拜(Cargo Cult),没有分析、数据或数字作为依据。

  • 90%(可能是 93%)的项目经理可能会在未来消失,因为他们不会带来效率上的提升。

  • 在做了 100 多次面试后,我发现面试这种形式彻底失效了,但我也不知道该如何让它变得更好。

那些保持不变的旧想法

  • 那些强调代码风格、lint 规则或其他细节的人都是疯狂的怪人。

  • 代码覆盖率与代码质量毫无关系。

  • 在大多数情况下,使用单体系统就可以了。

  • TDD 纯粹主义者是最糟糕的。他们脆弱的小脑袋无法容忍不同工作流的存在。


等到了第 10 个年头,我们再来看看哪些观点又翻转或发生了变化。


原文链接:


https://chriskiehl.com/article/thoughts-after-6-years

2021-02-07 10:283677
用户头像

发布了 114 篇内容, 共 52.9 次阅读, 收获喜欢 315 次。

关注

评论 3 条评论

发布
用户头像
在大多数情况下,使用单体系统就可以了.
2021-02-24 10:36
回复
用户头像
开发虽很想量化,但很难。
2021-02-08 09:24
回复
用户头像
以在国内从事软件开发十年以上的经验告诉我,先让程序跑起来比什么都重要。
2021-02-08 08:44
回复
没有更多了
发现更多内容

涂鸦红外物联网设备开箱使用

良知犹存

物联网 测评

Kubeless 如何基于 CPU 自动伸缩? | 玩转 Kubeless

donghui

Serverless kubeless

spring-boot-route(十四)整合Kafka

Java旅途

Java kafka Spring Boot

两年Java开发经验四面阿里成功拿下P6offer,总结大厂面试的心酸血泪史

Java架构之路

Java 程序员 面试 算法 编程语言

翻译之深入注释俄罗斯民间故事的语料库,以实现对俄罗斯形式主义理论的机器学习

AI代笔

Java 中的Exception 有什么用?

Braisdom

Java Exception

终于我用JOL打破了你对java对象的所有想象

程序那些事

JOL java对象分析 对象空间占用 java对象

读10x程序员有感。

杨鹏Geek

程序员 10X工作法

Spring 学习笔记(二)Spring中的一些概念

无语

Spring Framework

为什么有了SOA,我们还用微服务?

架构师修行之路

微服务

一个草根的日常杂碎(10月8日)

刘新吾

随笔杂谈 生活记录 社会百态

十一长假我肝了这本超硬核PDF,现决定开源!!

冰河

项目管理 jenkins 互联网工程 持续发布

我的openEuler社区参与之旅

openEuler

Linux 开源 操作系统 openEuler

并发和Read-copy update(RCU)

程序那些事

并发 并发和RCU RCU

高难度对话读书笔记——聆听篇2

wo是一棵草

字节跳动总结的这份《Java设计模式(实战+源码)》PDF突然火了,完整版免费开放下载!

Java架构之路

Java 程序员 字节跳动 编程语言 设计模式

【第四周】系统架构

云龙

服务器的发展历史

德胜网络-阳

CPU 执行程序的秘密,藏在了这 15 张图里

Java架构师迁哥

一个草根的日常杂碎(10月6日)

刘新吾

随笔杂谈 生活记录 社会百态

一个草根的日常杂碎(10月7日)

刘新吾

随笔杂谈 生活记录 社会百态

区块链 | 最火的七大职业了解一下

CECBC

区块链技术人才

中国银行正式启动区块链产业金融服务项目 ​

CECBC

区块链 金融 金融服务

典型的大型互联网系统使用了哪些技术方案和手段,主要解决什么问题?

极客海

汇编入门第一篇,小白也能看懂

苹果看辽宁体育

后端 计算机 汇编

做好微服务架构,并非易事!!

架构师修行之路

微服务

架构师训练营 1 期第 4 周:系统架构 - 总结

piercebn

极客大学架构师训练营

再看传记:试图进入和理解他人的生活

Nydia

甲方日常 28

句子

工作 随笔杂谈 日常

TensorFlow 篇 | TensorFlow 2.x 模型 Serving 服务

Alex

tensorflow keras tensorflow serving model serving

MySQL-技术专题-MySQL的索引

码界西柚

干了6年软件开发,我的那些变与不变的想法_语言 & 开发_Chris Kiehl_InfoQ精选文章