热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

高校天文共享平台开发过程中的思考与规划

本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。

这个项目是我年初的时候申报的大工软院的校级创新训练项目,项目灵感来源于我们原来微软组内的一名成员,最初想两人一起合作完成,因为一些缘故,他不得不退出。于是之后的技术栈选择,网站前端布局,业务流程,数据库结构等等都是我一个人从零开始探索的。这个项目的真正的开始着手的时间是17年8月份左右,现在走到了一个迷茫的时期,所以决定把自己的想法都落实在文档中,希望能够理出一些头绪。是记录,更是规划与探索。

项目简介

高校天文共享平台希望能够给高校学生提供一个天象预报,科普知识,高校组团观测活动,图片、日志分享等功能的一站式平台。希望能追踪近期的天文观测事件,帮助在最佳观测带的不同学校的同学主办、参与到线下的观测活动中,同时记录下活动中的点点滴滴。

功能剖析

  • 注册、登陆
  • 好友添加
  • 博客发布
  • 图片上传
  • 天象信息的抓取和推送
  • 高校观测活动的主办与参与
  • 天文知识、图片的抓取、整理

8月~12月的架构

  • 前端

    - Bootstrap
    - jQuery

  • 后端

    - servlet
    - tomcat

  • 依赖构建

    - Maven

  • 数据传送

    - Ajax
    - json

  • 数据存储

    - mysql(信息)
    - 服务器路径(文件)

上述架构存在的问题

前后端没有分离
java web因为使用了jstl与EL表达式,导致前后端分离做的很差;在接触了Ajax之后,比较喜欢这种前后数据分离开的感觉,但是之前的代码并没有进行重构向这方向发展,比较混乱。
有很多基础功能需要自己实现
比如文件的上传下载,用java web需要额外的很多代码去处理。
filter这里遇到了问题一直没能解决
我的COOKIE filter一直有问题,程序运行到这个filter中就不动了,甚至连在其中第一行中写好的println都无效。
觉得jsp编译的速度太慢了
每一次整个环境都要重新编译,并且对jsp的微小的调整都要重新来,在调试前端效果时尤其不方便。而且bootstrap在IntelliJ
IDEA的java web项目中有个莫名其妙的bug,我不得不在每个jsp都要插入的header和footer的模板中分别写一次对bootstrap.js和jquery.js的引用,才能够保证bootstrap中的下拉框能够正常运行。
前端对复杂DOM的生成操作很耗费精力
为了每加载一张图片便jQuery动态生成一个DOM,并且DOM中有多层嵌套与属性赋值,我不得不写几十行的几乎没有技术含量的代码。
资料老旧
目前遇到java web的问题找到的各种博客基本都是好多年以前的了,而且很少用纯servlet来编写java web项目的,基本上不是Struts2就是Spring,这个项目之所以没用Struts2是因为之前尝试过,但是在配置Struts2拦截器时遇到了问题好久都没能解决,导致我放弃了,回到了servlet。

已有的成果

  • 注册、登陆
  • 用户个人信息页面
  • 用户相册图片上传下载
  • 论坛发帖回帖操作

12月的打算

  • 想做到真正的前后端分离,前端就是纯粹的html页面,借助React实现更便捷强大的前端js效果
  • 使用RESTful的方式去构建前后端的交互,构建更简洁的地址栏(学习github)
  • 后端使用Spring MVC的架构(想尝试下新的技术)
  • 改写与完善浩然大佬提供的论坛发帖相关代码(虽然我还没能跑起来他的这部分代码)
  • 完成用户的日志发布(使用markdown与用户相册图片链接的组合,解决markdown不能直接上传图片的烦恼)
  • 完成用户间的关注(其实并不是很复杂)
  • 杜撰一些活动,完成校园对活动的主办与参与操作(想参与的人数最多的学校获得主办权,其他学校可以根据学生想参与的程度自行决定是否以官方形式参与到活动当中)

为达到12月目标的小步骤

  • 先跳过之前filter的问题,跑起来浩然大佬的代码,能运行起来是第一位的
  • 快速了解RESTful的设计模式,摸清请求与数据在前后端的交互方式,据此去规划新的后端结构
  • 使用Spring MVC的设计模式快速将已有的代码移植过去
  • 使用最简单、足够的页面布局,把其他所有的前端需求页面先做出来,并安排好与后端交互的接口
  • 按顺序,完成markdown博客撰写发布,用户间互相关注,首页推送用户博客,首页推送活动报名功能

我先去调试浩然大佬的代码去!搞定后就回来还愿!

Github的地址现在还不好意思放出来,,等我重构的差不多的再贴出来分享给大家:)


推荐阅读
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 本文总结了淘淘商城项目的功能和架构,并介绍了传统架构中遇到的session共享问题及解决方法。淘淘商城是一个综合性的B2C平台,类似京东商城、天猫商城,会员可以在商城浏览商品、下订单,管理员、运营可以在平台后台管理系统中管理商品、订单、会员等。商城的架构包括后台管理系统、前台系统、会员系统、订单系统、搜索系统和单点登录系统。在传统架构中,可以采用tomcat集群解决并发量高的问题,但由于session共享的限制,集群数量有限。本文探讨了如何解决session共享的问题。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
  • SpringMVC工作流程概述
    SpringMVC工作流程概述 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
author-avatar
贤闲咸大_552
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有