基于java的完整项目总结 - Go语言中文社区

基于java的完整项目总结


项目总结

我的第一个完整项目总结

实习俩个月期间,主要是从一个学习往一个工作的状态转变,完成了安卓,web以及后端的任务,
项目整体框架是前辈搭建的,我在其基础上完成相关功能的开发,现在在这里总结一下,作为记录。

学习优良的开发习惯

从学习往工作过渡,有很多开发细节需要注意,为了尽量去避免一些不必要的错误和BUG,我们在设计系统的时候就要深入考虑:

  1. 异常处理 ,对可能出现异常的地方进行异常处理;
  2. 注释 多用注释,方便以后自己查看以及他人维护;
  3. 版本 无论是JDK还是其他一些工具的版本,尽量保持一致,避免版本不同带来的问题;
  4. 多态 多态的使用降低了系统耦合度,可拓展性提高;
  5. 新特性 我们在工作的时候也是需要不断的学习的,善于使用一些技术的新特性可以大大地 降低工作的复杂度和提升工作效率;
  6. 分布式 在进行系统设计的时候就必须考虑这个系统是往哪个方向设计,如果设计成分布式的,那么代码的设计就需要体现出模块化的思想,比如像@Cacheable这种的缓存注解就不能使用了,可以使用Redis来替代;
  7. 配置化 系统中的一些配置变量要统一写到application配置文件中;
  8. 日志 日志类似@slf4j的使用,便于调试和测试或者其他时候对操作的记录和查看。
  9. swagger 在前后端分离的时候,前后端的连接就需要接口文档了,swagger就可以作为一个可测试的动态接口文档,swagger的配置和信息需要后端在代码中体现。
  10. postman 同样是前后端分离的情况下,后端对于接口的测试工具,可单接口测试和批量测试。
  11. navicat 作为一款可视化数据库管理工具,觉得非常好用。
  12. 设计模式 23款设计模式
  13. 线程安全 线程安全的类选择和数据库的类型选择都很重要。

Android

安卓这方面我主要完成了两个功能:

                         1.登录模块
                         2.拍照动态显示和点击预览

1)登录模块
使用的底层HTTP请求方式,原本是使用了Redis来存储和更新token的,但是由于Redis的BUG导致服务器被攻击,所以就撤除了Redis的代码,(Redis最好在内网使用)改用静态变量保存token,前后端使用json数据来交流。

2)拍照预览
这部分真的很烦,除了第三方的库,差不多还写了3000+行,与服务器的交互使用的http协议,具体实现在我的简书上有总结:链接:
点击这里.

后端

后端在整个项目里面反而是最轻松的,因为后端比较看重逻辑,实际写的代码并不是很多,不过前前后后好像也不少。后端实际体现在一些注解的使用,代码逻辑性强,先来说一下后端的Token
实现吧:

  • 基于拦截器(WebMVCConfigurer):拦截器拦截所有的请求然后判断进行哪些处理。
  • 拦截器(HandlerInterceptor):拦截http请求,从头部取出token进行验证。
  • 自定义注解:可以通过添加自定义注解来实现跳过验证等操作。
  • Token 下发器:每次请求验证成功,生成一个token下发给C端。
  • 良好的加密素质:密码这种东西不可能是明文保存和传输的,一般在C端进行一次加密(MD5,SHA256,Bcrypt都可以)传入后端后再使用salt混合加密一次,这样安全性基本上就得到了有效保障

说到加密再总结一下spring security吧:

核心理念还是:拦截器,过滤器和权限配置
放个入门教程,需要的自己看看吧:链接(http://www.sanjinbest.com/spring/spring-security-入门教程/).

web端的后端就稍微提一下吧:
状态位,一般我们都是在数据库里面增加一个字段来记录和控制状态,但是这样却给后期维护带来了很大的困难,所以,具体的状态要用具体的状态位来控制,这样便于后期维护和协调代码的逻辑性。

联调阶段

项目进入后期,前后端联调,这个时候就要拿出你的接口文档了,PS:你设计系统时候的业务逻辑图和技术逻辑图以及时序图,UML图等等的都拿出来过一遍,接口的改变和信息要清晰明了。

测试阶段

测试的话就是找问题,测出你想的到的和想不到的问题,测每个功能要细心,所有可视化的东西都点一遍,测试阶段要注意后台日志,可能有些操作是存在问题的,但是在前端上并没有体现出来

上线阶段

点击这里,你就知道是什么 心情了。

// An foreach
while(1==1){
  ...
}

上线阶段:首先你需要准备全套的 sql
上线计划的内容包括 : 代码发布数据库修改数据迁移初始数据配置等一系列信息;信息需要在测试环境验证后才可以用于生产。上线计划的内容要确保上线时,无脑根据上线计划的步骤和内容执行。

结尾

自我学习是必要的,人总是在不断的自我提升达到新的高度。
在这里插入图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_43737447/article/details/100689951
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢