SlideShare a Scribd company logo
1 of 43
Download to read 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 或是台灣創意⼯工場

More Related Content

What's hot

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
 

What's hot (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
 

Similar to 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
 

Similar to 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
 

More from 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
 

More from 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
 

Recently uploaded

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 

Recently uploaded (20)

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 

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 或是台灣創意⼯工場