Web项目(柜子管理系统)总结

来源:互联网 发布:sql 恢复查询 编辑:程序博客网 时间:2024/05/10 17:40

出发之前,又接手一个小Web项目。不过从来没做过Web,现学现用,还好有光光帮着搞框架。

第一次亲自签合同,算是一次leader吧,不过个人感觉这个leader当的真心是略坑队友。


1. 需求不明确。虽然甲方自己没有说清楚具体需求,不过最大原因还是在自己身上(永远不要指望用户知道自己的需求,除非他也搞开发),来来回回谈了2,3次吧,大约弄明白了是个什么东西,虽然个人感觉这个根本就不叫正常人用的东西,但客户需求这么定了,也就不怎么好说了。

2.    上周一交付了第一版,其实真正这个时候才基本上明确了整体需求框架,除了一个web网站外,外加一个管理柜子的服务器。


3.   在交付第一版之前,跟光光去测试过一次柜子的硬件系统,当时用C#做的服务器,然后。。。呵呵,过了两天对方说服务器要部署在Linux上,然后纠结了半天,心理很不爽,想想之前没有谈清楚环境,再者服务器也不复杂,改起来也没什么难度,想想就当是一次教训吧。然后百度大约看了看java的UI,弄了个简答的界面,然后就是socket通信这一部分,百度一抓一大把,第一版中可以正常运行,因为也不牵扯什么效率问题,所以还行。【吐槽一下那个柜子,可以设置柜子的服务端地址,但是之后测试的结果,每设置一次都得重新重启柜子和电脑,才能生效,这也太弱智了点。。。】


4   说说网站,没做过UI,也没做过网站,刁刁找了个模板,也就拿来用用。页面也不多,7,8个样子,但。。。其实逻辑越写越复杂,数据库改了3次,还是前期需求不是很明确,导致返工,(项目统一在SVN中部署,想想第一次做项目时,都是用U盘考来考去的),数据库中表不多,一共就5张表,但是第一版时各种外键引来引去,最后还是扔了,简单化处理。写第三版的时候,手贱的把outofdata写成了outfodata,文档里更新了,代码里没有,又坑队友一次。


5 终于交了最终版,其实想想从最初的定需求(对方说“我要做一个网站,能管理柜子就行”),从设计UI,模块分解,小组讨论,前前后后折腾了3周,边学jsp,html边做,遇到了很多奇奇葩葩的问题





问题

兼容性问题,IE和Chrome的的确确对某些css以及HTML元素支持的不一样,尤其是左右浮动,至今只能在IE8下正常的显示,在Chrome下右浮动的元素会把中间div挤到下面去。

浏览器解析问题

在JSP中,在servlet中通过request向JSP页面传递元素,比如说这样的代码:str="<div><img src=""/></div>",如果在JSP页面中直接<%=str %>输出用IE浏览就会触发异常,但是用Chrome浏览就不会有异常,根据log输出,jsp页面执行了2次,但实际上页面并没有发送两次请求,原因就是有img标签中的src属性为空而引发的,具体的机理还不是很清楚,只要把src随便设置一个值就好了,这个问题整了好久好久。

分页栏靠底部

类似于论坛中的分页,在设计时,页面的最下方都有分页栏,但是如果页面有元素的话,可以直接通过margin-top来指定,但是页面元素内容是通过后台数据库来显示的,如果没有则。。。。就直接显示在了上面,但是css中float之后left和right,然后想了本办法,输出一大堆没用的数据占据位置,然后用visibility:hidden隐藏掉,这样就可以将分页这个div移动到底部了。

过滤器问题

注册过滤器是有个<dispatcher>FORWARD</dispatcher>参数,看是载入页面前,后出发。


新页面打开问题

是跟a标签的target属性来决定的: 根据查找到资料有人做了如下总结

1._blank     <a href="document.html" target="_blank">my document</a> 浏览器会另开一个新窗口显示document.html文档   
2._parent     <a href="document.html" target="_parent">my document</a>指向父frameset文档   
3._self          <a href="document.html" target="_self">my document</a>把文档调入当前页框  
4._top          <a href="document.html" target="_top">my document</a> 去掉所有页框并用


SQL问题

多表级联,找到所有新闻,统计每条新闻评论数,找出最新评论时间以及评论人,并且按照最新评论时间排序。子查询,将order by放到子查询中,一定要在最外层的查询中做group by。


暂时能想到的就这么多了,



总结一下,团队合作项目,一定一定要将前期的需求明确了,虽然这玩意一直都会变,但大体框架一定定好,否则重新设计框架是件很蛋疼的事,想想这个,好像设计了3次,坑队友的节奏;

   对于数据库来说,文档跟代码一定要同步更新,使用时小组成员一定导入同一份sql文件,想想这个又坑一次队友,文档跟代码不同步;

   数据中表的命名一起提前商量好,不然起的名字都不知道是什么   。想想这个还是坑了队友,名字起的一塌糊涂;

使用git或者SVN时,最好先将项目中的文件夹以及文件名(至少要将文件夹模块名称起好)这个还好,么有坑队友;

在用SVN更新或者提交之前,一定记得把代码中的log都给关了,否则。。。看到一大堆奇葩的log就像揍人。想想这个也坑了队友。



么了也没什么了,总的来说呢,项目初期是挺小的,但最后交付的时候想想还是写了很多东西,除去css,js,html代码,大约6K左右的样子。第一次签合同,当leader,感觉不是很称职,虽然坑了好几次队友,不过还是很感谢队友的支持。



0 0