2022-03-04 05:00来源:m.sf1369.com作者:宇宇
1、需求
从个人需求和角度出发,自己想要一个什么东西,获取别人也有类似的困惑和想法。
经常在网上看小说,有时候会觉得广告太多,运行太慢。无聊的时候看新闻,也会觉得不是很感兴趣的东西也会搜索到。于是想到了自己或许可以写个小程序,放一些自己感兴趣的东西。
总结下来,自己想要的东西无非就是两个:
1)、把自己感兴趣的书管理起来
2)、把感兴趣的新闻组管理起来
有时候,会觉得很简单,可是自己也是经历和很久,才知道自己到底想要什么。
2、计划
计划总是理想的东西,也算是目标,没有计划可能动力就会少很多。只有合理的计划,合理的目标才能一鼓作气完成。若是不切实际,不考虑自身条件和资源特质,想做一个好的东西,结果也只能像打水漂,一个个的飘过去,最后沉入水底。
不过我们都是人在职场,身不由己,不可能有完整的时间让你做自己的事情。
因此,自己使用了迭代的方法,不至于感觉到自己的想法太过渺茫。
1)、制定一个简单的框架
2)、建立后台查询webservice接口,能够查询数据列表,和文件位置。
3)、实现小文本书籍程序(一个唐诗三百首的简单程序)
4)、实现大文本书籍阅读(四大名著翻阅)
5)、实现新闻组阅读
6)、对几个小程序进行集成。
7)、后台使用sqlite数据库,支持基本数据存储。前台使用sqlite实现数据缓存支持离线阅读。
每一步都需要都需要在尽可能集中的时间尽快完成,不然就可能被打断。
3、构架
所谓麻雀虽小,五脏俱全,即便它很小,该有的总还是要有,只不过是缩减版。
做这个小程序,需要申请一个云服务器,最简单的那种,1元/天,作为学习和实验已经够用。不过所有的东西都要省着用,计算资源,网络资源依然是个负担,能不用尽量不用。有点像大城市的房子,如果只有巴掌大的地方,那么每个地方都要省着用。
如果从较大的视野看,这个程序算起来也实在是小,无外乎就是租用一个外部服务器,然后做一个webservice服务,然后在app上把数据展示出来。没有负载均衡,没有用大型数据库,没有文件服务器,没有复杂的业务逻辑,甚至也不敢采用未知的技术,然而就是这么说起来的一点点东西,那么实现其中的那么一点点,也是不容易的事情。
若是一定要说说框架,那就是:
软件采用webservice+app的结构,服务器采用spring+cxf通用构架,app采用mvp通用框架。硬件从同单服务器+android设备数据采用文件服务器+sqlite+数据缓存。
4、技术
受限于资源,不可能把程序做的很大,所用的技术也不用最新,深度难度深度不大,所求的不过是一个完整可用的程序。
这个程序没有使用H5,没有使用JNI,仅仅使用java去完成服务端和客户端的整个程序。
这个过程中依然遇到了一些通用的技术,比如:
服务器的搭建,tomcat的安装部署,spring+cxf服务搭建,日志部署,mybatis+sqlite的使用,json对象转换,MyBatisGeneratorTool表映射,数据查询,文本文件压缩加密分割等。
App框架选用,restful接口访问,分辨率自适应,程序升级,版本管理,阅读翻页,数据缓存,标签处理,greendao数据映射,数据列表拖动,以及各种各样的界面问题。
只要程序向前走总会遇到各种问题,而且一旦程序规模达到一定程序,那就不能随意的更改,只能是更加小心,实现备份,并且先进性适当的规划和预研才可以动手。
5、过程
软件开发的过程总是反反复复,想做的,设计的,实际完成的总会有很多的出入。今天想到的,明天可能有不同,实际做的时候,又发现因为其他的原因导致需要变通的去做。
从资源,时间和精力来说,在没有外力的情况下,一个人想把东西做好,可能性很小,那就存在适度的问题,到底做到何种程度才算结束,才算是一个里程碑。
我想基本上够用即可,不需要太多的功能,灵活的技巧,炫目的界面,自我认为可以了就结束了,毕竟这不是一个商业软件。
程序做到一定时间,或者环境和心理发生,或许暂时不适合继续做下去了,适当停一停。
预先想的索引,分类,黑夜模式,订阅处理,html缓存和截取,界面优化,添加评论,添加注解,更多配置,自定义添加文章,自定义插件,安全加固等等,都是没有做的。
存储器存数据,液晶屏显示,单片机控制