zoukankan      html  css  js  c++  java
  • 软件的大规模生产

    很多人都幻想软件可以工厂化,流水线化生产,但是这一天却从来没有到来。

    软件和工厂模式的不同在于软件是研发出来,而工厂是研发出来后,持续生产。工厂中的生产阶段是重点,而软件的生产阶段只需要复制复制,可以忽略不计。所谓的流水线指的是工厂的生产阶段,所以软件很难出现所谓的流水线。

    那么软件是不是无法扩大规模,无法标准化?那又不需要这么悲观,我认为软件大规模“生产”(研发)是有条件的:

    一、组件化和接口标准化

    二、服务和消费模型

    三、可验证可测试

    四、性能和功能可配置

    其中核心是接口的标准化。一个大规模集成的环境下,标准接口是必须的,而这个往往是占山为王的思维下很难得到发展的一部分。

    比如QQ的通信协议就是私有的,谁也别想用QQ的资源。然后新浪微博也不是想用就用,一切都是封闭的。

    而比较成功的例子是电脑的设备接口,这些硬件正是因为有标准接口,品种繁多,而性能得到不断的更新换代。硬件厂家设计什么新的设备,首先考虑标准化接口,因为硬件市场不是靠谁就可以独占的,掌握接口标准的强势厂商的往往乐于分享。

    一个理想的环境下,应该出现一堆行业标准接口,一个成功的产品应该是集成业界最先进部件的产品,而不是固执的使用自己出品的产品来构造一切。

    新浪微博是优势产品,网易就应该使用,搜狐就应该使用,而不是各自产生对应的产品。当然,这不仅仅是软件的问题,也是商业环境的问题。

    为何微软不山寨一个脸谱,和乐于合作?为何微软不搞cpu,而忠诚的和intel合作了几十年?这些都是商业环境的原因。只有每个开发者,乐于分享,乐于使用,才能有标准接口出现,而标准出现又极大地调配合优化了社会的资源,让软件可以以最佳的速度发展和产生最佳的创意。

    说完宏观的,微观上,我们开发软件也应该在自己力所能及的层面上,使用标准化的接口,让各个组件得到充分的复用,减少复用组件的条件约束。

  • 相关阅读:
    初探并行线程的三种写法
    Revit2017二次开发-打印机配置
    test错误记录
    自行车出租系统错误集2
    错误记录-spring+mybatis
    Windows(64位IIS)未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
    sqlDeveloper连接oracle
    Apriori算法-java
    Apriori算法-位运算-C语言
    Apriori算法-数组-C语言
  • 原文地址:https://www.cnblogs.com/Nobel/p/2331511.html
Copyright © 2011-2022 走看看