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


推荐阅读
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • 网络出版服务许可证申请指南
    本文详细介绍了网络出版服务许可证的办理条件、适用企业范围及具体流程,帮助相关企业和个人了解并顺利完成许可证的申请。文章由专业机构提供,旨在为读者解答在互联网出版领域遇到的技术和合规问题。 ... [详细]
  • 在PHP后端开发中遇到一个难题:通过第三方类文件发送短信功能返回的JSON字符串无法解析。本文将探讨可能的原因并提供解决方案。 ... [详细]
  • 优化网页加载速度:JavaScript 实现图片延迟加载
    本文介绍如何使用 JavaScript 实现图片延迟加载,从而显著提升网页的加载速度和用户体验。 ... [详细]
  • 深入理解ExtJS:从入门到精通
    本文详细介绍了ExtJS的功能及其在大型企业前端开发中的应用。通过实例和详细的文件结构解析,帮助初学者快速掌握ExtJS的核心概念,并提供实用技巧和最佳实践。 ... [详细]
  • 为了解决不同服务器间共享图片的需求,我们最初考虑建立一个FTP图片服务器。然而,考虑到项目是一个简单的CMS系统,为了简化流程,团队决定探索七牛云存储的解决方案。本文将详细介绍使用七牛云存储的过程和心得。 ... [详细]
  • 当unique验证运到图片上传时
    2019独角兽企业重金招聘Python工程师标准model:public$imageFile;publicfunctionrules(){return[[[na ... [详细]
  • 本文详细介绍了如何利用Go语言和WebSockets技术构建一个高效的实时聊天系统。随着网络应用的日益复杂化,实时交互成为了提升用户体验的关键要素之一。通过本指南,开发者可以学习到最新的技术和最佳实践。 ... [详细]
  • Python 内存管理机制详解
    本文深入探讨了Python的内存管理机制,涵盖了垃圾回收、引用计数和内存池机制。通过具体示例和专业解释,帮助读者理解Python如何高效地管理和释放内存资源。 ... [详细]
  • 本文介绍了一种有效的方法来扩展Matlab的虚拟内存,以解决在处理大数据或生成大图像时遇到的“out of memory”错误问题。通过具体步骤和实际测试,确保用户能够在自己的电脑上顺利运行大型计算任务。 ... [详细]
  • JavaScript 中创建对象的多种方法
    本文详细介绍了 JavaScript 中创建对象的几种常见方式,包括对象字面量、构造函数和 Object.create 方法,并提供了示例代码和属性描述符的解释。 ... [详细]
  • 本文探讨了在构建应用程序时,如何对不同类型的数据进行结构化设计。主要分为三类:全局配置、用户个人设置和用户关系链。每种类型的数据都有其独特的用途和应用场景,合理规划这些数据结构有助于提升用户体验和系统的可维护性。 ... [详细]
  • yikesnews第11期:微软Office两个0day和一个提权0day
    点击阅读原文可点击链接根据法国大选被黑客干扰,发送了带漏洞的文档Trumps_Attack_on_Syria_English.docx而此漏洞与ESET&FireEy ... [详细]
  • PHP 实现无刷新多图上传及远程图片处理
    本文详细介绍了如何使用 PHP 实现网页上的无刷新多图上传功能,同时支持远程图片的下载与处理。文章提供了具体的代码示例,并对关键函数进行了说明。 ... [详细]
  • 探讨如何在 iOS 开发中通过添加 NSLayoutConstraint 来使 UICollectionView 自适应其内容的高度,特别是在复杂布局如模拟微信朋友圈发布界面时遇到的问题。 ... [详细]
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社区 版权所有