Think Tech About Rss

你是哪种程序员?

2022-11-09 Think

在我看来,开发者这个行列中有两类人。一种是以技术目标,一种以技术的应用结果为目标,我愿称他们为技术型开发者和产品型开发者。

技术型开发者一直非常强调技术应该高效、少BUG、代码整齐,功能关联度低,几乎将所有的注意力都集中在技术上,他们不过多的考虑如何更好的实现功能,只要满足字面上的需求描述即可,更专心与如何与代码整齐度、逻辑性对抗。往往一群技术型开发者在一起的时候,会讨论某些框架的新特性以及一些特性的高级功能如何使用…,他们一直在学习新技术并以此为荣。

产品型开发者大多数不具备高级的也可以说刁钻的编码技巧,他们更关心代码能给产品带来什么?能给使用者的人带来什么?以及如何使得代码更具易用性。

技术型开发者一般非常讨厌写前端,因为前端有讨人厌的 CSS ,这个需要大量记忆而且总是不能正常展示的语言,所以会一把梭使用 UI 框架或者样式库堆砌,他们不考虑产品的品牌特色、用户使用习惯,有时候会找理由:UI 框架身经百战,一定是最优的交互方式。可他们不明白为什么按照自己的业务堆砌出来的总是那么别扭,因为这也需要最基本的排版能力,可他们不认为排版应该是写代码的人干的,因为现代软件开发的分工是那么的明确。

产品型开发者非常喜欢写前端,那种使用代码编写出优雅、流畅的界面时的成就感是无法形容的,但也许他们的代码并没有那么多高级用法。

前端方面很多产品由 C/S 转 B/S,一定有技术型开发者的功劳,因为要开发同等质量的界面 B/S 是那么的容易和高效,因为浏览器能够出的非常高级的 CSS 表达,不像 Native 那么的死板,而且 B/S 有相当多的 UI 框架选项,但可不能仅仅因此而 C/S 转 B/S。

很多时候代码不一定要面向产品用户,也是要面向流水线的下一环节。比如后端开发者的代码和数据结构、文档注释是要面向前端开发者,亦或者协同的 RPC 使用者,一定要考虑你的代码易用性。

我个人更偏向于产品型开发者,经常会看自己的初次代码挺幼稚的,有较多的地方没有用到那些高效的处理方式,却大量注释里描述了这个代码的需求表现和用户逻辑。甚至有些时候我会思考是否有更好的业务展现方式,成本如何。至于初次代码优化的问题那是留给迭代重构的事情。

我经常看到有很多技术型开发者强调或者鄙视有些开发人员没有用到更新的技术和更高级的语法,比如他们嘲笑项目中没有使用 React、 Typescript,没有单元测试,没有功能测试,又或者还在用老掉牙的 Java、JQuery…,可他们是否能想到自己写代码是为了什么?如果为了减少出现 Bug 而牺牲了产品度那写在高级的代码又有何用呢?

说这么多也不是一棍子打死技术型开发者,有些时候一些新的技术确实能推动需求的转变,而开发者确实应该更关心代码,产品表现自有产品经理把握。但不能因此失彼,过度的追求使用新技术、钻研进了代码的虚拟世界而忘了我们是为了现实世界在忙活。

Pre Next