尽管Growth已经有了两本大受欢迎的电子书——即《全栈增长工程师指南》、《全栈增长工程师实战》。过去,就在思考有没有理由必要再出一本纸质书籍。尽管我们已经有了可以随身携带的APP、在线阅读的电子书,以及一份好的实战指南,但是我们还可以做得更好,顺带学点东西。
让我坚定点写这本书的理由有两个:
毕业实习的时候,想写一本电子书来分享实习时学到的知识。遗憾的是,它只在我的博客里开了个头——很多东西,我只懂了个皮毛。于是这本书会完成这个心愿,如果你也在实习&刚入,那么他可能相当的适合你。所以这本书也有一个可以考虑的名字:实习记。
有一天,我也要写一本故事书,又或者说小说。那么,先从写一本1/4故事的书走起。
在《自己动手设计物联网》一书中,我尽可能地去按认知设计的想法来写这本书。在这本新书里,我希望以提问和Coach的方式来完成大部分的内容,尽可能地读者可以学到如何渔的技巧。只是这些都是原型上的想法,和想出做出来的产品是有差距的。
作为一个故事引导的技术书籍,我正在尝试将提问和引导技巧引入其中。
在这一章中我们将带领用户搭建好基本的开发环境。在不同的操作系统上,如Windows、Mac OS、Linux,上搭建开发环境。以及IDE和Editor的一些偏好,并引入版本管理和Git等知识。
操作系统环境搭建
Windows
GNU/Linux
Mac OS
IDE与Editor选择
PyCharm
Visual Studio
版本管理
Git初入
Git工作流
在这一部分里,我们会将主要精力集中于“项目开始前”的一些准备工作,如搭建基础的构建系统、从业务角度对技术进行选型等等。同时,我们还会将关注于一些特别有意思的东西,如Web应用的生命周期、对于不同业务的技术栈考虑等等。
作为这本书的开头,我们将从《RePractise:Web开发的七天里》中讲述的Web生命周期开发说起。一个Web应用在其生命周期里,都要经历搭建开发环境、创建构建系统、编写代码、进行数据分析等等,直至最后使用新的系统来替换这个遗留系统。这也将扩充到学习的周期,以及本书章节的循环周期。
Web开发的七天里
应用的生命周期
迭代与生命周期
在这一章中,我们会以一个简单的Demo介绍Web应用的模型。然后这个模型将与真实的世界进行类比,并介绍如何简化真实世界的模型,并对其进行建模。依据模型上的一些区别,我们还将引入前后端的概念。
MVP - 最小可行化产品
真实世界的业务模型
Web应用基础模型
前后端模型
构建系统作为独立的一章,可能会让很多人感到惊讶。构建系统作为解放生产力的一大主角,只作一章可能还是有点少。在本章中,我们将搭建本书的基础构建系统,并详细介绍每一个子模块的功能,以及这样做的重要性。
工作流及构建流
构建系统组成
构建工具
构建流程
构建子工具
打造前端构建系统
打造后端构建系统
开始开发之前,我们总得唠叨两句业务的重要性,以及业务和技术的关系。在这一章里,我们还将依赖于我们的业务来对技术技术选型。从业务价值与技术价值的坐标中,选择出更符合我们当前业务的技术栈。并介绍一些可以弱化的业务代码的技术和设计。
业务导向与技术导向
技术选型
前端技术选型
后端技术选型
领域与设计
这一部分的内容,都是我们可以持续做得更好的实践,我们也应该花费更多的时间去练习。
在这一章我们将开发实现几个业务功能,并在这一章中介绍Tasking和分析的重要性。在完成编码前或之后,编写测试有什么区别。以及测试和重构将如何改善我们的代码质量。
Tasking与小步前进
测试
单元测试
功能测试
测试驱动开发
代码重构
MVP,即最简可行产品,不仅仅局限于产品的过程,还应该表现在开发的过程。在我们完成了核心的基本功能之后,我们就需要考虑好上线的事情。上线应用时,我们需要学会如何手动部署。本章将介绍LNMP架构,以及如何进行部署。并将介绍如何使我们的系统是可配置的,以及如何自动化部署应用。
部署工作流
可配置管理
手动化部署
LNMP
SSH
自动化部署
本章中,我们将先用Google Analytics为我们的应用添加数据分析服务。介绍如何用Google Analytics来分析网站数据、用户行为等等的数据,并将介绍开源分析平台Piwik,为不能使用Google Analytics服务的用户提供一个解决方案。还将引入性能分析框架,如OneAPM或者New Relic来分析应用中的瓶颈,来帮助开发者优化程序,并介绍一些常见的缓存策略来加速应用。最后我们也将介绍如何优化用户的体验。
数据分析
Google Analytics
Piwik
性能分析
优化
页面缓存
数据缓存
本章中,我们将引入持续集成工具Jenkins, 并用该工具来完善项目的持续集成。同时,我们还将介绍与持续集成相关的工作流,并将开发更多的功能实践这些工作流来做好软件工程实践。最后,我们还将使用这个工具来进行持续部署工作流的引入。
持续交付工作流
持续交付工具
添加更多功能
持续部署初探
本章,我们将引入遗留代码的概念,并介绍遗留代码及遗留系统是如何一步步形成的。以及在同时的工作过程中,我们是如何引入技术债的概念来保持对系统的警惕。最后,我们将介绍重构,并使用重构来改善软件的质量。
遗留代码
遗留系统
技术债管理
代码重构
这一章中,我们将介绍敏捷回顾的概念,并介绍这样的反馈系统将如何改善团队交付的软件质量。同时,我们还将回顾前面的章节,对其中做得好的和不好的地方进行总结。最后,我们还应该针对于我们的反馈,做一些相对的Action,并改善。
反馈机制与反馈系统
敏捷回顾
Web架构回顾
在这一章时,我们前介绍前端和后台在Web开发过程中的演进史。在这些演进史里,我们可以很容易看到新的架构都针对于旧有的架构的一些改进,才使得新的系统更加完善,可靠。
前端演进史
后台演进史
最后一章里,我们将对前面对的架构依据需求做一些改进,并设计出新的架构。同时简单介绍如何设计新的架构,以及如何应对变化来改进架构,即演进式架构。
回顾
设计新架构
演进式设计
好了,现在你有什么好的建议吗?一经选中,即有机会获得本书签名版~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~