作者 内容
 hz_zhq   人世间最大的悲哀莫过于看下面这种代码!
 

//提交预约
function submitit()
{

if (document.all["firsttime"].value=="")alert("请选择开始时间!!");
else
if (document.all["lasttime"].value=="")alert("请选择结束时间!!");
else
{

if(confirm("选择在\n"+document.all["selectmeetroom"].value+yea+"\n"+document.all["firsttime"].value+"到"+document.all["lasttime"].value+"召开会议"))
{
firstnum=parseInt(num1.split("_")[1]);
lastnum=parseInt(num2.split("_")[1]);

if(checkupit(num1,num2))
{
for(var j=firstnum; j<=lastnum; j++)
{
var times="time"+yea+"_"+j;
document.all[times].style.backgroundColor='cfcfcf';
// document.all[times].beselected="true";
// document.all[times].title="已被预定";
}
}
para=yea+";"+num1+";"+num2+";"+document.all["selectmeetroom"].value+";"+1+";"
window.open('/oasystemep/xzhq/meeting.nsf/meetbooking?OpenForm&'+para,'','width=600,height=400');
}
document.all["firsttime"].value="";
document.all["lasttime"].value="";
document.all["first"].value="";
document.all["last"].value="";
num2="0"
yea=""

}
}

 02/08/27 16:07 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 kaoww  写这段代码的人有很好的逻辑基础(所以你不懂)。
 
 02/08/27 16:20 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 killcamel   JS就别太苛求了,这就是现实,再说阁下你也未必有兴趣
 

把整个文件内的num1/num2/yea全改掉,谁知道是谁开始写的。
老兄就头疼医头,脚疼医脚的混吧。
挑点刺,检查了时刻是否为空,却没有检查结束时刻应该在开始时刻之后,没有检查会议室变量是否为空,没有检查时间段内是否已被预定,没有传送预定者信息。
现在依赖meetbooking,必然是session变量,JS全局,form变量到处乱跑,整个系统结构就够混乱的,古怪的变量名,用可以让用户直接看到变量的cgi调用却不肯使用form的submit的所谓submit函数,num1的不重新归零,除了归零没有使用过的form变量first/last之类的问题都是小事了
改整个结构,您老兄有兴趣吗?所以还是混混吧。这是一个很有趣的OA产品,你只要让它动起来,能在出大麻烦前逃离这个项目,就可以了

 02/08/27 17:33 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 heifei   回复: JS就别太苛求了,这就是现实,再说阁下你也未必有兴趣
 

我看过比这恶心十倍的代码,变量名是x1,x2...或者z1,z2...
所有代码起始点一律整齐的左对齐....

 02/08/27 20:39 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 killcamel   嘿嘿,所以我劝他不要太苛求了
 

如果这是他看过最差的代码,运气已经不错了。
毕竟代码也短,检查有效值,标示已预定状态,生成参数字符串并传递,全局变量归零。四步而已,想差也差不到哪里。
要看见全局变量都有temp,cx的变量名,一个函数2千行,一个文件1万行,少的也有3千行,估计他就要崩溃了

 02/08/27 21:02 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 wu_hao   回复: 人世间最大的悲哀莫过于看下面这种代码!
 

如果你真觉得(而不是一时的牢骚)看这种代码就是“人世间最大的悲哀”,建议你改行。

 02/08/27 23:34 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 killww  你试试在“内容”栏写代码,你就知道之所以这段代码“左对齐”一定是hz_zhq先生不懂HTML造成的。应该补充多个&nbsp;。它的失误使得这段代码看上去真的很烂一样。
 
 02/08/28 21:44 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 pigprince   有必要吗?还最大悲哀,呵呵
 

应该是什么代码都能看,比这个代码滥的多的是,最可怕的看着很好看,
就是memory leak一堆,有什么用?

代码好看只是一个方面,不好看,就把自己当成编译器吧,没有什么。

 02/08/29 10:01 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 killcamel   呵呵,烂就是烂。和代码左对齐有什么关系
 

这段代码本身肯定是复制过来的,不会有什么人有兴趣给它加空,反正这几行简单代码大家都看的懂。
和系统结构上的问题比起来,代码的确是小问题,但这么简单的代码写成这样,代码也是够烂的,而不仅仅是看上去烂。
代码里的问题:
1,命名。 函数名submitit和checkupit全为小写文字。变量名num1/num2/yea,而且别的变量名同样全为小写文字。可读性不好。
2,逻辑。如果checkupit返回false,就不修改被预定的背景色,但还继续给meetbooking传递参数字符串并重设了变量,在用户不知不觉间就预定了会议室(不是背景色没有更改就是预定了已被预定的时间带)
3,不明确。尤其是最后的重设代码。firsttime/lasttime的时刻归零可以理解。first/last像是遗留的废代码,也就算了。num2="0" ,那么配套的num1怎么办?yea="" ,从那句confirm显示消息和后面的背景色设定来看,yea不是会议室种类就是会议室名称,既然这个被重设了,那么selectmeetroom这个会议室编号是否也要重设,开始的有效性检查是否也要检查会议室?
4,代码关联。在执行这个submitit后,如果重新设置了firsttime和lasttime的开始结束时刻,再次submitit,是否是在别的函数内保证了yea/num1/num2都被正确设定了?以这位老兄的编程风格看,我个人表示怀疑。
整个ASP(JSP?)内别的函数段估计是同样风格,当然如果有人认为这是标准水准的程序段,我也不反对。这个都是自由心证的。

系统设计上的问题
1,传递信息。不使用form的action,而是直接参数字符串,不过可以理解,是和问题2相关的
2,结构上是一个主画面,执行时在画面上直接改变背景色表示预定状态,并传送到meetbooking作真正的数据登录,嘿嘿,如果多个端末同时作这一操作,每个人都只能看见自己的预定,而不知道哪些已经被别人预定了,最后表示画面和实际数据严重不一致。
3,功能分割。哪些是应该在srcipt,哪些应该在后台处理。划分不合理。不过也是问题2引起的。
要确认一个预定是否有效,除了时间的先后顺序,还有在整个时间段内会议室必须都是空状态,不仅仅是开始结束时刻。不能已经有人预定3点到5点,第二个人还能预定1点到7点,这种判断交给srcipt来做,也是被问题2逼出来的。

OA系统的设计,和需求目的有很大的关系,预定了会议室后,还有撤销,修改等操作,一般情况下都需要权限认证,以一个预定为单位进行。以目前表现出来的系统结构设计,连一个最基本的同步都没有搞好,个人觉得还会有无数的问题出来要修改。所以我说代码不用太苛求是因为反正系统已经烂了,代码烂点也没关系。嘿嘿,个人浅见而已。如果有人坚信这段代码结构严密,逻辑分明,系统结构堪为典范,请不要受我影响,毕竟我不知道这个项目的需求和设计,都是从代码里推测的。很可能错了。反正我个人认为这样的代码比较烂,但更烂的代码还有很多。早就见怪不怪了。而这段代码最大的优点就是短,所以再烂点也不要紧,不会有太大理解上的困难。如果看这样的代码是人世间最大的悲哀,相信作者一定是一直运气很好的。呵呵,我羡慕得很啊。

 02/08/29 10:05 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 killcamel   呵呵,其实看乱代码长进快
 

好看的代码可能问题一大堆
乱的代码也可能在功能上没有什么大问题
不管代码看上去如何,按流程走一遍总是要得
如果连混乱代码都能看下来,以后就轻松了

 02/08/29 10:15 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 hz_zhq  更大的悲哀!!!!!!!!!!!!!!!
 

以上的代码只是我从系统中摘录出来的一小段而已,我感到很遗憾有那么多人居然认为这种事情不必大惊小怪的,那么我想这将是一种更大程度上的悲哀;我不能想象用这种连最基本的编程范围都不能保存保证的系统,系统的质量怎么保证?系统的可维护性从何而来?这种系统的开发成本怎么能不高!!!!!

 02/08/31 13:10 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 banq  这是我看过的最好Js代码之一。
 

这段代码是很容易懂,真的。不骗你。

我看到Js代码就很兴奋,因为相当于我又找到一段源码,不用我苦思冥想了。

jdon.com
 

 02/09/01 08:32 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首