前半段是 IoT Development 相關
後半段則是 JavaScript Web development 和 Node.js 開發大全
Google Weave
Android Things (Brillo)
https://developer.android.com/things/hardware/index.html
- 專為 IoT 設計的 OS
- 35 MB RAM
Apple HomeKit
- 體系相對封閉
- 語音助手 (Siri)
- 認証: MFi
iOS (SDK)
HomeKit API
HomeKit Accessory Protocol (HAP)
Eclipse IoT Working Group
- Open Source and Open Standards for IoT
- New and Existing Devices
- IoT Gateways
- Network Carriers
- Backend Systems
- IoT Suite
- oneM2M: REST interface
- OMA LWM2M Server - Leshan
- Gateway stack - Kura
- CoAP - Californium (Java)
- MQTT - Mosquitto/Paho
- Paho 提供了不同語言實作的 MQTT client
- 有 C++, Java, JavaScript ...
- Paho 提供了不同語言實作的 MQTT client
- MQTTSN (Eclipse 自己設計的)
Kura - IoT Gateway Stack/ App Framework
- Edge Nodes (clients, 連網的裝置)
- Local Automation
- M2M Integration Platform
- Enterprise Interfaces
- Business Applications (Mobile Apps, Web Apps, ...)
Web Of Things
Google Physical Web
- Eddystone
- MT7697
IoT Platform
Front-end and Back-end
- Web Front-end
- Web 1.0
- F5 刷新
- Web 2.0+
- HTML RSP
- AJAX
- HTML5
- WS (WebSocket)
- SSE (Server-Sent Events)
- MVP (Web 2.0+)
- 代表性的案例:jQuery
- MVVM (Framework)
- V (user), VM (framework), M <---client-side-----------server-side---> M
- server 一有資料更新就會 push 過來或是背後會一直去跟 server 要資料,所以使用者端會覺得資料是即時的
- React.js
- 使用 JavaScript (JSX) 撰寫 View (React)
- Virtual DOM
- Controller View = View + State Machine + Controller
- 單向數據流架構化 (Flux)
- 單一數據源、狀態大總管 (Redux)
- Web 1.0
- Web Back-end (JavaScript related)
- Package Manager
- Task Runner
- grunt, gulp, npm, webpack
- Pre-compiler Transpiler
- Linter
- Utils
- Bundler
- webpack, RequireJS (AMD), Browserify (CommonJS)
- Dev Server
- uglify, watchify
Node.js
- Server-side, JS runtime
- Async I/O - libuv
- Concurrenty - Event Loop
- timers
- I/O callbacks
- idle, prepare
- poll
- check
- close callbacks
- https://simeneer.blogspot.tw/2016/09/nodejs-eventemitter.html
- 除錯工具
- 原生除錯工具
break;
$ node debug app.js # c, n, s, o
- 第三方工具
- node-inspector
$ node-debug app.js
- iron-node
$ iron-node app.js
- devtool
$ devtool app.js
- node-inspector
- IDE 內建的除錯模組
- 原生除錯工具
- 除錯訊息與日誌 (Logging)
- stdout / stderr [+ pipe][+ redirect]
console.log();
console.error();
- 第三方模組
$ npm install debug --save
,$ DEBUG=namespace node app.js
$ npm install winston --save
,$ node app.js
$ npm install bunyan --save
,$ node app.js | bunyan [opts]
$ npm install pino --save
,$ node app.js | pino-<xxx>
- 號稱 Node.js 的 logging module 裡頭速度最快的
- intel, log4js, loggly, bole
- stdout / stderr [+ pipe][+ redirect]
- 測試框架/工具
- Hosted CI Services
- Travis CI, Circle CI, GitLab Ci, wercker, codeship
- Test Framework
- mocha, jasmie-node, tape, tap
- Assertions
- assert, should, expect, chai
- Test Double
- sinon.js
- Code Coverage
- istanbul, JSCover, blanket.js
- Hosted CI Services
物聯網大亂鬥
- Network Topology
- p2p
- star
- 目前的藍芽
- star-of-star
- Mesh
- 有自我修復的功能
- ZigBee
- 依區域範疇劃分
- 常見 PAN/WAN 之特性
- EnOcean
- ZigBee
- Thread
- BLE
- WiFi
Share
Donation
如果覺得這篇文章對你有幫助, 除了留言讓我知道外, 或許也可以考慮請我喝杯咖啡, 不論金額多寡我都會非常感激且能鼓勵我繼續寫出對你有幫助的文章。
If this blog post happens to be helpful to you, besides of leaving a reply, you may consider buy me a cup of coffee to support me. It would help me write more articles helpful to you in the future and I would really appreciate it.
Related Posts
- Error: [email protected] install: `node-gyp rebuild`
- SITCON 2015 - Android Repackaged App Detection System