原创 前後端分離的陷阱

不管你設計的系統架構是怎麼樣,最後都是你的組織內的溝通結構勝出。這個觀點一直在組織內不斷地被證明,但也不斷地被忽略。 前後端分離的利與弊 近幾年,隨着微服務架構風格的引入、前後端生態的快速發展、多端產品化的出現,前後端分離已經成爲行業的普遍

原创 結對編程踩坑指南

背景 最近,我開始重新審視這些融入日常的工程實踐方式,去嘗試找出實際與理論的差距,分析差距成因,基於分析結果,嘗試找出可以逐步彌補差距的實踐方式,從而讓日常軟件交付工作變得更加“順滑”。 本文作爲“沉思錄”的第一篇,將列舉實際交付項目中,在

原创 敏捷是知與行的功夫

敏捷不是“一”種方法 “敏捷是一種用於項目管理和軟件開發的迭代方法,可幫助團隊更快地向客戶交付價值並減少風險。 它不是將一切都押在“大爆炸”發佈上,而是以小的增量交付成果。 不斷評估需求、計劃和結果,因此能夠快速地響應變化。” 以上是一

原创 技術債的前世今生

在1992年Ward Cunningham在博客中提出技術債這個概念後,技術債這個比喻因完美地表達了遺留技術問題的影響,被一直沿用至今,且一直是行業內關注的焦點。如今各大企業爲了建立持續交付的能力,快速響應市場的變化,也紛紛開始提升研發效能

原创 DDD的哲學意味(下)

DDD哲學系列文章: DDD的哲學意味(上) DDD的哲學意味(中) 核心域與主要矛盾 大約公元前800年至前200年間,中國、希臘、印度和以色列的文明幾乎在同一時期興起,這被稱爲人類文明的軸心時代。不同文明展現出了不同的風貌。中國古

原创 作爲QA,我們要如何思考?

隨着測試人員陸續開始嘗試角色轉變,堅守的QA需要找到自己的發展之路。興趣和性格是客觀因素,好奇心和發散性思維則是幫助成爲優秀QA的必要因素。我想通過一些小的例子來與大家互動探討。 測試你做對了嗎? 讓我們從這樣一個現實中的小例子來開始我們的

原创 分佈式系統下的認證與授權

在軟件系統設計中,如何讓應用能夠在各種環境中安全高效的訪問是個複雜的問題,這個問題的背後是一系列軟件設計時需要考慮的架構安全問題:架構安全性 | 鳳凰架構 認證:系統如何識別合法用戶,也就是解決 你是誰 的問題; 授權:系統在識別合法用戶

原创 單體優先的微服務架構

作者:Martin Fowler 譯者:林寧 當聽說有團隊在使用微服務架構時候,我注意到了一些規律: 幾乎所有成功應用微服務的系統,都來自於一個過大單體項目拆分而來。 幾乎所有我聽到過一開始就選擇使用微服務架構的系統,並從 0 構建,

原创 你的代碼會說話嗎?(下)

篇首語 代碼不講真話的直接後果是所有人被誤導了,然後做了一件錯誤的事情,不自知地將錯就錯,讓錯誤越陷越深,最後浪費寶貴的時間。可不講真話,編寫代碼的人又不是故意的,也萬萬不可上綱上線,袁帥秉着內訓師作爲知識沉澱者和文化傳播者角色的原則,藉助

原创 你的團隊是王者還是青銅(下)

我們接着上篇繼續聊。 問題4:誰動了團隊的時間?如果重來一個迭代,你有7*40個小時的投資,你要如何決策團隊的工作安排? “小溪,一會約開卡;小溪,我這有個問題;小溪,一會約驗收......” “龍哥,第三方集成那邊臨時有個會議,需要來溝

原创 用測試金字塔指導數據應用的測試

由於數據應用開發和功能性軟件系統開發存在很大的不同,在我們實踐過程中,在開發人員和質量保證人員間常常有大量關於測試如何實施的討論。下文將嘗試總結一下數據應用開發的特點,並討論在這些特點之下,對應的測試策略應該是怎麼樣的。 功能性軟件的測試

原创 DDD的哲學意味(中)

“關聯”、《矛盾論》、畢達哥拉斯學派 前面說到了“模型驅動的設計”以及其中兩個重要的模式“實體”和“值對象”,兩者統稱“領域對象”。在領域建模的過程中,建立領域對象間的“關聯(Association)”也是非常重要的。《DDD》第5.1節對

原创 DevOps最佳實踐之應用開發和部署

關於最佳實踐 本系列內容是我們在不同項目的維護過程中總結的關於DevOps/SRE方面的最佳實踐,我們將致力於在項目上盡最大的努力來推行這些最佳實踐。我們希望這些最佳實踐能對項目的穩定運營提供幫助,也希望剛接觸DevOps/SRE的新人能通

原创 你的團隊是王者還是青銅(上)

(圖片來源:https://unsplash.com/photos/RxOrX1iW15A) 4月18日早上9點30分,團隊跟着大屏計時器整齊地喊出倒計時,“五、四、三、二、一”,Tech Lead 強哥和 PO 小楠相對看了一眼,一起

原创 前端頁面的性能測試

介紹 隨着 Web 應用的空前發展,前端業務逐漸複雜,爲了處理這些複雜業務,前後端分離,出現了專門應對這種分離架構的應用開發框架,比如 Angular,React,Vue 等,從而也導致 Web 應用的複雜度大大增加,並出現了 SPA(Si