Hello World
CodeTengu Weekly 碼天狗週刊
CodeTengu Weekly 會在 GMT+8 時區的每個禮拜一 AM 10:00 出刊,每期會由三位不同的 curator 負責當期的內容,每個 curator 有各自擅長的領域,如果你在這一期沒有看到自已感興趣的東西,可能下一期就會有了。你也可以瀏覽一下前幾期的內容。
目前的 curator 陣容:
- @vinta - I failed the Turing Test - 科幻迷,最近在讀 The Quantum Thief
- @saiday - Imnotyourson
- @tzangms - Oceanic / 人生海海 - 衝動型購物
- @fukuball - ImFukuball - 有新工作了,但歡迎直接挖角
- @mingderwang - Ethereum enthusiast
- @kako0507 - 熱愛嘗試新事物的前端工程師
- @chiahsien - 徵有經驗的 Objective-C 工程師,快來 Twitter 私訊我
- @hiroshiyui - 歧路亡羊與中年危機的典範
- @uranusjr - Smaller Things - 邊緣人拉到 conference 還是邊緣人
- @kkdai - 態度萬歲 - 總算把 Gopher Day 辦完了..
- @yhsiang
- @johnlinvc - 在 KSP 內登陸月球中
你也可以關注我們的 Facebook、Twitter、GitHub 或 Open Source 專案,有很多 weekly 看不到的內容。有任何建議或疑問也歡迎來 Gitter 聊聊。
致力於解決開發者之間的資訊不對稱
@saiday
Apple Machine Learning Journal
Apple 在這個月開始了 Apple Machine Learning Journal 這個 site,似乎不打算用 blog 的形式而是用比較正式的 journal 來刊登跟 Machine Learning 相關的內容。
第一期已經出來了,Apple 真的很會寫這類的文件啊,雖然這不是我熟悉的領域,但看起來也是有所收穫。
相信對許多人來說是個很好的資源。
Reducers - Chris Eidhof
又是 Chris Eidhof!總覺得他一直在幫 Swift 增加難度。
學 Swift 的時候總是會看到一些魔幻的 code,這個是我近期看到最帥氣的。
這篇文章的用意是對很常見的有 async task 的 project 做重構,把 async task 的 state 抽離出來,增加可測試性。
因為是 async task,為了要處理 state 中的 side effect,作者引入了一個 Reducer 的模式,這個在 Redux, Elm (update function) 很常見的模式,是一種很 functional 的模式。
在這樣重構之後,測試的時候就不需要引入任何種的 Test Doubles,直接 assert input, output 就好了。
作者還把 enum 當成 method 來用,在這個範例的條件下,理由也很說得過去,之前還真的沒想過呢。
註:Reducer 用 higher order function 的 reduce
來聯想的話,很快就理解了
Ricky Mondello on Twitter: "iOS 11 Beta 3 adds SFAuthenticationSession"
Apple 在今年的 WWDC What's New in Safari View Controller 說 iOS 11 之後的 Safari, Safari View Controller 不會再共享 cookie, local storage 了,不愧是業界最重視用戶隱私的公司。
但這樣就讓有些事情很難做啦,特別是本來拿 Safari View Controller 來做 SSO 的,於是,嘩,iOS 11 beta 3 多了一個 SFAuthenticationSession,專門處理這件事。
有人已經做了 範例,這個新的 API 運作起來其實真的很不錯,那麼剩下的就是開發者要關心的版本兼容問題了。
Kotlin: Integrate it with your complex Android project (Dagger, Mockito)
Kotlin 的 100% java interoperability 是很讚的一件事情,這讓你忽然福至心靈想要在既有的 Android Java 專案導入的時候,摁摁,它就導入了。
我想最近應該很多人已經或考慮導入 Kotlin 了,這篇是針對這個需求的主題:整合既有的 3rd party library。
@wangyung 很早期就投入 Kotlin 開發,他寫了一篇 為什麼我們使用 Kotlin 開發 LINE Creators Studio,在 Mokito final class mocking 這個問題上,他採取的是 interface oriented,我覺得比較理想。
facebook/device-year-class: A library that analyzes an Android device's specifications and calculates which year the device would be considered "high end”.
if (year >= 2013) {
// Do advanced animation
} else if (year > 2010) {
// Do simple animation
} else {
// Phone too slow, don't do any animations
}
簡單、粗暴、做得到
@hiroshiyui
How We Solved Authentication and Authorization in Our Microservice Architecture
作者分享了他們在 Microservice 架構下如何處理認證與授權的問題,我覺得這篇提到很多場景都是多產品、多子系統的公司在實務上會碰到的,像是處理跨子系統、行動版 App、開放第三方存取 API 等,很值得一讀。
Rust Performance Pitfalls
本文作者列舉了一些 Rust 常見的效能坑,值得使用 Rust 語言的程式開發者參考。
不過裡頭有些做法是拿安全換效能,我個人實在不願意這樣搞就是了…。(若不是為了安全,為什麼要用 Rust?)
Because Browser Diversity Is Good For The Web
作者因為一則 Twitter 回應而寫了這篇,關於瀏覽器產品的多樣性為何重要的文章。當然,我絕對明白處理多瀏覽器的相容工作很煩、有時更會覺得痛,可是我還是跟作者一樣認為,瀏覽器產品的多樣性,正是 Web 之所以為 Web 的明證。
我們不想要回到那個 IE 獨大的時代,此時的我們也不該認為「Chrome 是『市場最大手』,網頁在它這裡看起來沒問題、能動就好」。
(想起以前曾經為了單位網站的選單是 IE-only、而跟主管吵架的往事,我真的好衝。)
Rapid DHCP: Or, how do Macs get on the network so fast?
以前我剛接觸到 Mac OS X (現在要改稱 macOS 了…)時,扣除那些絢麗的視覺效果不談,印象最深刻的就是它用 DHCP 設定網路組態真是爆猛無敵誇張地快,進度指示的圓圈才剛快速地跑過一輪,就好了,相較之下我在 Windows, Linux, FreeBSD 底下可要等個好幾秒,於是我就很好奇,OS X 的網路設定是怎麼做到這種效果的?這篇文章談的就是這個主題,很有趣,如果您沒看過,現在讓您看看。
是說有人也曾跟我有同樣的好奇心嗎?
@yhsiang
Life of a GraphQL Query — Lexing/Parsing
作者從 GraphQL Ruby 使用的 Ragel 切入,帶你理解如何解譯 GraphQL 的語法。
處理語言的 lexing 和 parsing,算是很入門的一篇。
作者下一篇是關於 GraphQL query 的驗證,有興趣的朋友可以繼續追蹤。
An Almost Static Stack (Building Static Sites with create-react-app)
作者手把手地教你如何用 React 完成一個靜態網站。
用到的 tech stack 如下:
- create-react-app
- react-router
- react-helmet
- react-snapshot
- styled-components
若是你剛好都有用以上的專案,而且正在找尋靜態網站的解決方案,不妨試試作者的方法。
CSS Isn’t Black Magic
從瀏覽器如何產生畫面開始說起,也就是所謂的 Browser render pipeline (The pixel pipeline)。
除了提到 CSSOM 的產生過程,後面也有提到權重、定位跟 Z-index,建議 JavaScript 寫很熟,CSS 卻一直苦手的朋友,可以用心閱讀體會!
Measuring web performance; it’s really quite simple
一篇較長的文章,在說明如何定義好 performance,並且正確地測量網站的 performance。
後面也有實際使用 webpagetest 測量,建議對 web performance 還不熟悉的朋友可以花時間閱讀。
Random Cool Stuff
Wat
這是一個五分鐘的 lightning talk,是在開一些語言 (Ruby, JavaScript) 的玩笑,但節奏的掌握好好,超好笑。
這個作者自己有做一個 screencast 的網站 Destroy All Software,真材實料啊!
由 @saiday 提供。
This RSS feed is published on https://weekly.codetengu.com/. You can also subscribe via email.