CodeTengu Weekly 會在 GMT+8 時區的每個禮拜一早上 10:00 出刊,每一期會從 目前的 curator 名單 中選出三位來負責當期的內容,每一位 curator 各自負責不同的領域,如果你在這一期沒有看到自已感興趣的東西,說不定下一期就會有了。
你也可以瀏覽一下 前幾期的內容 ,有價值的東西是不會過時的。
本期 curators:
大家也可以 follow 一下 CodeTengu 的 Facebook 和 Twitter ,有很多 Weekly 看不到的內容。有任何建議或疑問也可以來 Gitter 聊一聊,歡迎亂入
iOS 開發者們在做數據儲存是用 Core Data、 fmdb 還是 realm ?如果你還沒決定也許 Evaluating iOS data storage options: Core Data, FMDB and Realm 能給你一點點輪廓。
不過這篇就是講 Core Data 就是了。 Big Nerd Ranch 講解了三個常見的 Core Data stack pattern (列在下面),有圖表跟優缺點介紹,以及分享他們自己基於第二跟第三種 pattern 組合起來的 best practice。開源了 bignerdranch/CoreDataStack 。
在 iOS 多人開發的環境下,大家應該對 git 上出現 project.pbxproj
conflict 不陌生,常常有人新增一些檔案就要手動解決 conflicts 了,很浪費時間啊。
mergepbx 這套開源項目是了解 .pbxproj
應該長什麼樣的 script,可以幫助我們自動 merge 煩人的 .pbxproj
conflicts。
另外如果你嫌麻煩的話,可以試試對 .pbxproj
採用 git 的 merge policy union
, union
是不會產生 conflict 而直接保存兩個 commit 的變更。也就是說就可能會有一個情況是你的 .pbxproj
會變成 Xcode 打不開的格式。
註: git-merge-file union
medium.com在 CodeTengu Issue 6 有推過 Udi Cohen 在 Droidcon NYC 的投影片,因為我覺得投影片的內容就很豐富了,並且說等它的錄影片段出來會推到粉絲團。沒想到影片出來是出來了竟然還搭著文章一起,因為內容又太豐富而且有些是投影片中沒有的,我決定再推一次。
在文章中他很詳細的解釋怎麼用這些 profiling tools 跟提示訊息對應的意思,非常有教育意義!
udinic.com
大家都在使用 Gradle 來做 Android 的依賴管理了,往往在公司內部可能會流傳著一些神祕 Utils 還是什麼號稱萬用的套件庫,平常 import 來 import 去的又可能有一些改動,實在很麻煩啊。如果有一個私人的 maven repository 就什麼都搞定了!
這篇文章選擇使用 Artifactory 這個 open source maven repository manager 來管理我們的私人 maven artifacts,他說只要 30 分鐘就能完成了,看起來也真的蠻簡單方便的。
github.io
又是一個關於 Functional reactive programming 的 talk,推薦的原因是這個 talk 不是那麼的學院派地介紹及講著我們其實很少會用到的實作方式以展現 functional reactive programming 的威力。
這個 talk 以 client 對 sever 發 request 當例子,先以 imperative programming (一般代碼) 寫一次,然後用 functional reactive programming 的方式再寫一次。
在結尾的這句話我覺得說得挺好
In a modern codebase of hundreds or thousands of files, the job of the engineer stands beyond contributing to the massive code. It should be our duty to make the code as manageable and scalable as possible. We can do so by reducing complexity, and FRP one great way to do so.
這個 Talk 的作者是 elevate app 的 tech lead,其實我也是 elevate 的腦粉。
註:這個 Talk 是以 ReactiveCocoa 及 Swift 示範
realm.io
這幾年讀了許多的書, 主要都還是職場、工作有關的書,許多書都會提到開會這件事, 這篇文章就在說如何開一場好會。
也分享一下, 這是我看書以及這幾年工作的心得:
先前看過一本書叫「華頓商學院最受歡迎的談判課」裡面就有強調會議記錄的重要性, 大家有興趣可以看看。
medium.com
這是一篇非常棒的文章, 跟我這陣子形成的觀點幾乎一樣。
雖然一開頭用「It’ll only take me a few hours to implement the feature」這句老話開頭, 不過這篇主要不只講程式碼, 而是包含了程式碼、系統、專案, 以及組織, 這四個東西裡面所隱含的複雜性問題。
像是程式碼寫的太複雜、用了太新的技術, 導致其他 team member 沒辦法很快接手, 或者是產品太複雜、功能太多等。
文章後半也有提到如何對付這些複雜性問題, 其中一點我覺得很有趣, 作者說他在 Quora 舉辦了一次「Code Purge Day 」並且有排行榜, 讓這件事更有趣。
我想這篇我會在部落格另外寫一篇, 因為我差點就在這裡寫得太長了。
theeffectiveengineer.com
這篇文章主要是下面這幾個重點, 我覺得很不錯, 身為一個技術領導者, 以下幾點都得做到。
當主管前兩年, 我沒做到前面 1, 2 點, 第 3 點我做得很好, 第 4 點我 code 寫得太多, 第 5 ,6 點我有做到。
現在呢, 第 1 點我努力中, 第 2 點對於新人我有做到, 第 3 點因為太忙, 做的沒有非常好, 第 4, 5, 6 點我則是自認做得不錯 :)
誠實才是上策
infoq.com
小海在泰國為您報導
instagram.com
background: red; 'background: yellow; background: green; // this is white background: blue !important;
你知道以上的 CSS 會出現哪個背景顏色嗎?這篇文章以另類的角度來看 CSS 如何被瀏覽器解讀,也許可以幫助你省去很多抓臭蟲的時間。(如果你常常有 typo 的話)
sitepoint.com
由 Google Chrome 傳教士 Paul Lewis 和 Jake Archibald 所策劃,最近已經來到了第三季,影片大都是 10 分鐘以內,都是講前端議題,沒有程式碼,很適合通勤時收看。
若是想要練習英文聽力,對於前端工程師是很好的聽力教材。
也推薦其他 Google Developers 在 Youtube 上其他前端相關的節目:
youtube.com
用 JavaScript 和 canvas 做出裁切工具,可以透過判斷膚色、高反差區域找出圖片中主要物體,將物體放在裁切範圍內。出乎意料效能很好,滿神奇的!
github repo
29a.ch