先整理一下?|個人層面的軟體設計考量
類似書籍推薦給您
【簡介】
讓程式碼重獲新生
一大堆凌亂的程式碼,我應該要直接修改,還是《先整理一下?》......
凌亂的程式碼是每位開發者的挑戰與痛苦根源,新手與資深工程師都曾在複雜結構面前無從下手。而程式碼的清晰與結構優雅,卻是軟體可維護性與可擴展性的關鍵。
有了這本書,你將不再懼怕那些讓人抓狂的程式碼,學會如何以安全又有效的方式處理它們,同時改變你看待軟體設計的方式。
程式設計大師 Kent Beck 將其深厚的開發經驗,梳理成簡單明瞭的範例,讓我們在不改變系統功能的前提下,逐步學會清理程式碼、優化結構,進而提升整體設計水準。
這本書,不只是為了「整理」,更是為了讓每位開發者重新找回創作的信心與樂趣。
--------------------------------------
「設計就是我們用程式碼所繪製出來的形狀,Kent則幫助我們繪製出更好的形狀。 這是一本談論重要主題的重要書籍。」
——Dave Farley / Continuous Delivery有限公司創辦人兼董事
「本書針對各種不同程度的開發人員,提供了許多實用的技巧,可協助大家改進手邊正在處理的各種程式碼。」
——Sam Newman / 獨立顧問、技術專家,同時也是《建構微服務》和《單體式系統到微服務》這兩本書的作者
「《先整理一下?》這本書裡的想法其實都很簡單,但當你讀到這些想法時,心裡一定很想知道,為什麼這麼多想法自己從來都沒想過。 我要推薦這本書,給所有在意程式碼乾不乾淨、可讀性好不好的人。」
——Gergely Orosz / The Pragmatic公司的工程師
亂七八糟的程式碼,處理起來最麻煩了。為了讓程式碼更容易讀懂,「整理」程式碼時經常要把程式碼切成好幾塊。在這本實務指南中,身為極限程式設計創造者與軟體模式先驅者的作者Kent Beck 建議我們,可以在何時何地去整理程式碼,以提高程式碼的品質,同時兼顧系統的整體結構。
本書並不會一下子就要你掌握所有的整理技巧,而是讓你先去嘗試一些對你的問題很有意義的範例。 如果你有一個很大的函式,其中包含許多行的程式碼,你要先學會如何把它合理切分成許多比較小的程式碼片段。在閱讀本書的過程中,你就能學會軟體設計背後的理論:耦合、內聚、現金流的折現效應以及選擇性等概念。
本書將會協助你:
.瞭解軟體設計的基本原理,以及各種會影響軟體設計的力量。
.針對系統在行為上與架構上的改變,探索這兩者之間的差異。
.改善你的程式設計體驗:有時可以先做整理,有時可以後做整理。
.學會如何把一些比較大的改變,拆解成比較小、比較安全的好幾個步驟。
.把軟體設計當成人類關係的一種課題。
【目錄】
引言
前言
簡介
第一部分 整理
第1章 守衛語句(Guard Clause)
第2章 沒用到的死程式碼 (Dead Code)
第3章 用同樣的寫法做同樣的事 (Normalize Symmetries)
第4章 舊的實作方式,搭配新介面 (New Interface, Old Implementation)
第5章 閱讀順序
第6章 內聚順序
第7章 把宣告與初始化放在一起
第8章 具有解釋效果的變數
第9章 具有解釋效果的常數
第10章 明確的參數
第11章 把程式碼切成一塊一塊的
第12章 提取輔助函式
第13章 堆成一堆
第14章 具有解釋效果的註解說明
第15章 刪除掉多餘的註解
第二部分 管理
第16章 把整理工作切分出來
第17章 連鎖效應
第18章 每批所包含的整理數量
第19章 節奏
第20章 解開糾纏
第21章 先做、後做、晚點再去做、完全不做
第三部分 理論
第22章 讓元素以有益的方式關聯起來
第23章 結構與行為
第24章 經濟學 - 時間價值與選擇性
第25章 今天的一美元大於明天的一美元
第26章 選擇權
第27章 選擇權 vs. 現金流
第28章 結構上可逆的改變
第29章 耦合
第30章 Constantine 等式
第31章 耦合與解耦
第32章 內聚
第33章 結論
附錄:相關的閱讀清單和參考文獻
索引
立即查看
軟體開發者職涯應變手冊|穿越職涯迷霧的絕佳導航 (1版)
類似書籍推薦給您
【簡介】
✨《Being Geek晉身怪傑》作者的最新續作,帶你穿越職涯迷霧的絕佳導航 ✨
在某些時候,我們會忽然意識到,職涯中有許多人事物比寫程式碼更重要......
這是一個改變的SIGN嗎?該突破現狀嗎?要如何選擇更好的決策呢?
與其在尋找方向時迷航打轉無法定錨,不妨先來看看別人的故事怎麼發展。
超過40篇獨立且引人入勝的職涯故事,陪你一起思考每個重要時刻的選擇,無論是面試、離職還是人際互動,助你在步步為營的職場中成長,同時做出更好的職涯決策,實現人生和職業的雙重成功!
-----------------------------------------
「能與Michael Lopp成為朋友的人,甚至他就是你的頂頭上司,那我要說你真的有夠幸運。我們其他人也別傷心,我們手上有這本書就夠了。本書內容堪比無價之寶,只要花一點時間閱讀,必能獲得數倍回饋。」
──Seth Godin
《這才是行銷》作者
軟體工程師在職涯發展的某些時刻,終將意識到自己在工作上不僅僅是撰寫程式碼,還需要面對更多其他面向的挑戰,像是我現在該成為管理者嗎?還是我應該加入新創團隊?本書作者Michael Lopp以饒富興味的內容帶出其個人見解,分享他多年來在Apple、Slack、Pinterest、Palantir、Netscape和Symantec等多家矽谷頂尖企業工作的經歷,回顧那些曾經攸關成敗與否的決策瞬間,並提供寶貴洞見,幫助讀者在職涯的每個十字路口做出更明智的抉擇。
作者Michael Lopp以40多篇獨立而精彩的故事,帶領讀者完整經歷一份工作的生命週期,從面試入職開始談起,一直到最後意識到自己或許該離職,尋找下一份工作。作者以真摯且實用的建議,帶領讀者從書中學到如何處理工作中各種令人費解的情況、了解自己希望從職涯中獲得什麼成果,以及探尋如何在職場上脫穎而出。
‧除了撰寫程式碼,還要學習如何摸索出工作中其他範疇的發展方向。
‧確認自己會如何享受工作中的各種面向,日後將影響職涯發展的下一步。
‧在社群內建立核心關係與互動,並且投注心力長久維繫。
‧針對「縝密規劃的職涯」做出有利的選擇。
‧理解主管關切的重點,致力於真正重要的工作事務。
【目錄】
PART I | 建立職涯發展指南
1 | 致勝之道
2 | 三要點清單
3 | 三年之癢
4 | 電話面試:團隊適性評估
5 | 緊張與不安
6 | 啟動對話「按鈕」
7 | 事業
PART II | 解析管理結構
8 | 最棒的工作效率
9 | 組織文化結構圖
10 | 掌握上司的管理風格
11 | 向上管理
12 | 彈跳人
13 | 敵對型主管
14 | 不可能的任務
15 | 本能反應
16 | 定期召開日常乏味的會議
17 | 玩轉激勵系統
18 | 御狼術
19 | 撲克牌遊戲 BAB
20 | 屬於你的人脈
21 | 我們「徵」的需要你
22 | 職場毒瘤悖論
23 | 職責所在
24 | 職場友善的核心
PART III | 日常工具組
25 | 電腦怪咖手冊
26 | 培養工作鑑別力
27 | 點滴清單
28 | 疫情之下,我們損失了什麼
29 | 以鍾情原則找到令人狂推的工具
30 | 放空
31 | 克服簡報恐懼症
32 | 大聲說出精采的故事
33 | 程式技術、功能和真相
34 | 亮點
35 | 自我破壞清單
36 | 查核工作、尋求協助、放慢腳步
37 | 好吧,所以呢,你無法下定決心
PART IV | 下一份工作
38 | 會議刁難情境
39 | 沒有意外就沒有傷害
40 | 縝密的職涯規劃
41 | 矽谷的魔咒
42 | 管理技巧揭密
43 | 當心離職缺口
44 | SOHO 廣場的大提琴演奏
45 | 離職潮
46 | 光明未來的隱憂
尾聲:迫切的渴望
A | BAB 遊戲規則說明
立即查看
C++軟體設計|高品質軟體的設計原則和模式 (1版)
類似書籍推薦給您
簡介
「這本書幾乎會提升每位C++程式設計者的技能,書中充滿了實用的設計模式和引人入勝的想法,我從這本書中學到的東西遠遠地超過了我的預期。」
-Mark Summerfield
Qtrac有限公司負責人
好的軟體設計是專案成功的要素,但設計軟體很難。你需要深刻的理解設計決策的後果,並對可用的設計選擇有很好的概觀。透過這本書,有經驗的C++開發者將獲得使用這種現代程式語言進行軟體設計全面、實用和無與倫比的概觀。
C++培訓師和顧問Klaus Iglberger說明了如何管理依賴性和抽象化,提升軟體實體的可改變性和可擴展性,以及應用和實作現代設計模式,以幫助你利用現今可以選擇的方法。軟體設計是軟體專案最不可少的面向,因為它影響著軟體最重要的屬性:可維護性、可改變性和可擴展性。
‧學習如何就軟體設計而言評估你的程式碼
‧理解什麼是軟體設計,包括像是可改變性和可擴展性等設計目標
‧探討每種設計方法的優點和缺點
‧學習設計模式如何幫助解決問題和表達意圖
‧選擇設計模式的正確形式,以充分利用它的優勢
作者介紹
Klaus Iglberger 是一名自由C++培訓師和顧問的工作者。他透過世界各地廣受歡迎的C++培訓課程分享他15年的C++專業知識,並且經常在C++研討會上發表演說,自從2010年獲得博士學位以來,他一直專注在大型軟體設計和提升軟體的可維護性。
目錄
前言
第1章|軟體設計的藝術
第2章|建構抽象化的藝術
第3章|設計模式的目的
第4章|Visitor 設計模式
第5章|Strategy 和 Command 設計模式
第6章|Adapter、Observer 和 CRTP 設計模式
第7章|Bridge、Prototype 和 External Polymorphism 設計模式
第8章|Type Erasure 設計模式
第9章|Decorator 設計模式
第10章|Singleton 模式
第11章|最後一個指導原則
索引
立即查看
全棧測試|交付高品質軟體的實務指南/Full Stack Testing (1版)
類似書籍推薦給您
「Gayathri的書能為團隊帶來測試的全面性觀點。」
-Neal Ford
Thoughtworks總監/架構師/Meme Wrangler,《軟體架構:困難部分》作者
「Gayathri的書應該出現在所有寫軟體(以及測軟體)的人桌上。」
-Saleem Siddiqui
《Test-Driven Development學習手冊》作者
對任何想產出高品質軟體的組織而言,測試都是不可迴避的課題,本書中,我們提供了10種不同類型的測試工具,為軟體開發與品質工程師帶來一站式的測試指南,您將會了解到測試的策略、概念、實踐等知識,並將這些知識使用在網頁或手機應用的開發與測試階段。
作者Gayathri Mohan為讀者準備了40種以上可以立即上手的測試工具,不論是測試新手或老手,都可以將這些技巧應用在測試工作上,藉此增進軟體的性能、安全性、與可用性(accessibility)。本書涵蓋的測試手法包括探索性測試、自動化測試、跨功能測試(cross-functional testing)、資料測試、手機端測試等,此外讀者還可以認識到該如何將這些測試整合進CI(continuous integration)流程中。透過本書,您將能以品質為中心去處理軟體開發過程中的各種挑戰。
您可以透過本書獲得下列知識:
‧學習如何部署各種測試方案,讓手上的專案獲得高品質的產出
‧透過書中介紹的策略與概念探索出新的測試方法
‧從範例學習到該如何將測試工具應用到實際的工作中
‧藉由廣泛的最佳測試實踐來增進自身的測試技巧能並推動職涯發展
第一章 全棧測試簡介
第二章 手動探索測試
第三章 自動化功能測試
第四章 持續測試
第五章 資料測試
第六章 視覺測試
第七章 安全測試
第八章 性能測試
第九章 可用性測試
第十章 跨功能需求測試
第十一章 行動測試
第十二章 邁出測試之外
第十三章 新興技術測試簡介
立即查看
Visual Studio 2010 Ultimate 軟體工程實戰手冊
類似書籍推薦給您
立即查看