2017年5月16日 星期二

牛亞真,周志湖 - 可完全取代Java的Scala

前幾年知道了Scala,最近又因為各種理由而想要學習它所以買了這本書來加快學習。起先是對其「函式式程式語言」的模式感到好奇。之後又聽聞它在平行運算上有不錯的表現,因此更加深了想要了解的欲望。

本書由對岸的兩名學者所撰,不過我一開始沒注意到,因為買的時候只翻看前面幾章,只對Scala做基本的介紹時看起來還ok。只是後面感覺有些頭痛。因為除了兩岸用語不太一樣的關係,大陸學者有時概念與描述欠缺節奏與一致性的問題,還有不知道為什麼不認真學一下UML而畫出十分詭異的圖這幾點讓我感到似曾相似,立馬就確認了是對岸的作品。

本書的標題很誇大。或許也很貼切。Scala或許可以完全取代Java。但Java也可以完全取代Scala。最近在下看到一個blog描寫了該格主對這類新技術的看法。他認為學一個完全可以用舊技術進行的東西,成本效益實在很可憎。這也或多或少改變在下對Scala的看法。

以語言的角度來看。如果已經掌握好Java的話,確實沒有必要朝Scala走去。畢盡Java的社群還是遠大於Scala;Scala能做到的事Java也做的到。Scala中針對平行運算的Actor其實Java也有,只是控制起來比較需要技巧一點。由於在下對自己的控制技巧蠻有自信的,因此Actor對在下而言魅力有限。其他特性老實說確實也非Scala不可。不過Scala還是有它的擁護者。在下也不便多說了。如果我看到它更有魅力的一面,會再投入多一點。

回到這本書吧。

本書作為Scala的學習本,個人覺得勉勉強強。如果您手上沒有任何Scala的東西可以看的話,它算是足夠的入門讀物,大概就是60分。中、後段有些跳tone的介紹不用執著,看看就好。

邱炫儒 - Continuous Integration 關鍵技術 -- 使用Jenkins

寫程式寫了那麼久,一直專注在Programming、Design、Analysis。一直以來運作還算正常,但是隨著接觸到愈來愈多的開發人員,漸漸發現不是每次都能和能夠保持優良的開發品質的人合作,單靠開發人員自己的素養來管理開發的品質也不知不覺顯得吃力。除了是市場變化使得開發的內容愈來愈複雜外,參與的人員愈來愈多元化也不斷影響著品質。

開發不等於Engineering。這是我最近幾年的心得感想。只要時間允許,在下有一定的自信能開發出任何(夠成熟的技術做得出來的)功能。只是這樣是遠遠不夠的。在下不可能永遠都自己做,也不可能有無限的時間做。而愈是擅長Engineering的人,愈比在下更有可能完成這樣的任務。愈艱鉅的大型專案,成功的關鍵人物愈不(只)是開發的專家,更是擅長組織開發工作,讓團隊執行Engineering的人物。

就我的觀察,這一號人物除了熟悉Engineering的進行方式,能夠彈性又有效的管理團隊的開發工作外,他們還擅長使用各種協作工具。這些工具中就包含了所謂的持續整合(Continuous Integration)的目的,以求在現今複雜的開發環境下能不斷產出高品質的成品。

本書介紹的持續整合工具是Jenkins。它能夠協助團隊不斷建置產出。搭配適當的腳本,還可以完成自動測試。如果有必要的話,甚至能完成自動部署的工作。這些自動工作能整合許多其他的工具,自動完成許多繁鎖的工作,不旦減少人工錯誤的發生,更將工程師從一些產值較低的工作中解放出來。

本書的內容十分「工整」。呵呵,實在想不到怎麼形容它。這裡說的「工整」是--該有的都有了。除了基本功能外,雖然作者盡力的多介紹了一些近年來可能會遇到的需求,比如自動建置xcode專案以及如何自行開發plug-in。讓讀者們能快速進入狀況,並有效的導入此一技術,讓你的Engineering水平立刻拉高一個水平。

只是內容就是只有那些。說實在的,Jenkins整合的太好,讓它太簡單易用,易用到不太需要買書來看(誤!!)。不過,如果閣下是那種希望書架上有一本書可以參考的人。那麼這本書還是可以放到書架上的(笑) 。

2017年5月1日 星期一

大衛.艾倫 - 搞定

這本書看到一半時,有人問為什麼看這本書?覺得自己工作沒效率?這讓我思索了一翻。雖然不覺得自己遇到什麼困難非看這類圖書,不過自己卻認為有需要對工作管理進行精進,其目的不只是為了工作上的管理,更希望如本書的效果一樣,透過有效管理在事業、家庭與個人志趣間取得平衡。

GTD (Getting Things Done)是本書作者不斷推廣的工作模式。它和在下過去閱讀的管理書籍比起來更著重於個人層面的管理。作者所介紹的手法非常適合實務運用,不是理論派的學問。如果拿來和杜拉克的作品比較,我覺得本書對個人的管理來說提出了更實際的作法。

關於本書所提的做法,其終極策略是避免大腦陷入無義意的open loop。這也是本書最大的重點。之前我分享了一本關於人工智能、大腦的書,而本書的作者也正視了人類大腦、心靈上的弱點,設計了更實際的工作管理策略。

舉幾個例子。首先,你騙不了你的大腦,因此不要用什麼宏觀的想法去決定事物所謂的優先順序。你直覺什麼是重要的,就不能把它列為不重要,必須提高順位去處理它。不然它會像惡魔一樣,一直在大腦裡纏著你。其次,你在做規劃的時候也要做到足以說服你的大腦,讓它放心跟著計劃走,不然大腦就只能一心二用,導致資源浪費,對你的健康也不好。

作者提出了五個步驟。這些步驟環環相扣,可以解放你的大腦。而且作者也分享了它推廣GTD的多年經驗,幫助你有效落實這五個步驟。這五個步驟在下就不在此多說了,我想留給各位自己去讀看看,而且作者這麼不吝分享的工作管理技巧,實在值得大家用新台幣好好的讚賞一下。