標籤:寫作
我的書籍版權頁
我現在已經寫過不少書,時不時會有人問我使用什麼工具寫作。多年來,我已經開發出一套相當不錯的工具鏈,至少對我來說是這樣,所以以下是我對所有工具如何相互配合的看法。
電子書的感想
我得到第一台電子書閱讀器才剛過一年。現在我只有在真的必要時才會購買紙本書。我寫上一本書時,主要還是以紙本書為考量,但那會是最後一次,未來電子形式將會是我最優先考量的。這些改變將徹底改變書籍的樣貌,但除此之外,後續的步驟還不明朗。
撰寫軟體模式
我投入許多寫作精力來撰寫模式。時不時有人會問我為什麼這麼做,以及什麼才是好的模式。這是一篇簡短的文章,說明我如何看待模式,以及我對有興趣撰寫模式的人的建議。
模式
我在 IEEE 專欄中探討模式對了解軟體設計的寶貴貢獻。
使用 XML 寫作
到目前為止,我已經使用 XML 進行大部分的寫作,甚至到使用 XML 撰寫我上一本書的程度。當我向別人提到這件事時,他們問了我許多關於我經驗的問題,這促使我寫了這篇關於這整件事的小文章。
使用 ChatGPT 作為技術寫作助理
一位經驗豐富的技術作者探索使用 ChatGPT 來協助多項寫作專案。他發現 ChatGPT 可以透過草稿和提示提供更多內容來節省時間,但缺乏準確性和深度,而且過於樂觀。總體而言,如果你反覆運算、提出經過精心設計的提示並要求提供少量內容,它會很有用。
我如何使用 Twitter
我採取的措施,讓 Twitter 變得有用,並避免浪費時間
探索 Mastodon
由於 Twitter 目前的狀況不確定,我開始探索使用 Mastodon
軼事證據
軟體開發領域令人沮喪的一點是,很難在不同的技術和工具之間做出選擇。通常,當有人談論這一點時,會被要求提供「硬數據」,證明該技術或工具優於其他替代方案。這是一個可以理解的要求,但最終會失敗。首先,我們無法衡量生產力。
反模式
Andrew Koenig 最初在 JOOP 的一篇文章中創造了「反模式」一詞,很遺憾的是這篇文章在網路上找不到。我記得,這個概念的重點在於,反模式乍看之下似乎是個好主意,但會讓你陷入困境。從那時起,這個詞經常被用來表示任何壞主意,但我認為最初的重點更有用。
訴諸權威
時不時會有人不只不同意我說的話,還會對我說的話感到驚慌。「當你這樣的專家說了什麼,很多人會盲目地照著你的話做」。
避免影片
製作和編輯影片過去是一項昂貴的工作,但現在相機和編輯軟體都很便宜。因此,像我這樣的大嘴巴開始製作影片,以幫助傳播自己的想法。這樣做的原因有很多,這是一種可能性很大的媒介,它適合像我這樣在舞台上口才很好的人,而且有很好的證據表明人們會付費觀看影片,這對一個人的收入和作為人們認真看待的證據來說都是好事。儘管有這些原因,到目前為止我還沒有採取行動。
書籍程式碼
最近我寫的生產程式碼不多,但我仍花了很多時間在寫程式碼。這些程式碼是特定形式的程式碼,用於說明書中的概念。書籍程式碼與實際程式碼不太一樣,在撰寫時需要考慮一些不同的力量。
程式碼範例
我寫設計,而且我的觀點是,即使在討論抽象的設計模式時,提供原始碼範例也很有用。當然,這可能會讓人認為程式碼範例就是模式,但我認為程式碼提供的精確性大於這種風險。有幾次我不太確定某個概念,但程式碼範例有助於我釐清它。因此,在我撰寫設計時,我總是嘗試提供程式碼範例。
比較價值
敏捷軟體開發宣言 最引人注目的事情之一,就是其價值的格式「我們偏好 x 而非 y」。我不記得這個想法是誰提出的,或它是如何產生的。它可能只是在我們提出各種想法時自然而然產生的。但其獨特的格式已導致一些人嘗試再次使用該格式。
雙面書
上週我收到了我簽名系列的最新書籍:Gerard Meszaros 的 xUnit 測試模式。我已經和 Gerard 斷斷續續合作了好幾年,所以我相當熟悉其內容,但不知何故,看到實體書還是讓我相當震驚。不知何故,我沒有意識到這本書有多大 - 883 頁,很容易成為我系列中最大的書。
不斷演進的出版
當我開始我的寫作生涯時,我是從為技術雜誌撰寫文章開始的。現在,當我撰寫文章長度的文章時,它們都是為網路撰寫的。紙本雜誌仍然存在,但它們是一個正在萎縮的少數,可能註定要滅絕。然而,儘管紙本雜誌日漸凋零,但紙本雜誌的許多假設仍然對作家和出版商產生影響。這在我最近與一些想要在我的網站上發表文章的人的對話中特別明顯。
說明性架構
我們對軟體系統的理解成長中所面臨的一個問題,在於我們所看到的範例不夠多。在許多專業領域中,人們透過觀察既有成果來學習。範例能提供靈感、良好的點子來源,以及困難點的警示。長久以來,透過這種方式來學習軟體的難度高出許多。
John Vlissides
週末時我聽聞了一個令人難過的訊息,John Vlissides 在與癌症長期抗戰後過世了。John 最為人所知的身分是「四人幫」成員之一,他們寫出了可能是 有關軟體設計寫得最好的書。
一般性建議的限制
作為一位軟體開發的作家和演講者,我對我們的專業領域提出了大量的普遍建議。無論是像說明 DecoratedCommand 如何運作那般具體,或是像如何思考你的 SoftwareDevelopmentAttitude 那般富哲理,我所製造的噪音無窮無盡。此外,我僅是廣大提供一般性建議社群中的一員:作者、分析公司、記者,這些建議多到沒人能讀完。
更多版本控制
作為一個時常使用版本控制的人,我認為版本控制可以擴展到更多電腦使用領域。除了軟體開發人員之外,很少電腦使用者使用版本控制。然而,軟體開發人員都知道,版本控制是一種絕佳的協作工作機制,允許多人共同作業於單一軟體系統。版本控制更廣泛地被使用會帶來什麼好處?
動態圖形
由於我在演講中再次使用投影片作為視覺頻道,我開始利用附有圖表的動畫來協助傳達我的論點。主要的簡報程式(Keynote 和 Powerpoint)早已支援動畫,但我傾向尋找功能更強大且更易於使用的動態圖形工具。
遠離 Xslt
這個網站的所有內容都是以簡單的 XML 文件撰寫,並轉換成 HTML。我發現這非常好用,而且表示我永遠不必擔心處理 HTML 格式。(你可以看出,花俏的版面並非我的風格。)我甚至 用這種方式寫了一整本書。
多重桌面
幾年前,我改變了工作生活中的重要面向。在那之前,我試著只用一台電腦(或更嚴格地說,只用一個硬碟)。我所有工作檔案都放在我的筆電硬碟裡。如果我使用桌上型電腦,我會透過檔案分享功能使用那些檔案。
新語
新語
1:一個新字、用法或表達方式。
2:精神病患者創造的無意義單字。
如果你讀過我很多文章,你會很快發現我是一個強迫性的新語創造者。我總是希望能想出新字和新片語,事實上,這個 bliki 就是圍繞著這個習慣設計的。
模式分享
Microsoft 發布了一個新的社群資源,稱為 PatternShare。這個想法是匯集許多模式作者的模式摘要,並提供一個平台來討論和進一步探討它們之間的相互關聯。這項工作的很大一部分是由 Ward Cunningham 領導的,他的模式譜系是無與倫比的。你會在那裡找到我、GOF、POSA、Hohpe/Woolf、Evans 和 Microsoft 的模式。
模式並非新鮮事
關於模式書籍的一個常見抱怨是,它們對有經驗的開發人員來說沒有什麼新東西可說。(我最近在亞馬遜評論和 The Server Side 上收到了一些這樣的評論,所以也許我現在有點敏感。)這不僅是真的,而且是模式的重點。
基座恐懼症
我作為一名作家的成功之一是,我成了一個小有名氣的怪咖名人。這是一個非常小的名氣,通常只在怪咖會議中發揮作用(儘管我在舊金山的一家餐廳裡有幾次遇到有人走過來找我。)在我成名之前,我對這件事並沒有想太多,除了對名聲的輕微渴望。現在,這件事發生了,我更意識到它了——總而言之,我討厭它。
語義擴散
我習慣創造 新語 來描述我在軟體開發中看到的事物。這是這個領域的作家中常見的習慣,因為軟體開發仍然缺乏許多有用的術語。建立術語的一個問題是,術語容易失去其意義,這是一個語義擴散的過程——使用另一個潛在的術語來增加我們的術語。
簽名系列準則
時不時有人詢問如何讓自己的書進入我的簽名系列。市面上有很多書系,每個書系都有自己的一套標準來決定要收錄哪些書。以下是我的決定方式
Smalltalk 書籍
時不時會遇到想取得一本 Smalltalk 書籍,一探究竟的人。我以前最喜歡的 Smalltalk 入門書籍 已經絕版,但我剛發現現在可以 從這裡下載,還有許多其他與 Smalltalk 相關的資料。這些資料由 Stéphane Ducasse 提供,他曾與人合著一本關於 重構模式 的好書。
社交網路
我沒酷到可以收到第一波邀請,但我現在已經加入 Google+,這可能是社交網路的明日之星。在這個重大時刻,我寫下自己到目前為止使用社交網路的方式,以及對 Google+ 影響的一些無知推測,似乎頗為恰當
標準說
如果你讀過很多標準文件,除了需要大量咖啡之外,你還需要小心某些字詞的過度使用。
翻譯
花時間閱讀這個部落格無傷大雅,但有些人喜歡翻譯它。因此,我要歡迎 泰文翻譯,這是一個由 Wee Witthawaskul 領導的團隊所翻譯的。大約 15 年前,我以典型的西方背包客遊客身分造訪泰國。我對曼谷的河上巴士、在 Pai 附近健行、在皮皮島浮潛,以及一些美食,都有美好的回憶。我第一次遇到 Wee 是在他與 Ralph Johnson 共事時,現在他已加入 Thoughtworks。
UI 模式讀物
2006 年夏天,我做了大量關於 UI 模式 的工作。從那以後,由於我的主要寫作重點轉移(儘管不太明顯)到 DomainSpecificLanguage,它們就一直處於冰點狀態。在此頁面上,我將記錄與該工作相關的鏈接,這些鏈接是我喜歡的寫作。
使用 XML
XML 已經存在一段時間了,並且被廣泛使用 - 確實比它應該被使用的更多。與大多數工具一樣,XML 適用於某些事情,但不適用於其他事情