期刊管理系统总结

期刊管理系统

想法与设计

需求分析:掌握软件系统需求分析方法,掌握面向数据流的分析方法。掌握系统功能模型的建立方法,掌握数据模型的建立方法,掌握行为模型的建立方法。

数据流图(DFD);数据字典;加工说明;E_R图;状态转换图

总体设计:将数据流图转化成系统的软件结构图;给出模块的主要描述(处理流程和接口描述);数据库数据表结构设计

详细设计:PAD图以及界面设计

开发与思考

为何使用Django?
  • 使用 Django 可扩展的内置模板,可以将模型层、控制层与页面模板完全独立开来进行编码,结构非常清晰。
  • 非常适合初学者学习。
  • 越大型的项目越不会选django,因为它封装得太好,不够灵活,一般快速上马项目可以,但是长期维护下来很难受
  1. 具体表现在可以用更短的代码描述业务逻辑。
  2. 比 jpa 更舒服的 orm 体验和自带 migration
  3. 不需要遵循 java 系列专属的 dto dmo repo 在各种文件之间反复横跳
  4. 发布打包成 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,这样不会有跨域什么问题

总结

还是要多做项目,在实践中发现问题,探究问题,思考本质。

原文地址:https://www.cnblogs.com/knightoffz/p/14325919.html