写点什么

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

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

关注

评论 3 条评论

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

LLM 大语言模型应用的分段策略

Tiger Wang

LLM 大语言模型 langchain

博睿数据亮相GOPS全球运维大会上海站!

博睿数据

跨语言高性能 RPC 框架 Focus 架构解析

dinstone

RPC 高性能 跨语言 focus

一招教会跨国企业如何解决跨境数据传输的丢包和延迟问题

镭速

跨境数据传输

为什么C4D能成为电商设计的王者?

Finovy Cloud

C4D 电商设计

推送内容有误怎么办?MobPush撤回/取消推送为您排忧解难

MobTech袤博科技

智能推送

数智化推送助力用户精准分层,MobPush是如何实现用户价值变现的

MobTech袤博科技

智能推送

云教室如何部署?云教室使用教程

青椒云云电脑

云教室 云教室厂商

Kafka 在分布式系统中的 7 大应用场景

越长大越悲伤

Java kafka

Kubernetes跨StorageClass迁移,切换Rainbond默认SC

北京好雨科技有限公司

云原生 #Kubernetes# 企业号10月PK榜

如何选择向量数据库|Weaviate Cloud v.s. Zilliz Cloud

Zilliz

非结构化数据 Zilliz 向量数据库 zillizcloud

性能卓越 全栈自主 HashData与华为金融数仓一体机联合方案全面解读

酷克数据HashData

产研团队必看!3款在线白板工具助你轻松改善工作!

彭宏豪95

产品经理 科技 产品研发 在线白板 效率软件

企业如何安全跨国传输30T文件数据

镭速

跨国数据传输 跨境数据传输

深度解读MediaBox SDKs如何实现技术架构升级

阿里云CloudImagine

云计算 视频云

PostgreSQL基于Patroni方案的高可用启动流程分析

谐云

第13期 | GPTSecurity周报

云起无垠

APP移动出海必备神器,MobPush提供海外消息智能推送一站式解决方案

MobTech袤博科技

智能推送

免费活动-11月4日敏捷武林上海站 | Scrum.org CEO 亲临现场

顿顿顿

Scrum 敏捷开发 敏捷项目管理 敏捷活动 scrum活动

SQLSmith: Databend 如何利用随机化测试检测 Bug

Databend

应用容器化转型系列-容器部署的常见形态

品高云计算

腾讯Ckafka队列使用测评

查拉图斯特拉说

kafka 消息中间件

国内有哪些做的比较好的云教室厂商?

青椒云云电脑

云教室 云教室厂商 云教室解决方案

为什么要学音视频?

X2Rtc

开源 音视频 RTC 就业

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