|
-- 會員 / 註冊 --
|
|
|
|
全棧應用開發:精益實踐 ( 簡體 字) |
作者:黃峰達 | 類別:1. -> 程式設計 -> 綜合 |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 46721 詢問書籍請說出此書號!【缺書】 NT售價: 395 元 |
出版日:5/1/2017 |
頁數:400 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121313691 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:學習 Web 開發最難的不是學習相關技術,而是需要了解整個Web 開發的知識體系。多數時候并不是因為我們不學習,而是因為我們不知道學習什么。完整的知識體系不僅僅包括前端、后臺開發,還應該包括持續集成、自動化部署等內容。這些往往需要幾本不同的書才能學習到,另外,它們也難以保證知識體系的完整性。我們在學習的時候,也往往并沒有注意到它們之間的聯系。 本書可以為讀者構建出清晰、完整的Web 開發體系,包括:前端、后臺的技術選型,搭建構建系統,如何上線部署,并進行數據分析,以及如何在其中結合最好的工程實踐等。希望作為讀者的你,可以將本書當作一本索引書籍,以此來開啟你的Web 開發新世界;你可以按書中的實踐來進行Web 編程,并結合理論來實踐。 為什么寫這本書 本書是我在實習的時候特別想寫的一些內容——關于如何系統地學習Web 開發,只是我一直缺少一條主線來將這些內容一一串起來。 2016 年年初,我在GitHub 上開源了一個名為Growth 的應用(讀者可以在App Store和各大應用商店下載該軟件)。在該應用中便包含了本書的主要思想:Web 應用的生命周期。在不斷迭代的過程中,該應用越來越受開發者喜愛,至今已經有超過10000 名用戶用過這個應用。隨后,筆者在GitHub 上推出了開源電子書《Growth:全棧增長工程師指南》,已經有超過4500 個Star。由于電子書本身只是一個指南,越來越多的讀者還希望有一本實戰。也因此誕生了《Growth:全棧增長工程師實戰》,其在GitHub 上也有超過1000 個Star。 后來,我才下決心去出版這樣一本書。寫一本書不是一件容易的事,相比較而言,讀一本書則要簡單許多。前者要花費一個人幾個月的時間來完成,而后者只需要幾星期、幾天,或者是幾小時的事。花幾分鐘將書的目錄過一遍,隨后只看幾頁想看的內容,余下的內容則可以在以后閑暇的日子里探索。 本書是我在編程生涯初期的一些體會,它更像是一本關于Web 開發的索引書籍,但其實這些索引正是我讀了大量書籍后,自己對精髓之處進行的理解加工。在這本書里,你會看到我對很多知識點進行了概括,并以實踐的方式將一個個知識點連接到一起。 在最開始的時候,我曾經想將書名命名為“實習記”。后來又覺得雖然這是在我實習期間學到的知識,但其實很多內容在其他公司是學不到的。因此,在電子書里將其命名為Growth,它不僅可以使讀者增長知識,也在讓我自己成長。 本書目標 本書的目標是幫助讀者構建Web 應用的全棧開發所需要的完整知識體系,并以精益創業的思想來一步步開發Web 應用。 ?? 從創建一個UI 原型到編寫出靜態的前端頁面。 ?? 從靜態的前端頁面到后臺的應用,并部署應用。 ?? 從Web 后臺開發API 到開發移動Web 應用。 在這個過程中,我們還將介紹一些相輔相成的步驟: ?? 使用構建系統來加速Web 應用的開發。 為應用數據分析工具改進產品。 ?? 使用分析工具改善應用的性能。 ?? 通過自動化部署加快上線流程。 從而幫助讀者開發出一個真正可用的全棧Web 應用。同時,我們也希望能幫助讀者將這些步驟應用到現有的系統上,改進現有系統的開發流程。 本書結構 本書從結構上分成了3 部分,每部分都會有不同的側重點。 第 1 部分:準備階段 在這一部分里,我們將主要集中于編碼前的一系列開發準備工作,從選擇一個合適的IDE 到創建一個Web 應用的構建流。 第 1 章基礎知識介紹了搭建開發所需要的基本環境,以及IDE、操作系統、版本管理工具等日常工具的選擇與使用;還介紹了如何對一個目標進行切分,以便我們在實現的時候可以一步步往下實踐。 第 2 章最小可行化應用介紹了如何使用UI 工具來創建原型,并根據這個原型創建出一個最簡單的Web 應用;接著介紹了在Web 應用開發的過程中,如何使用精益的思想來開發出用戶喜愛的產品。 第 3 章技術選型與業務對后臺開發所需要的技術進行簡單概覽,并介紹了不同后臺組件的框架,以及如何從這些框架中選擇出合適的框架。同時還介紹了Python 下的Web開發框架Django,以及如何用這個框架創建一個“hello,world!”程序。 第 4 章構建系統及其工作流介紹 Web 應用中常見的構建流程及組件,以及如何結合Fabric 打造后臺的構建系統。 第 2 部分:編碼到上線 在這一部分里,我們主要講述大部分Web 應用的開發過程,并介紹在開發過程中一些好的實踐。 第 5 章編碼 介紹了如何使用Django 創建一個簡單的博客應用,以及如何使用單元測試、UI 測試來測試代碼的功能。 第 6 章上線 介紹了如何手動部署開發的Web 應用到產品環境,以及如何使用自動部署工具來完成自動化部署。 第 7 章數據分析和體驗優化介紹了如何使用網頁監測工具來分析網頁的流量來源、用戶行為等,并結合一些前端、后臺的優化工具對應用進行優化。 第 8 章持續集成與持續交付介紹了如何使用持續集成工具,以及如何使用持續集成工具來改進開發流程,并實現自動化的部署。 第 9 章移動 Web 與混合應用介紹如何結寫后臺API 來創建移動應用,以及如何為單頁面應用提供SEO 支持。 第 3 部分:增量性優化 第 10 章遺留代碼與重構介紹什么是遺留系統,以及如何基于第2 部分中的經驗來改進遺留系統。 第 11 章增長與新架構介紹如何使用回顧與反饋來使程序員成長,以及如何依據需要設計出新的架構。 技術棧概述本書所介紹的工具主要集中于前端、后臺、構建工具和前端UI 框架四部分,分別如下。 ?? Django 是Python 語言的一個MVC 架構Web 開發框架。本書使用這個框架來介紹如何編寫單元測試、功能測試,并演示如何使用它進行持續集成和持續部署。 ?? Bootstrap 是一個在前端領域相當流行的響應式Web UI 開發框架,本書出于開發便捷的緣故使用這個框架。 ?? Fabric 是一個命令行的自動化部署工具,本書使用這個框架來展示如何搭建構建系統,并使用它來進行自動化部署。 ?? Angular 2 是一個可以用于構建移動應用和桌面Web 應用的開發平臺,我們在書里用它來展示如何開發前后端分離的Web 應用程序。上面的幾個框架可以構成跨手機、桌面的一個Web 應用,以及如何對其進行自動化部署。另外,還將介紹一些工具和框架來幫助我們開發: ?? Ionic 2 是一個跨平臺(Android、iOS、Windows Phone)的混合應用開發框架,基于Angular 2 框架,并搭建有大量的UI 組件,以及原生組件,我們在書里說明它與Angular 2 如何共用代碼來開發手機端應用。 ?? Jenkins 是一個持續集成工具,它提供了持續集成與持續部署工具鏈中所需要的大部分工具。我們將用它來展示如何進行持續集成,并結合Fabric 來實現自動化部署。本書將展示如何結合這些工具來做一些最佳實踐,讀者不必擔心它會影響你的閱讀,并且這些工具也很容易找到相應的替代品。 你也可以在知乎、SegmentFault 網站上進行提問,并@phodal 來幫助你解決這個問題。 致謝 我要把這本書獻給花仲馬,沒有她,就沒有這本書。感謝她在這本書的寫作過程中一直陪伴著我,并為這本書進行了中文校對來保證語句的通順。同時,我想特別感謝ThoughtWorks 的同事薛倩、阿里巴巴的孫輝在本書創作過程中提供了詳細的反饋,正是他們的幫助讓本書更加準確、容易閱讀。我還想特別感謝在ThoughtWorks 學習時的同事,為我提供悉心指導與幫助。特別感謝王超、陳卿、王妮、曹隆凱、張靜強、劉杰、王磊,在和他們進行結對編程時,我學習到了敏捷軟件開發、Tasking等編程之外的技能,感謝他們幫我走了這么遠。 此外,還有那些在GitHub 上為我提供反饋的用戶,正是他們的反饋促使這本書更加完整。由于人數眾多,這里僅列出這些用戶的ID: 感謝 ethan-funny、izhangzhihao、kaiguo、gymgle、aidewoode、wenzhixin、sasuke6、wangyufeng0615 、walterlv 、lolosssss 、NehzUx 、mikulely 、yulongjun 、PhilipTang 、ReadmeCritic、ReadmeCritic、wangcongyi、loveisbug 等用戶為《Growth:全棧增長工程師指南》提供反饋與修改。 感謝 Pandoraemon、wo0d、ReadmeCritic、zhangmx、felixglow 等用戶為《Growth:全棧增長工程師實戰》提供了反饋與修改。 輕松注冊成為博文視點社區用戶(www.broadview.com.cn),掃碼直達本書頁面。 ? 提交勘誤:您對書中內容的修改意見可在提交勘誤處提交,若被采納,將獲贈博文視點社區積分(在您購買電子書時,積分可用來抵扣相應金額)。 ? 交流互動:在頁面下方讀者評論處留下您的疑問或觀點,與我們和其他讀者一同學習交流。
|
內容簡介:這不是一本深入前端、后臺、運維、設計、分析等各個領域的書籍。本書以實踐的方式,將這一系列的領域及理論知識結合到一起,來幫助讀者構建全棧Web 開發的知識體系,并輔以精益及敏捷的思想,來一步步開發Web 應用:從創建一個UI 原型到編寫出靜態的前端頁面;從靜態的前端頁面到帶后臺的應用,并部署應用;從Web 后臺開發API 到開發移動Web 應用。在這個過程中,我們還將介紹一些相輔相成的步驟:使用構建系統來加速Web 應用的開發;為應用添加數據分析工具來改進產品;使用分析工具來改善應用的性能;通過自動化部署來加快上線流程;從而幫助讀者開發出一個真正可用的全棧 Web 應用。同時,我們也將幫助讀者把這些步驟應用到現有的系統上,改進現有系統的開發流程。 |
目錄:第 0 章 緒論:Web 應用開發周期..... 1 0.1 Web 應用的生命周期..... 2 0.2 遺留系統與新架構..... 3 0.3 技術選型與驗證.... 4 0.4 搭建構建系統.... 5 0.5 迭代...... 6 0.6 Web 應用開發步驟.... 7 0.7 小結...... 9 第 1 部分 準備階段 第1 章 基礎知識.....12 1.1 搭建開發環境.... 13 1.1.1 基本要素..... 13 1.1.2 常用效率工具及其在不同操作系統下的安裝... 14 1.1.3 搭建開發環境..... 22 1.1.4 開發工具..... 23 1.2 版本控制..... 27 1.2.1 Git 初入.... 28 1.2.2 Git 工作流..... 30 1.3 任務拆分..... 32 1.3.1 一本書的任務拆分.... 32 1.3.2 一個功能的任務拆分..... 33 1.4 小結...... 35 第 2 章 最小可行化應用....36 2.1 最小可行化產品.... 37 2.2 最小可行化Web 應用.... 41 2.2.1 使用Bootstrap 模板..... 41 2.2.2 完善原型..... 46 2.2.3 簡單上線..... 47 2.3 精益與敏捷軟件開發..... 52 2.3.1 敏捷軟件開發..... 52 2.3.2 精益.... 56 2.4 小結...... 58 第 3 章 技術選型與業務....59 3.1 技術選型..... 61 3.1.1 后端選型..... 63 3.1.2 數據持久化..... 67 3.1.3 前端選型:UI 框架..... 71 3.2 Django ...... 72 3.2.1 Django 簡介..... 72 3.2.2 安裝Django .... 74 3.2.3 創建項目..... 77 3.3 從真實世界到代碼..... 83 3.3.1 模型、領域、抽象.... 84 3.3.2 前后端分離..... 88 3.4 小結...... 90 第 4 章 構建系統及其工作流....92 4.1 構建流...... 93 4.1.1 搭建開發環境..... 96 4.1.2 準備生產環境..... 98 4.2 打造后端構建系統....100 4.2.1 使用Fabric 搭建構建系統....101 4.2.2 軟件包管理....107 4.3 小結.....109 第 2 部分 編碼到上線 第5 章 編碼.....112 5.1 創建首頁應用.....114 5.1.1 生成首頁應用....115 5.1.2 編寫第一個測試.....122 5.1.3 使用Selenium 進行功能測試....124 5.1.4 如何編寫測試....128 5.2 創建博客應用.....134 5.2.1 創建應用與博客管理....134 5.2.2 在頁面上顯示博客.....141 5.3 數據與Web 應用開發.....150 5.3.1 管理數據....151 5.3.2 顯示數據....151 5.4 小結.....152 第 6 章 上線.....155 6.1 手動部署......156 6.1.1 操作系統與服務器軟件....157 6.1.2 第一次部署應用.....162 6.1.3 配置管理....176 6.2 自動化部署....178 6.2.1 使用Fabric 自動化部署....179 6.2.2 探索更優雅的方案.....185 6.3 隔離與運行環境.....187 6.4 小結.....199 第 7 章 數據分析和性能優化....200 7.1 網站監測與分析.....203 7.1.1 Google Analytics .....203 7.1.2 自建監測和分析服務....212 7.2 性能分析及優化.....214 7.2.1 前端優化:用PageSpeed 工具分析和優化..215 7.2.2 后臺優化:使用應用性能管理工具...223 7.2.3 使用New Relic 進行優化....225 7.2.4 緩存初入....230 7.3 小結.....234 第 8 章 持續集成與持續交付....236 8.1 持續集成與Jenkins.....237 8.1.1 工具選擇與Pipeline 設計...239 8.1.2 Jenkins 搭建持續集成...244 8.1.3 使用Jenkinsfile 簡化流程...252 8.2 持續交付與持續部署初探.....255 8.2.1 持續交付....256 8.2.2 持續部署初探....260 8.3 小結.....261 第 9 章 移動Web 與混合應用....263 9.1 移動 Web 與單頁面應用....264 9.1.1 單頁面應用入門.....266 9.1.2 API 設計與框架選型....272 9.2 創建移動應用.....277 9.2.1 使用Ionic 2 創建應用...278 9.2.2 更新首頁....293 9.3 實現博客應用開發....297 9.3.1 創建博客API.....297 9.3.2 創建詳情頁和列表頁....302 9.4 用戶登錄與博客創建....309 9.4.1 使用JWT 實現登錄....310 9.4.2 測試和發布應用.....323 9.5 小結.....325 第 3 部分 增量性優化 第10 章 遺留代碼與重構....328 10.1 遺留系統....330 10.1.1 什么是遺留系統.....330 10.1.2 遺留系統改造.....334 10.2 易讀的代碼與重構....336 10.2.1 命名.....337 10.2.2 一次只做一件事.....339 10.2.3 減少重復代碼.....340 10.2.3 排版.....342 10.2.4 重構.....343 10.3 小結.....346 第 11 章 增長與新架構....348 11.1 增長.....350 11.1.1 增長:回顧與改變....350 11.1.2 增長:技能學習與構建索引....354 11.2 設計新架構.....357 11.3 小結.....363 附 錄 附錄A 如何學習新的技術.....366 附錄 B 安裝Piwik .....372 |
序: |
|