写点什么

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

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

关注

评论 3 条评论

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

WebGL开发医学影像软件中的优化

北京木奇移动技术有限公司

软件外包公司 数字孪生开发 webgl开发

Flutter & 鸿蒙 Next 封装 Dio 网络请求详解:登录身份验证与免登录缓存

淼.

Flutter 自定义组件继承与调用的高级使用方式

淼.

荣耀远航计划丨【主题精品共创】激励解读

荣耀开发者服务平台

创作活动 荣耀HONOR 荣耀远航计划

<大厂实战经验> Flutter & 鸿蒙 Next 中使用 initState 和 mounted 处理异步请求的详细解析

淼.

一组数据告诉您,企业AI为什么选用友BIP!

用友智能财务

创建云主机你不知道的那些事

天翼云开发者社区

云计算 云主机

Flutter & 鸿蒙 Next 版本:自定义对话框与表单验证的动态反馈与错误处理

淼.

WebGL医学影像软件的测试

北京木奇移动技术有限公司

软件外包公司 数字孪生开发 webgl开发

FreeBSD 13.5 正式版发布 - 高性能开源 Unix 系统

sysin

freebsd

智慧医院软件信息化建设方案,智慧医疗医院建设方案(PPTX)

金陵老街

智慧医疗 医疗信息化 智慧医院

Flutter & 鸿蒙 Next 中的表单封装:提升开发效率与用户体验

淼.

Flutter & 鸿蒙 Next 中的路由使用详解【基础使用】

淼.

Flutter & 鸿蒙 Next 中如何实现 WebView【跳、显、适、反】等一些基础问题

淼.

电能管理系统(源码+文档+讲解+演示)

深圳亥时科技

Flutter & 鸿蒙 Next 中封装一个列表组件

淼.

WWW2025论文解读【前瞻技术布局】京东零售广告创意:引入场域目标的创意图片生成

京东零售技术

Flutter & 鸿蒙 Next 中封装一个输入框组件

淼.

Flutter & 鸿蒙 Next 刷新机制的高级使用【衍生详解】

淼.

“3公里5分钟”卓翼智能无人机打通怒江物流配送“最后三公里”

科技热闻

如何高效地为「推理模型」编写最佳提示词?万字长文介绍

Baihai IDP

AI 推理模型 LLMs Baihai IDP 提示词

<大厂实战场景> ~ Flutter & 鸿蒙 Next 处理后端返回来的数据的转义问题

淼.

DeepSeek接入MES系统AI赋能智能化生产

万界星空科技

制造业 mes 万界星空科技 生产管理MES系统 DeepSeek

<大厂实战场景> ~ Flutter & 鸿蒙 Next 解析后端返回的 HTML 数据详解

淼.

黑龙江等保测评、消除“过等保”的隐形成本

黑龙江陆陆信息测评部

Flutter & 鸿蒙版本数据处理常用总集

淼.

智能制造:工业装备数字化端到端解决方案

积木链小链

数字化转型 智能制造 装备制造

NineData社区版抢先体验,获取无人机、双肩包、充电宝等周边福利

NineData

安装部署 SQL审核 无停机数据库迁移 NineData社区版 数据库变更

2025年开源世界:系好安全带,颠覆即将来临!

白鲸开源

开源

Flutter & 鸿蒙 Next 封装对话框详解

淼.

FreeBSD 13.5 x86_64 OVF (sysin) - VMware 虚拟机模板

sysin

freebsd

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