很多人都幻想軟體可以工廠化,流水線化生產,但是這一天卻從來沒有到來。
軟體和工廠模式的不同在於軟體是研發出來,而工廠是研發出來後,持續生產。工廠中的生產階段是重點,而軟體的生產階段只需要複製複製,可以忽略不計。所謂的流水線指的是工廠的生產階段,所以軟體很難出現所謂的流水線。
那麼軟體是不是無法擴大規模,無法標準化?那又不需要這麼悲觀,我認為軟體大規模「生產」(研發)是有條件的:
一、元件化和介面標準化
二、服務和消費模型
三、可驗證可測試
四、效能和功能可配置
其中核心是介面的標準化。乙個大規模整合的環境下,標準介面是必須的,而這個往往是占山為王的思維下很難得到發展的一部分。
而比較成功的例子是電腦的裝置介面,這些硬體正是因為有標準介面,品種繁多,而效能得到不斷的更新換代。硬體廠家設計什麼新的裝置,首先考慮標準化介面,因為硬體市場不是靠誰就可以獨佔的,掌握介面標準的強勢廠商的往往樂於分享。
乙個理想的環境下,應該出現一堆行業標準介面,乙個成功的產品應該是整合業界最先進部件的產品,而不是固執的使用自己出品的產品來構造一切。
為何微軟不山寨乙個臉譜,和樂於合作?為何微軟不搞cpu,而忠誠的和intel合作了幾十年?這些都是商業環境的原因。只有每個開發者,樂於分享,樂於使用,才能有標準介面出現,而標準出現又極大地調配合優化了社會的資源,讓軟體可以以最佳的速度發展和產生最佳的創意。
說完巨集觀的,微觀上,我們開發軟體也應該在自己力所能及的層面上,使用標準化的介面,讓各個元件得到充分的復用,減少復用元件的條件約束。
軟體的大規模生產
很多人都幻想軟體可以工廠化,流水線化生產,但是這一天卻從來沒有到來。軟體和工廠模式的不同在於軟體是研發出來,而工廠是研發出來後,持續生產。工廠中的生產階段是重點,而軟體的生產階段只需要複製複製,可以忽略不計。所謂的流水線指的是工廠的生產階段,所以軟體很難出現所謂的流水線。那麼軟體是不是無法擴大規模,...
遇見Marathon 打造大規模容器生產環境
摘要 marathon 視為資料中心作業系統 簡稱dcos 中的一款 殺手級應用 它屬於核心服務之一,被預裝在 dcos當中,而且目前已經被三星 yelp verizon 迪士尼 autodesk 以及其它眾多知名廠商應用於生產環境當中。這些企業利用 marathon 立足於公有雲環境 內部資料中心...
大規模SfM的Cut Expand
expand 判斷cluster的大小。若cluster的image的數目足夠小,不進行任何操作,返回cluster cluster的大小可以進行cut,對cluster進行normalized cut,返回每個image及其所屬的cluster id 將image分配到clustered的chil...