天馬行空浪漫魔幻的電腦書編輯。
閱讀&電影心得,心情雜記,小說創作,手作天然石飾品…。

黑心湖。the black lake 臉書專頁(Facebook Page)https://www.facebook.com/heixinhu
Ellen塔羅牌與仁倫動中禪:https://ellentarot.blogspot.tw/

2024年11月7日 星期四

編輯序/譯者序:《無瑕的程式碼 軟體工匠篇:程式設計師必須做到的紀律、標準與倫理》

這是我在B社翻譯、編譯的第2本作品,耗時4個多月,記錄了好多篇「工作負能量日記」,還因此買了時報出版的《圖靈傳》來看呢!但閱讀進度緩慢,目前還在上冊,也就是圖靈的少年時期,然後又被其他書吸引過去了,哈哈!

以下是收錄在《無瑕的程式碼 軟體工匠篇》中的譯者序。試讀頁能挑選的有限,我希望挑選更多內文讓讀者參考,所以這次就沒有擷取審校序、譯者序或推薦序了。在此利用個人的部落格空間,提供給有興趣購買本書的讀者參考。(審校老師也有把他的審校序放在他自己的部落格上,有興趣的讀者可以搜尋他的部落格:https://blog.kkbruce.net/。)

不要老王賣瓜自賣自誇的話,單純從一位讀者的角度來看,老實說,《Clean Craftsmanship》並不是Uncle Bob寫得最好的作品,但肯定是他放最多感情的一本。(btw我個人覺得寫得最好而且必看的是《Clean Architecture》。)如果說《Clean Agile》是寫給敏捷社群的情書,《Clean Craftsmanship》就是寫給整個程式設計/軟體開發社群的告白/告解。

《Clean Craftsmanship》其實更像是兩本書合二為一:中間有將近一半的篇幅在講解測試驅動開發(TDD)和重構等技術,這部分我覺得其實可以獨立出來成為一本小書;至於前半與後半的篇幅則是經驗談,我尤其喜歡Part III,總覺得Uncle Bob講得不夠多,應該再寫更多一點,獨立出來成為另一本小書。我特別喜歡與歷史有關的所有描述,可以感覺Uncle Bob寫得迷人,對這一塊也很有興趣,果不其然,他在《Functional Design》後即將於今年底出版的作品,就是一部程式設計史

看目錄就知道,又是一本要查資料查到昏頭的書呢!很想挑戰看看,但B社是否會簽下這本書,或是否願意讓我再次分飾翻譯編輯這兩個角色,未來的一切都很難說。我唯一能說的就是《Functional Design》正在緩步製作中,我初步讀過一遍原文書,是一本徹頭徹尾的技術書(不愛歷史和講古的讀者可以鬆一口氣了),有興趣的讀者請再稍候一下下。


********************
Translator's Preface
譯者序

翻譯《無瑕的程式碼 敏捷篇》(以下簡稱《敏捷篇》)時,有一段內容讓我印象特別深刻:

我們身處的這個行業,極度需要提升我們的專業素養。我們經常失敗。我們推出太多的垃圾產品了。我們接受太多的缺陷。我們做出了糟糕的取捨。多數時候,我們表現得像是拿著一張新信用卡的叛逆青少年。在那個單純的年代,這些行為是可以被容忍的,因為風險相對較低。在70 年代和80 年代甚至90 年代,軟體故障的成本固然很高,但卻是少見且可被控制的。⋯⋯現在情況不一樣了。(《敏捷篇》p.45)

怎麼個不一樣法?在《敏捷篇》中,Uncle Bob 僅點到為止。不過,在《無瑕的程式碼 軟體工匠篇》(以下簡稱《軟體工匠篇》)中,Uncle Bob 簡直像是開啟「老人講古」模式,滔滔不絕,從公元前講到21 世紀,跟我一樣喜歡飛行史(!)、科技史和軟體發展史的讀者,肯定會很喜歡《軟體工匠篇》「第1 章」和整個Part III 的討論。(雖然翻譯的時候要查很多資料,一點也不輕鬆!)

喜歡程式碼實作的讀者也別急著走!本書有一半的篇幅是程式碼的實作與討論,深入探討TDD 與重構等熱門主題。只要花3 分鐘(!)讀完我耗時3 天才翻譯完的「第1 章」,「第2 章」到「第5 章」就有滿滿的程式碼囉!

(笑得你心裡發寒)

如果說《敏捷篇》聚焦的是「敏捷」的歷史與現況,那麼《軟體工匠篇》反思的就是「程式設計師」這個角色一路走來的足跡,以及這個專業應該勇敢扛起的社會重擔。該怎麼提升「程式設計師」的專業素養呢?我們要遵守五大紀律,也就是TDD、重構、簡潔設計、合作寫程式和驗收測試。該怎麼確認自己或其他人有好好遵守這些紀律呢?我們需要符合三大標準(三大期望),也就是穩定的生產力、良好的品質和誠實的估算。然而,在遵守紀律、達成期望的同時,我們也要守住倫理道德這最後一道防線:如果不確定能趕上截止日期,就要勇敢地說不確定;『你必須堅守立場。如果答案是否定的,那麼你必須堅持這個答案,不要屈服於壓力』(《軟體工匠篇》p.306);『對於沒有把握的承諾,拒絕是絕對有必要的。』(《軟體工匠篇》p.408)

(雖然我在翻譯這幾段時,不免要悲觀地覺得,Uncle Bob 眼中的職場是不是太過理想化了呢?)

2024 年7 月19 日的Microsoft(微軟)全球大當機事件,也讓我聯想到《軟體工匠篇》的前言和Part III 中,那些因軟體「失靈」而導致的重大災難。即使在日常生活中,我們不常遇到這些極端的情況,但每個人肯定都經歷過軟體「小故障」所帶來的不便,例如無法轉帳或提款、無法訂票、無法傳送訊息、無法點餐等等。焦躁不安地等待軟體恢復「正常」的同時,我們也深刻地體會到,整個社會有多麼依賴這些軟體系統。一旦它們出現問題,我們的生活簡直就像一夕之間回到石器時代一樣,百無聊賴、不知所措。

如今,從睡醒睜開眼睛的那一刻起,甚至在睡眠期間,軟體無時無刻都在掌控並影響我們的生活。「軟體」及「程式設計師」在現代社會中的關鍵地位,不言而喻。身處軟體產業(我甚至可以說,身處「IT 書籍出版業」),有意識地知道自己打造的產品會影響各行各業、各年齡層、各個角落的使用者,是很重要的。在感到迷惘或熱情消逝的時候,請讓Uncle Bob 成為你在軟體開發這條路上的資深嚮導,也希望《軟體工匠篇》這本書的「品質」符合「期望」,能成為各位讀者在開發過程中的精神儲糧。

最後,特別感謝陳傳興(Bruce Chen)老師的專業審校,他協助修正了書中的技術用詞與概念,為讀者帶來更精確的知識分享。

盧國鳳
美國加州大學戴維斯分校東亞研究系學士
現任B社資深編輯與翻譯

********************

以下是今天「工作負能量日記」中的小小抱怨,純屬個人想法,不代表B社立場:

在譯稿上費盡心思,豈料功虧一簣,今天看到成品簡直欲哭無淚。

今天學到一個新術語,叫做「絲向」,原來紙有分直、橫絲,簡單來說就是同仁和/或廠商在沒有提醒編輯的情況下用了直絲(還是橫絲?坦白說我也聽不懂),導致書籍無法平攤在桌面上的慘劇。我只知道之前其他書沒問題,就這本運氣差。


左邊是《無瑕的程式碼 軟體工匠篇》,我必須用手指壓著或扶著書頁,右邊是《Martin Fowler的企業級軟體架構模式》,兩本書同樣厚度,右邊卻可以很自然地攤平。


到一張無人的空桌上拍攝對比照,站起來的Uncle Bob和躺著的Martin Fowler(唉)

其他社或許不是如此,但B社的最底層絕對是編輯,沒有話語權,鍋都給妳揹。還能說什麼呢,只能接受啊,再刷時再幫妳用正確的紙啊,不然妳想怎樣?

拿到書的喜悅,瞬間喜劇變悲劇,就像期待一道擺盤精美的料理,入口卻有屎味一樣,整個人怒氣都上來了,要等首刷賣光,才能再刷時修正,有考慮到買首刷的讀者的心情嗎?生氣耶!屆時讀者來抱怨又是誰要負責呢?(大聲嘆氣)

但木已成舟,只能拍照自娛娛人,同事笑說看起來很像展翅高飛的不死鳥,祝它在排行榜上飛高高。所以如果讀者來問,我就要說這是首刷限定版只有首刷的才會 khia khi lai (台語站起來)哦~還不快來收藏「展翅高飛版」(被讀者揍飛

總之,閱讀這本書的時候,請用力的壓扁它就是了,一直翻閱一直壓,應該就會順手了吧(趕快逃走~)


2024.11.07.


沒有留言:

張貼留言

歡迎留言。廣告一律刪除。