Skip to content

四火的唠叨

一个纯正程序员的啰嗦

Menu
  • 所有文章
  • About Me
  • 关于四火
  • 旅行映像
  • 独立游戏
  • 资源链接
Menu

层次

Posted on 07/19/201406/23/2019 by 四火

level

以下文字,看看就好,笑笑就好。

最近在被一个问题折磨,大致上是,公司内部某些技术更替的关系,要把原有的一个鉴权的组件 A 淘汰掉,迁移到一个新的替代品 B 上,我估摸着也就一天时间搞定它绰绰有余了。没料想一猛子扎进去就没那么容易出来了,替换完成以后的测试傻了眼,发现了一个诡异的问题,于是追根溯源,把牵涉进来的林林总总一一拖出来检查排除枪毙,环境比较复杂,debug 起来又比较头疼,折磨了三天半的时间;最后还靠这个替代品 B 的问题列表里面,有某下游产品的工程师跳出来说是这个替代品自身有问题,分析代码怀疑是如何如何的一个 bug,于是我也按照这个思路修改它的代码,编译并且打上补丁以后,才发现确实修复了我遇到的问题。这才让我安下心来。

期间也尝试寻求过一些帮助,但是并没有人能给出实质性真正有帮助的意见建议,要么就是根据经验判断问题所向,要么就是高屋建瓴,方法论上面指导指导。这些人关注问题的角度和重点,明显都不在一个层次上。我觉得大多数时候,工程师最需要的,还是代码级别的帮助。在产品复杂了以后,对于问题的定位往往不容易进行,都说软件的复杂性是唯一的敌人。在问题解决以后,我当然需要总结和回顾始末。如果重新来一遍,如果我能够早一点涉足代码,可能浪费的时间会少很多;但是很多时候这样的总结又是不靠谱的,毕竟也遇到过过早扎进代码里面绕不出来的情形。这样的矛盾似乎永远平衡不了,就像让任何人估算工作量一样,以前觉得工程师估算不靠谱,后来发现没有人估算很靠谱。兴许软件的世界里面工作量它本身就是个伪命题。

工程师就是要解决具体问题的,工程师的层次就在代码上下,向上跑一点就到了概要设计层面产品层面,甚至某些狭义的方法论上面;向下跑一点就到了那些零零碎碎的语言细节和问题坑。但是怎么也都不能跑出这个大致的圈子太远,就好像对于正在学习实践怎么钓鱼的学徒,和他讲钓鱼对社会主义现代化建设事业的意义,或者是扯钓鱼与人生修养,都没法给他带来实质性的帮助。所谓的那些得道高僧一句两句点拨的故事,都是写在故事会里的,都是写在青年文摘里的,都是写在格言里的。真正做技术的人,是没法拥抱热爱心灵鸡汤的。工程师只想提意见,不想听委婉的否定。他们只会说,去 TMD 理论,能帮我 fix 了这个问题么。

还有一个扯淡的故事,说有位建筑民工最终成为了伟大的建筑师,他最初做的工作其实和其他民工兄弟是一样的,只不过它的境界层次不同,他看到的不只是一块砖一片瓦,而是整栋大楼的崛起。我觉得这纯属瞎掰,第一民工和建筑师几乎就不存在互相转化的可能,因为问题的关注点和需要的知识技能大不相同,第二真正整天关注整栋大楼崛起的人也不可能有精力落实好一砖一瓦。我想我砌砖头的时候考虑的多半是拖欠我半年的工资啥时候能发。

通过上面这个演绎得乱七八糟的问题我紧密相关地想到了另一件事—— 有一位同事最近在被另一件事物折磨,这个折磨纯属来源于悲惨的遗留代码,代码写得如此之烂,给人的感觉就是:面对着一坨稀烂稀烂的屎,你拿着各种五花八门的工具,用各种姿势和技艺去搅和这坨屎,以期望把它搅成各种形状。技术再高,工具再强大,屎就是屎,一点也不会改变。通常遇到这种情况我要是能有选择权的话,在我没有精神强大到一定程度以前,我肯定希望躲得越远越好。

就是面对着这些状况,伴随着各种奇形怪状问题,还要填写超级冗长的工程师工作环境的调查问卷。无可厚非这无比友善光明的伟大目的,但是就遇到的这些问题而言,身为工程师应当沉下心来把一坨又一坨该死的代码整理清楚。而不是花时间在那些已经相对还不错的物理工作环境上面继续挑三拣四,抱怨温度高了 0.4 度还是噪音响了 0.6 分贝。遗憾的是,我以为我可以在生命中不断遇得到更专注于代码的环境,后来却发现各色闲杂事务却一直挥之不去,我只能在繁忙的缝隙中寻找一丝喘息的平衡。我觉得在伟大的世界观和方法论上面,这些有影响的人物忽略了一件事情,那就是我们的层次,工程师和普通人类不同的地方,或者说层次高那么一点点,或者装那么一点点(请允许我此处如此之得意忘形)的地方,就在于除了吃饱穿暖环境优雅生活舒适以外,我们还追求代码层面上相同的标准和享受。

在越来越谨慎的部署,越来越严格的流程,越来越频繁的沟通之后,我们也自然会越来越谨小慎微,越来越想规避风险和撇清责任,屁大的针细的事情都不得不和东方爷爷解释清楚,再跑到西方奶奶那里说明过程。时不时地还有哪位不识趣的高僧过来催进度,其眼中似乎只有时间点。这是我在几年前看到的一种伟大境界(另一种更伟大的境界是眼中只有人力和时间点,那要更高级一层),曾经以为这样的现象会渐渐消失,后来发现世界还是五彩缤纷的,我见到过的一切都只是世界这个万花筒中的一小部分而已。你关心的,往往很难会有人关心,他们关心你,更多的是对于普通人类的关心,友善而且细致,但你是奇异物种软件工程师,你知道你关心的问题并不一定会有人理会。

所有这些,我知道我抛出的所有观点都会得到不同的认可以及非议,我也尝试过让自己反省并且寻找一个合理的解释,后来发现其实我本来就没有错,最根本的原因,也许,只是,我们层次不同。

文章未经特殊标明皆为本人原创,未经许可不得用于任何商业用途,转载请保持完整性并注明来源链接 《四火的唠叨》

×Scan to share with WeChat

你可能也喜欢看:

  1. 我眼中的工程师文化
  2. 不安分的工程师
  3. 留心那些潜在的系统设计问题
  4. 再谈谈工程师
  5. 好好说话

6 thoughts on “层次”

  1. 马斯 says:
    07/27/2014 at 6:30 PM

    细节.

    Reply
  2. simplejoy says:
    07/24/2014 at 12:38 PM

    对工程师来说,学习一个技术过程中,踩坑型的实践肯定帮助最大,而且大家都会这么成长
    但逐步娴熟后,就会遇到瓶颈,这时一些所谓的高屋建瓴往往能打开你新的思路,所谓大师一般不会教你趟坑技巧

    Reply
  3. Arrow says:
    07/23/2014 at 2:51 PM

    仍在人力和时间点里挣扎,努力寻求上岸中。

    Reply
  4. 曾钦 says:
    07/21/2014 at 9:29 AM

    兴许软件的世界里面工作量它本身就是个伪命题。
     
    我喜欢这一句。

    Reply
  5. sjtlqy says:
    07/20/2014 at 9:28 PM

    同意,只知道催进度,掐时间点,然后不断开会。
    工程师需要踏实的去砌好每一块砖,那些高屋建瓴的,或者模棱两可的都是扯淡。
    当然结局大家都看到了,没人去认真的读代码,设计代码,结果中国的软件业还是这样。
    最多就是在 master 上面打几个补丁,那些国内已经开源出来的,基本上可以认定已经奄奄一息。

    Reply
  6. 微观互联网 says:
    07/19/2014 at 8:55 PM

    文章写的真好

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

订阅·联系

四火,啰嗦的程序员一枚,现居西雅图

Amazon Google Groovy Hadoop Haskell Java JavaScript LeetCode Oracle Python Spark 互联网 前端 华为 历史 同步 团队 图解笔记 基础设施 工作 工作流 工具 工程师 应用系统 异步 微博 思考 技术 数据库 曼联 测试 生活 程序员 管理 系统设计 缓存 编码 编程范型 英语 西雅图 设计 评审 问题 面试 项目

分类

  • Algorithm and Data Structure (30)
  • Concurrency and Asynchronization (6)
  • System Architecture and Design (43)
  • Distributed System (18)
  • Tools Frameworks and Libs (13)
  • Storage and Data Access (8)
  • Front-end Development (33)
  • Programming Languages and Paradigms (55)
  • Testing and Quality Assurance (4)
  • Network and Communication (6)
  • Authentication and Authorization (6)
  • Automation and Operation Excellence (13)
  • Big Data and Machine Learning (5)
  • Product Design (7)
  • Hiring and Interviews (14)
  • Project and Team Management (14)
  • Engineering Culture (17)
  • Critical Thinking (25)
  • Career Growth (57)
  • Life Experience and Thoughts (45)

推荐文章

  • 谈谈分布式锁
  • 常见分布式系统设计图解(汇总)
  • 系统设计中的快速估算技巧
  • 从链表存在环的问题说起
  • 技术面试中,什么样的问题才是好问题?
  • 从物理时钟到逻辑时钟
  • 近期面试观摩的一些思考
  • RSA 背后的算法
  • 谈谈 Ops(汇总 + 最终篇):工具和实践
  • 不要让业务牵着鼻子走
  • 倔强的程序员
  • 谈谈微信的信息流
  • 评审的艺术——谈谈现实中的代码评审
  • Blog 安全问题小记
  • 求第 K 个数的问题
  • 一些前端框架的比较(下)——Ember.js 和 React
  • 一些前端框架的比较(上)——GWT、AngularJS 和 Backbone.js
  • 工作流系统的设计
  • Spark 的性能调优
  • “残酷” 的事实
  • 七年工作,几个故事
  • 从 Java 和 JavaScript 来学习 Haskell 和 Groovy(汇总)
  • 一道随机数题目的求解
  • 层次
  • Dynamo 的实现技术和去中心化
  • 也谈谈全栈工程师
  • 多重继承的演变
  • 编程范型:工具的选择
  • GWT 初体验
  • java.util.concurrent 并发包诸类概览
  • 从 DCL 的对象安全发布谈起
  • 不同团队的困惑
  • 不适合 Hadoop 解决的问题
  • 留心那些潜在的系统设计问题
  • 再谈大楼扔鸡蛋的问题
  • 几种华丽无比的开发方式
  • 我眼中的工程师文化
  • 观点的碰撞
  • 谈谈盗版软件问题
  • 对几个软件开发传统观点的质疑和反驳
  • MVC 框架的映射和解耦
  • 编程的未来
  • DAO 的演进
  • 致那些自嘲码农的苦逼程序员
  • Java 多线程发展简史
  • 珍爱生命,远离微博
  • 网站性能优化的三重境界
  • OSCache 框架源码解析
  • “ 你不适合做程序员”
  • 画圆画方的故事

近期评论

  • + 1.943624 BTC.NEXT - https://graph.org/Ticket--58146-05-02?hs=9a9c6f8dfe3cdbe0074006e3e640b19b& on 所有文章
  • Anonymous on 闲聊投资:亲自体验和护城河
  • 四火 on 关于近期求职的近况和思考
  • YC on 关于近期求职的近况和思考
  • mafulong on 常见分布式基础设施系统设计图解(四):分布式工作流系统
  • 四火 on 常见分布式基础设施系统设计图解(八):分布式键值存储系统
  • Anonymous on 我裸辞了
  • https://umlcn.com on 资源链接
  • Anonymous on 我裸辞了
  • Dylan on 我裸辞了
© 2025 四火的唠叨 | Powered by Minimalist Blog WordPress Theme