JavaScript in 2015

Screen Shot 2015-09-09 at 2.03.34 PM

在這幾年的趨勢看來,JavaScript 已經環繞在各領域了,不管在 Web 前端或後端,上層或下層,都充滿了 JavaScript,其實都是托 Node.js 的福,網路上看到這篇 JavaScript in 2015,裡面講到 JavaScript 所有的工具,不管前端到後端,每一年都有新的工具跟新的 Framework,從以前寫 BackboneAngular.js 到現在 React.js 改變了整個 JavaScript View 的生態,工具流程整合從 Grunt.jsGulp.js 的出現,整個生態又轉換了,大家陸續將工具全都轉到 Gulp,最後又出來一套 Webpack,Webpack 出現基本上不會影響 gulp 發展,因為 Webpack 還是有很多限制,在前端或後端在上 Production 前的一些流程像是 copy 檔案等,這些是 webpack 無法整合的,看到這些工具一一出現,也不知道明年或現在會不會又跑出一套新的玩具,讓整個 JavaScript 生態整個改變。寫上層的同時,看到同事在寫底層,同事就會跑過來拍拍我肩膀說:『好險我是搞 Kernel,搞上層就要跟你們一樣天天追新技術,永遠沒有停止的一天』。看一下全世界 Job Trends

Continue reading “JavaScript in 2015”

Backbone.js 1.1.1 Release 釋出 AMD 版本

backbone

Backbone.js 在 2014.02.13 推出 1.1.1 版本,此次改版沒有推出重大功能,距離上次 1.1.0 版本只有經過四個月,時間也沒有很長。之前版本尚未支援 AMD,所以都是使用 amdjs/backbone 版本,但是這次 Backbone 官方直接釋出 AMD 版本,那之後就照官方版本走就可以了,底下是這次改版 Release note

  • 釋出 AMD (require.js) 版本
  • 新增 execute hook 讓開發者可以處理特定 route arguments
  • Backbone Event 效能改善
  • 處理相容舊瀏覽器 URL Unicode

近幾年 Javascript Framework 串起,似乎現在大家瘋狂的跟 Angularjs,所以 Backbone 似乎進度也沒有很快了,就像 PHP Framework 一樣,Laravel 的出現,讓其他 Framework 變得比較少討論了

Javscript 18 歲生日歷史演進

resin.io 看到這篇 Happy 18th Birthday JavaScript! A look at an unlikely past and bright future. 裡面有些 Javascript 發展史,蠻有趣的,分享給大家看看。18 年前由 Netscape 和 Sun 共同 Release Javscript,在當年18天後,Ruby 也同時發佈了,底下來看看 Javscript 歷史演進。 Continue reading “Javscript 18 歲生日歷史演進”

將 Backbone Framework 升級到 1.1.0 注意事項

backbone
Backbone.js 經過了半年終於在 10 月 Release 了 1.1.0 版本,這次升級最重要的一點就是,Backbone 本來在 View 有支援 options,讓你可以透過初始化過程,將自定額外的 key 及 value 帶入,並且可以隨時透過 this.options.key 的方式取得資料。直接給例子來解說好了
this.example = new Backbone.View.extend({
  template_name: "user_edit",
  el: "#main"
});
上面是宣告 Backbone.view 的寫法,程式設計師可以傳入 object 設定,並且可以在程式任意地方,使用 this.example.options.template_name 方式來得到 user_edit 值,如果是使用 Backbone 1.1.0 之前的版本都沒問題,要升級到 1.1.0,又想要此功能,請務必在 view 的宣告前就必須加一段程式碼(後面解說)。為什麼作者會拿掉呢?因為有開發者發 issue 說為什麼 View 有這功能,那 Model 為什麼沒有呢?,這會讓未來加入開發的程式設計師感到困擾,所以作者就決定拿掉這塊 Continue reading “將 Backbone Framework 升級到 1.1.0 注意事項”

CodeIgniter REST Server with Backbone.js Issue

CodeIgniter
如果有在用 CodeIgniter 來當作 REST Server 的朋友們,我相信都會找到 philsturgeon 所寫的 codeigniter-restserver,此套件幫你完成底層 API Response 動作,讓你可以輕易處理 REST URL。但是如果拿這套程式碼來搭配 Backbone.js 你會遇到拿不到 POST 或 PUT 變數問題,作者來一一描述。 Continue reading “CodeIgniter REST Server with Backbone.js Issue”

Backbone Routing pushState in IE

backbone
Backbone.js 幫忙處理掉所有瀏覽器 Html5 History pushState 功能,除了 IE 9 以下(含 IE 9)不支援 history.pushState()history.replaceState(),其他 Browser 幾乎都支援了,在 Backbone.js 如何處理 URL 變化呢?以往透過 handle URL hash 來決定網頁要處理哪些資料,這也是 Backbone 預設的處理方式,範例如下 URL:
http://xxx/#!/user/list http://xxx/#!/user/add
Continue reading “Backbone Routing pushState in IE”

Backbone.js rewrite into CoffeeScript?

backbone
看到 @gsamokovarov 提出將 Backbone.js 改寫成 CoffeeScript 架構的 Pull request,結果官方團隊其中一位開發作者回應了一張圖,代表他的心情 XD,各位有興趣可以點上面連結看看,後來有其他人回應說,為什麼官方不用 CoffeeScript 來寫了,發此 Pull Request 的作者也有說,他只是將架構改成 CoffeeScript 讓大家參考看看而已,沒有真的希望可以納入整個 Backbone.js 專案,如果有其他開發者需要的話,一樣可以 fork 此專案,說明文件也用 docco 產生好了,可以參考此連結,官方作者也提到,大部份的第3方 Library 還是不會使用 CoffeeScript 來當作基底開發,畢竟並非所有人都知道 CoffeeScript,如果官方想這麼開發的話,早就再 2010 年丟釋出 Backbone.js 的時候就直接採用了,不會拖到現在還沒出來,當然最後官方也希望將此 pull request 寫到 wiki 裡面給大家參考,等待原作者補開發動機及細節。

Backbone.js event bind 新功能 listenTo and stopListening

backbone
之前寫了一篇 Backbone.js Event 事件介紹,簡介 Backbone.js Events 如何使用 onoff 來處理事件,在升級 Backbone 到 0.9.9 過程中,其中一項重大新功能就是 Backbone listenTo and stopListening,大家來看看 Change logs:
Added listenTo and stopListening to Events. They can be used as inversion-of-control flavors of on and off, for convenient unbinding of all events an object is currently listening to. view.remove() automatically calls view.stopListening().
Continue reading “Backbone.js event bind 新功能 listenTo and stopListening”