期刊管理系统
想法与设计
需求分析:掌握软件系统需求分析方法,掌握面向数据流的分析方法。掌握系统功能模型的建立方法,掌握数据模型的建立方法,掌握行为模型的建立方法。
数据流图(DFD);数据字典;加工说明;E_R图;状态转换图
总体设计:将数据流图转化成系统的软件结构图;给出模块的主要描述(处理流程和接口描述);数据库数据表结构设计
详细设计:PAD图以及界面设计
开发与思考
为何使用Django?
- 使用 Django 可扩展的内置模板,可以将模型层、控制层与页面模板完全独立开来进行编码,结构非常清晰。
- 非常适合初学者学习。
- 越大型的项目越不会选django,因为它封装得太好,不够灵活,一般快速上马项目可以,但是长期维护下来很难受
- 具体表现在可以用更短的代码描述业务逻辑。
- 比 jpa 更舒服的 orm 体验和自带 migration
- 不需要遵循 java 系列专属的 dto dmo repo 在各种文件之间反复横跳
- 发布打包成 wheel 包,线上只需要配置文件和一个 wheel 包
权限分级?
超级管理员、管理员、用户进行区别对待。要求他们登录后有不同的方式进行访问图书和资源
难点与突破
搜索?参考了下网上开源搜索引擎,但后面抓取什么的没有做,就只做了一个前端出来,后端没有写
https://www.oschina.net/project/tag/130/search-engine
复杂查询在orm下难以实现?在复杂查询中混入SQL语句进行直接操作;视图可以解决大部分calculated column,case ,group,having,order by, exists,但是查询条件(a and b and not c and (d or d))力不从心
前后端分离?后端的路由都加上/api前缀,然后其它的路由都给前端,默认路由转发到前端页面html上,类似于调用API,这样不会有跨域什么问题
总结
还是要多做项目,在实践中发现问题,探究问题,思考本质。