BurnRate 會使用 Blazor 來推動營收成功
向您介紹 Robert McLaws,他是一位資深的 .NET 人士及經驗豐富的企業家,致力於協助人們成功。McLaws 在職期間,曾見證過創業投資 (VC) 及其數千億投資如何無法大幅改善初創企業的成功率。即使在 50 年的 VC 投資之後,至少仍有 70% 的公司會在每個成長階段失敗。
該統計資料讓 McLaws 大為警惕。因此,他開始協助創辦人和營收主管將雇用流程系統化,並設計自己的成長方向,而不需要使用試算表公式。他看到科技有機會進行一些重要且特定的計算,讓規劃可縮放成長變得更容易且更精確。
正在建立人類演算法
幾年前,McLaws 已使用 ASP.NET 建置應用程式架構,以在商業房地產空間中建置財務分析產品。為公寓大樓建築群組建置容量模型,可讓其進入 SaaS 銷售容量模型,以及工作中的人力資源如何影響公司創造營收的能力。
他就是在這個時候提出 BurnRate 的構想,這是一個適用於上市團隊的營收需求與員工人數規劃系統。McLaws 認為,依賴直覺和猜測來決定關鍵營收團隊 (例如行銷、銷售和客戶成功) 的人員編制層級,並不是一條永續的成長道路。
相反地,他認爲這是一門科學: 一個使用他創造的「人員演算法」來協助公司聰明成長的演算法。如他所說,這些 [客戶成功、行銷和銷售] 團隊一開始就得負責把金錢帶進門,因此計算正確非常重要,並且要讓它們簡單易用,好讓營收團隊非常容易上手開始使用它。」
選擇正確的技術堆疊
McLaws 的財務經驗讓他知道,使用浮動點數學的程式設計語言 (例如 JavaScript) 並不足以建立財務系統。此演算法的基礎必須採用 C#,才能提供可一致驗證的可信任結果。
他離開前一家公司以啟動 BurnRate 時,他必須抛棄他的應用程式架構,並從頭開始重建。.NET Core 的第一個版本剛上線,因此這是重建新紀元最完美的時機。
後端非常簡單,Azure SQL 和 Microsoft Restier不只可以處理專案的可查詢 API 需求。在 .NET Core 上,他蓬勃發展的「人員演算法」非常迅速,而且能夠處理來自高度結構化資料的極複雜的計算 (以秒計算)。
不過,組織公司財務資料,並讓公司建立多個案例和切換它們,這所需要的架構深度遠比他預期的深。
「在同一個模型中將案例、父系案例、時間縮放和計畫結果與實際結果一起分層,就足以讓我的頭疼。要幾個月的密集工作,並重複嘗試,才能順利運行。」他説。McLaws 說 BurnRate 在其演算法上用來確保正確功能的單元測試數目「可能會比大多數其他公司使用其應用程式所建置的大小還要高出幾個數量級。我們要求公司透過此平台,對其整個業務的未來做出決策。我們不能犯錯。」
BurnRate 建置了整個名為 Breakdance 的開放原始碼測試架構,以提升單元測試生產力,並在較短的時間內撰寫更一致的測試。
前端提供了不同的挑戰。McLaws 開始使用 Webpack、TypeScript 和 Knockout 的組合來設計 BurnRate UI 原型,但遇到許多障礙。Webpack 當時沒有 TypeScript 定義,無法協助您更輕鬆地設定組建。
「使用 JavaScript (一種什麽都有可能的語言,而且一切都可以在執行時間内交換) 注定會帶來失敗。必須努力才能獲得成功,而這通常意味著極大的精神痛楚,」 McLaws 說。
當一切終於正常運作,並擁有第一個完整功能的原型時,團隊在調整規模時發生問題,尤其是為擁有數百名員工的公司產生雇用計畫時。
「當我們嘗試找出如何調整及處理 UI 更新、重新計算、及伺服器端時,我們[一直]在往後走,」他説。「當您嘗試轉譯內容時,瀏覽器變得越來越生澀。」
Blazor 如何點亮可擴縮性之路
Blazor 在這段時間已進入市集,它是新的前端技術。
「在具有最小 JavaScript 的瀏覽器中,端對端 C# 的承諾實在太好,完全無法忽略,」 McLaws 說。
根據 McLaws,在用戶端與伺服器端之間使用 C# 不僅使應用程式開發變得「簡單多了」,還扮演著重要的角色,讓 BurnRate 的 UI 與其計算一樣可靠。
我們可以使用寫入後端程式碼的相同語言來寫入單元測試。太棒了!何不以這種方式建置呢? 它消除了數千行程式碼,而且對於任何在 WPF 世界中呆過五秒鐘的人來說都是如此直觀。」
使用 Blazor,BurnRate 能夠「非常非常快速地」移動。團隊在幾星期內 (而非三年) 組建了一個可運作的 Blazor 原型,並在一年內完全接埠了數十萬行的程式碼。
該時間有一部分是花費在建置新的開放原始碼工具上,讓其他公司也可以更快速地組建 Blazor 應用程式,這是一個符合 Mc一s 實用功能的方法。
「人們通常會忘記,當您組建像 BurnRate 這樣的平台時,您不只需要面向客戶的應用程式;您也需要應用程式背後變更資料庫和系統管理的應用程式,」 他説。
「因此,我們組建了 BlazorEssentials,這是一個從 Blazor 中的 XAML 啟用的 Model-View-View Model (MVVM) 架構樣式的媒體庫。這可讓我們從應用程式中,明確地分開資料擷取和資料顯示。這可讓我們的應用程式架構有一個簡單且一致的層級。現在,我們的 100% 程式碼基底可測試為具有可預測模式的單一語言。」
利用 Azure DevOps 進行高度自動化的持續整合和持續傳遞 (CI/CD),這可讓 BurnRate 小組更快地移動。
「無論是新的應用程式或現有應用程式的新公用程式,我們都能在數小時後出貨到生產環境,」 McLaws 說。
隨著 BurnRate 的擴大,它需要確保產品穩定性,才能在其客戶的核心日常作業中內嵌更多內容。McLaws 信任 Microsoft。
正在傳遞解決方案而不洩露
「我很久以前便選了 Microsoft,而 Microsoft 也從未讓我失望,」他説。
McLaws 是一位 23 歲的 .NET 資深專家並贏得 5 次 Microsoft MVP,他的開放原始碼總計超過 14 億個下載專案。直至今天,他持續與 Microsoft 一起開發,並了解有資源與社群可以共同建立出色的專案。使用 Blazor,BurnRate 小組可以組建應用程式,並提供 McLaws 的願景,而不會遭到入侵。
在他心中,「除了 .NET 之外,從來沒有任何平台能提供這種水平的穩定擴充性,」他説。根據他的説法,Blazor 讓他的精簡小組可以更聰明且更快速地組建。
我花了整個職涯才等到如此的生產力等級。有了 .NET Core 和 Blazor,我的夢想可輕而易舉地變成現實。」
準備開始了嗎?
我們的逐步教學課程可協助您讓 Blazor 在電腦上執行。