我的这三个阶段 , 第一个阶段花了4年 , 第二个阶段花了8年 , 第三阶段刚刚开始2年不到 , 有时候我也去别的公司讲课 , 所以 , 我很有幸经历了中国软件开发的进化过程 。我的经历可以说是中国软件行业进程的一个缩影 , 而我把这三个阶段称为——软件开发的三重门 。它们分别是:
- 业务功能 – 粗放地开垦
- 业务性能 – 扩大化生产
- 业务智能 – 精耕细作
下面让我具体描述一下 。
一重门:业务功能
这 是软件开发的第一重门 , 也就是掌握可以实现业务功能的技术 。通常分成三块:语言+系统+数据处理 。在这个阶段 , 主要是能掌握各种技术 , 比如:开发用的各种 工具(如:IDE , XUnit , Debugger , 等) , 各种代码库和框架(如:C++的STL , ACE , Boost , 等 , Java的 Spring , Hibernate等) , 各种系统知识(如:Windows API , Unix/Linux API , TCP/IP , Socket , 多线程多进程间的同步、互斥 , 并发安全 , 还包括Web平台 , 移动平台 , 等等) , 还需要掌握数据处理的知识(如:数据 结构 , 基本算法 , 数据库设计 , 数据库引擎 , SQL等) , 等等……
这个阶段主要是把这些不同的技术组织成可以实现业务功能的解决方案 。重点是能掌握和使用技术 。很多流程和方法论的东西基本上就在这一重门里 。这重门主要解决的是业务实现问题 。
二重门:业务性能
业务的功能搞定了以后 , 就是业务的性能问题了 。搞定功能并不难 , 搞定性能是有点技术含量的事 。有句话不是那么说的吗——每个人都可以搞一个网站出来 , 但不是每个人都能搞出能支持百万级访问量的网站 。但是 , 我看到很多技术团队或是工程师脱离了业务 , 只单纯地搞性能 , 比如:单台服务器支持10万个TCP链接的并发 , 等等 。这些东西虽然在技术上有点意思 , 但是没有业务的环境 , 也只能是自娱自乐了 。
我们可以看到一些企业开始注重这个问题了 , 性能问题也是最近被大家讨论得最多的问题 , 京东商场的性能问题 , 12306的性能问题 , 等等 。
当然 , 所谓性能不并单单指系统的吞吐力 , 还指系统运行时的总体性能 , 比如 , 系统安全性能 , 易用性能 , 系统的Accessbility的性能 , 系统的扩展性性能 , 等等 , 就像是前段时间“Web开发中需要注意的问题”一文中谈到的那些事一样 。这表明着你对系统的全面和深入的了解 。
在 这个阶段 , 需要对业务模型 , 数据流 , 业务流 , 系统架构 , 算法 , 和各种技术有深入的了解 , 要了解到本质上来 。比如 , 在第一重门中 , 我们只需同要知 道 , Java有同步关键字 , 在这一重门中 , 我们还要知道同步或互斥对性能的巨大伤害性 , 在第一重门中 , 我们只需要知道STL中的智能指针或是STL的用 法 , 这一重门中 , 我们还要知道智能指针中的refcnt的同步加锁对性能的损害 , 还需要知道STL中容器的size()方法在某些时候是性能很差的 。在第 一重门中 , 我们需要知道hash表的效率 , 在这一重门中 , 我们还需要知道hash表的碰撞问题 。
- 头发自然卷的女人都容易受情伤
- 独特简单的网名女生2字 独特简单的网名
- 生意参谋常用的数据模块 生意参谋必读的数据
- 只是当时户口在养父的户头上养父是否需要我去赡养
- 刚装修完房子,最适合放置哪些植物
- 遗忘物和遗失物的区别是什么
- 发微淘的内容要怎么写才可以被关注 微淘文章怎么发才有用
- 属羊人车牌号宜含哪些数字
- 什么眉型的男人容易找到女朋友
- 抖音卖零食合拍真的能赚钱吗?怎么找货源?
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
