用轻量级Web平台开发重量级应用网页

用轻量级Web平台开发重量级应用网页 pdf epub mobi txt 电子书 下载 2025

图书标签:
  • Web开发
  • 轻量级平台
  • 重量级应用
  • 前端开发
  • 后端开发
  • Web框架
  • 性能优化
  • 可扩展性
  • 架构设计
  • 实战案例
想要找书就要到 小特书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

学习轻量级、最新的Web开发方法

  轻量化是目前资讯业的趋势,轻量级Web开发是一个很广的主题,开发人员经常提到,却很少有人能够说明它的内涵。

  好的程式设计师就是由基础开始,从作业系统、工具、开发环境、程式语言、测试架构、资料库、云端平台等,如果都做到轻量级,整个程式自然就执行飞快,测试容易,错误变少,维护方便。

  本书将教会读者如何将一个想法变成实际的Web应用。从高效的程式设计工具、开发流程,到敏捷开发中的各种轻量级实践,再从零开始开发一个具体的实例。

  ■使用Mac OS作为开发作业系统:既能享受Windows的方便,又是原生UNIX
  ■用zsh取代bash,少打很多字,少用很多cd到处找
  ■用vim不用普通的文字编辑,所有和文字有关的事,手都不需离开键盘
  ■用Ruby作为网页语言,天生的Web DNA,非传统程式思考方式
  ■用Bootstrap/Foundation作为样式框架,又漂亮又简单

  适用:软体开发人员、对轻量级Web开发感兴趣者。

著者信息

作者简介

邱俊涛


  软体工程师,现就职于ThoughtWorks。

  热爱程式设计,尤其喜欢程式设计带来的成就感。对动态语言、开源软体、函数式程式设计等有浓厚的兴趣。喜欢知识分享,并从他人的分享中学习。崇尚简单,轻量的设计和模式。

图书目录

前言

第1章 环境设定与工具准备
1.1 Shell
1.2 管线
1.3 几个常用指令
1.4 编辑器
1.5 程式启动器
1.6 关于Windows

第2章Web 应用伺服器
2.1 Rack
2.2 Sinatra
2.3 Grape

第3章 资料库存取层
3.1 资料库的存取
3.2 资料库结构(schema)的修改
3.3 ActiveRecord
3.4 DataMapper

第4章 用户端架构
4.1 丰富型使用者端
4.2 Backbone.js 简介
4.3 Angular.js

第5章 CSS 架构简介
5.1 Foundation 简介
5.2 BootStrap 简介

第6章 用户端测试架构
6.1 Jasmine 简介
6.2 Mocha

第7章 现代的前端开发方式
7.1 Karma 简介
7.2 前端相依管理
7.3 架设专案
7.4 测试驱动开发
7.5 实例Todoify

第8章 撰写更容易维护的JavaScript 程式
8.1 应用实例
8.2 重构:更容易测试的程式
8.3 重点分离:另一种实现方式

第9章 本机建置
9.1 Ruby 中的建置
9.2 JavaScript 中的建置

第10章 持续整合
10.1 环境架设
10.2 持续整合伺服器
10.3 与Github 整合

第11章 单元测试与整合测试
11.1 RSpec 单元测试
11.2 整合测试工具Selenium
11.3 架设Selenium 独立环境

第12章 环境架设的自动化
12.1 自动化工具Chef
12.2 安装nginx 伺服器

第13章 应用程式发佈
13.1 使用Heroku 发佈应用程式
13.2 发佈到虚拟机器环境
13.3 伺服器典型设定

第14章 范例:植物世界(前端)
14.1 线框图
14.2 搜索结果页面
14.3 详细资讯页面
14.4 加入JavaScript

第15章范例:植物世界(后台)
15.1 第一个重叠过程
15.2 发佈到Heroku
15.3 更进一步

第16章 范例:植物世界(整合)
16.1 发佈
16.2 增加图片
16.3 新的问题
16.4 档案储存

Appendix A  Web 运行原理
Appendix B  Angular.js 的测试

图书序言

前言

  ✿ 简单就是美

  2014 年2 月3 日,我建立了一个新的Microsoft Word 文件,开始撰写本书。

  计画中,这本书会包含很多方面,一些工具的使用方法,一些软体开发的「哲学」或方法论,一些公认为比较好的程式设计实作,以及尽可能真实地有关一个Web 应用程式开发中的所有点⋯⋯从最初的简单需求,逐步演进成部署在真实环境中、可以被所有人存取到的真实程式。

  2004 年,我第一次接触到UNIX(一个执行在PC 个人电脑上的FreeBSD),当看到一些各司其职的指令透过管线连接起来,然后流畅地处理很繁琐的工作时,就模煳地意识到「简单的工具组合起来,将发挥出相当大威力」。当然,在随后更加深入的学习中,我才知道这种体会只能算是处在「野蛮和蒙昧状态」。

  但是也就是从那时候起,我就非常推崇轻量级的开发方式,包含轻量级的函数程式库、轻量级的工具、轻量级的架构每个程式/ 模组都应该只处理自己的份内之事,仅此而已。将一个艰巨而庞大的工作划分成小的模组,并对每个小的模组进行更精细的设计,获得的将是一系列相互独立、错误极少、更容易了解和维护的轻量级的工具集。

  甚至,在最理想的情况下,这些轻量级的工具集可以应用在不同的专案中,而实际对于业务的开发则可能非常简单,只需要将这些工作良好的工具透过某种方式组合起来即可。

  简单就是美(Simple is Beautiful),没有人不赞同这个观点,当我们看到简洁的介面设计、清晰的程式介面时,无不被那种简单性所打动、所折服。但是要做到简单这一点绝非易事,人们常常会自然地将事情复杂化。事先将各个模组的职责完全弄清楚几乎是不可能的,而当专案进行中,要在有发佈压力的情况下对程式做大规模的重构也是具有很大风险的工作。

  可能专案发起之初,专案的结构和程式会比较清晰简洁。但是当有多人合作开发,或需求没有被预期地变更,一些临时的解决方案渗入到程式库时,一些权宜之计也会被採纳,程式库越来越庞大,越来越难以被了解。最后的结果可能是专案的失败,也可能是最后不得不留守多人来维护这个遗留的程式库。

  ✿ 程式先行

  2013 年1 月的週末,我在ThoughtWorks 西安的办公室,如以往很多个週末一样,享受着安静的极大的独立办公室。从那时候开始,我就在为本书准备实例,我在之前长期的读、写技术文章的经验中获得的体会是:实例是最好的老师,甚至是跨越语言(甚至是自然语言)障碍的老师。作为程式设计师,你甚至可以读懂一份用法文写的关于如何使用Sinatra 的文章,如果作者提供了足够清晰的实例的话。

  断断续续地,我将专案中用到的技术实例取出来,做成足够小巧,而又能覆盖到足够多特性的demo。到了5月,我要为ThoughtWorks 的欧洲AwayDay 准备一个演讲,主题即为轻量级的Web 应用程式开发。虽然这个演讲由于时间关系被取消了,但是我在背后做的很多计画和实例都固定了下来。10 月,我在印度普内做完了一期ThoughtWorks 大学的讲师,难得地有了两周的空闲时间,于是开始整理前端开发的工作流以及工具的介绍等,也产生了很多的实例。

  到了12 月,以及2014 年的1 月份,我在国内的一家公司做谘询服务,有了更多的时间和精力投入到纯粹前端的开发中。由于工作本身主要是做谘询服务,如何将一项技术极佳地发佈给团队的成员成了最关键的问题。所有的概念性的知识都是清晰而简洁的,但是这种清晰和简洁,唯有透过实例将技术本身掌握之后,才能体会到。因此,我需要很精心地准备每一个小实例,最后我获得了很多的实例。事后整理这些实例和心得时,我又发现这些与实际专案有一定连结的实例可以做进一步的取出,并将它们作为本书的素材。

  这样做的好处有很多:在介绍一个概念时,我无需再一次绞尽脑汁去发明一个场景来作为实例;另一方面,在介绍一项新技术时,Hello World(换言之,浅尝即止)等级的介绍只会给读者一种错觉:误以为这项技术很简单,而忽略了在实施过程中可能遇到的问题。也就是说,我希望透过实例,以及对实例的解释,真正将这些技术实施起来,而不仅是看上去很美。

  ✿ 工具与方法论

  我曾经观察自己以及其他程式设计师的工作方式,特别是ThoughtWorks 聪明的程式设计师们。虽然不至于单调到千篇一律,但是这些高效的程式设计师都有或多或少的相似性。

  模组化、轻量级的根本原理来自人类大脑的设计:每次只能关注一件事,某个时刻只能做好一件事。说来容易,事实上想要做到这一点是非常困难的,程式设计师需要在实作中不断累积,不断学习,才有可能发现简单的力量。完成一个软体的功能,对一个熟练的软体开发者来说并非难事,但是要让这个软体足够简单,以适应随后的变化,且在适应的过程中保障软体的高品质,并不是一件容易的事情。

  ✿ 本书组织结构

  如果粗略地划分一下,本书可以分为三部分:第1 章至第6 章为基础工具及架构的介绍,包含Web 架构,资料库存取层以及一些前端的技术等;第7 章至第13 章是一些程式设计实作和Web 应用週边的一些工具和架构的介绍,例如如何进行测试自动化,如何进行自动部署等;第14 章至第16 章是一个实际的实例,这个实例从头到尾介绍了一个Web 应用从想法到实现,再到实际部署在一个真实的环境中的过程,其中包含了前后端开发、自动化测试、自动化部署以及云端平台的使用。

  本书的各个章节的简要描述如下:

  第1章:介绍了一些常用的工具如Shell、编辑器、应用程式加速器等的使用,本书的其他章节会频繁地使用这些工具。

  第2章:介绍了Ruby 下的Web 开发函数库Rack 的原理、Sinatra 架构的使用方法以及使用Grape 建立RESTFul 的API。

  第3章:所有的动态的Web 应用程式后台都有资料库持久层,如何将物件导向的世界和针对关系的资料库连接起来是每个Web 架构都需要面对的主题。这一章讨论ActiveRecord 及DataMapper 的使用方法。

  第4章:介绍前端的模组化架构Require.js、用户端的MVC 架构Backbone.js 以及Angular.js。

  第5章:详细讨论CSS 架构,包含Foundation 及Bootstrap,讨论了两个架构的版面配置方式、常用的元件等。

  第6章:随着前端越来越重要,JavaScript 程式在专案中佔用的比例越来越高,相关的测试也越来越重要,这里讨论了前端的测试架构Jasmine 和Mocha的基本用法。

  第7章:前端开发的形式已不是用编辑器简单地编辑几个档案就可以了,现在的前端开发已经有了完整的工作流:相依管理,单元测试,合併并压缩JS/CSS,动态载入等等。这一章讨论现代的前端开发方式。

  第8章:透过一个实例来介绍如何撰写更容易维护、更容易扩充的前端程式,本章使用两种不同的开发想法来撰写同一个实例,以便读者更进一步地了解可维护性。

  第9章:介绍如何减少重复工作,将常见的动作自动化起来。这一章讨论Ruby 和JavaScript 中的建置工具的使用方法。

  第10章:持续整合早已不是一个新的概念,事实上越来越多的专案都在使用持续整合伺服器来保障不同团队的工作可以尽早整合,进一步减少风险,加快发佈的速度。持续整合已经成为开发专案时的标准设定。这一章讨论了Jenkins 伺服器,以及使用公开的Travis、Snap 等持续整合服务。

  第11章:一个最容易出错的地方是混淆不同类型的测试,很多初学者会不自觉地进行整合性质的测试,而忽略了更重要的单元测试;或强调单元测试,却漏掉了整合测试。

  第12章:我们注重于如何在本机架设环境来完成自动化,我们使用Chef 来自动化设定环境,这样当伺服器环境发生故障之后,我们可以在数分钟之内就自动地设定好环境。

  第13章:使用Heroku 的云端服务可以让我们快速地将应用程式在几分钟之内发佈到网际网路上,这样所有的人都可以存取我们的应用程式,使用我们的服务。这在原型开发,快速反覆运算中非常有用。

  第14章:从这一章开始,我们开始一个实际的应用程式「奇葩」的开发。使用Bootstrap、Angular.js 进行前端的开发。

  第15章: 继续「奇葩」的开发, 我们使用ActiveRecord 和Sinatra 作为后端,并介绍如何进行测试。

  第16章:将前两章的开发结果进行整合,并发佈到Heroku 平台上,同时介绍如何使用亚马逊的S3 储存服务,以及如何将S3 服务于Heorku 上的应用整合。

  附录A:描述Web 应用程式运行原理,HTTP 协定本身是独立于实际的业务应用的,各个后台架构都使用了不同的方式来和HTTP 伺服器整合。

  附录B:描述在AngularJS 中如何进行测试,涵盖AngularJS 中的控制器、指令以及服务的测试方式。

图书试读

用户评价

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 ttbooks.qciss.net All Rights Reserved. 小特书站 版权所有