技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 系统架构 --> 基础设施之殇

基础设施之殇

浏览:1925次  出处信息

    你是否有这样的经历:

  • 加入一个新项目,装了一天环境,精疲力竭,但是,我并没有写一行代码。
  • 在网上看到了一个自己有兴趣的开源项目,clone下来,构建一下失败,折腾半天环境都没搞定,最初的兴趣荡然无存。
  • 我要测试一个东西,但要配A,弄B,折腾C,别人问及进展,还没开始呢!
  • 作为项目的主力,每来一个新人,我都要帮他搭建开发环境,这些人咋就不能自己搞定呢?
  • 产品环境来bug了,可是,我本地根本重现不了。
  • 这群笨蛋,我都根他们说了多少遍,为什么还在用C的命名方式命名Java函数呢?
  • 这个要调试必须部署到远端的服务器上才能做。
  • ……
  •     这样的例子,作为一个软件开发愤青,我还能举出很多。这些年软件做下来,我总能在各种各样的场景下遇到各种各样的问题,究其根源,无非是基础设施出了问题。

        与其说出问题,不如说是人们忽略了基础设施在软件开发项目中的重要性。绝大多数团队的目标都是努力赶代码,在他们的眼里,只有产品代码才是这个过程中唯一重要的。

        你忽视它,它就会惩罚你。

        上面所列的情况也就是基础设施对我们的惩罚。事实上,类似的惩罚许多团队一直在承受:

  • 忽视开发测试,遗留大量的工作给测试团队,甚至是产品环境,产品常常因为质量问题无法上线,拖延随之而至;
  • 忽视人员培养,一部分人忙死,一部分人闲死,人员流失严重,作为团队老板,你实在不理解为什么这些人就不能忠诚一些;
  • 忽视沟通,我们总能在拖延很长一段时间之后,拿出让人不满意的东西,然后,抱怨客户不近人情;
  • 忽视软件设计,你以为半天搞定的东西,开发人员用了一个星期,双方还要互相指责别人不实事求是;
  • ……
  •     一个好的基础设施,是要让程序员能够将注意力放在要做的工作上。庞杂的东西越多,团队整体的效率越低。比忽视更可怕的是,温水煮青蛙。工作在这样的团队里,很容易受虐成狂,忘记了最初的追求。

        关于基础设施的样子,我去年曾经在InfoQ发表过一篇《软件开发地基》,以一个Java Web项目为例,介绍了好的基础设施应有的样子,其中所有的代码都是来自当时的一个实际项目。如今看来,大部分内容依然适用。当然,这些内容只是在开发层面,应有的基础设施比这还要大。

        最近有一篇比较好看的文章,讨论了同一个问题,facebook中的做法

    QQ技术交流群:445447336,欢迎加入!
    扫一扫订阅我的微信号:IT技术博客大学习
    © 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

    京ICP备15002552号-1