线索型写作
什么是线索性写作?
所谓线索性写作风格,即:
以构建一个知名产品为线索,带领读者『一段代码一段代码』地将概念转化为可用的产品,在此线索中埋进去我们提前设计好的知识点。
例如 《Laravel 进阶课程 - 从零开始构建论坛系统》 这本书中,以构建论坛产品为线索,一步步编程出最后的 LaraBBS 项目。在构建 LaraBBS 的过程中,我们提前设计并埋伏了很多知识点,如:多角色用户权限系统、管理员后台、注册验证码、图片上传、图片裁剪,XSS 防御、自定义命令行、自定义中间件、任务调度、队列系统的使用、应用缓存、Redis、模型事件监控、表单验证、消息通知、邮件通知、模型修改器等。
『知识点』都是提前设计好的,然后在埋进去。比起一个个单独讲解这些知识点,使用一个真实的产品作为线索,将所有知识串起来,能让知识记得更牢固。
如何定大纲?
你也可以将『线索性写作』看做真实项目开发的实时记录,假如你要从零构建一个 Laravel China 网站,真实世界的项目开发起来时,你会有以下步骤:
- 分析项目需求
- 新建项目,准备好 hosts 和 虚拟机;
- 因为是 UGC 系统,所以先开发用户相关的功能,如注册登录、个人中心等;
- 论坛核心内容为『话题』,所以先开发这个,然后也可以使用第二步开发的用户来作为『作者』;
- 接下里即可为话题开发回复功能;
- 然后是多用户角色功能,并完善对话题、回复等内容权限的控制;
- 接下来是做一个后台来管理这些内容。
上面的开发步骤,实时记录下来,就是 —— 进阶课程 。
真实项目的功能开发顺序即大纲。
如果撰写每一个章节?
在真实是开发的时候我们遵循的流程如下:
- 分析某个功能的需求;
- 修改代码、配置等;
- 刷新页面看效果;
- 如果页面有 Bug,继续修改代码;
- 完成后再次刷新页面,页面成功显示。
写作时完全映射以上的流程,对应如下:
- 分析某个功能的需求 ——>> 章节一开始,简单介绍下这个章节要干嘛;
- 修改代码、配置等 ——>> 贴代码,贴配置信息;
- 刷新页面看效果 ——>> 打开浏览器截图;
- 如果页面有 Bug,继续修改代码 ——>> 继续截屏和贴代码;
- 完成后再次刷新页面,页面成功显示 ——>> 截屏,并提交 git commit ,本章节完成。
以上就是每一个章节的撰写过程。
每一个章节,对应项目的一个功能,而直接的内容,即使构建此功能的所有记录。