NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

干了 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:283183
用户头像

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

关注

评论 3 条评论

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

升级dubbo,小心default.version

捉虫大师

Java dubbo

为什么拥有云原生数据平台对电信公司很重要?

VoltDB

云原生 5G VoltDB 电信

Kafka 零拷贝模型

花一个无所

kafka 模型 简易架构图

睿象云智能告警平台cloudalert排班可以帮你做什么

睿象云

运维 告警 运维人生 智能告警 告警管理

Tidb模型

花一个无所

架构 TiDB 简易架构图

如何抓住新社交风口下的音视频通讯大潮?

融云 RongCloud

基于区块链技术的建筑供应链金融创新

CECBC

区块链

漫画Nginx的subfilter

运维研习社

nginx 4月日更

一体化智能安全防御 京东云星盾安全加速正式发布

京东科技开发者

互联网 网络安全

入职字节跳动那一天,我哭了(蘑菇街被裁,奋战7个月拿下offer)

Java 编程 程序员 架构 面试

Golang channel 模型

花一个无所

源码分析 模型 Go 语言 简易架构图

找到适合您的数字化转型策略的3个步骤

龙归科技

数字化转型 企业

关于Object,你所必须知道的!

Chalk

大前端 Object 4月日更

给你看一个开发和运维的效率加速器!

BinTools图尔兹

DevOps 运维 运维工程师 dba 数据库管理工具

后端选择java,还是python?

cdhqyj

Java Python 后端 计算机 语言

建立自己的领导风格

石云升

领导力 28天写作 职场经验 管理经验 4月日更

聪明人的训练(二)

Changing Lin

4月日更

Golang Map 模型

花一个无所

模型 源码剖析 Go 语言 简易架构图

Golang map 模型

花一个无所

源码分析 模型 Go 语言 简易架构图

架构实战营模块一作业

日照时间长

架构实战营

3.2 Go语言从入门到精通:包管理工具之GOPATH

xcbeyond

Go 语言 4月日更

架构实战营-模块一作业

西伯利亚鼯鼠

架构实战营

1800 美金?Apache ShardingSphere 带薪远程实习招募啦!| 2021 Google 编程之夏

京东科技开发者

Apache 开源 ShardingSphere

C/C++ Linux后端进BAT的学习路线(腾讯官方认证)丨Linux服务器开发

Linux服务器开发

腾讯 后端 Linux服务器开发 BAT

大数据计算生态之数据存储

小舰

4月日更

数字货币,已成为理解现代经济不可排斥的一个因素

CECBC

数字经济

有趣的技术知识 3 | GitHub超火科学上网加速器!

Java_若依框架教程

翻墙 佛跳墙 科学上网

Golang interface 模型

花一个无所

源码分析 模型 Go 语言 简易架构图

区块链版「滴滴+Uber」,让出行带来收益

CECBC

移动互联网

为什么要用 Redis 实现事务的 ACID

escray

redis 学习 极客时间 Redis 核心技术与实战 4月日更

【得物技术】前端工程师要知道的Nginx知识

得物技术

nginx 负载均衡 大前端 得物技术 知识

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