Skip to content

四火的唠叨

一个纯正程序员的啰嗦

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

我在华为的五个瞬间

Posted on 01/21/201206/23/2019 by 四火

huawei 从 08 年 7 月 28 日正式加入华为,到 12 年 1 月 17 日正式离开华为,三年半的光阴,我一直没有机会好好整理一下我的行囊。现在回过头来,却又发现故事太多,无从下笔。也罢也罢,挑选我在华为五个令我深刻的瞬间,这些故事我带着不同的感触经历。不管现在开放的互联网上如何风言风语,不管在其中经历了多少欢乐或者悲伤,有多少感慨和抱怨,我依然非常感激华为带给了我这波澜跌宕的时光,谢谢我的朋友们,是你们,一直陪伴我走完这段旅程。

 

我参与的第一个项目

我参与的第一个项目是服务端的一个产品的研发,做一个涉及到营销业务的需求,对当时的我来说,业务逻辑还比较复杂,而且实现基本上要落到存储过程中实现;接口层只需要实现一个 SOAP 接口即可,相对来说简单得多。那个时候还没有开始大规模推行敏捷实践,而且设计文档也较为讲究,项目组成员,尤其是结对测试,给我的方案提出了相当多的疑惑,被迫我一头扎到业务里面去,到最后,好歹把流程梳理清楚。

我实现的整个代码量只有 2K 左右,但我依然感到自豪,做了一个完整的版本,体验了整个基于瀑布模型的流程。期间,项目经理在项目中及时的反馈和自我反省,给我留下的深刻印象。

 

北京出差的经历

出差时忙碌而痛苦的,在两个半月的时间里,要搭建环境、调测、维护、保障、客户约谈、交付等等等等,算是真正的接触一线。

工作地点开始在上地的机房内,每天对着 N 台庞大的机架,巨大的噪音震得我脑袋直疼,出了大楼耳朵还是嗡嗡叫个不停。我们就拿纸箱子当桌、漆包线轴当椅,通宵若干次,硬是坚持到基本的调测完成。

之后搬到了金融街,每天接电话接到吐血,经常遇到需要同时接两个电话的情况,其中有一周左右还需要 24 小时支持,一晚被迫起来好几次处理问题,天天挂个眼袋,看谁都是凶神恶煞的眼神。

 

从零开始做,一个大型的电信门户项目

这个项目最开始只有几个开发人员,到后来发展到若干个分支版本累计足足有数百人的大团队,我们视这个项目,就像看自己的孩子一样,看着它从无到有,逐步成长、成熟。

开了动员会,接了军令状,大家充满热情,心里却都又没有谱,我们就是在这样的状态下动工的。最开始计划一周多的迭代,足足做了将近一个月才完成。我们缺少的是这个领域内全方位的经验,产品的初创总是阵痛的。我一直觉得,一个程序员的成长,不能只经历那些成熟稳定的项目,一定要去体味那些从无到有的过程,无比的激动人心。

在项目刚开始的这段时间内,我们每天都在 9、10 点钟或以后回家,每天除了贡献许许多多项目的想法,做设计、搭框架、立规约,还充实自己这方面的内容,那段时间的自己,真可以称得上十足的奋斗者。

 

一个失败的方案

这个方案的罪魁祸首是我。一个关于页面集成的方案,即一个页面要引入其他子页面,有多种可以实现的方式。通篇都是我完成的方案设计。最开始使用 ajax 引入外部 div 的方式,被证明页面复杂、结构混乱,而且很容易遇到页面上的问题;后来我们还考虑过用 iFrame 等替代方案,都没能成行。最后,我主导设计了把被引入的页面以自成 plugin 的形式加入到父页面所在应用的方式,另一个同事细化了这个办法,实践证明这是一个比较好的方案。

这件事情对我触动很大,我做了回溯,把我自己的总结和完整的问题追加到了项目组团队的博客上。程序员总要经历大大小小的失败,没有失败就没有成长。之后再做一个设计的时候,我会想,哪些特性才是实际需要的,怎样去避免过度设计和冗余实现。

 

持续的性能优化

性能优化对于任何一个大型网站来说都要涉足。有的性能和稳定性问题定位复杂、解决困难,非常折磨人。

最开始我以解决实际的具体问题为主,辅以一些通用的、框架官方推荐的优化方案,并且处理了一些开源框架内部和我们自己代码中不合理的实现,如成为瓶颈的全局锁等等。

之后的阶段我开始做一些简单的页面静态化,这部分对性能提升有很好的效果,但是它是双刃剑,也带来了一些业务展示方面的问题。

随着页面静态化方案的不断落实,我总结了一些数据采集工具和问题定位工具,参考了一些互联网网站的性能优化方案,给项目做了从 Linux 平台参数调优到代码调用分析的全面体检,并且给出了后续项目在性能方面改进的方向。

 

PS:关于那些我要感谢的人

还有无数像以上一样的故事,都是你们陪我一起经历。没有华为,我不会成长成为现在的自己;没有你们,就没有我的今天。愿你们一切都好。我要尤其感谢的朋友们包括:

WWJ:你是我的导师,我新员工阶段对我影响最大的人;

荣哥:从你身上我阅读到了执行力,一个最脚踏实地的优秀项目经理;

晓君:你是我的好朋友,我们一起吃饭、一起加班,也一起聊天,你是我最愿意分享技术、体验和感受的对象;

YL:你负责的性能专项测试是我经历过的当中最优秀的,没有之一;

……

 

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

×Scan to share with WeChat

你可能也喜欢看:

  1. 七年工作,几个故事
  2. 职业生涯下一站
  3. 谈谈 Ops(一):我的运维经历
  4. 我也谈一谈 996
  5. 再见,亚马逊时光

2 thoughts on “我在华为的五个瞬间”

  1. doul1668 says:
    10/11/2015 at 9:45 AM

    “ 一个失败的方案” 里“ 把被引入的页面以自成 plugin 的形式加入到父页面所在应用的方式”,这个方案能分享下吗?碰到了类似的问题,谢谢!

    Reply
  2. Anonymous says:
    11/06/2013 at 11:17 AM

    牛人,我要加入华为了。

    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 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)
  • Machine Learning and Artificial Intelligence (6)
  • 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 框架源码解析
  • “ 你不适合做程序员”
  • 画圆画方的故事

近期评论

  • Ticket: TRANSACTION 1.922915 BTC. Go to withdrawal >> https://yandex.com/poll/enter/BXidu5Ewa8hnAFoFznqSi9?hs=20bd550f65c6e03103876b28cabc4da6& on 倔强的程序员
  • panshenlian.com on 初涉 ML Workflow 系统:Kubeflow Pipelines、Flyte 和 Metaflow
  • panzhixiang on 关于近期求职的近况和思考
  • Anonymous on 闲聊投资:亲自体验和护城河
  • 四火 on 关于近期求职的近况和思考
  • YC on 关于近期求职的近况和思考
  • mafulong on 常见分布式基础设施系统设计图解(四):分布式工作流系统
  • 四火 on 常见分布式基础设施系统设计图解(八):分布式键值存储系统
  • Anonymous on 我裸辞了
  • https://umlcn.com on 资源链接
© 2025 四火的唠叨 | Powered by Minimalist Blog WordPress Theme