CodeTengu Weekly 會在 GMT+8 時區的每個禮拜一早上 10:00 出刊,每一期會從目前的 curator 名單中選出三位來負責當期的內容,每一位 curator 各自負責不同的領域,如果你在這一期沒有看到自已感興趣的東西,說不定下一期就會有了。
你也可以瀏覽一下前幾期的內容,有價值的東西是不會過時的。
以下是目前的 curator 陣容:
大家也可以 follow 一下 CodeTengu 的Facebook、Twitter 或GitHub,有很多 Weekly 看不到的內容。有任何建議或疑問也可以來Gitter 聊一聊,歡迎亂入 :japanese_goblin:
致力於解決開發者之間的資訊不對稱
上期的副標讓我想起這篇文章,ORM 派與(半)手刻 SQL 派的爭論一直是 IT 界不停歇的週期性熱門話題。但到底為什麼 SQL/ORM 這麼難用?不如讓我們重溫一下大師的看法。
Martin Fowler 認為 Database(Relational) ↔ Memory(Object) 間的雙向對映本身就是一個非常複雜的問題。當你希望一套工具可以適用各種狀況時,自然會得到一個龐大肥腫的 ORM 工具。例如同樣解決雙向同步的 MVC 框架亦常有類似問題;更何況因為跨越系統邊界而更複雜難解的 object-realtional 問題。
關於要不要用 ORM,大師的建議如下:
衍伸閱讀:
martinfowler.com
各位,我們終於可以在 Android 上用 Java 8 啦!
這篇是實際在 Android N Preview 上使用 Java 8 的心得文。不多說,各位自己看吧。
medium.com
從本期開始我想介紹一些個人覺得有趣的專案。
fingerprintJS 根據瀏覽器特性(User-Agent、螢幕解析度、安裝的 plug-in 等等)算出 hash 值,不透過 cookie 就可以識別不同的使用者。(但由於手機瀏覽器的特性,很容易得到接近的 fingerprint 值)
P.S. 本來要介紹的是Fingerprintjs,剛剛才發現已經被 Fingerprintjs2 取代了。
github.com
工作一段時間之後,工作機會的來源幾乎都是靠朋友跟 Head Hunter 介紹。不像朋友介紹,Head Hunter 其實只是在商言商的仲介,先搞清楚這點才不至於吃虧。
作者建議如下:
對 Head Hunter 的認知:
透過 Head Hunter 找工作時,仍應:
(其實這些是去任何公司面試時都該做的事前準備)
延伸閱讀:
blogspot.tw
雖然食色性也,但也不能一直貼美女照片。這次分享一下不同調性的 Instagram 帳號。
這個帳號專門貼鋼彈模型照片,造一台鋼彈應該是每個工程師的夢想吧?!(握拳)
instagram.com
智能合約 (smart contract) 與數位代幣 (token) 的應用, 會從少數人開始使用, 比如說是開發者, 進而在公司內部開始應用, 例如年終獎金, 只發比特幣, 不再發現金了, 最後還是會變成每個人都能發行自己的 tokens; 就像網站一樣, 一開始政府與研究單位先有, 再來才是各行各業, 最後演進到部落格, 每個人都可以很簡單的架設自己的網頁。
但網頁是在 1993 NCSA 發明了Mosaic 瀏覽器之後, 才讓一般人開始對 Internet 覺得好用而感到興趣, 也才有今天所有的一切, smart phones, web apps 等等, 但卻花了 20 年以上的時間才被所有人類接受。不過智能合約或許不必那麼久, 大概只要兩三年的時間, 就會被廣泛應用。所以當年 web 瀏覽器可以說是 killer app, 改變了人類的生活; 而 2016 的今天, 下一個 killer app 是什麼?我覺得是 Wallet ” 電子錢包“, 它是你跟未來數位生活的介面, 就跟瀏覽器是你跟 Internet 的介面一樣, 你可以研發一個萬用的“電子錢包", 可以跟當年Netscape 公司一樣, 再一次改變世界!
但切記, 當有了 smart contracts 的應用, 你的錢包就不只是錢包, 就像 web 瀏覽器不再只是拿來瀏覽網頁。
CodeTengu Weekly
想讓你的 servers 更安全一些嗎? 最有效果的方法是把 ssh login 再增加一個 2FA (two-factor authentication) 認證 。本連結教你如何利用 Android 或 iOS 手機上的 Google Authenticator 軟體幫你每一分鐘產生一次新密碼, 再加上你原本 ssh 的 password 就更加安全了。
同樣這個 2FA 方法也可以用在 AmazonAWS 帳號認證 , 還有常被用來當數位錢包的身份確認, 當然 Google 的帳號也可以用 Google Authenticator 來做2 - 步確認。所以同一個 2FA 軟體, 到處都可以使用。
arm-blog.com
全名是 Datacenter Operating System, 也就是 "資料中心的作業系統"。雖然名稱好像是用在 Datacenter, 但我們也可以套用在自己的公司裡, 來執行 docker containers, big data 或傳統的應用程式。它其實就是 Mesos + Dockers + GUI + CLI, 就像我以前用Vagrant 玩 Hadoop, 或 Mesos + Marathon (用Playa Mesos), 我們也可以用Vagrant 來安裝 DC/OS, 瞭解它的原理之後, 再考慮是否可以導入公司資訊中心。
mesosphere.comFacebook 在今年的 F8 - Facebook Developer Conference 上宣布 Microsoft 正將 React Native 加入 Windows 生態系,讓開發者可以使用 React Native 開發 Windows PC 、 Windows Phone 、 Xbox 軟體,也會提供一些開源的工具如 Visual Studio Code 和 Code Push 上的 React Native extension ,另外, Samsung 也在實作自家平台 Tizen 的 React Native porting。
React Native 雖然是新的一套開發方式,但在短短一年內已累積龐大的生態系與許多實際上架 App。
不同於以往 "Write Once, Run Everywere" 的概念,React Native 並不是真的跨平台, 而是希望能在維持 native code 的效能下,使用同一套開發方式去實作不同平台的 App,達到 "Learn Once, Write Everywere" 的精神,而因為程式邏輯方面可以利用 JavaScript 實作,在實際開發時,iOS 與 Android App 都可以達到蠻高程度的 code sharing 。
facebook.com
自從 Webpack 出現後,Gulp 和 Grunt 漸漸地被 Npm + Webpack 取代,因為 Webpack 功能強大,本篇文章探討幾個容易讓開發者混淆的點:
Development Vs Production
webpack CLI Vs webpack-dev-server
“entry” — String Vs Array Vs Object
output — “path” Vs “publicPath”
Loaders And Chaining Loaders
Loaders Themselves Can Be Configured
The .babelrc file
Plugins
Loaders Vs Plugins
Resolving File Extensions
medium.com
越來越多人利用 Reactive Programming 概念來撰寫 UI 程式, 本篇作者利用Reactive Extension 實作出類似Atari Breakout 的遊戲。
Reactive Programming 可以將任何 Event 視為 Stream 從而簡單的做操作,如果對這個領域還不熟悉,可以看看André Staltz 的 介紹
manu.ninja在開發 React 時常會將一個大的 Component 分割成許多小的 Component , React Storybook 可以讓開發者不需執行 App 獨立開發各個 Component ,直接顯示在 Storybook 上,只要簡單的步驟就可以將 Component 設定好並執行,且不會污染原有的環境,有簡潔風格的 UI 介面,支援 Hot Module Reloading ,可在各種 React App 下執行。
kadira.io