在軟體開發的道路上,無論科技如何進步、工具如何發展,總是有些「東西」是亙古不變的。畢竟,軟體工程已經漸趨成熟,近20年並沒有新的理論被提出,只有流程和工具的不斷改良。
因此,如何在軟體開發的職涯上掌握先機,並且走出屬於自己的道路,這是每個軟體人所應該要思考的。藉由鐵人賽,我想分享一個從基層軟體工程師一路成為軟體架構師所需要具備的硬實力和軟實力。
內容會包含職涯發展的心態、資料庫的基本認知、系統設計原則和軟體測試。
近年來越來越多人跨領域、跨職能進入軟體產業,無論是前端或後端開發,甚至系統軟體都有許多人願意挑戰。 畢竟,軟體開發是一條具有挑戰性和成就感的道路,且無論在什麼樣...
上工第一天,我們先來聊聊軟體架構師的日常。 答案我相信不會讓人很意外,那就是無止盡的設計/實作審閱(Design Review)。 但參與過無數設計審閱,我發現...
昨天,我們提到如何做一場好的設計審閱,其中提到了每場設計審閱中都必須要有設計決策。 今天我們就來看看設計決策會如何影響系統的演化走向。在這篇文章中,我們要談一個...
在開始介紹微服務之前,有一個很重要的概念必須要先闡明,那就是分散式交易。 因此這篇文章會分為幾個部分: 解釋什麼是分散式交易 介紹如何解決分散式系統的問題 提...
微服務架構是近幾年很流行的主題,過去有非常多研討會在談論如何部署、管理和實作微服務,但最近這個趨勢減緩了。取而代之的是,大家都開始討論微服務的複雜度。肇因於微服...
介紹過在設計分散式架構的八個謬誤後,我們了解分散式架構的複雜度很高,而微服務架構是分散式架構的延伸,因此今天讓我們來看看設計微服務架構的挑戰。 微服務架構的九個...
我們在之前聊過如何準備設計審閱也介紹了分散式交易,那麼讓我們把這兩者結合在一起。讓我來示範一下,如何做一個分散式交易的設計審閱。 為了避免大家忘記,我簡單列一下...
軟體設計是一個演化的過程。 所有大型系統都是從一個小系統開始的。當碰到無法解決的問題,系統就會開始演化。每一次的演化都伴隨許多技術選型,要解決什麼問題?有什麼代...
昨天我們演示了CQRS的系統演化,將一個單體架構一步步演化成一個事件驅動架構。在事件驅動架構中,有一個靈魂角色是訊息佇列,扮演訊息存儲和傳遞的角色。 但有這麼多...
根據這份報告我們可以看到,事件驅動架構模型是一個熱門的主題。但是,要設計一個好的事件驅動架構很有挑戰性。 我們都很熟悉同步模型,一個請求直接對應一個回應,但在非...