转载

CodeTengu Weekly 碼天狗週刊 - Issue 48 做高級工程師好多年了,沒想到今天忽然就被升職成傳說級...

Hello World

CodeTengu Weekly 碼天狗週刊

CodeTengu Weekly 會在 GMT+8 時區的每個禮拜一早上 10:00 出刊,每一期會從目前的 curator 名單中選出三位來負責當期的內容,每一位 curator 各自負責不同的領域,如果你在這一期沒有看到自已感興趣的東西,說不定下一期就會有了。你也可以瀏覽一下前幾期的內容,有價值的東西是不會過時的。

以下是目前的 curator 陣容:

  • @vinta - I failed the Turing Test - 科幻迷,最近在讀「家畜人鴉俘」
  • @saiday -Imnotyourson - 太熱了
  • @tzangms -Oceanic / 人生海海 - 衝動型購物
  • @fukuball -ImFukuball - 最近好窮,有案子可以接嗎?
  • @wancw - 命剋公司的工程師
  • @mingderwang
  • @kako0507 - 熱愛嘗試新事物的前端工程師
  • @chiahsien -Nelson
  • @hiroshiyui - 非典型司書
  • @uranusjr -Smaller Things - 不愛談技術的技術人,最近對做菜很有興趣
  • @kkdai -態度萬歲 - 喜歡 Golang 的略懂工程師
  • @yhsiang

大家也可以關注 CodeTengu 的Facebook、 Twitter 、 GitHub 或微博,有很多 Weekly 看不到的內容。有任何建議或疑問也可以來Gitter 聊聊,歡迎亂入 :japanese_goblin:

致力於解決開發者之間的資訊不對稱  

@saiday

Top developers can have a life outside coding

軟體產業跟其他產業有一點相當不同,這個產業很在乎你在 業後 的表現,就像這篇文章說的,你沒有 open source project、pet project 就會遭受許多非議,好像自己多不入流一樣。

雖然我不完全同意這篇文章的觀點,但我同意這個產業確實存在這個偏見。

而貼這一則主要是因為我想分享這一篇文被貼在 Hacker News 其他人上有意思的評論:

Would you tell someone they can be a "top sports player", if they have a life outside of playing that sport? ...

I'm from China, where hard-working with a lot of overtime work is advocated in almost every internet-related company ...

I am a recruiter and always ask this question - "Is programming just a job for you to get the bills paid, or do you have a broader interest?" ... (大家好生氣一直嗆他)

belenalbeza.com

What’s New in Swift 3?

Swift 3 傳說是最後一次包含大量 breaking change 的版本了,這一次也確實是改得夠痛快,不過我想大多數的語法改變都可以透過 Xcode 8 帶的 Migration Assistant 來幫忙吧,問題不大。

這次改版大量處理了 Swift 使用既有的 ObjC 或 C 寫的 frameworks 在名稱上對 Swift 不友善的地方,經過新設計的NS_SWIFT_NAME 加持,現在 Swift project 程式語法的一致性上變得更好。

一個語言的 naming convention 是很重要的,會讓團隊跟社群不用花那麼多力氣在 coding style 上面,像 ObjC 就以其強烈且特別的風格 為人稱道。

而這篇文章在 Methods that Return or Modify 這一段提到,method 用名詞跟動詞來明示這個 method 會不會有回傳值跟操作對象,蠻有意思的。

raywenderlich.com

Queues are not bound to any specific thread

Cocoa 的 main thread 跟 main queue 是同一件事情嗎?

有人在 ReactiveCocoa 開了一個issue 說他操作 MapKit 時非得要自己 dispatch 到 main queue 才不會 crash,而 ReactiveCocoa 的 UIScheduler 只會確保你在 main thread 而已,並不合用。

雖然說這應該是 MapKit 的 bug,因為像 UIKit 的文件上從來都只有說必須要在 main thread 上執行而已,沒道理 MapKit 甚至要在 main queue 上執行。

不過大家就開始就開始討論 main queue 跟 main thread 的差異了,直接截取結論: 在 Cocoa application 上,main queue 一定是跑 main thread,但 main thread 不一定跑在 main queue 上。

延伸:如果你想確定妳跑在 main queue 上,可以參考這個做法 GCD's Main Queue vs. Main Thread

krzyzanowskim.com

Clean Android Code

這是一個系列文,主要在寫出 testable, re-usable, maintainable 的 Android app,我認為是近期我看到質量最高的 Android 技術傳教文。

值得注意的是這個系列全程有寫 Tests、開發中混用了Kotlin、大量使用Databinding、上半年社群中火熱到不行的 buzz word: RxJava 當然也是其中的技術選擇。

對於以上這些技術實作感興趣的人,這是一個不錯的系列教程,像我就是來看 Kotlin 跟 Databinding 的!

medium.com

@kako0507

CodeTengu Weekly 碼天狗週刊 - Issue 48 做高級工程師好多年了,沒想到今天忽然就被升職成傳說級...

26 Impressive web projects built with CSS only

筆者整理了 26 個在Codepen 上透過 CSS 達成的強大實例,幾乎每個範例都沒有使用到 JavaScript 和 Image !

mybridge.co  

Dan Abramov - The Redux Journey

Redux 因為作者Dan Abramov 在去年的 React Europe 上的介紹,開始火紅了一年,在這個影片, Dan 會回顧 Redux 的各個好用的功能,生態系,以及在開發時學到的一些經驗。

youtube.com  

Web Component Challenges

本篇文章並不會大略簡介Web Components,有興趣可以先透過連結理解一下。雖然不是每個瀏覽器都支援 Web Components ,還是可以透過webcomponentsjs 這個 polyfill 來實作。

因為目前 ES6 語法已經支援 modules, classes 和 template strings ,這裡就不探討template 和HTML import ,著重在shadow DOM 需要注意的幾個點:

  • 如果透過 polyfill 實作在沒有原生支援 shadow DOM 的瀏覽器上,會造成 style 共用的情況,必須要將 shadow DOM 的 style 加上對應的 prefix 避免畫出錯誤的畫面。
  • 反之,如果是原生支援的瀏覽器上實作, style 無法共用,造成撰寫上可能會有重複的 code ,為了避免這種情況,可以透過內文的 injecting style sheets 、 styling considerations at design time 、 CSS Variables 來解決。
revillweb.com  

JavaScript Testing: Unit vs Functional vs Integration Tests

自動化測試一直是Continuous Delivery 中非常重要的一環,本篇文章整理了不同類型的測試,文中使用Tape 來作為範例工具:

  • Unit Tests

    • 確保各個 components 可以正常的獨立運作,可以選擇在開發階段使用 lint 和 unit test ,當檔案改變時自動執行,立即回報當下更改是否有造成錯誤,不過使用此方式必須要確保測試可以快速完成,所以盡量避免使用像是 network 與 file I/O 等非同步操作。
  • Integration Tests

    • 確保不同的 components 可以在互相合作下正確運作。
  • Functional Tests

    • 從使用者角度來確保程式能得到預期的結果。
sitepoint.com  

@uranusjr

Kotlin Programming Language

最近因為工作關係需要寫 mobile app。iOS 技術有稍微在追所以還好,花了一週就先做了個 prototype,但 Android 就很爆炸,以前用的 toolchain 現在好像都沒人在用了,API 似乎也改了一大堆東西,就決定重學。稍微找了一些資料,就發現這個有趣的程式語言。

Kotlin 是由 JetBrains 主導開發,主要的編譯 target 是 JVM byte code。這個語言幾乎可以說是專門為 Android 開發設計,用來補足 Java 5 不足之處。用了一下發現確實滿順手,設計上一些有趣的選擇也讓人很容易把 Java 源碼翻譯過去,我即使看 Java 的 tutorial 也幾乎無痛使用。因為 Android Studio 的基礎——IntelliJ IDEA——也是由 JetBrains 開發,所以套件支援也不錯。建議可以學一下,應該會對 Android 開發頗有幫助。

另外他們最近也在推Anko。這是個基於 Kotlin 的 Android UI DSL,目標是用來取代主流的 XML layout。因為是基於 Kotlin,所以這個 layout 方法基本上可以直接寫在程式裡,一方面容易擴充,一方面速度也會比 runtime 解析 XML 更快,我覺得應該滿有前途。因為還不成熟,我應該是不會在現在的 project 用。建議持續關注。另外 project 名一直讓我想到這個。

kotlinlang.org

Intentional Communication — Keynote at PyCon Taiwan 2016 by Steve Dower

今年的 PyCon Taiwan 也結束啦。這次聽到最好的 keynote 是壓軸的 Steve Dower。這個演講和 Python 本身其實沒太大關聯,但提到了 programmer 常被忽略的重要技能:溝通。這個演講提出了一些方法,讓別人能共容易接受你的想法。這個可以應用在很多方面,最主要的是站上講台演講,但不少技巧在一對一溝通時也很有用。

Steve 在微軟工作,負責了很多 Python 對 Windows 支援的東西(包括那個超優秀的新版 installer!)。我在工作上一直有用到 Python on Windows,但實在很少能找到機會和人討論,所以一直很期待 Steve 的演講。結果他講了個完全無關的內容⋯⋯但聽完之後什麼無法抱怨啊,值回票價。幸好後來也有堵到他聊了不少 Python on Windows 的話題,沒有遺憾了。他也提到微軟與他的 team 近期會注意的項目,有些頗有趣,但他說不見得會成功所以不能爆料哈哈。

另外這次的錄影是直接從直播存下來的,所以目前都是很闊氣的六小時一刀未剪。徵求影片後製!主要的工作就是把每個 session 分成不同檔案,然後在前面加個字卡(已有設計)。有興趣者歡迎聯絡議程組長亮亮。

youtu.be

pynsist: Build Windows installers for Python applications

承上篇,上次被 Steve 推坑的 project。如果要 deploy 一個 Python 程式(尤其在 Windows),目前主流的方法是用 cxFreeze 或 PyInstaller 之類的工具,把源碼與 interpreter 打包成一個 standalone executable(.exe)。對於小程式而言這通常沒有大問題,但因為各種原因,我工作上的專案不適合用這個方法,而是用NSIS 製作一個安裝程式,直接把源碼和 Python interpreter 拷貝進 target system,然後建立一個 shortcut 來執行。Python 自從 3.5 開始為 Windows 提供了 embedded distribution ,可以大幅縮小這類安裝法需要的資源,我認為和單一執行檔的作法各有勝場。

如果你也有類似的需求,但不想像我一樣特地跑去學 NSIS(或其他類似的東西),或許可以考慮這個工具。這個專案只需要你提供想安裝的源碼,並用一個 INI 檔(符合 Python 內建的 config parser 格式)指定 dependency list 和一些參數,就會自動幫你根據現在的 interpreter 建立安裝檔。目前的功能其實有點陽春,所以我也沒在工作上用,但微軟最近也對這個專案頗有興趣,之後可能會加上一些特別的支援(應該可以講吧)。

github.com

CodeTengu Weekly 碼天狗週刊 - Issue 48 做高級工程師好多年了,沒想到今天忽然就被升職成傳說級...

TVアニメ『NEW GAME!』オフィシャルサイト

「今天一天也要加油喔!」

又到了推坑新番的季節啦~~~這季有幾部都滿期待的,但還是決定選了有(一點點)相關的作品。得能正太郎的 NEW GAME! 是藉由新人遊戲繪師涼風青葉的角度,描述員工們在製作電腦遊戲同時發生的故事。你問相關在哪?因為裡面很多事會讓你心有戚戚焉啊!例如專案各種 delay 最後加班之類的(眼神死)。裡面也有個角色是程式 team,看他和主角的 team 互動感覺就像和 web designer 合作一樣,有開心也有各種翻白眼。動画工房做這種小品應該滿安全的,推薦。

同時參考巴哈姆特的介紹。

newgame-anime.com

Random Cool Stuff

なんで愛が生まれるのか

"生" 跟 "死" bitwise AND 的結果是 "愛"!!!

線上驗證:

Go playground

在 terminal 自己驗證:

perl -E 'say "生" & "死"'

由@saiday 提供。

qiita.com

原文  http://weekly.codetengu.com/issues/48
正文到此结束
Loading...