SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
Startup
Engineering
Camp #3
www.moko365.com

靜宜⼤大學
2013/10/19、10/20
Jollen Chen <jollen@moko365.com> / Founder
Hank Wang <hank@moko365.com> / Software Developer
本著作係採⽤用創⽤用 CC 姓名標⽰示-⾮非商業性禁⽌止改作 3.0 Unported 授權條款授權.
Founder and CEO, Moko365 Inc <jollen@moko365.com>
10+ years in embeddes software and ODM industry Taiwan.
Trainner and consultant for Android/HTML5.
Skills: JavaScript, C, C++, Android App..etc

Software Engineer, Moko365 Inc <hank@moko365.com>
Jointly development of sociable networking web and also
develope in Android and iOS App.
Skills: JavaScript, Python, iOS...etc
mokocrush
learning by doing

HTML5 and <div>
Canvas
JavaScript
WebSockets
Feature detection
Swapping items
Matching three
Startup Engineering Course
at Standford

來源:https://class.coursera.org/startup-001/lecture/index

moko365
Future Courses
AWS
Heroku
JavaScript
CoffeeScript
Node.js
Express
Sequelize
PostgreSQL
Bootstrap

phantom.js
Angular
Backbone
Sublime
emacs vi
JSON
LESS
SCSS SASS
Grunt
moko365
HTML5 Apps

Single page application
<!DOCTYPE html>
<html>
<head>
! <meta charset="utf-8">
! <title>NO Game</title>
</head>
<body>
<div id="game">
! <div class="screen" id="main-menu"></div>
! <div class="screen" id="game-screen"></div>
! <div class="screen" id="score-board"></div>!
</div>
</body>
</html>

moko365
Prototyping
Architect
Organize
Frontend
Lean Development
The Project Structure
Extract the project structure
.
.bowerrc
.editorconfig
.gitignore
Gruntfile.js
LICENSE
bower.json
package.json
|-public
|---css
|---fonts
|---images
|---js
|---vendor
|-----bootstrap
|-----jquery
|-fixes
|-sass
|-schema
|-scripts
|-utilities
|-views

《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
Bootstrap
1. CSS framework and grid system
2. Fast prototyping
3. Revamp your workflow

http://mashable.com/2013/04/26/css-boilerplates-frameworks/
《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
Page Layout Manager
1. Easy to seperate and manage layouts
2. Use a HTML5 template engine

《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
Choose Languages
Programming languages
Template engine languages
Stylesheet languages

JavaScript + Jade + SASS

http://jade-lang.com
《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
Understanding Jade
doctype 5
html(lang="en")
head
title= pageTitle
script(type='text/javascript').
if (foo) {
bar(1 + 5)
}
body
h1 Jade - node template engine
#container.col
if youAreUsingJade
p You are amazing
else
p Get on it!
p.
Jade is a terse and simple
templating language with a
strong focus on performance
and powerful features.

<!DOCTYPE html>
<html lang="en">
<head>
<title>Jade</title>
<script type="text/javascript">
if (foo) {
bar(1 + 5)
}
</script>
</head>
<body>
<h1>Jade - node template engine</h1>
<div id="container" class="col">
<p>You are amazing</p>
<p>Jade is a terse and simple
templating language with a
strong focus on performance
and powerful features.</p>
</div>
</body>
</html>

Source: http://jade-lang.com
《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
Startup
keeping up on new technologies, doing quick
evaluations, and then snapping the pieces together
Prototyping
Architect
Organize
Frontend
Lean Development
Client/Server Architecture
Presentation
(HTML5/CSS/JavaScript)

HTTP

RESTful API
(HTTP and JSON)

(URI)

Browser

Business Logic & Service

Browser Engine

Application Server

Operating System

Camera

Sensor

...

MySQL

I/O

...

Over HTTP
(Cloud)

《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
HTTP API 的形式

API

Query string

http://localhost:8888/send?m=hello&u=jollen

Pathname

URL (⼀一種 URI 形式)

《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
Response Content
HTML Document
XML Document
JSON Data
Base64 encode (⽤用於 Binary 檔案)
亦可⾃自定

《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
HTTP API
Web Service API (Open API) over HTTP
以 JSON 格式回應資訊
Client 與 Server 的互動架構
GET 是⼀一種 HTTP 請求⽅方式 (HTTP Methods)
基於 HTTP Methods 以 HTTP API 的系統架構
➡

REST

➡

RESTful

《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
Web Service
RESTful
CRUD
Invoke Web service in Backbone way

JavaScript + Jade + SASS + Backbone + REST
《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
REST
Resource Oriented Architecture
A resource is indentified by a URI

URI 的定義有標準規範

《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
REST Object Example
GET /save.php?u=jollen&s=100

POST /user/jollen/2048

《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
Nodejs、Bootstrap
矽⾕谷眾多的 Startups 正是以 JavaScript、
Nodejs、Bootstrap 等技術,來打造軟體產品

台灣有許多新創公司,也都使⽤用上述提到的技術在開發服務
Prototyping
Architect
Organize
Frontend
Lean Development
Use MVC for Frontend JavaScript
Model, View and Control

Views and Templating
Handlebars.js and Underscore’s
template
http://addyosmani.com/resources/essentialjsdesignpatterns/book/#jquerypluginpatterns
《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
Spine.js or Backbone.js

Model, View and Control

Spine.js and Backbone.js

《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
Manage Data as Collections

Model, View and Control

manage the data for an application
e.g. Backbone "collections"

《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
MVC to MPV

MPV

Models, Views & Presenters
MVP is generally used most often in
enterprise-level applications where it's
necessary to reuse as much
presentation logic as possible.
http://addyosmani.com/resources/essentialjsdesignpatterns/book/#jquerypluginpatterns
《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
Mobile first
HTML5 is good at responsive design.
Bootstrap 3 is mobile first.
Prototyping
Architect
Organize
Frontend
Lean Development
Frontend vs Backend
HTML5
JavaScript
Prototype
CSS3
DOM
jQuery
Backbone
Unit Testing

Nodejs
Express
MongoDB
Grunt
REST

《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
Best Practice to Frontend JavaScript
JavaScript closure (module)
Use // {BEGIN|END} TESTING API
Use Instantiable Objects
Separate DOM event handlers from the
action it performs
https://shanetomlinson.com/2013/testing-javascript-frontend(http://goo.gl/HpT7p6)
part-1-anti-patterns-and-fixes/
《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
Best Practice to Frontend JavaScript
Mock in XHR requests
Asynchronous programming requires
notifications
externalize all scripts
Use callbacks
https://shanetomlinson.com/2013/writing-testable-javascriptpart-2-refactor-away-anti-patterns/
《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
More Best Practice ?
Use stylesheet language

《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
JavaScript Constructor Pattern
function Person(name, job) {
! this.name = name;
! this.job = job;
! this.queryJob = function() {
! ! alert(this.job);
! };
}
// 將 Person() 視為 constructor
var person = new Person("Jollen", "Software Developer");
alert(person instanceof Person); // true

《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
Prototyping
Architect
Organize
Frontend
Lean Development
Lean Software Development
源⾃自⽇日本 Toyota 的⽣生產系統
由 Agile 社群將之導⼊入軟體⼯工程領域,成為敏捷開
發模式的重要思想基礎
Mary Poppendieck 與 Tom Poppendieck 將其
發展成⼀一套系統化的模式
22 Tools、7 Principles

《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
Open Source Way
⾃自我組織型(Self-Organized)的研發團隊
Kanban ⽅方法論

《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
7 Principles
Eliminate Waste
Amplify Learning
Decide as Late as Possible
Deliver as Fast as Possible
Empower the Team
Build Integrity In
See the Whole

《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
Typical Project Management
Project scope management

Collect Requirements
Define Scope
Create WBS
Verify Scope
Control Scope
《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
See the Waste
Booklog.io

Setup a Goal
Fast Prototyping
Implement REST
Documentation
《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
Using Gitflow with Github

http://datasift.github.io/gitflow/GitFlowForGitHub.html

《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
Open Innovation
Hacker、社群、GPLv2 與
Apache、⾃自由軟體與 Open
source,都是開放創新的元素
Chesbrough 教授的開放創新著作
裡,特別討論到典型的內部 RD 團
隊,不再是公司重要的策略資產
Startup Engineering
Startup 和 Startup Engineering 是⼀一種互補關係。Moko365 今天如果
專注在 Startup Engineering 層⾯面,它可以和許多資源與資⾦金更多的
Startup 投資公司合作。例如:appWorks 或是台灣創意⼯工場

Mais conteúdo relacionado

Mais procurados

Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Sadaaki HIRAI
 
Comparing JVM Web Frameworks - Rich Web Experience 2010
Comparing JVM Web Frameworks - Rich Web Experience 2010Comparing JVM Web Frameworks - Rich Web Experience 2010
Comparing JVM Web Frameworks - Rich Web Experience 2010Matt Raible
 
GWT + Gears : The browser is the platform
GWT + Gears : The browser is the platformGWT + Gears : The browser is the platform
GWT + Gears : The browser is the platformDidier Girard
 
JDBC, What Is It Good For?
JDBC, What Is It Good For?JDBC, What Is It Good For?
JDBC, What Is It Good For?VMware Tanzu
 
Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019Matt Raible
 
JHipster for Spring Boot webinar
JHipster for Spring Boot webinarJHipster for Spring Boot webinar
JHipster for Spring Boot webinarJulien Dubois
 
Not Only Reactive - Data Access with Spring Data
Not Only Reactive - Data Access with Spring DataNot Only Reactive - Data Access with Spring Data
Not Only Reactive - Data Access with Spring DataVMware Tanzu
 
2014 HTML5 총정리
2014 HTML5 총정리2014 HTML5 총정리
2014 HTML5 총정리Wonsuk Lee
 
Choosing a Java Web Framework
Choosing a Java Web FrameworkChoosing a Java Web Framework
Choosing a Java Web FrameworkWill Iverson
 
A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019
A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019
A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019Matt Raible
 
Hybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKitHybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKitAriya Hidayat
 
The journey to DevOps: What I learned after leading transformation at 2 Enter...
The journey to DevOps: What I learned after leading transformation at 2 Enter...The journey to DevOps: What I learned after leading transformation at 2 Enter...
The journey to DevOps: What I learned after leading transformation at 2 Enter...VMware Tanzu
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13Fred Sauer
 
Spark IT 2011 - Developing RESTful Web services with JAX-RS
Spark IT 2011 - Developing RESTful Web services with JAX-RSSpark IT 2011 - Developing RESTful Web services with JAX-RS
Spark IT 2011 - Developing RESTful Web services with JAX-RSArun Gupta
 
Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Matt Raible
 
Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020Matt Raible
 
A Gentle Introduction to Angular Schematics - Angular SF 2019
A Gentle Introduction to Angular Schematics - Angular SF 2019A Gentle Introduction to Angular Schematics - Angular SF 2019
A Gentle Introduction to Angular Schematics - Angular SF 2019Matt Raible
 
JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011Shreedhar Ganapathy
 
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019Matt Raible
 

Mais procurados (20)

Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
Familiar HTML5 - 事例とサンプルコードから学ぶ 身近で普通に使わているHTML5
 
Comparing JVM Web Frameworks - Rich Web Experience 2010
Comparing JVM Web Frameworks - Rich Web Experience 2010Comparing JVM Web Frameworks - Rich Web Experience 2010
Comparing JVM Web Frameworks - Rich Web Experience 2010
 
GWT + Gears : The browser is the platform
GWT + Gears : The browser is the platformGWT + Gears : The browser is the platform
GWT + Gears : The browser is the platform
 
JDBC, What Is It Good For?
JDBC, What Is It Good For?JDBC, What Is It Good For?
JDBC, What Is It Good For?
 
Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019Front End Development for Backend Developers - GIDS 2019
Front End Development for Backend Developers - GIDS 2019
 
JHipster for Spring Boot webinar
JHipster for Spring Boot webinarJHipster for Spring Boot webinar
JHipster for Spring Boot webinar
 
Not Only Reactive - Data Access with Spring Data
Not Only Reactive - Data Access with Spring DataNot Only Reactive - Data Access with Spring Data
Not Only Reactive - Data Access with Spring Data
 
2014 HTML5 총정리
2014 HTML5 총정리2014 HTML5 총정리
2014 HTML5 총정리
 
Choosing a Java Web Framework
Choosing a Java Web FrameworkChoosing a Java Web Framework
Choosing a Java Web Framework
 
A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019
A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019
A Gentle Introduction to Angular Schematics - Devoxx Belgium 2019
 
Hybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKitHybrid Apps (Native + Web) via QtWebKit
Hybrid Apps (Native + Web) via QtWebKit
 
The journey to DevOps: What I learned after leading transformation at 2 Enter...
The journey to DevOps: What I learned after leading transformation at 2 Enter...The journey to DevOps: What I learned after leading transformation at 2 Enter...
The journey to DevOps: What I learned after leading transformation at 2 Enter...
 
GWT Reloaded
GWT ReloadedGWT Reloaded
GWT Reloaded
 
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
SF JUG - GWT Can Help You Create Amazing Apps - 2009-10-13
 
Spark IT 2011 - Developing RESTful Web services with JAX-RS
Spark IT 2011 - Developing RESTful Web services with JAX-RSSpark IT 2011 - Developing RESTful Web services with JAX-RS
Spark IT 2011 - Developing RESTful Web services with JAX-RS
 
Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021
 
Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020
 
A Gentle Introduction to Angular Schematics - Angular SF 2019
A Gentle Introduction to Angular Schematics - Angular SF 2019A Gentle Introduction to Angular Schematics - Angular SF 2019
A Gentle Introduction to Angular Schematics - Angular SF 2019
 
JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011JAX-RS JavaOne Hyderabad, India 2011
JAX-RS JavaOne Hyderabad, India 2011
 
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
 

Semelhante a Startup Engineering Camp Guide to HTML5, JavaScript and Lean Development

AngularJS with TypeScript and Windows Azure Mobile Services
AngularJS with TypeScript and Windows Azure Mobile ServicesAngularJS with TypeScript and Windows Azure Mobile Services
AngularJS with TypeScript and Windows Azure Mobile ServicesRainer Stropek
 
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020Matt Raible
 
Syllabus for Technical courses
Syllabus for Technical coursesSyllabus for Technical courses
Syllabus for Technical coursesMontek1Learning
 
Building Rich Applications with Appcelerator
Building Rich Applications with AppceleratorBuilding Rich Applications with Appcelerator
Building Rich Applications with AppceleratorMatt Raible
 
Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017Matt Raible
 
Technology Trends
Technology TrendsTechnology Trends
Technology TrendsHenry Jacob
 
Front End Development for Back End Java Developers - West Midlands Java User ...
Front End Development for Back End Java Developers - West Midlands Java User ...Front End Development for Back End Java Developers - West Midlands Java User ...
Front End Development for Back End Java Developers - West Midlands Java User ...Matt Raible
 
Front End Development for Back End Java Developers - NYJavaSIG 2019
Front End Development for Back End Java Developers - NYJavaSIG 2019Front End Development for Back End Java Developers - NYJavaSIG 2019
Front End Development for Back End Java Developers - NYJavaSIG 2019Matt Raible
 
Front End Development for Back End Java Developers - South West Java 2019
Front End Development for Back End Java Developers - South West Java 2019Front End Development for Back End Java Developers - South West Java 2019
Front End Development for Back End Java Developers - South West Java 2019Matt Raible
 
bakkesh_php_mysql_javascript_jquery_5.5yrs_Exp
bakkesh_php_mysql_javascript_jquery_5.5yrs_Expbakkesh_php_mysql_javascript_jquery_5.5yrs_Exp
bakkesh_php_mysql_javascript_jquery_5.5yrs_ExpBakkesh K S
 
Front End Development for Back End Java Developers - Dublin JUG 2019
Front End Development for Back End Java Developers - Dublin JUG 2019Front End Development for Back End Java Developers - Dublin JUG 2019
Front End Development for Back End Java Developers - Dublin JUG 2019Matt Raible
 
Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017Matt Raible
 
CV-Roy-Salha
CV-Roy-SalhaCV-Roy-Salha
CV-Roy-Salharoy salha
 
Arulraj gopalakrishnan java technical_lead (1)
Arulraj gopalakrishnan java technical_lead (1)Arulraj gopalakrishnan java technical_lead (1)
Arulraj gopalakrishnan java technical_lead (1)ARULRAJ GOPALAKRISHNAN
 
HTML5 Web Workers-unleashed
HTML5 Web Workers-unleashedHTML5 Web Workers-unleashed
HTML5 Web Workers-unleashedPeter Lubbers
 
COMPRO- WEB ALBUM & MOTION ANALYZER
COMPRO- WEB ALBUM  & MOTION ANALYZERCOMPRO- WEB ALBUM  & MOTION ANALYZER
COMPRO- WEB ALBUM & MOTION ANALYZERAshish Tanwer
 
Asynchronous architecture (Node.js & Vert.x)
Asynchronous architecture (Node.js & Vert.x)Asynchronous architecture (Node.js & Vert.x)
Asynchronous architecture (Node.js & Vert.x)Yu Kwangjong
 
Cross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic FrameworkCross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic FrameworkTroy Miles
 

Semelhante a Startup Engineering Camp Guide to HTML5, JavaScript and Lean Development (20)

AngularJS with TypeScript and Windows Azure Mobile Services
AngularJS with TypeScript and Windows Azure Mobile ServicesAngularJS with TypeScript and Windows Azure Mobile Services
AngularJS with TypeScript and Windows Azure Mobile Services
 
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020
 
Syllabus for Technical courses
Syllabus for Technical coursesSyllabus for Technical courses
Syllabus for Technical courses
 
Building Rich Applications with Appcelerator
Building Rich Applications with AppceleratorBuilding Rich Applications with Appcelerator
Building Rich Applications with Appcelerator
 
Resume
ResumeResume
Resume
 
Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017
 
Technology Trends
Technology TrendsTechnology Trends
Technology Trends
 
Front End Development for Back End Java Developers - West Midlands Java User ...
Front End Development for Back End Java Developers - West Midlands Java User ...Front End Development for Back End Java Developers - West Midlands Java User ...
Front End Development for Back End Java Developers - West Midlands Java User ...
 
Front End Development for Back End Java Developers - NYJavaSIG 2019
Front End Development for Back End Java Developers - NYJavaSIG 2019Front End Development for Back End Java Developers - NYJavaSIG 2019
Front End Development for Back End Java Developers - NYJavaSIG 2019
 
Front End Development for Back End Java Developers - South West Java 2019
Front End Development for Back End Java Developers - South West Java 2019Front End Development for Back End Java Developers - South West Java 2019
Front End Development for Back End Java Developers - South West Java 2019
 
bakkesh_php_mysql_javascript_jquery_5.5yrs_Exp
bakkesh_php_mysql_javascript_jquery_5.5yrs_Expbakkesh_php_mysql_javascript_jquery_5.5yrs_Exp
bakkesh_php_mysql_javascript_jquery_5.5yrs_Exp
 
Front End Development for Back End Java Developers - Dublin JUG 2019
Front End Development for Back End Java Developers - Dublin JUG 2019Front End Development for Back End Java Developers - Dublin JUG 2019
Front End Development for Back End Java Developers - Dublin JUG 2019
 
Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017
 
CV-Roy-Salha
CV-Roy-SalhaCV-Roy-Salha
CV-Roy-Salha
 
Arulraj gopalakrishnan java technical_lead (1)
Arulraj gopalakrishnan java technical_lead (1)Arulraj gopalakrishnan java technical_lead (1)
Arulraj gopalakrishnan java technical_lead (1)
 
Mashups
MashupsMashups
Mashups
 
HTML5 Web Workers-unleashed
HTML5 Web Workers-unleashedHTML5 Web Workers-unleashed
HTML5 Web Workers-unleashed
 
COMPRO- WEB ALBUM & MOTION ANALYZER
COMPRO- WEB ALBUM  & MOTION ANALYZERCOMPRO- WEB ALBUM  & MOTION ANALYZER
COMPRO- WEB ALBUM & MOTION ANALYZER
 
Asynchronous architecture (Node.js & Vert.x)
Asynchronous architecture (Node.js & Vert.x)Asynchronous architecture (Node.js & Vert.x)
Asynchronous architecture (Node.js & Vert.x)
 
Cross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic FrameworkCross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic Framework
 

Mais de Jollen Chen

Flowchain blockchain classroom at Taiwan Tech University
Flowchain blockchain classroom at Taiwan Tech UniversityFlowchain blockchain classroom at Taiwan Tech University
Flowchain blockchain classroom at Taiwan Tech UniversityJollen Chen
 
Bitmark and Hyperledger Workshop: the Digital Assets and Property
Bitmark and Hyperledger Workshop: the Digital Assets and PropertyBitmark and Hyperledger Workshop: the Digital Assets and Property
Bitmark and Hyperledger Workshop: the Digital Assets and PropertyJollen Chen
 
Introducing the Blockchain and Distributed Ledger Technology
Introducing the Blockchain and  Distributed Ledger TechnologyIntroducing the Blockchain and  Distributed Ledger Technology
Introducing the Blockchain and Distributed Ledger TechnologyJollen Chen
 
Maker of Things - the open IoT cloud for makers chapter.
Maker of Things - the open IoT cloud for makers chapter.Maker of Things - the open IoT cloud for makers chapter.
Maker of Things - the open IoT cloud for makers chapter.Jollen Chen
 
WoT.City and IoT Protocols Movement @ Taipei, Taiwan
WoT.City and IoT Protocols Movement @ Taipei, TaiwanWoT.City and IoT Protocols Movement @ Taipei, Taiwan
WoT.City and IoT Protocols Movement @ Taipei, TaiwanJollen Chen
 
IoT and Maker Crossover (IMCO) Conference 2015
IoT and Maker Crossover (IMCO) Conference 2015IoT and Maker Crossover (IMCO) Conference 2015
IoT and Maker Crossover (IMCO) Conference 2015Jollen Chen
 
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.Jollen Chen
 
Backbone.js and MVW 101
Backbone.js and MVW 101Backbone.js and MVW 101
Backbone.js and MVW 101Jollen Chen
 
Single-Page Application Design Principles 101
Single-Page Application Design Principles 101Single-Page Application Design Principles 101
Single-Page Application Design Principles 101Jollen Chen
 
MongoDB & NoSQL 101
 MongoDB & NoSQL 101 MongoDB & NoSQL 101
MongoDB & NoSQL 101Jollen Chen
 
Mokoversity Course: Apple Swift 101 - Introduction
Mokoversity Course: Apple Swift 101 - IntroductionMokoversity Course: Apple Swift 101 - Introduction
Mokoversity Course: Apple Swift 101 - IntroductionJollen Chen
 
Android Wear SDK: Level 101
Android Wear SDK: Level 101Android Wear SDK: Level 101
Android Wear SDK: Level 101Jollen Chen
 
讓 HTML5 走進 IPTV Framework
讓 HTML5 走進 IPTV Framework讓 HTML5 走進 IPTV Framework
讓 HTML5 走進 IPTV FrameworkJollen Chen
 
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)Jollen Chen
 
Android HAL Introduction: libhardware and its legacy
Android HAL Introduction: libhardware and its legacyAndroid HAL Introduction: libhardware and its legacy
Android HAL Introduction: libhardware and its legacyJollen Chen
 
Jollen's Presentation: Introducing Android low-level
Jollen's Presentation: Introducing Android low-levelJollen's Presentation: Introducing Android low-level
Jollen's Presentation: Introducing Android low-levelJollen Chen
 
Embedded Linux: Introduction
Embedded Linux: IntroductionEmbedded Linux: Introduction
Embedded Linux: IntroductionJollen Chen
 
Android Application: Introduction
Android Application: IntroductionAndroid Application: Introduction
Android Application: IntroductionJollen Chen
 
Android OS Porting: Introduction
Android OS Porting: IntroductionAndroid OS Porting: Introduction
Android OS Porting: IntroductionJollen Chen
 

Mais de Jollen Chen (19)

Flowchain blockchain classroom at Taiwan Tech University
Flowchain blockchain classroom at Taiwan Tech UniversityFlowchain blockchain classroom at Taiwan Tech University
Flowchain blockchain classroom at Taiwan Tech University
 
Bitmark and Hyperledger Workshop: the Digital Assets and Property
Bitmark and Hyperledger Workshop: the Digital Assets and PropertyBitmark and Hyperledger Workshop: the Digital Assets and Property
Bitmark and Hyperledger Workshop: the Digital Assets and Property
 
Introducing the Blockchain and Distributed Ledger Technology
Introducing the Blockchain and  Distributed Ledger TechnologyIntroducing the Blockchain and  Distributed Ledger Technology
Introducing the Blockchain and Distributed Ledger Technology
 
Maker of Things - the open IoT cloud for makers chapter.
Maker of Things - the open IoT cloud for makers chapter.Maker of Things - the open IoT cloud for makers chapter.
Maker of Things - the open IoT cloud for makers chapter.
 
WoT.City and IoT Protocols Movement @ Taipei, Taiwan
WoT.City and IoT Protocols Movement @ Taipei, TaiwanWoT.City and IoT Protocols Movement @ Taipei, Taiwan
WoT.City and IoT Protocols Movement @ Taipei, Taiwan
 
IoT and Maker Crossover (IMCO) Conference 2015
IoT and Maker Crossover (IMCO) Conference 2015IoT and Maker Crossover (IMCO) Conference 2015
IoT and Maker Crossover (IMCO) Conference 2015
 
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
Open IoT Cloud Architecture, Web of Things, Shenzhen, China.
 
Backbone.js and MVW 101
Backbone.js and MVW 101Backbone.js and MVW 101
Backbone.js and MVW 101
 
Single-Page Application Design Principles 101
Single-Page Application Design Principles 101Single-Page Application Design Principles 101
Single-Page Application Design Principles 101
 
MongoDB & NoSQL 101
 MongoDB & NoSQL 101 MongoDB & NoSQL 101
MongoDB & NoSQL 101
 
Mokoversity Course: Apple Swift 101 - Introduction
Mokoversity Course: Apple Swift 101 - IntroductionMokoversity Course: Apple Swift 101 - Introduction
Mokoversity Course: Apple Swift 101 - Introduction
 
Android Wear SDK: Level 101
Android Wear SDK: Level 101Android Wear SDK: Level 101
Android Wear SDK: Level 101
 
讓 HTML5 走進 IPTV Framework
讓 HTML5 走進 IPTV Framework讓 HTML5 走進 IPTV Framework
讓 HTML5 走進 IPTV Framework
 
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)
課程名稱:八屏一雲時代來臨 教你HTML5六小時打通(1)
 
Android HAL Introduction: libhardware and its legacy
Android HAL Introduction: libhardware and its legacyAndroid HAL Introduction: libhardware and its legacy
Android HAL Introduction: libhardware and its legacy
 
Jollen's Presentation: Introducing Android low-level
Jollen's Presentation: Introducing Android low-levelJollen's Presentation: Introducing Android low-level
Jollen's Presentation: Introducing Android low-level
 
Embedded Linux: Introduction
Embedded Linux: IntroductionEmbedded Linux: Introduction
Embedded Linux: Introduction
 
Android Application: Introduction
Android Application: IntroductionAndroid Application: Introduction
Android Application: Introduction
 
Android OS Porting: Introduction
Android OS Porting: IntroductionAndroid OS Porting: Introduction
Android OS Porting: Introduction
 

Último

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 

Último (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

Startup Engineering Camp Guide to HTML5, JavaScript and Lean Development

  • 1. Startup Engineering Camp #3 www.moko365.com 靜宜⼤大學 2013/10/19、10/20 Jollen Chen <jollen@moko365.com> / Founder Hank Wang <hank@moko365.com> / Software Developer 本著作係採⽤用創⽤用 CC 姓名標⽰示-⾮非商業性禁⽌止改作 3.0 Unported 授權條款授權.
  • 2. Founder and CEO, Moko365 Inc <jollen@moko365.com> 10+ years in embeddes software and ODM industry Taiwan. Trainner and consultant for Android/HTML5. Skills: JavaScript, C, C++, Android App..etc Software Engineer, Moko365 Inc <hank@moko365.com> Jointly development of sociable networking web and also develope in Android and iOS App. Skills: JavaScript, Python, iOS...etc
  • 3. mokocrush learning by doing HTML5 and <div> Canvas JavaScript WebSockets Feature detection Swapping items Matching three
  • 4. Startup Engineering Course at Standford 來源:https://class.coursera.org/startup-001/lecture/index moko365
  • 6. HTML5 Apps Single page application <!DOCTYPE html> <html> <head> ! <meta charset="utf-8"> ! <title>NO Game</title> </head> <body> <div id="game"> ! <div class="screen" id="main-menu"></div> ! <div class="screen" id="game-screen"></div> ! <div class="screen" id="score-board"></div>! </div> </body> </html> moko365
  • 8. The Project Structure Extract the project structure . .bowerrc .editorconfig .gitignore Gruntfile.js LICENSE bower.json package.json |-public |---css |---fonts |---images |---js |---vendor |-----bootstrap |-----jquery |-fixes |-sass |-schema |-scripts |-utilities |-views 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 9. Bootstrap 1. CSS framework and grid system 2. Fast prototyping 3. Revamp your workflow http://mashable.com/2013/04/26/css-boilerplates-frameworks/ 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 10. Page Layout Manager 1. Easy to seperate and manage layouts 2. Use a HTML5 template engine 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 11. Choose Languages Programming languages Template engine languages Stylesheet languages JavaScript + Jade + SASS http://jade-lang.com 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 12. Understanding Jade doctype 5 html(lang="en") head title= pageTitle script(type='text/javascript'). if (foo) { bar(1 + 5) } body h1 Jade - node template engine #container.col if youAreUsingJade p You are amazing else p Get on it! p. Jade is a terse and simple templating language with a strong focus on performance and powerful features. <!DOCTYPE html> <html lang="en"> <head> <title>Jade</title> <script type="text/javascript"> if (foo) { bar(1 + 5) } </script> </head> <body> <h1>Jade - node template engine</h1> <div id="container" class="col"> <p>You are amazing</p> <p>Jade is a terse and simple templating language with a strong focus on performance and powerful features.</p> </div> </body> </html> Source: http://jade-lang.com 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 13. Startup keeping up on new technologies, doing quick evaluations, and then snapping the pieces together
  • 15. Client/Server Architecture Presentation (HTML5/CSS/JavaScript) HTTP RESTful API (HTTP and JSON) (URI) Browser Business Logic & Service Browser Engine Application Server Operating System Camera Sensor ... MySQL I/O ... Over HTTP (Cloud) 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 16. HTTP API 的形式 API Query string http://localhost:8888/send?m=hello&u=jollen Pathname URL (⼀一種 URI 形式) 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 17. Response Content HTML Document XML Document JSON Data Base64 encode (⽤用於 Binary 檔案) 亦可⾃自定 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 18. HTTP API Web Service API (Open API) over HTTP 以 JSON 格式回應資訊 Client 與 Server 的互動架構 GET 是⼀一種 HTTP 請求⽅方式 (HTTP Methods) 基於 HTTP Methods 以 HTTP API 的系統架構 ➡ REST ➡ RESTful 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 19. Web Service RESTful CRUD Invoke Web service in Backbone way JavaScript + Jade + SASS + Backbone + REST 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 20. REST Resource Oriented Architecture A resource is indentified by a URI URI 的定義有標準規範 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 21. REST Object Example GET /save.php?u=jollen&s=100 POST /user/jollen/2048 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 22. Nodejs、Bootstrap 矽⾕谷眾多的 Startups 正是以 JavaScript、 Nodejs、Bootstrap 等技術,來打造軟體產品 台灣有許多新創公司,也都使⽤用上述提到的技術在開發服務
  • 24. Use MVC for Frontend JavaScript Model, View and Control Views and Templating Handlebars.js and Underscore’s template http://addyosmani.com/resources/essentialjsdesignpatterns/book/#jquerypluginpatterns 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 25. Spine.js or Backbone.js Model, View and Control Spine.js and Backbone.js 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 26. Manage Data as Collections Model, View and Control manage the data for an application e.g. Backbone "collections" 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 27. MVC to MPV MPV Models, Views & Presenters MVP is generally used most often in enterprise-level applications where it's necessary to reuse as much presentation logic as possible. http://addyosmani.com/resources/essentialjsdesignpatterns/book/#jquerypluginpatterns 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 28. Mobile first HTML5 is good at responsive design. Bootstrap 3 is mobile first.
  • 30. Frontend vs Backend HTML5 JavaScript Prototype CSS3 DOM jQuery Backbone Unit Testing Nodejs Express MongoDB Grunt REST 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 31. Best Practice to Frontend JavaScript JavaScript closure (module) Use // {BEGIN|END} TESTING API Use Instantiable Objects Separate DOM event handlers from the action it performs https://shanetomlinson.com/2013/testing-javascript-frontend(http://goo.gl/HpT7p6) part-1-anti-patterns-and-fixes/ 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 32. Best Practice to Frontend JavaScript Mock in XHR requests Asynchronous programming requires notifications externalize all scripts Use callbacks https://shanetomlinson.com/2013/writing-testable-javascriptpart-2-refactor-away-anti-patterns/ 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 33. More Best Practice ? Use stylesheet language 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 34. JavaScript Constructor Pattern function Person(name, job) { ! this.name = name; ! this.job = job; ! this.queryJob = function() { ! ! alert(this.job); ! }; } // 將 Person() 視為 constructor var person = new Person("Jollen", "Software Developer"); alert(person instanceof Person); // true 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 36. Lean Software Development 源⾃自⽇日本 Toyota 的⽣生產系統 由 Agile 社群將之導⼊入軟體⼯工程領域,成為敏捷開 發模式的重要思想基礎 Mary Poppendieck 與 Tom Poppendieck 將其 發展成⼀一套系統化的模式 22 Tools、7 Principles 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 37. Open Source Way ⾃自我組織型(Self-Organized)的研發團隊 Kanban ⽅方法論 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 38. 7 Principles Eliminate Waste Amplify Learning Decide as Late as Possible Deliver as Fast as Possible Empower the Team Build Integrity In See the Whole 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 39. Typical Project Management Project scope management Collect Requirements Define Scope Create WBS Verify Scope Control Scope 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 40. See the Waste Booklog.io Setup a Goal Fast Prototyping Implement REST Documentation 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 41. Using Gitflow with Github http://datasift.github.io/gitflow/GitFlowForGitHub.html 《Startup Engineering Camp》 Copyright (C) 2013 Moko365 Inc. All rights reserved.
  • 42. Open Innovation Hacker、社群、GPLv2 與 Apache、⾃自由軟體與 Open source,都是開放創新的元素 Chesbrough 教授的開放創新著作 裡,特別討論到典型的內部 RD 團 隊,不再是公司重要的策略資產
  • 43. Startup Engineering Startup 和 Startup Engineering 是⼀一種互補關係。Moko365 今天如果 專注在 Startup Engineering 層⾯面,它可以和許多資源與資⾦金更多的 Startup 投資公司合作。例如:appWorks 或是台灣創意⼯工場