書名:大話重構
作者:范鋼
出版社:博碩
出版日期:8/27/2015
條碼:9789864340460
內容簡介
當你接受一個遺留系統被賦予新增功能的任務時,首先,你會去看看原始碼,糟糕,原始碼一團亂,怎麼辦呢?是重構後加入新功能,還是另外寫新功能不要去碰觸舊有的程式碼呢? 面對運行了許久的大型遺留系統,工程師常常糾結在「改」還是「不改」的抉擇中?而在大多數的情況下,台灣的工程師總是決定對於遺留系統採取容忍的態度,一忍再忍,再忍,忍,還要忍……終於累積到了某一天,實在是忍無可忍時,拍案而起,不能再忍了,終於喊出「我要重構!!!」事情就這樣發生了。然而,此時你會突然發現,重構的工作千頭萬緒,不知從何開始。
還是回頭拿起書架裡的重構教科書來看看吧,就是那本由兩位大師Martin Fowler, Kent Beck和其他三人合寫的《Refactoring: Improving the Design of Existing Code》,想要在其中找找看怎樣來重構比較妥當。這本重構經典書告訴你,要重構就不能把原有功能給破壞了,所以在開始重構之前,首先應建立起「自動化測試」。好的,那我們就去打開測試程式吧!什麼,遺留系統沒有測試程式,那該怎麼辦呢?遺留系統不是用TDD開發的,那…那,我們要怎樣重構才能保證原有功能不會出錯呢?慘了,在第一關就卡住了。硬著頭皮幹吧,反正就是另外再寫新功能,不要去動到舊有的程式碼就對了。是的,這就是現實中大多數台灣工程師的作法。可是這樣做,程式碼的品質就越來越差了,不論是自己後面要再加新功能或者是丟給別人來接手,無疑都是場災難。
回過頭來說,那本重構經典書不就英雄無用武之地了嗎?嗯,雖然那本書寫得很好,但是不夠本土化。先來看看台灣的環境吧,在台灣開發軟體,起初都是工作室型態的,用最快的速度、最少的人力,開發出滿足客戶需求的軟體,快速上線運行就OK了。什麼程式碼品質,什麼可讀、可維護、易變更,全都不用考慮。別說測試程式碼,就是程式碼可測性都沒有人會去考慮。這樣的方式讓軟體開發公司快速拿到了第一桶金,但為日後的維護與軟體發展帶來了隱憂。而在美國情況完全不是這樣子的,寫程式就是該寫品質好的程式碼,就是該有測試,所以該書假設的前提都是對的,故而如何讓遺留系統建立起「自動化測試」,大師在書中隻字未提。換句話說,重構經典書的前提不適用於台灣。我們需要的是一本真正適用於台灣真實情況的重構書籍,而《大話重構》就是您最佳的選擇。也因此,本書被列為博碩文化《中文原創經典》的第一本書。
本書把常見的,如抽取類別、抽取方法、用多型取代條件等等數十種重構手法全部都放到附錄中(這些手法我們稱之為重構工具箱),因為那些在別本重構書籍裡通通查得到。本書當然也會提到那些工具,但並非本書的重點。本書要講的是重構的觀念(例如何時重構)、如何一步一步地重構,如何面對遺留系統,如何說服老闆來重構,本書所提的是一種系統與設計層級的重構,而非單單只是程式碼層級的重構。
本書會以真實的遺留系統案例,來親自示範如何一步一步地重構,直到這個系統可以輕鬆應付未來的變更。同時,本書也強調許多觀念,例如不要做大佈局,因為『大佈局,你傷不起!』,本書強調只做今天的設計,解決今天的問題,完成今天的重構,讓明天見鬼去吧。因為你不是先知,你無法預測未來,做過多的設計是在浪費時間,要做的是『好的設計』而非『過多的設計』。什麼是『好的設計』,那就是明確地分層解耦,讓你的系統很可很輕鬆地面對將來未知的需求變更。
本書作者的程式與設計功力深厚,但撰寫這本書時,常常能夠站在基層工程師的角度出發,例如,對於大多數老闆而言,重構沒有立即效益,所以要如何說服老闆對遺留系統進行重構給予支持,才是重構得以實行的關鍵。只要你有『一點點』設計模式的底子,相信這本書會協助您解決許多正面臨的困難。
本書既稱之為『大話』重構,自然在文字用語上會有一些特色,以下舉幾個經典例句:
■ 「小步快跑」
■ 糟糕設計零容忍!
■ 小設計可以讓你獲得成功!
■ 自動化測試——想說愛你不容易
■ 系統重構最後的一里路——測試的困境。
■ 活在當下,設計今天的程式,讓明天的變化見鬼去吧!
■ 測試與重構形成了一個「雞生蛋,還是蛋生雞」的奇怪循環。
■ 合久必分,分久必合——類別的歸併
■ 領域才是軟體系統的「心」!
■ 開發糟糕程式碼是可恥的!
■ 大佈局你傷不起!
■ 「兩頂帽子」
這本書是一本關於重構,實踐經驗分享的書,至於這本書能夠帶給您多少的領悟,還得由您細細體會。
立即查看
連老外都在用的英語「國民會話」大全集【虛擬點讀筆版】(附1CD+「Youtor App」內含VRP虛擬點讀筆) (5版)
類似書籍推薦給您
「連老外都在用」系列發行至今,
兩岸三地銷售突破五十萬冊,
連美國總統、記者、醫生、律師及工程師
都在使用這些國民會話!
《連老外都在用的英語「國民會話」大全集【虛擬點讀筆版】》
是一本一生受用的英語會話終極寶典,
是一本連老外都推崇讚賞的英語會話書,
是一本每個學習者都必備的語言工具書!
■廣受不同英語系國家老外一致推薦並共同審訂!
Matthew|英國牛津教學大師:學會話最正統的方式就是從一個字,再發展到句子,才能靈活運用在生活情境中。
Organis Rivers|澳洲籍英文教師:活用單字和句型,遠比學一堆文法和背一堆單字重要。
Ben Lawrence|美籍英語教學研究碩士:學習語言的最終目的便是溝通,學習派得上用場的會話才是最有用的。
Tiger Chen|華裔紐西蘭籍英文教師:連美國總統、記者、醫生、律師及工程師都在使用這些國民會話!
■用英語「國民會話」練口說,讓你馬上掌握開口說英語的技巧!
英語「國民會話」以美國小學課本為基礎編寫及延伸,是現今社會中最簡單、最常用、也最好用的會話!連美國總統、記者、醫生、律師及工程師都在使用,現在就開始學「國民會話」,馬上開口說英語!
■學習英語會話只要用對方法,馬上就能開啟英語學習興趣的大門,從此以後愛上學英文!
●7大美國最常使用情境:本書涵蓋7大美國生活情境「打招呼、情感表達、打電話、職場交際、逛街物、 交通出遊、居家會話」,所有老外在用的會話都能一網打盡。
●老外天天都在說這些:本書完整收錄美國人最常用的句型和文法,只要將這些句型套用進會話裡,讓你學1句,就能說10句,輕鬆跟老外用英語流利對話。
●一個字就能開口說英語:別以為老外懂很多單字,其實他們最常使用的單字不超過2,000個,所以單字不用背太多,只要一個字便可以道盡千言萬語。
【使用說明】
STEP 1. 分色、分類編排,查找會話好方便!
書中收錄實用的國民會話共1,675句,每句會話再加上衍伸或同義說法,總共約有3,000句。三篇分別以紫、紅、藍三色編排,方便讀者在使用這本國民會話書時快速查找:
1. 短句篇:聽不懂老外會話?有時老外真的不會用我們從課本上學到的句子說話,而本書的短句篇能你用最簡單的句子,說出最道地的英語!
2. 情境篇:依照生活頻率分類,包含七大美國情境「打招呼、情感表達、打電話、職場交際、逛街購物、交通出遊、居家會話」,每個分類再細分出不同狀況的說法,並加以解釋和補充同義說法,老外會話就是這樣學!
3. 句型篇:該是自己說出老外會話的時候了!句型篇依字母排列舉出428句最常用句型並以色塊表示,每句都附有例句說明以及中文解釋,當你了解這些句型的使用方式後,就能自然而然地跟老外說出流利英語會話了!
STEP 2. 深入學例句及生字補充,老外還給你貼心叮嚀!
每個句子皆搭配精選的實例會話,並有生難字詞的補充,讓你不但能了解會話用法,還能深入學習更多常用的單字片語,再加上老外時不時貼心叮嚀你會話使用時機和意義,讓你絕不出錯!
STEP 3. 邊看邊聽學會話,數位學習不落人後!
此書特別強調學習會話「聽、說、讀」個別的獨立功能,全書單字及例句皆附專業美籍老師錄製之音檔,除了使用CD聽取之外,也可以下載「Youtor App」(內含VRP虛擬點讀筆),掃描書中QR Code就能聽音檔,立即幫助讀者學習正統發音及改善聽力!更多細節,請參見下方說明:
1.在哪裡下載「VRP虛擬點讀筆」?
(1)讀者可以掃描書中的QR Code連結,或是於App商城搜尋「Youtor App」(內含VRP虛擬點讀筆)下載即可。
2.為什麼會有「VRP虛擬點讀筆」?
(1)以往讀者購買語言學習工具書時,為了要聽隨書附贈的音檔,總是要拿出已經很少在用的CD播放器或利用電腦,又或是轉存到手機來使用,耗時又不方便。
(2)坊間當然也有推出「點讀筆」來改善此種學習上的不方便,但是一支筆加一本書往往就要二、三千元,且各家點讀筆又不相容,CP值真的很低。
(3)後來雖然有了利用QR Code掃描下載檔案至手機來聽取音檔的方式,但手機不僅必須要一直處在上網的狀態,且從掃描到聽取音檔的時間往往要花個5秒以上,很令人氣結。
(4)因此,我們為了同時解決讀者以上三種困擾,特別領先全球開發了「VRP虛擬點讀筆」,並獲得專利,希望這個輔助學習的工具,能讓讀者不僅不用再額外花錢,且使用率和相容性也是史上最高。
3.「VRP虛擬點讀筆」就是這麼方便!
(1)讀者只要透過書中的QR Code連結,就能立即下載「Youtor App」(內含VRP虛擬點讀筆)。(僅限iPhone和Android二種系統手機)
(2)下載完成後,可至App目錄中搜尋需要的音檔或直接掃描內頁QR Code,將音檔一次從雲端下載至手機使用。
(3)當音檔已完成下載後,讀者只要拿出手機並開啟「Youtor App」(內含VRP虛擬點讀筆),就能隨時掃描書中頁面的QR Code立即讀取音檔(平均1秒內)且不需要開啟上網功能。
(4)「VRP虛擬點讀筆」就像是點讀筆一樣好用,還可以調整播放速度(0.8-1.2倍速),加強聽力練習。
(5)「VRP虛擬點讀筆」比點讀筆更好用,具有定時播放、背景播放的功能,也可以自動換頁或是手動點選想要的頁數,聆聽該頁音檔。
(6)如果讀者擔心音檔下載後太佔手機空間,也可以隨時刪除音檔,下次需要使用時再下載。購買本公司書籍的讀者等於有一個雲端的CD櫃可隨時使用。
(7)詳細使用及操作方法請見書中使用說明。
※雖然我們努力做到完美,但也有可能因為手機的系統版本和「Youtor App」(內含VRP虛擬點讀筆)不相容導致無法安裝,在此必須和讀者說聲抱歉,若無法正常使用,請與本公司聯繫,由專人為您服務。
立即查看