Quantcast
Channel: CodeTengu Weekly 碼天狗週刊
Viewing all articles
Browse latest Browse all 109

CodeTengu Weekly 碼天狗週刊 - Issue 57 Any application that can be written in JavaScript, will eventually be written in JavaScript. - Aug 29th 2016

$
0
0

Hello World

CodeTengu Weekly 碼天狗週刊

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

以下是目前的 curator 陣容:

大家也可以關注我們的 FacebookTwitterGitHub微博,有很多 Weekly 看不到的內容。有任何建議或疑問也可以來 Gitter 聊聊,歡迎亂入 👺

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

@kako0507

The Marvellously Mysterious JavaScript Maybe Monad

如果對 Functional Programing 不熟,建議先看 Douglas Crockford 在 YUIConf 2012 的介紹影片,以及 Aditya Bhargava圖解教學

因為 JavaScript 的 Promise 其實也是一種 monad ,所以文章一開始會先重述 Promise ,以便理解 monad 的概念。

再以凌亂的 if statement 當作例子,一步一步的套用 maybe monad ,改善 null/undefined checking 的流程。

jrsinclair.com

A few HTML tips

這篇文章點出了一些 HTML 上的小建議:

  • 段落
    • 斷行使用 <p> ,避免使用 <br> ( <br> 適合用在詩或歌的斷句 )
  • 標題
    • 為了表示正確的語意,必須按照順序使用 <h1> ~ <h6> ,如果是需要調整字型大小,可以透過 CSS 更改
    • 在次標題上避免使用較低層級的 heading ,改用一般的文字 markup 。
  • 表單
    • placeholder 建議放入正確格式的範例而非說明
    • 使用正確的 type 在 mobile 顯示對應的鍵盤
  • 使用 <svg> 取代 <img> , 使得向量圖也可以透過 CSS 來改變樣式

mozilla.org

Introducing React Native Ubuntu

日前 Ubuntu 公布了 React Native for Ubuntu 的 source code ,現在可以利用 React Native 來實作 Ubuntu 的 Desktop App 了!

有興趣的朋友可以照著官方教學玩玩看。

ubuntu.com

How to Handle React Context in a Reliable Way.

當需要將 properties 傳遞到多個 level 底下時, React 提供了一種方式來解決參數需要層層傳遞的問題: Context ,已經被一些較熱門的 libraries 使用,如 React-ReduxReact-Router

不過使用上還是有一些缺點:

  • 因為目前還在實驗階段,將來 API 很有可能會變動
  • 假設 context value 更新了,使用到該 value 的 descendant component 與 provider component 間如有其他 component 進入 shouldComponentUpdate 並 return false ,則該 descendant component 並不會 re-render ,使用上容易出錯。

對此 Dan Abramov 在他的 twitter 上面給了一些意見

可以藉由 High-order component 的方式,將 context 寫在較外層的 component ,這樣 API 更新時,就只需要改一個地方。

medium.com

@chiahsien

Managing Consistency of Immutable Models

資料不一致一直都是程式設計師的惡夢,也是 bug 最常發生的原因之一。LinkedIn 的工程師分享了他們對 Core Data 的評價,以及如何透過 immutable model 達到資料的一致性。說穿了就是「真相永遠只有一個(Single source of truth)」,建議可以配合最近很紅的 Redux 架構一起看,會有更多體會。

延伸閱讀:

realm.io

活久见的重构 - iOS 10 UserNotifications 框架解析

九月即將來臨,Apple 下一代產品也將要發表,這也代表著 iOS 10 正式版要上線了。在 iOS 10 裡頭對於 notification 相關的 framework 做了一個大更動,變得對開發者更加友好了,如果你還不知道改了什麼,是時候瞭解一下了!

onevcat.com

The iOS bug chase

遇到 bug 總是一件令人喪氣的事,尤其是遇到很難重現或者是系統的 bug 更是如此。有位開發者就遇到一個這種 bug,它是 Apple MapView 的一個老問題,存在好幾年了。多虧這位開發者,這個 bug 已經在即將正式推出的 iOS 10 被修正,他把 debug 的過程詳細的紀錄了下來,讀起來非常有趣。

allegro.tech

MVVM Is Quite Okay at What It Is Supposed to Do

MVVM 應該是這幾年 iOS 開發最熱門的關鍵字之一,網路上對它的褒貶不一,也有不少人以此為基礎提出了所謂的「加強版」。我個人是覺得它會背負這一些罵名,一部分是因為它的名字取的不好,另一部分是因為使用者沒有完全理解它就硬把它導入到專案裡頭。

MVVM 所描述的是關於部分 UI 的架構,更精確的說,是關於「如何回應使用者動作(View 呼叫 View Model)」以及「如何將資料顯示到畫面(View Model 通知 View)」。但因為沒有明確的說明該怎麼設計 View Model,結果很多人把原本在 View Controller 的一大坨程式碼搬到 View Model,這對程式碼完全沒有幫助啊!

正確的作法應該是:依照需要你可能會有 Network Manager、Data Parser、Data Center、有的沒的 Service,你的 View Model 呼叫這些元件做事,然後把回傳資料轉換成適當的格式,再通知 View 更新畫面。

christiantietze.de

Xcode 8 Extensions

Xcode 作為一個 IDE,它所提供的功能雖然一直都很不符合大多工程師的期待,但因為蘋果也沒有禁止我們幫 Xcode 開發 plugins,所以 plugins 生態圈也是蓬勃發展,大家也用的很開心。

想不到在今年的 WWDC 蘋果放出了一個震撼彈,正式支援讓人開發 Xcode 套件,但也禁止舊有 plugins 執行。只是三個月過去了,大概是蘋果開放可控制的東西太少,所以目前看到的套件還是寥寥可數啊 :(

延伸閱讀:

theswiftdev.com

@kkdai

[研討會心得][COSCUP] COSCUP 2016 上台初體驗

曾經聽人提到這兩年參與大大小小研討會,越來越少看到參與者來寫心得了. 所以就算是身為講者,我也提出了我的心得 :p

裡面有附上兩場主要跟 Golang 有關場次的投影片,並且有把直播影片也附上,歡迎想看的人可以直接點取觀看.

evanlin.com

[研討會] Modern Web 2016 - Day2 上台日

今年的 Modern Web 2016 一共有三位碼天狗的 Curator 上台,你們有沒有參加呢? 這是我參加第二天的心得整理 ( 內容有連接到第一天的心得 ) ,裡面也有我這次上台的投影片,希望對大家有些幫助...

evanlin.com

Go Traps

列出了許多 Golang 的陷阱 (trap) ,舉例而言:

  1. range 一個 slice 第一個回傳值不是 value 而是 key (最常犯 XD)
  2. map 忘記初始化
  3. goroutine 如果沒有等待,直接結束 app 的話是不會執行的.

試著看看你能不能看出每一個陷阱的原因吧.

go-traps.appspot.com

GopherCon 2016 - Playlist

今年最盛大的 Gopher 聚會, GopherCon 2016 在 07 月 10 ~ 11日已經結束了. 但是影片在這八月底終於釋出.

這裡有播放清單,快來看看:

推薦 Session :

  1. Rob Pike - The Design of the Go Assembler
  2. Francesc Campoy - Understanding nil
  3. Daniel Whitenack - Go for Data Science

youtube.com

Why I consider if/else idiomatic Go

這一篇講解了很基本的 IF / ELSE 的使用方式.特別是在 Golang 的 Error Handle 部分. 大家在判斷回傳值中的 Error ,是否有注意到他的變數生命週期? 有沒有想過如何寫會讓人更容易了解?

很推薦這一篇來好好學習一下

nicerobot.org


This RSS feed is published on http://weekly.codetengu.com/. You can also subscribe via email.


Viewing all articles
Browse latest Browse all 109

Trending Articles