The Pragmatic Programmer
程式設計是一門手藝,且從來都沒有最佳的解決方案,而這就是務實主義派上用場的地方。本書將幫你融合電腦科學的基礎以及廣泛的專案實作,理論與實務結合,成為更好的程式設計師。如同副標題所述,務實的哲學就是從新手邁向大師的關鍵,務實的程式設計師最終能完成工作,而且做得更好。
程式設計是一門手藝,且從來都沒有最佳的解決方案,而這就是務實主義派上用場的地方。本書將幫你融合電腦科學的基礎以及廣泛的專案實作,理論與實務結合,成為更好的程式設計師。如同副標題所述,務實的哲學就是從新手邁向大師的關鍵,務實的程式設計師最終能完成工作,而且做得更好。
心得 業界的開發人員或多或少都有在中小型專案中重構的經驗,不過很少人會遇到跨組織的大型重構,畢竟只有身處大型開發組織的核心團隊才有這種機會,所以本書提供了一個管道使一般開發人員也能吸收大規模重構的經驗。 本書的經驗來自Slack的重構專案,為了避免影響到正式產品的客戶而使用了許多技巧。比方說用來比較重構前後差異的明暗模式;用來評估重構計畫會造成多少衝擊的程式碼分析;提供安全切入點的測試覆蓋與接縫模型等,這些技巧有讀過重構遺留程式碼的藝術的讀者想必都很熟悉,但是本書又將這些技巧應用在跨專案以及解構資料庫綱要上,是相當難得的實際案例。
簡介 本書一步一步帶著讀者認識CQRS模式,讀者會在過程中瞭解到CQRS模式能藉由分離API接點、命令與查詢、領域模型、資料庫來幫助簡化程式的實作,並進一步提高效能與擴充性。 各章目標 書中前三章先說明CQRS模式以及提供一個傳統的CRUD服務,接著再示範如何將其拆解為任務型為主的API,以使用者要達成什麼任務的觀點去設計服務。
一樣是講最佳實踐的故事書,但是維運部門的狀況果然是無比慘烈。本書主要點出了維運業務長年被低估的的複雜性以及重要性。 維運業務的複雜性是本書著重的內容,並不斷的以工廠管理舉例,展示了各種維運工作的類型以及來源,並套用品質管理方法逐步改善的過程。該流程實質上也值得非維運專案的讀者仔細反思,並檢視平日的工作方式到底有沒有問題。
本書的目錄乍看之下很像一系列範例專案的最佳實作說明。但是本書如標題所示,是教授如何開發Java專案的基礎指南,只是專案情境異常的完備且說明極其充實。本書的每個章節都是以一個專案想法為開頭,在過程中不斷改變需求,並教導讀者偷懶作法的缺點,接著馬上示範標準的解決方案。 雖然本書上仍然有著跟一般軟體工程課程一樣的缺點,即讀者感受不到需求變更的切身之痛,然而這種說明方式依然生動許多,很好地展示SOLID原則、設計模式、六邊型架構…等設計方法在實務上解決了那些問題。對經驗尚淺的開發人員是不錯的參考讀物。
本書羅列了許多與Java相關的小技巧跟知識,內容涵蓋程式撰寫、文件、好用工具、開發者經驗等。其中又以介紹語言特性以及JVM的文章特別突出,即使是作為資深Java開發者,許多主題讀起來依然很有趣。 在Java這個大主題之外,還有專欄簡單介紹Kotlin、Groovy、Clojure等其他基於JVM的語言,算是給長年使用Java的人一個嘗試新語言的動機。雖然不是一本有嚴謹結構的參考書籍,但是有很多小技巧都值得一讀。
除了提供各種工具與最佳實踐之外,本書旨在點醒讀者現在的IT工作方式已經發生劇變。以往從事基礎架構的人員總覺得被各種流程與規格綁架,做任何一點變動都得要戰戰兢兢,生怕弄壞了生產環境。 然而現代各項IT架構的部件都漸漸標準化,工具所提供的控制力有越來強大,實際上任何傳統IT活動(包括但不限於建置虛擬機、配置設定、運行腳本…等)都已經完全可腳本化且具有可測試性,這得益於現代IT架構動態要求系統資源以及時常重建環境的想法。
簡介 雖然已經知道容器化應用程式自動部屬的優點,但是本書中有許多觀點是習慣裸機部屬的開發者很難想到的。 以部屬方面來說,rolling update、藍綠部屬、金絲雀部屬等,在以往的CD流程經常要大量的人為介入,以及仔細的規劃才能完成,而現在用pod管理應用程式後,各種部屬模式都將變得容易管理。
簡介 本書囊括了各種情境下的文件需求以及對應的製作方法,主要概念是 : 文件是用來傳遞知識的 如果程式就是呈現知識最好的載體,那文件就應該從程式產生,隨實際情況變動 更好的情況下,任何其他包含知識的檔案如環境設定等,也應該自動化變成文件 本書從第一章就展示了一個理想情境,在商業邏輯、詞彙表、環境設定、部屬流程、架構圖、設計決策、測試案例都已經能自動化變成文件的情況下,專案成員能以多高的效率合作與討論解決方案。
簡介 本書從基礎開始,一步一步引導讀者學習實用的最佳化技巧。作者首先解釋SQL最佳化的基礎概念,並以不同表連接的方式解釋其對效能的影響。在有了基本知識後,才會教讀者如何正確地對資料表收集統計資料,然後進一步推算SQL指令的成本,完成真正有效的最佳化。