在做项目的这段时间里,发现遇见了好多之前没有预料到的问题,有的时候,因为一个小问题,纠结了好久好久。
一、项目期间出现的问题:
1、数据库的分析,建立,这个问题就出现了好几个问题,首先表与表的关系、表中各项的数据类型,整理的并不是很好。
2、后端的代码,总是出现各种错误,无论是DAO层还是Severlet层,这里面写的时候,并没有用多长时间,但是写完之后的调用,出现了之前始料未及的各种bug,找起来特别的麻烦
3、DAO层的构建,都是每次需要一个方法的时候,现去添加一个新的方法,导致后期整合的时候,出现了代码冗余 。 好几次,改了前段的代码之后,DAO层里的个别方法,用不上,还不敢去删,因为不知道哪里会不会调用的到。
4、再说说前端、模板里面的功能其实很多很多,但是我们真正实现的,缺很少很少,导致整个项目显得有点空。
5、整合的时候,出现了好多的bug,不是这里出了问题,就是那里出了问题,最后调试的时候浪费了太多的时间。
6、js代码几乎没怎么用,因为都忘得差不多了,每次写出来,总是出现一系列的问题,最后干脆直接就没怎么写。
7、过滤器,乱码过滤,直接复制的原来的代码,如果要重新手写的话,可能还是写不出来,地址过滤的时候,出现了一个小插曲,卡了我一晚上,也没找到原因,地址是过滤了,但是样式表和JS代码,怎么样都是不执行,最后加了点东西 (虽然不是很明白怎么回事,但是知道是哪里的代码实现的)
package com.filter; import java.io.IOException; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class DiZhiGuoLv implements Filter { ArrayList<String> list=new ArrayList<String>(); @Override public void destroy() { // TODO 自动生成的方法存根 } @Override public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { HttpServletRequest request=(HttpServletRequest)arg0; HttpServletResponse response=(HttpServletResponse)arg1; String s1=request.getRequestURI(); String s2=request.getContextPath(); String s3=s1.substring(s2.length()); if(s1.contains(".css") || s1.contains(".min.js") || s1.contains(".png")|| s1.contains(".jpg")){ //这个判断就是过滤css样式表的 arg2.doFilter(request, response); } else{ if(list.contains(s3)){ arg2.doFilter(request, response); } else{ HttpSession session=request.getSession(); if(session.getAttribute("adminuser")==null){ response.sendRedirect("login.jsp"); }else{ arg2.doFilter(request, response); } } } } @Override public void init(FilterConfig arg0) throws ServletException { // TODO 自动生成的方法存根 String values=arg0.getInitParameter("fangwen"); String[] str=values.split(","); list.addAll(Arrays.asList(str)); } }
二、项目期间的收获:
1、从一开始敲代码的速度到最后整合起来的速度比 , 前期敲代码的速度简直是龟速,找错能力明显提升了很多,好多时候自己能找到一些明显的错误了,知道该怎么去处理错误了。
2、业务流程实现的不怎么好,但是后台代码和前段页面的结合 ,多少有些感悟了,至少比以前了解页面如何与后端实现交互的了。
3、整合代码时出现的页面的小bug,可以将核心代码复制出来,其他一样的代码复制过来,确定一下哪里的代码出现的问题。
4、用了一次ajax,虽然实现的功能很简单,但是对其理解更多了些。
5、和之前静态页面一样,小组项目之所以叫小组项目,是因为,一个项目并不是由一个人独立完成的,需要的是大家相互之间的沟通,沟通好了,或许你卡住的地方正是别人熟知的地方,可以省去很多时间。
6、有事找百度,不管是遇见了不懂的单词,或者是不懂的技术,很多时候都可以查得到(虽然偶尔有些搜出来的结果跟我们需要的东西并不是很一致,但是多找找总会有所收获)
三、项目总结:
1、还有很多不足的地方,需要巩固,无论是前端,还是后端,经常需要一边查资料一边写。如果可以的话,尽量摆脱这些束缚,真正可以 自己写出来。
2、需要查资料的时候,一定要确定自己要找的是什么,抓住核心,不然找到的东西,很多都是用不到的,很浪费时间(学会高效的查询资料)。
3、写代码的时候,一定要认真,很多时候就是因为代码敲错了,或者漏写了或者拼写错误,废了好大劲才找到原因。
4、变量命名方式需要改一改,有的时候自己都不知道自己写的代码执行的是什么。
5、注释要多一些,写了之后自己才能知道某块代码执行的是什么
6、需要再多整理一些以后可能会需要的东西,以后真正需要用的时候,才能找得到。