Skip to content

四火的唠叨

一个纯正程序员的啰嗦

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

有趣还是无趣?

Posted on 05/17/201306/23/2019 by 四火

funny 这是一篇扯淡,一篇 rant,或者是一坨不靠谱的文字。有一些观点过于偏激,如果你没法接受,也请不要太在意。

无趣的接口封装

我记得刚工作的时候,我的第一个正式项目是去写一个基于 SOAP 的 WebService 接口,那个时候觉得新鲜,“原来 web service 是这样子的!”;到了现在,已经写过各种各样的 service 接口,再也没有觉得做这样的事情很有意思,或者很有新意、很有挑战性,尤其是一些并不复杂的增删改查的接口(当然业务逻辑是有够繁琐的)。

有同事说,做界面、做 portal 并没有什么意思,都是浮于表面的东西。虽然我不完全认可,但在这个前端工作被普遍瞧不起的国度,而且从某些层面上说也对,可是我其实很想反驳他的,做 front-end 的东西还有一些 UI 设计和用户中心设计的挑战在里面,但是写 portal 后台或者 service 逻辑层的业务代码呢?大多数都是增删改查的脚手架而已,变化的地方无非是接口不同种类的封装,以及从不同的数据源中读写数据而已。

举例来说,要写一组持久层的接口,屏蔽几种格式的文件、关系数据库、Network API、WebService Invocation、HDFS 和 DynamoDB 等等好多种数据源的访问差异,提供统一接口,最初听起来是一件挺有趣的事情。写骨架代码的时候也确实让我的思维 “活跃” 了好一会,可是在最初的设计完成之后,很快就变成了各种访问接口的封装,我觉得我又在走好多年走过的老路了。

孱弱的移动应用开发

移动端的应用开发有点像三天的热情,刚上手觉得很有意思,工作之余研究研究做几个看得见效果的 app 觉得很有成就感,当真成为工作去做的时候每天都想呕吐。现在我体验这两大平台上的设计开发过程,不为赚钱,只为娱乐。

但是当真成为工作就蛋疼了,嘿嘿。尤其是 Android 平台,天天折腾在各种手机里面,各种分辨率,各种兼容性考虑;iOS 应用开发也好不到哪去,啰嗦的审核,系统访问的各种限制;WAP 页面开发呢,则要兼容乱七八糟的各种不负责任的浏览器(以前还弄过 WAP1.0 版本的页面,那种老破手机,折腾死啊)……

纠结的编码高手

有相当数量的这样一群人,他们代码层面的设计编码技术了得,对自己的代码无比爱护,尤其对于接口设计尤其纠结。这些人可以写出非常漂亮的代码,但是也会花很多的时间、无比的心思去纠结一些没有太大意思的东西。比如:

  • 代码洁癖症患者,看到格式不合心意就要改啊;
  • 看到某接口参数定义不够完美,冒着该几十个类的巨大风险也要把它修改了(虽然有些情况下是值得的,但是你不可否认做这样的事情好没意思啊);
  • 扩展性、兼容性设计,代码里遍布了 factory、builder,随处可见的设计模式;
  • 折腾主义者,每过几天就要把项目的架构、物理部署和包结构等等调整一遍,让它看起来更美,虽然大部分时候收益代价比并不让人恭维……

等等等等。每一件代码都是艺术品,但是每一件艺术品在没有见到天日之前,就没再有人看了;每一段代码都有足够的扩展性,但是没有一段代码在收到足够多的变化的挑战以前,就已经封存不动了,甚至产品都没人用了。纠结的编码高手们(单纯伟大在编码上的人不能成为伟大的程序员,只能称为编码高手,请参见这篇文章的解释),一生都在为不为人所欣赏的美丽的代码艺术品而无趣和自我解嘲中奋斗。

产品成就感和技术成就感

如果做的东西得到广泛的应用,有足够大的影响力,这自然会给程序员带来正向的鼓励;另一方面,如果做的东西使用了有趣的技术,或者在程序员感兴趣的范围之内,这当然也会产生正向的促进作用。

最惨的境遇莫过于这两者都不具备,每天做着各种枯燥的工作,也无法看到产品产生了哪些鼓舞人心的影响。好多人都在说钱多就干,钱固然是一个起到重要作用的因素,但是许多程序员还是想追求一下自我价值的,虽说在很多外行人看来,程序员本来就是一群无趣的 nerds(至于 geek,是对其中的少数人一个相对比较给面子的称呼了)。

以前我在一家通讯公司做软件,但是做的是提供给电信运营商,但是最终面向互联网用户的软件,架构师设计了一个庞大臃肿的架构,在我看来还是略有陈旧的传统思维使然,portlet+SSO+管理台集成+关系数据库,聚合逻辑和业务展示逻辑分成两个异地的项目组完成,期间碰撞和痛苦无数,三年后架构部就想力推一个新架构取而代之。互联网产品早就不那么做了,在人家用几个人做出快速轻量的吸引人眼球的应用的时候,我们还在人海战术中搏杀,拖着一个巨型的 “解决方案” 航空母舰,可是谁都不知道用户想要什么,只知道电信运营商说了什么。

这也是为什么我始终对那些 ERP 系统、OA 系统之类的提不起兴趣,使用的人那么少,条条框框那么多,而且还往往没有互联网产品那样日益更迭的新技术。相较于总显得落后好多年的传统软件领域,互联网领域确实多产牛人。

寻找有意思的项目

我没有做过系统底层的开发,这是我的弱项,也是我很有兴趣去涉猎的地方;我也刚开始接触机器学习的知识,虽然欠缺足够好的数学头脑,不过我还算乐观;更想做一些充满挑战的工作,做一些直接影响力许多互联网用户的事情,让成就感这样的贵人经常光顾自己。

想寻找有意思的项目。是不是像夫妻之间的七年之痒一样,程序员也有 X 年之痒?到某个时间点,就开始找事儿了?

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

×Scan to share with WeChat

你可能也喜欢看:

  1. 进阶过程:程序员做项目的独立性
  2. 思考、学习新技术的原则和方式
  3. 不要让业务牵着鼻子走
  4. 写在华中科技大学招聘结束之时
  5. 从淘汰 Oracle 数据库的事情说起

2 thoughts on “有趣还是无趣?”

  1. siteshen says:
    07/22/2013 at 1:40 PM

    有个朋友做了个网站,里面有不小项目,你可以看下,或者参与到一些项目中, 当然了不一定都是开源的。   shixiann.com

    Reply
  2. Joe-xXx says:
    05/17/2013 at 2:17 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