## 问题背景
web开发成为了主流的编程模式,许多系统都采用web开发模式,譬如,电商系统、门户网站、新闻资讯、邮件系统、还有诸多千奇百怪的网页,这就是今天我们熟悉的互联网发展的结果。web开发具有简单、快捷、高效的特性,从而备受青睐。笔者在这里以电子书阅读器为例,针对电子书阅读器的各项功能提供一些简单的思路。
##几款电子书阅读器案例
### top5 起点中文网
以连载小说为主要阅读偏好的产品,受众为大众、青年等群体,功能齐全,完美契合了作家、客户的客观需求。
### top4 网易云阅读
特色是提供了用户入驻的功能,满足了需要内容推广的用户。同时方便大众阅读海量图书。
### top3 知网
海量论文下载、浏览的利器,满足了学者、终身学习者的资料搜索需求,其中epub阅读器相当出色。
### top2 学习通
提供了期刊订阅,学习交流,上面有很多期刊的官网,能免费阅读书籍、论文和期刊
### top1 微信读书
依托微信用户群体,为用户提供优质内容服务。
## 功能描述
满足用户可以阅读电子书,订阅专栏内容,还可以入驻。
这里将功能分为,基础功能和扩展功能。
### 基础功能
用户使用浏览器访问主页便阅读喜好的书籍。需要内容推广可以入驻。
### 扩展功能
喜好设置、专栏订阅。
## 详细设计
内部开发模块采用基础类+配置类+扩展类的分层耦合开发方式。基础类提供电子书的处理,配置类完成基础类需要的初始化参数,扩展类主要访问基础类并延伸拓展功能。用户请求模块则集成spring mvc,或者干脆不需要第三方开源库,采用老式Servlet。主要实现电子书阅读功能。
### 配置类
配置类完成基础类的初始化需要的参数。
1、页面设置
页面设置需指定页面大小,行高,间接高度等。
2、段落设置
段落设置应该指定间接高度、是否缩间等。
3、内容设置
内容设置应该指定字体设置、内容类型、内容格式等。
4、一些用户请求参数
获取内容的请求参数,其他参数
### 基础类
1、Context类
电子书上下文类,可以获取电子书的目录、章节、段落等资源。
2、Content类
内容提供器,提供指定的内容(标题、段落、图片)等资源。
3、Url类
统一资源定位器,Context类会根据用户请求参数决定Url,然后获取资源。
### 扩展类
1、ContentHandler类
内容处理类,根据用户请求参数生成配置类后,上下文类Context会根据配置信息,找到相应的资源,最后通过该类处理成静态页面,或是保存在服务端,同时返回给客服端。
2、Search类
根据Url直接获取相应的内容
### 核心方法
1、getUrl(settings)
该方法必须指定配置参数,返回一个资源链接
2、getContent(url)
通过资源链接获取内容
3、contentAdaper(content)
内容适配器
4、search(Url)
精准搜索
## 后期扩展
随着用户量的增长,需对内部开发模块不断的完善,这些完善方面包括以下几个量级
### 500活跃用户
这个量级不需要应用多线程,直接将内容转化为静态页面保存在服务端,做好复制备份,牺牲外部存储空间换取时间。
### 10000活跃用户
做内容分发,需要多线程,此时设计一个中转器,转移部分资源到其他端口,缓解中转器的压力。
## 开发维护
分配三个作业同时完成,即是用户请求模块的请求参数设计,内部开发模块的实现,与其他开源框架如spring mvc的集成使用。我们不管是使用servlet还是其他开源框架,内部开发模块都应该被独立出来,形成独立的jar。
### 用户请求参数规范
。。。。略
### 内部开发模块实现
。。。。略
### spring mvc集成使用
。。。。略
## 样例展示
## 结束语
完成开发任务前最需要的就是文档的编写,一个优秀的文档体现了清晰的思路和有效的表达能力,笔者由于技术、时间和资源的有限,不能写完全部的文档,暂时分享这些内容,下面附加一些内容阐释:
1、线程
线程是程序执行的最小单位,本文档中提到了多线程,虽然笔者还没有完全实现电子书阅读器,但是这里也没有相应的环境。
2、servlet是一种动态网页处理技术,比较古老了,或许是技术更新太频繁了,好像被淘汰了吧。
3、mvc是一种开发模式,将页面内容和数据模型分开,通过控制器协调获取页面需要的数据。
4、基础类+配置类+扩展类是笔者自创的,没有什么用途。
笔者有时间和精力再做一个完整的文档。
标签:实战,电子书,用户,##,内容,阅读器,参数,### From: https://blog.csdn.net/2402_89594624/article/details/144629583