20
Making it Big in Web Waveface Inc. Ruddy Lee 李李李 開開 web 開開開開開 Skydrive http://sdrv.ms/X2reX6

Making it big in web

Embed Size (px)

DESCRIPTION

Making it big in web

Citation preview

Page 1: Making it big in web

Making it Big in Web

Waveface Inc.

Ruddy Lee,李智樺

開發 web 的遠大前程

Skydrive http://sdrv.ms/X2reX6

Page 2: Making it big in web

Making it Big in Web

1 )談工程師如何適應日新月異的技術變遷 從生活的層面,談軟體開發人員由剛開始踏入社會,到經歷 種種的技術變遷後,逐漸成為一位成熟的工程師,到如何邁 向成功之路的歷程。

2 )談軟體的專案開發,敏捷理論是真的嗎? 由專案開發的角度,談軟體工程師的專案開發之路,如何由 一個人的專案開發進行到多人團隊的共同開發模式。由幾天 的開發時間到為期幾年的專案開發如何來進行。

3 )談 Curation web 的大未來 由物件化看近日兜兜哲學的盛行風,由舊瓶新裝的程式產生器看 JavaScript 繽紛多彩的語言世界,談工程師的因應之道。

Page 3: Making it big in web

Making it Big in Web

Page 4: Making it big in web

談工程師如何適應日新月異的技術變遷

• 什麼是成功 ? 1. 作有興趣的事物

為興趣而運動,而非為健康而運動,健康是愛好運動的附帶收穫。

2. 在公司和業界俱有影響力 3. 能對改善社會業界有所貢獻 4. 自由,能隨時隨地作自己想作的事。 5. 名望。 6. 足夠到處去旅行的財富。

我把興趣排第一,財富排最後,因此;發不發財,不是那麼重要

Page 5: Making it big in web

談工程師如何適應日新月異的技術變遷

什麼是好的 App? ( 打破功能強大,沒有缺陷的迷失 )

1. 穩定可靠 2. 與平台一致性 3. 載入快 4. UI 顯示流暢 ( 不 lag) 5. 沒有廣告 6. 為消費價值創造價值 7. 提供有價值的功能

真正優秀的軟體會在正確的時間為市場帶來價值。 有價值的軟體總是能夠讓我們更輕鬆、更快速的過生活。

Page 6: Making it big in web

Log Parser 的故事

小專案,大程式

Log Parser 是一種輕巧好用的公用程式,它可以快速簡單地剖析純文字記錄檔。

2005

上司吩咐 : 要他作一個可以分析 Log 資料的解譯器,同事都認為,

了不起就是一個 Dumper 罷了;結果 :

他作了一個由命令列啟動的 SQL parser ,用來分析 Log 資料,

如今LogParser 已經成為微軟下載中心最受歡迎的產品之一

Gabriele Giuseppini

Page 7: Making it big in web

工作機會 陳先生 TEL: (02) 2382-1199

徵人 ASUS group Waveface

Inc.

[email protected]

Page 8: Making it big in web

一個人開發專案好嗎 ?•

最大的問題在不知如何“舉重若輕”?

別懷疑,這些人手中正舉著大象而不自知!*覺得時間不夠用的人*工作之外沒有個人生活的人*經常處於忙碌狀態的人*在事業、愛情、自我中掙扎的人*心想只要更努力一點就能成功的人

Lean Software Development

精益軟體開發的基本原則就是追求最小化浪費

• 那麼在軟體開發當中應該如何消除浪費呢?

• TPS, Toyota Production System把浪費歸納成七種:半成品,Partially Done Work (In-Process Inventory)多餘功能,Extra Features (Over-Production) 重複學習,Relearning (Extra Processing)交接,Handoffs (Transportation)工作切換,Task Switching (Motion)延遲,Delays (Waiting)缺陷,Defects (Defects)

--- 參考書: Implementing Lean Software Development: From Concept to Cash By:  Tom Poppendieck/ Mary Poppendieck

用輕鬆的方法應付困難的問題改變,從找回生活的樂趣開始 !

Page 9: Making it big in web

SCRUM

三種角色 四種會議 三種產物Product Owner Sprint planning meeting Product BacklogScrum Master Sprint review meeting Sprint Backlog Team member Sprint retrospective Burn Down Chart Daily Standup meeting

Page 10: Making it big in web

SCRUM framework

Page 11: Making it big in web

敏捷開發的二、三事

一、白話 Agile 沒有短週期的開發、交付以及回饋就沒有敏捷開發。

二、從使用者故事開始      User story 是需求說明的主角, Sprint Product Backlog 工作的目標。    

三、文件在那裡? 我們要的是 live document. 談敏捷開發如何製作、維護文件。邁向 Specification by Example 。

四、你一定會遇到的問題? 如何估算專案時程、加班有用嗎、如何加強品質 ... 。

Page 12: Making it big in web

如何做好「交接」 :

交接重要嗎?讓程式自己描述,把程式交接給自己 Unit test後依靠重構進行反思在程式即將封存前,將測試案例 (驗收報告 )與測試的結果保存下來

第一會議室 11:20 BDD in .NET - TDD 在實務上的最後一塊拼圖 by: 91

Page 13: Making it big in web

企業、遠地開發 :http://www.mountaingoatsoftware.com/books/7-succeeding-with-agile

http://www.mountaingoatsoftware.com/books/1-agile-estimating-and-planning

http://www.mountaingoatsoftware.com/books/2-user-stories-applied

Lisa crispinMike Cohn

團隊、個人http://www.infoq.com/cn/minibooks/scrum-xp-from-the-trenches/

SCRUM Reference

Page 14: Making it big in web

每次專案啟動前一定要進行的工作 撰寫程式時的規範 軟體開發的建構 (Construction) 階段也就是 進行 Coding 或 Programming 的階段。 開發團隊必須盡量有一致的編程規範。

時間管理時間管理是有效地運用時間,降低變動性。時間管理的目的:決定什麼事該做,什麼事不該做。時間管理最重要的功能: 是透過事先的規劃,作為一種提醒與指引。

帕金森法則 : 你有多少時間完成工作 , 工作就會自動變成需要那麼多時間。

Page 15: Making it big in web

時間管理 Time Management

時間管理聖經 : 蕃茄工作法 The Pomodoro Technique 蕃茄工作法是法蘭西斯科•西裡洛於 1992 年創立了

1 、每天開始的時候規劃今天要完成的幾項任務,將任務逐項寫在清單裡

2 、設定你的蕃茄鐘(定時器、軟體、鬧鐘等),時間是 25分鐘。

3 、開始完成第一項任務,直到蕃茄鐘響鈴或提醒( 25分鐘到)。

4 、停止工作,並在清單裡該項任務後畫個 X 。

5 、休息 3~5分鐘,活動、喝水、方便等等。

6 、開始下一個蕃茄鐘,繼續該任務。 ( 一直迴圈下去,直到完成該任務,並在清單裡將該任務劃掉 )

7 、每四個蕃茄鐘後,休息 25分鐘。

-- 沒有其他甚麼技能可以像「時間管理」那樣促進 你的職業發展,因為正是時間影響著其他所有技能。

Page 16: Making it big in web

請務必在快樂中邁向成功,

而不是因為成功而快樂 !

Page 17: Making it big in web

Curation web• 兜兜哲學 元件 物件 設計模式 Framework Service

• 舊瓶新裝 The golden rule of CoffeeScript is: "It's just JavaScript".  TypeScript is a language for application-scale JavaScript. . . .

List of languages that compile to JShttps://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS

CoffeeScript LiveScript BiwaSchemeContextJS JS11 ClojureScript Elm Opal clojurejsFargo pogoscript Moby Scheme J2js PyCow WhalesongSafeJS PyvaScript OcamljsLispyScript Java2Script O'BrowserPerlito Doppio UHCPyjamas Processing ghcjsRb2js Kotlin  ClamatoRed Ceylon Little Smallscript Typescript jsc Emscripten

Page 18: Making it big in web

Curation: 兜兜哲學• Component / Object COM 是基於元件物件方式概念來設計的

微軟自 1993 年便提出的元件式軟體平台,用來做行程間通訊( Inter-process communication, IPC )以及當作元件式軟體開發的平台。

• 設計模式 Design Patterns: Elements of Reusable Object-Oriented Software

是由 Erich Gamma等人在 1990 年代從建築設計領域引入到計算機科學的。它是 對軟體設計中普遍存在「反覆出現」的各種問題,所提出的解決方案。

• Framework A reusable set of libraries or classes for a software system 。

• Service-Oriented Architecture A set of principles and methodologies for designing and developing software in the form of interoperable services.

Page 19: Making it big in web

Curation: 舊瓶新裝• 為了簡潔性與可讀性

CoffeeScript 是受到 Ruby 、 Python  與 Haskell 等語言的啟發, 而出現的一套轉譯語言,目的是為了改善 JavaScript 的簡潔性與可讀性。同時也新增了更複雜的功能,例如 : Pattern matching …等。 CoffeeScript 可以在不影響執行效能的情況下,縮短約三分之一的程式碼長度。

• 為了製作大型軟體TypeScript 是一種給 JavaScript 語言添加的擴充功能特性的語言。它添加了對靜態型別,經典的物件導向語言特性如Class , inheritance , Interface和 Namespace等的支援的是微軟 對 ECMA-262 語言標準的實作。

國際會議廳 TypeScript 開發實戰:開發即時互動的 HTML5 WebSocket 聊天室應用程式 By: Will 黃

Page 20: Making it big in web

Web 跟 Cloud 有何差別 ?Web vs. Cloud

Web Solution vs. Cloud Solution

Web App vs. Cloud App