【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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

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

关注

评论 3 条评论

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

Nautilus Chain 或成未来最好的链上隐私生态

EOSdreamer111

2023-05-15:对于某些非负整数 k ,如果交换 s1 中两个字母的位置恰好 k 次, 能够使结果字符串等于 s2 ,则认为字符串 s1 和 s2 的 相似度为 k。 给你两个字母异位词 s1

福大大架构师每日一题

Go 算法 rust 福大大

C语言编程-基本语法

智趣匠

Nest.js JWT 验证授权管理

程序员海军

Node JWT nest

龙蜥产品生态总监做客 InfoQ:后 CentOS 时代,国产操作系统能否扛起大旗?

OpenAnolis小助手

centos InfoQ 迁移 国产操作系统 龙蜥社区

局域网内使用的多人协同编辑文档的软件哪个好?对比5款主流平台

PingCode

Confluence PingCode 文档管理工具

Django笔记二十九之中间件介绍

Hunter熊

Python django 中间件 middleware

Last Week in Milvus

Zilliz

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

首个支持RWA交易的订单簿DEX-PoseiSwap,即将开启IEO

EOSdreamer111

Java字节码 - ByteBuddy原理与使用(下)

骑牛上青山

Java bytebuddy 字节码

对不起,您的访问次数已用尽!

为自己带盐

.net core 限流 AspNetCoreRateLimit

PoseiSwap缘何成DEX赛道新宠?POSE价值分析

西柚子

面试官:断网了,还能 ping 通 127.0.0.1 吗?

Java你猿哥

Java 架构 ssm ping

PoseiSwap缘何成DEX赛道新宠?POSE价值分析

EOSdreamer111

MySQL 8.0不再担心被垃圾SQL搞爆内存

GreatSQL

MySQL MySQL 数据库 greatsql greatsql社区

Java数据库项目之满汉楼

timerring

Java

远程桌面连接可以传文件么?

RayLink远程工具

远程桌面连接

首个支持RWA交易的订单簿DEX-PoseiSwap,即将开启IEO

股市老人

首个支持RWA交易的订单簿DEX-PoseiSwap,即将开启IEO

BlockChain先知

Java字节码 - ByteBuddy原理与使用(上)

骑牛上青山

Java JVM bytebuddy 字节码

解密 Golang 哈希算法:深入了解 MD5、SHA-1 和 SHA-256

Java你猿哥

Java golang 算法 哈希算法 Go 语言

PoseiSwap缘何成DEX赛道新宠?POSE价值分析

股市老人

Nautilus Chain 或成未来最好的链上隐私生态

鳄鱼视界

首个支持RWA交易的订单簿DEX-PoseiSwap,即将开启IEO

西柚子

Nautilus Chain 或成未来最好的链上隐私生态

股市老人

骨灰级技术大牛左耳朵耗子(陈皓)突发心梗离世。

福大大架构师每日一题

福大大

如何使用Go语言实现ISP原则

Jack

在 Python 中如何使用并发模型编程

江湖十年

Python 并发编程 多线程 协程 多进程

Footprint Analytics 与 Oasys 建立合作关系, 用数据帮助项目方提升游戏开发体验

Footprint Analytics

区块链 Footprint Analytics

MobTech MobPush|助力预热618

MobTech袤博科技

古鱼、恐龙和大众,相逢在百度百科的“彩虹桥”

脑极体

百科

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