Making it big in web
description
Transcript of Making it big in web
![Page 1: Making it big in web](https://reader038.fdocument.pub/reader038/viewer/2022102922/547e7c60b47959ca508b4b9f/html5/thumbnails/1.jpg)
Making it Big in Web
Waveface Inc.
Ruddy Lee,李智樺
開發 web 的遠大前程
Skydrive http://sdrv.ms/X2reX6
![Page 2: Making it big in web](https://reader038.fdocument.pub/reader038/viewer/2022102922/547e7c60b47959ca508b4b9f/html5/thumbnails/2.jpg)
Making it Big in Web
1 )談工程師如何適應日新月異的技術變遷 從生活的層面,談軟體開發人員由剛開始踏入社會,到經歷 種種的技術變遷後,逐漸成為一位成熟的工程師,到如何邁 向成功之路的歷程。
2 )談軟體的專案開發,敏捷理論是真的嗎? 由專案開發的角度,談軟體工程師的專案開發之路,如何由 一個人的專案開發進行到多人團隊的共同開發模式。由幾天 的開發時間到為期幾年的專案開發如何來進行。
3 )談 Curation web 的大未來 由物件化看近日兜兜哲學的盛行風,由舊瓶新裝的程式產生器看 JavaScript 繽紛多彩的語言世界,談工程師的因應之道。
![Page 3: Making it big in web](https://reader038.fdocument.pub/reader038/viewer/2022102922/547e7c60b47959ca508b4b9f/html5/thumbnails/3.jpg)
Making it Big in Web
![Page 4: Making it big in web](https://reader038.fdocument.pub/reader038/viewer/2022102922/547e7c60b47959ca508b4b9f/html5/thumbnails/4.jpg)
談工程師如何適應日新月異的技術變遷
• 什麼是成功 ? 1. 作有興趣的事物
為興趣而運動,而非為健康而運動,健康是愛好運動的附帶收穫。
2. 在公司和業界俱有影響力 3. 能對改善社會業界有所貢獻 4. 自由,能隨時隨地作自己想作的事。 5. 名望。 6. 足夠到處去旅行的財富。
我把興趣排第一,財富排最後,因此;發不發財,不是那麼重要
![Page 5: Making it big in web](https://reader038.fdocument.pub/reader038/viewer/2022102922/547e7c60b47959ca508b4b9f/html5/thumbnails/5.jpg)
談工程師如何適應日新月異的技術變遷
什麼是好的 App? ( 打破功能強大,沒有缺陷的迷失 )
1. 穩定可靠 2. 與平台一致性 3. 載入快 4. UI 顯示流暢 ( 不 lag) 5. 沒有廣告 6. 為消費價值創造價值 7. 提供有價值的功能
真正優秀的軟體會在正確的時間為市場帶來價值。 有價值的軟體總是能夠讓我們更輕鬆、更快速的過生活。
![Page 6: Making it big in web](https://reader038.fdocument.pub/reader038/viewer/2022102922/547e7c60b47959ca508b4b9f/html5/thumbnails/6.jpg)
Log Parser 的故事
小專案,大程式
Log Parser 是一種輕巧好用的公用程式,它可以快速簡單地剖析純文字記錄檔。
2005
上司吩咐 : 要他作一個可以分析 Log 資料的解譯器,同事都認為,
了不起就是一個 Dumper 罷了;結果 :
他作了一個由命令列啟動的 SQL parser ,用來分析 Log 資料,
如今LogParser 已經成為微軟下載中心最受歡迎的產品之一
Gabriele Giuseppini
![Page 8: Making it big in web](https://reader038.fdocument.pub/reader038/viewer/2022102922/547e7c60b47959ca508b4b9f/html5/thumbnails/8.jpg)
一個人開發專案好嗎 ?•
最大的問題在不知如何“舉重若輕”?
別懷疑,這些人手中正舉著大象而不自知!*覺得時間不夠用的人*工作之外沒有個人生活的人*經常處於忙碌狀態的人*在事業、愛情、自我中掙扎的人*心想只要更努力一點就能成功的人
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](https://reader038.fdocument.pub/reader038/viewer/2022102922/547e7c60b47959ca508b4b9f/html5/thumbnails/9.jpg)
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](https://reader038.fdocument.pub/reader038/viewer/2022102922/547e7c60b47959ca508b4b9f/html5/thumbnails/10.jpg)
SCRUM framework
![Page 11: Making it big in web](https://reader038.fdocument.pub/reader038/viewer/2022102922/547e7c60b47959ca508b4b9f/html5/thumbnails/11.jpg)
敏捷開發的二、三事
一、白話 Agile 沒有短週期的開發、交付以及回饋就沒有敏捷開發。
二、從使用者故事開始 User story 是需求說明的主角, Sprint Product Backlog 工作的目標。
三、文件在那裡? 我們要的是 live document. 談敏捷開發如何製作、維護文件。邁向 Specification by Example 。
四、你一定會遇到的問題? 如何估算專案時程、加班有用嗎、如何加強品質 ... 。
![Page 12: Making it big in web](https://reader038.fdocument.pub/reader038/viewer/2022102922/547e7c60b47959ca508b4b9f/html5/thumbnails/12.jpg)
如何做好「交接」 :
交接重要嗎?讓程式自己描述,把程式交接給自己 Unit test後依靠重構進行反思在程式即將封存前,將測試案例 (驗收報告 )與測試的結果保存下來
第一會議室 11:20 BDD in .NET - TDD 在實務上的最後一塊拼圖 by: 91
![Page 13: Making it big in web](https://reader038.fdocument.pub/reader038/viewer/2022102922/547e7c60b47959ca508b4b9f/html5/thumbnails/13.jpg)
企業、遠地開發 :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](https://reader038.fdocument.pub/reader038/viewer/2022102922/547e7c60b47959ca508b4b9f/html5/thumbnails/14.jpg)
每次專案啟動前一定要進行的工作 撰寫程式時的規範 軟體開發的建構 (Construction) 階段也就是 進行 Coding 或 Programming 的階段。 開發團隊必須盡量有一致的編程規範。
時間管理時間管理是有效地運用時間,降低變動性。時間管理的目的:決定什麼事該做,什麼事不該做。時間管理最重要的功能: 是透過事先的規劃,作為一種提醒與指引。
帕金森法則 : 你有多少時間完成工作 , 工作就會自動變成需要那麼多時間。
![Page 15: Making it big in web](https://reader038.fdocument.pub/reader038/viewer/2022102922/547e7c60b47959ca508b4b9f/html5/thumbnails/15.jpg)
時間管理 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](https://reader038.fdocument.pub/reader038/viewer/2022102922/547e7c60b47959ca508b4b9f/html5/thumbnails/16.jpg)
請務必在快樂中邁向成功,
而不是因為成功而快樂 !
![Page 17: Making it big in web](https://reader038.fdocument.pub/reader038/viewer/2022102922/547e7c60b47959ca508b4b9f/html5/thumbnails/17.jpg)
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](https://reader038.fdocument.pub/reader038/viewer/2022102922/547e7c60b47959ca508b4b9f/html5/thumbnails/18.jpg)
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](https://reader038.fdocument.pub/reader038/viewer/2022102922/547e7c60b47959ca508b4b9f/html5/thumbnails/19.jpg)
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](https://reader038.fdocument.pub/reader038/viewer/2022102922/547e7c60b47959ca508b4b9f/html5/thumbnails/20.jpg)
Web 跟 Cloud 有何差別 ?Web vs. Cloud
Web Solution vs. Cloud Solution
Web App vs. Cloud App