CodeTengu Weekly 會在 GMT+8 時區的每個禮拜一早上 10:00 出刊,每一期會從 目前的 curator 名單 中選出三位來負責當期的內容,每一位 curator 各自負責不同的領域,如果你在這一期沒有看到自已感興趣的東西,說不定下一期就會有了。
你也可以瀏覽一下 前幾期的內容 ,有價值的東西是不會過時的。
本期 curators:
大家也可以 follow 一下 CodeTengu 的 Facebook 和 Twitter ,有很多 Weekly 看不到的內容。有任何建議或疑問也可以來 Gitter 聊一聊,歡迎亂入 :japanese_goblin:
雖然上一期就有提到一篇 Medium 的技術團隊分享他們用了哪些技術的文章,但是其實 StackShare(和它的 官方 blog )上還有好多篇類似的文章,有許多大大小小、各個領域的網路公司都各自分享了他們的 technology stack,最喜歡看這種文章了。
作為一個 developer,除了參與或是自己發起 open source 專案之外,更重要的其實就是向其他人分享自己或是所屬團隊的知識、經驗、踩過的雷或是總結出來的最佳實踐,畢竟「分享」這件事對你自己和其他人都會有收穫。
stackshare.io
這篇文章專門在講 Python 的 str.format()
各種超便利的用法,大家就別再用 %
來 format 字串啦!
延伸閱讀:
pyformat.info
這是一篇來自 (Percona) MySQL Performance Blog 的文章,提到了 10 個重要的 MySQL configuration 參數,例如 innodb_file_per_table
和 query_cache_size
等等,有在用 MySQL 的人都應該要看一下。不過不是每個參數都支援在 runtime 的時候修改,這點要注意。
底下的延伸閱讀則是由 VividCortex 發布的小手冊,也是在講一樣的主題。而且 VividCortex 的創辦人就是 High Performance MySQL 的作者。
延伸閱讀:
percona.com
這是 系列文章 的第二篇,很詳細地說明了 Cassandra 的基本概念。另外也推薦一下這本 Learning Apache Cassandra 。
雖然 Cassandra 3.0 不久前推出了。
yangzhe1991.org因為本週的三位 curator 裡有兩位這禮拜都在玩 Fallout 4,所以如果你覺得這一期的 weekly 質量下滑了,大家就多多包涵啦!
如果你不能理解或是有點好奇為什麼全世界的玩家都這麼期待這款遊戲,你或許可以讀一讀這篇由一位中國的遊戲設計師所寫的評論,感受一下。雖然他講的是 Fallout 3。
延伸閱讀:
zhihu.com
We code in an asynchronous world. We promise.
這一句是 PromiseKit 的口號。
這是一篇關於 PromiseKit 最簡單的教學文,不過說實在的 PromiseKit 差不多就是這麼簡單,不像 ReactiveCocoa 一樣包山包海、個人覺得語法上也比 Bolts 親切一些。
PromiseKit 就只想解決一件事情:大量的 callbacks 串接導致的閱讀性下降 aka 厄運金字塔 ,可以透過 promise pattern 達成 callbacks chaining 來解決。
它的文件寫得也是不錯: http://promisekit.org/introduction/
ios-developers.io
同意,有些人會說 MVVM 可以解決自己 MVC 架構下肥大 ViewController 問題,但我非常懷疑,如果在 MVC 架構下你的 ViewController 就是肥大的,那麼只是因為加上一層稀薄的 ViewModel 幫助實在很小啊。
大家的好朋友 objc.io 是大家認識 MVVM 的好起點 Introduction to MVVM 。想要感受跟 FRP 風格的 MVVM 實作方式,可以參考這個 GitHub repo artsy/eidolon 。
註:我個人寫 ViewModel 主要是為了測試。
infoq.com
這是 Twitter 的 Android 工程師給的一個 talk,一起手就先給 Fragment 一記重拳,後面花了很大篇幅仔細地介紹他是怎麼實作 MVP 架構的以及他感受的優缺點,偏重在 Scalable, Maintainable 及 Testability,會是有一點經驗的工程師很好的進階材料。
在投影片的後段,作者也試做了 VIPER 版本的架構,這兩個架構都可以在 GitHub repo rallat/EffectiveAndroid 看到。
延伸:在更早之前,Coursera 也提出了非常類似 MVVM + VIPER 架構方案,可以參考他們的 Effective Android Architecture 研討會影片 、 投影片 還有 source code richk/CourseraDemoApp
speakerdeck.com
相信很多訂閱者在大學的時候都 好像 學過 C。這是 jserv 在成大開的課,講得超好! (竟然還有 Jserv 與他愉快的小夥伴 粉絲頁可以互動)
這堂課的共筆在 hackpad 上 你所不知道的C語言:指標篇 ,最後我想分享一句 jserv 在課堂上講的一句話「很多人之所以 C 語言學不好,是抽象想像力不好」 #嗆我嗆夠了沒
youtube.com這篇適合已有其他電腦語言經驗者來讀, 不難看出 go 有很強的平行化處理能力。他用 goroutines 的方法, 讓多個 workers 同時執行同一個 function, 從 CPU 的角度來講, 他可以自動分到不同 cores 上執行。
如果想進一步學 go 文法和內建程式庫, 可以利用 範例來學習 , 裡面當你看到土撥鼠 icon 時, 可以點擊它進到 Go Playground, 直接編輯和執行。
至於, 已經有這麼多種語言, 為何要再多學一種? 我喜歡它的安裝和執行方式簡潔。還有沒有 C 或 C++ 難懂, 但可以跑得跟 C++ 一樣快。
toptal.com
當你學會 Docker 後, 下一個需要學的工具就是如何在雲端配置你的 docker images?
您一則自己用 Vagrant 或 Docker 架設一個 Kubernetes cluster 在自己的電腦上測試, 或在 Google 雲端的 Google Container Engine 或 Red Hat 的 OpenShift 3 直接開個 Kubernetes 環境來使用。
這篇文章簡單介紹了 Kubernets 的基本成員 pod, service, volume, 以及 replica controller, 最新版 1.1 還增加了 job 和 horizontal pod autoscaler (hpa) 等功能, 讓 containers 的管理變得很簡單, 而且真的很好用。只要照着程式範例做一次, 你就可以很快學會怎麼使用 Kubernetes!
meteorhacks.com大家一定會覺得很奇怪, 這裡不是介紹跟程式開發相關的文章嗎, 爲何提比特幣呢? Vitalik Buterin , 我想介紹的跟這位 21 歲的程式設計師兼作家有關。他讓我覺得程式設計師只能找個工作寫寫網站, 幫公司寫寫 apps, 過了一陣子所學的語言又過時了, 重頭再來一次, 這個世界, 從來沒有讓程式設計師主導過任何一件事嗎?
這篇新聞, 不是來自於科技網站, 它是來自華爾街郵報。雖然廣告性質居多, 但不難看出這個年輕人, 將 (或應該說, 已經) 改變整個世界, 他 17 歲開始玩比特幣, 寫 Bitcoin Weekly (跟我們一樣), 但後來發明了 Ethereum , 將比特幣的技術 (blockchain) 發揮到極致, 讓這個技術不只能用在虛擬幣, 還可以寫程式, 發展出所謂的 smart contracts, 連微軟都跟它靠攏 (難得一次微軟跑最快), 其他 J.P. Morgan Chase, 花旗銀行等大公司, 都紛紛投入研究。
我指的是程式設計師就不能改變世界嗎? 你還想錯過下一個 Google 還是 Facebook 嗎? 他 21 歲而已, 你還在等什麼?
wsj.com