写点什么

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

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

关注

评论 3 条评论

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

腾讯前端经典react面试题(附答案)

beifeng1996

React

社招前端必会手写面试题集锦

helloworld1024fd

JavaScript

React Context源码是怎么实现的呢

flyzz177

React

JavaScript刷LeetCode心得

js2030code

JavaScript LeetCode

用javascript分类刷leetcode17.栈(图文视频讲解)

js2030code

JavaScript LeetCode

建议收藏,轻松搞懂区块链!

蔡农曰

比特币 区块链 后端 比特币区块链

vue这些原理你都知道吗?(面试版)

bb_xiaxia1998

Vue

美团前端一面高频vue面试题整理

bb_xiaxia1998

Vue

React源码分析1-jsx转换及React.createElement

goClient1992

React

React源码分析(三):useState,useReducer

goClient1992

React

前端工程师leetcode算法面试必备-简单的二叉树

js2030code

JavaScript LeetCode

架构误区系列13:令人迷惑的继承

agnostic

继承

vue组件通信方式有哪些?

bb_xiaxia1998

Vue

社招前端经典vue面试题(附答案)

bb_xiaxia1998

Vue

LeetCode:240. 搜索二维矩阵 II,直接查找,详细注释

Lee Chen

JavaScript 算法 LeetCode

应对ChatGPT,中国AI需要这三种能力

脑极体

百度 飞桨 文心

面试官让你说说react状态管理?

beifeng1996

React

ElasticSearch _bulk 使用与实战:批量操作、查询、冲突(模拟电商下单/查询)

alexgaoyh

批量操作 Elastic Search 关联查询 _bulk retry_on_conflict

React源码分析(二)渲染机制

goClient1992

React

React源码解读之React Fiber

flyzz177

CnosDB成为首个产品支持SQLancer的云原生时序数据库

CnosDB

时序数据库 开源社区 CnosDB 工程师有话说

美团前端一面手写面试题

helloworld1024fd

JavaScript

云计算未来 5 年发展方向大盘点

亚马逊云科技 (Amazon Web Services)

人工智能

中文技术文档的写作规范参考

小 he

拆分电商系统为微服务

Geek_7d539e

架构实战营10期-作业7

炮仗

阿里前端经典react面试题集锦

beifeng1996

React

能否手写vue3响应式原理-面试进阶

helloworld1024fd

JavaScript

手撕常见JS面试题

helloworld1024fd

JavaScript

ReactDOM.render在react源码中执行之后发生了什么?

flyzz177

React

Portraiture2023最新版本下载安装图文教程

茶色酒

Portraiture Portraiture4

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