<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # HappyPancake:建立簡單可擴展基金會的回顧 > 原文: [http://highscalability.com/blog/2015/2/23/happypancake-a-retrospective-on-building-a-simple-and-scalab.html](http://highscalability.com/blog/2015/2/23/happypancake-a-retrospective-on-building-a-simple-and-scalab.html) ![](https://img.kancloud.cn/cf/cd/cfcd814efca566388c66287dec96ba65_240x240.png) *這是 [Rinat Abdullin](http://abdullin.com/about-me/) 的來賓轉發,他曾從事 *[HappyPancake](http://www.happypancake.com/) 和*的工作,這是瑞典最大的免費約會網站。 最初是用 ASP.NET 和 MS SQL 數據庫服務器編寫的,但最終變得過于復雜和擴展成本很高。 這是近兩年來有關該項目發展的一系列引人入勝的文章中的最后一篇。 有關完整列表,請參見本文結尾。* 我們在 HappyPancake 上的項目已于本周完成。 我們為瑞典最大的免費約會網站的下一個版本**(在挪威和芬蘭開展業務)提供了一個簡單且可擴展的基礎。** ## 旅程 以下是該旅程的簡短地圖。 它列出了我們為該項目評估的技術和方法。 黃色區域突出顯示了進入最終設計的項目。 ![](https://img.kancloud.cn/ca/f7/caf7ac2f55c737b76b3cebbf57aaf1ee_542x1024.png) ## 項目交付 **項目可交付成果**包括: * 具有主要功能的可部署全棧應用程序。 * 在軟件設計(后端和前端)和一組聲明性用例(充當活動文檔,系統概述和行為測試套件)中捕獲的領域模型。 * 用于開發和持續集成的已配置環境(docker 容器)。 * 進一步發展和擴展系統的策略。 * 用于將現有生產部署遷移到新版本軟件的代碼。 最終的高層**體系結構很容易推斷和擴展**。 它就是這樣設計的。 ![](https://img.kancloud.cn/03/ca/03ca17ec84570ab8e1d8a35fa6f0e6e7_640x480.png) 從邏輯上講,整個解決方案由后端模塊(由 golang 包表示)和 Facebook Flux 體系結構的元素(通過命名約定在命名空間中組合在一起)組成。 隨著項目規模和復雜性的增長,這種結構有助于維護項目。 ![](https://img.kancloud.cn/10/1c/101cedcfcef054cd4694544b81e598b5_600x556.png) 此設計還有助于擴展部署以處理更高的負載。 我們可以通過以下方式**擴展后端**: * 將單個模塊移至更大的服務器; * 啟動單個模塊的多個實例; * 將單個模塊的存儲切換到集群解決方案,將其移動到更大的服務器,甚至推送到云。 我們可以通過簡單地在負載均衡器后面啟動新實例來擴展**前端**。 ![](https://img.kancloud.cn/ed/a8/eda80136f2c96e4fb58bc1e3c45e83f9_600x518.png) 解決方案結構還提供了一種在開發人員之間分配工作的自然方法。 給定已建立的發布語言(API 和事件的合同),我們還可以引入更多開發人員,將他們分配給在單個后端模塊或前端命名空間上工作。 ## 得到教訓 * 選擇正確的技術可以減少開發工作。 * 在我的下一個項目中,我將嘗試著重于分而治之的方法-先隔離一小部分然后進行改進,以限制進行中的工作量。 * 盡早建立所有利益相關者參與的反饋循環至關重要。 這可以建立信任并有助于避免意外。 ## 相關文章 * [關于黑客新聞](https://news.ycombinator.com/item?id=9101133) * 完整的 HappyPancake 文章系列。 僅標題即可指示項目之字形隨時間變化的方式。 [簡介](http://abdullin.com/happypancake/intro/); [新團隊](http://abdullin.com/happypancake/2013-12-17/); [語言是實現細節](http://abdullin.com/happypancake/2013-12-23/); [與 Golang 一起前進](http://abdullin.com/happypancake/2014-01-18/); [從 FoundationDB](http://abdullin.com/happypancake/2014-02-02/) 開始; [逐步發展堆棧并學習 Nanomsg](http://abdullin.com/happypancake/2014-02-08/) ; [設計用于吞吐量和低延遲](http://abdullin.com/happypancake/2014-02-17/); [容器,虛擬化和集群](http://abdullin.com/happypancake/2014-02-24/); [基準測試和調整堆棧](http://abdullin.com/happypancake/2014-03-19/); [計劃變更](http://abdullin.com/happypancake/2014-04-07/); [返回基礎](http://abdullin.com/happypancake/2014-04-14/); [消息傳遞-社交網站的心臟](http://abdullin.com/happypancake/2014-04-21/); [事件驅動的一周](http://abdullin.com/happypancake/2014-04-28/); [反應性原型](http://abdullin.com/happypancake/2014-05-05/); [戰術 DDD](http://abdullin.com/happypancake/2014-05-12/) ; [Emergend Design 面對現實](http://abdullin.com/happypancake/2014-05-24/); [最小可行產品](http://abdullin.com/happypancake/2014-06-01/); [Almost Demo](http://abdullin.com/happypancake/2014-06-09/) ; [我們的第一個演示](http://abdullin.com/happypancake/2014-06-13/); [Scala,模塊化設計和 RabbitMQ](http://abdullin.com/happypancake/2014-06-30/) ,[分配工作](http://abdullin.com/happypancake/2014-07-06/); [更智慧的發展](http://abdullin.com/happypancake/2014-07-21/); [提供功能和測試](http://abdullin.com/happypancake/2014-07-29/); [數據,用例和新模塊](http://abdullin.com/happypancake/2014-08-02/); [從假期回來](http://abdullin.com/happypancake/2014-08-16/); [原生性能](http://abdullin.com/happypancake/2014-08-25/); [功能,用例,Rendr](http://abdullin.com/happypancake/2014-09-07/) ; [Node.js 入門,Lazojs](http://abdullin.com/happypancake/2014-09-15/) ; [Web 開發的好部分](http://abdullin.com/happypancake/2014-09-23/); [響應式用戶體驗](http://abdullin.com/happypancake/2014-09-29/); [供稿,聊天,在線列表和 CSS](http://abdullin.com/happypancake/2014-10-07/) ; [發送給 ReactJS 和 Facebook Flux](http://abdullin.com/happypancake/2014-10-27/) ; [項目完成](http://abdullin.com/happypancake/2014-11-06/)。 喜歡可視化。 您在其中創建了什么軟件?
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看