热门标签 | 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的地址现在还不好意思放出来,,等我重构的差不多的再贴出来分享给大家:)


推荐阅读
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 本文详细介绍了中央电视台电影频道的节目预告,并通过专业工具分析了其加载方式,确保用户能够获取最准确的电视节目信息。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 探讨在循环中调用$.post()时,回调函数为何会在循环结束后才开始执行,并提供解决方案和优化建议。 ... [详细]
  • 本文详细介绍了Ionic框架的使用方法及其与Angular的集成。Ionic框架是一个强大的前端开发工具,适用于构建跨平台的移动应用程序。文章将探讨如何引入必要的CSS和JavaScript文件,并解释bundle.js中包含的核心功能,如路由等。 ... [详细]
  • 探讨了如何解决Ajax请求响应时间过长的问题。本文分析了一个从服务器获取少量数据的Ajax请求,尽管服务器已经对JSON响应进行了缓存,但实际响应时间仍然不稳定。 ... [详细]
  • 深入理解ExtJS:从入门到精通
    本文详细介绍了ExtJS的功能及其在大型企业前端开发中的应用。通过实例和详细的文件结构解析,帮助初学者快速掌握ExtJS的核心概念,并提供实用技巧和最佳实践。 ... [详细]
  • 本文详细介绍了如何利用Go语言和WebSockets技术构建一个高效的实时聊天系统。随着网络应用的日益复杂化,实时交互成为了提升用户体验的关键要素之一。通过本指南,开发者可以学习到最新的技术和最佳实践。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • VPX611是北京青翼科技推出的一款采用6U VPX架构的高性能数据存储板。该板卡搭载两片Xilinx Kintex-7系列FPGA作为主控单元,内置RAID控制器,支持多达8个mSATA盘,最大存储容量可达8TB,持续写入带宽高达3.2GB/s。 ... [详细]
  • 5G至4G空闲态移动TAU流程解析
    本文详细解析了用户从5G网络移动到4G网络时,在空闲态下触发的跟踪区更新(TAU)流程。通过N26接口实现无缝迁移,确保用户体验不受影响。 ... [详细]
  • Scala 实现 UTF-8 编码属性文件读取与克隆
    本文介绍如何使用 Scala 以 UTF-8 编码方式读取属性文件,并实现属性文件的克隆功能。通过这种方式,可以确保配置文件在多线程环境下的一致性和高效性。 ... [详细]
  • 在Web开发过程中,Ajax技术常用于前后端数据交互。其中一个重要的属性async决定了请求是否以异步方式执行,本文将详细解析async属性的作用及使用方法。 ... [详细]
  • Asp.net MVC 中 Bundle 配置详解:合并与压缩 JS 和 CSS 文件
    本文深入探讨了 Asp.net MVC 中如何利用 Bundle 功能来合并和压缩 JavaScript 和 CSS 文件,提供了详细的配置步骤和示例代码,适合开发人员参考学习。 ... [详细]
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社区 版权所有