• 软件的大规模生产


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

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

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

    一、组件化和接口标准化

    二、服务和消费模型

    三、可验证可测试

    四、性能和功能可配置

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

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

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

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

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

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

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

  • 相关阅读:
    ubuntu 修改mysql 5.7数据库密码
    maven 配置
    数据仓库的命名规范
    mysql 之 在查询字段中得出分钟数
    mysql 之 timestampdiff() 函数 ,得到间隔分钟数
    linux 服务器上下载文件到本地
    mysql 之 时间格式 今年的第一天,去年的第一天
    mysql 之 str_to_date ()函数 和date_format()函数
    网络不可用时~更改DNS并刷新
    mysql之 round()函数 , concat()函数
  • 原文地址:https://www.cnblogs.com/Nobel/p/2331511.html
Copyright © 2020-2023  润新知