[213] 該死的範例碼之爭,卷二

卷一說明範例碼之所以被稱為範例碼是有原因的。然後「複製貼上」範例碼到專案用的傢伙,首犯警告,再犯永不錄用。 再舉個例子。底下影片旨在說明 std::thread 的基本用法。影片裡用了全域變數來控制執行緒結束的時機。實務上,全域變數會讓程式碼變得難改、難測,應盡量避免。那麼以這支主要目的是介紹 std::thread 的影片來提問: 你會因為用了全域變數就說這是作者平常的撰碼習慣嗎? 你會因此認定作者頻道上所有影片的示例都是糟糕的嗎? 你會因為用了全域變數而認定該影片是錯誤示範嗎? 上述提問,我的回答都是:不會。你呢? 其實這篇原稿有許多沉不住氣的反諷最後改掉了。沉不住氣的原因是看了一些令人不知該哭還是笑的留言。一起來瞧瞧。 後山小門處有大便一坨 這佛寺裡肯定大便滿窩 有人說: 不是 legacy code 問題,而是 多層 if then else, 連一個 example 都寫這樣,可想他們內部必然是這種 Style... 這麼肯定?以微軟這種規模的軟體公司每個人的能力都會在同一個水平?Windows…

[209] Droplr 的大改版完全變了調

看到 Electron v2 即將推出的消息,怒火又燒起來了。 前陣子 Droplr 的 Desktop app 大改版,v3 砍掉重練。安裝了 Droplr v4 不到十分鐘,我又懂了為什麼 Joel 對於重寫軟體採取極度保留的態度。Droplr v4 for Windows desktop,爆爛的! Electron DNA Again 絲毫不意外,Droplr 團隊決定使用宇宙霹靂無敵人見人愛跨平台什麼都能砍砍了就活不下來的 Electron 開發框架來建構其歷來最大的改版。Electron 在新創圈幾乎所向無敵,投票表決用什麼工具來開發跨平台 Desktop app,Electron 絕對高票當選。原因為何?我猜測: 團隊成員都是 Web app 出身,用這個來寫 Desktop app…

[208] 該死的範例碼之爭,卷一

往下讀之前,請先回答這個提問:「文件上的範例碼該不該設計成適合『複製貼上』至真實專案?」 前篇 是我對網路爭論的處理態度。這一篇認真來看「該死的範例碼之爭」。起因是底下這篇公開文章: 覺得我對MS有偏見的人,請按下去看看MSDN官方的sample source code吧....誰在公司真的這麼寫,我一定會砍死他... (出處) 批評的對象是微軟 MSDN 上的範例碼,被批的原因是使用了 Nested-if,而且多達九層甚至十一層。 扣掉那句「砍死他」,我同意原 Po 對使用該範例碼者的批評,若是在真實專案這麼寫,我也不能接受。不過,留言處歪得太厲害,有些觀念糟糕到讓人看不下去。手癢、頭皮癢,開始對牛彈琴。首先提問: 那是不是範例碼?是。 原 Po 知不知道那是範例碼?知道。 該範例碼是否有改進空間?有。 該範例碼是否達成任務?八成。 該範例碼是否有誘人直接用於真實專案的意圖?我認為沒有。 能不能把該範例碼複製貼上到公司的專案裡直接套用?…

[201] 舒適圈

小明每天早上都要吃一顆白饅頭,數年如一日,對小明來說,吃了白饅頭才有動力幹活,一點不為過。 友人告訴小明,偶爾吃吃包子,換個口味,感受不同的滋味,生活更豐富。 小明心想... 這白饅頭才是一天的開始,包子不是。饅頭是方的,包子是圓的。吃了包子後,接下來的工作一定不順利,我幹嘛冒這個險。 饅頭沒有內餡,單純不會有意外。包子內餡不知道包什麼,若是沒蒸熟怎麼辦?吃了以後拉肚子,接下來的工作一定不順利,我幹嘛冒這個險。 過去數十年,我天天吃饅頭,工作大多很順利,雖然有時會膩,稍微影響工作,但我還是活過來了啊。而且,有誰能跟我保證,吃了包子會讓工作更順利?沒有嘛,那我幹嘛冒這個險。 就這樣,小明依舊每天早上一顆白饅頭,日復一日,年復一年...…

[195] 笨蛋!重點從來不在打字速度

每隔一段時日,我就會重提打字(鍵盤敲擊技)之於碼農的重要性。速度快又平穩的敲打鍵盤,把腦中的想法於電腦中實現,「盲打」是專業碼農的基本技能: 前線碼農必備戰技—鍵盤敲擊技。別說我沒提醒你,英打每分低於五十字真的有些低,寫到履歷裡,很難讓人相信你的實力。一天半小時,敲鍵盤當遊戲,碼農職涯絕對有戲。 https://t.co/9hpD4I3ETc— Sam Tsai (@mhtx) December 20, 2017 除非有殘疾,否則沒理由不把打字速度與準確度提昇到水準之上。 一個宣稱有五年以上軟體開發經歷的程式設計師,大方承認自己的英打速度每分鐘五十字以下。以下是我的解讀: 愛滑鼠更勝鍵盤。偏愛「拖拉式」的軟體開發工具,排斥需要大量文字輸入的開發方法 不愛文字形式的溝通,比如電郵、通訊軟體 用嘴巴寫程式的能力遠高於實際動手 對於軟體開發有不切實際的幻想 這樣的話,我建議不要填這個欄位比較好。 pic.twitter.com/MoW7bbWRGf—…

[163] 孤獨

凌晨五點起床,週末一人加班。孤獨讓你專心,鍵步如飛、思如泉湧。 孤獨的另一個名字叫寂寞。想成為高手,「耐得住寂寞」幾乎是必備技能。在別人看不到的時候默默練習。即使下了班,也不斷在學習。別人假日休息,你堅持著信念,持續擴大舒適圈。有一天,時間的力量會給你滿意的回報。 一人獨處,少了外在雜音,是傾聽內心的聲音的最佳時機。留意內心的想法,跟自己對話:「這真的是我要的嗎?」「今天表現得不錯,不過如果能夠多做一點,會更好。加油!」透過這樣的對話,自問自答,進而更了解自己,更清楚自己要的是什麼,未來的路怎麼走。 「週末還在加班,真辛苦啊。」 懂得享受孤獨便不覺得苦。我很喜歡《砍掉重練》裡的一句話: 工作是一件很快樂的事情,你可以在實現理想的同時,看到自己的成長和價值。 —— 《砍掉重練》by 陳昭穎 懂得享受孤獨的人,也要懂得與人相處。孤獨不需要離群索居,與世隔絕。只要抓住一天中的幾個小時,便能享受與「…

[162]「空一行」更專業

電子郵件、需求文件、論壇筆戰、程式碼,他們的共同點是:要寫給別人看。既然是要「寫給別人看」,那麼讓對方容易看懂,減少誤會,便是寫作時的重要考量。把文字「堆」好的技巧很多,本文只講其中一個簡單但效果顯著的方法:加空行。 有些人的空行相當「貴」,捨不得給,來看實例: #116: 恰恰與流行觀念相反,Lorem Ipsum並不是簡簡單單的隨機文本。它追溯於一篇公元前45年的經典拉丁著作,從而使它有著兩千多年的歲數。#118: 如今互聯網提供各種各樣版本的Lorem Ipsum段落,但是大多數都多多少少出於刻意幽默或者其他隨機插入的荒謬單詞而被篡改過了。 #118: 如今互聯網提供各種各樣版本的Lorem Ipsum段落,但是大多數都多多少少出於刻意幽默或者其他隨機插入的荒謬單詞而被篡改過了。如果你想取用一段Lorem Ipsum,請確保段落中不含有令人尷尬的不恰當內容。 明明就是兩段,偏偏要擠在一起。其實,只要多空一行,效果差很多: #116: 恰恰與流行觀念相反,Lorem Ipsum並不是簡簡單單的隨機文本。它追溯於一篇公元前45年的經典拉丁著作,從而使它有著兩千多年的歲數。#118: 如今互聯網提供各種各樣版本的Lorem…

[140] 不要浪費時間在手遊(二)

發洩一下。 你沒有「時間太多的問題」,你的問題是「腦袋有個洞,而且不知道要補起來!」 手遊智障率沒有百分百,卻高得嚇人,差不多是十個手遊之人九個腦袋有洞的程度。不是每一個手遊都不好,但市面上多數大打廣告的產品大概都碰不得,特別是那些要你不斷「灌溉」時間的無良遊戲。 在路上遇到有人不燒金紙卻燒新台幣,大把大把的新台幣往火堆裡扔,你會覺得這人腦袋有問題,錢太多也不用這樣吧,神經病。那就對了,沉迷手遊差不多就是這樣。不懂得把握寶貴的時間,到頭來獲得了什麼? 「時間就是金錢」、「寸金難買寸光陰」,「手遊中人」消磨時間等於在燒錢,看起來燒得很快樂,我卻覺得很愚蠢。 再說一次,你沒有「時間太多的問題」,所以根本不需要「消磨時間」。覺得我錯了?那表示你生病了。有病要去看醫生,早期發現早期治療,還有救。真的,為了你的下半生,趕快去掛號。精神科。…