艹tm的sb老板
难怪公司越来越不景气,碰到这种老板。
在软件的一个对话框上,有个数据长度要设置,本来完全用户手工输入,然后在点ok的时候判断合法性,合法就ok,不合法的就报错,让用户修改。
这是多么简单的一个应用,老板想出了幺蛾子,想让那个数据长度自动生成。
这个数据长度要根据用户数据状态自动生成,ok,这下有6种状态(状态A),每种状态都要自动生成;但是用户还要能手工修改,用户手工修改了不用点ok立刻反应到数据中,如果用户想取消,点cancel,数据恢复原来的设置;为了防止用户轻易修改,再在旁边加一个checkbox,勾上了就能锁定长度,锁定了就不让修改了;如果用户在6种状态中切换,那么这个锁定的勾就要自动去掉;如果用户设置了某个额外属性(属性A),这个勾自动勾上,手工去掉这个勾,属性A就取消;如果用户的状态A发生变化,属性A也自动变化,锁定勾也自动变化;用户数据种另外有5种状态(状态B),其中的一种状态B2,某个属性B有15种枚举值,其中6种枚举值会导致数据长度自动变化,这时锁定勾去掉;某种状态B1,可以在别处修改属性,会导致数据长度自动变化,但是状态A的种类决定其能否自动变化;在状态A3下,数据A的长度由数据B和数据C自动获取,要能在数据A的界面修改数据B和C的长度,如果数据B和C的长度受上面某种状态限制,则不能修改,如果能修改,则取消上述某些状态。
还有,这个长度的范围限制,是1-20,但是可以设为0,不过设为0要报错。
好嘛,本来完全给用户手工输入,是可以正常使用软件的,就是用户设置的时候留意一点不要瞎设就行,瞎设设错了也没关系,点ok的时候也会报错提醒用户修改。程序逻辑简单健壮可读性强。
这么一搞,这个简单的功能,偏偏要搞个智能的自动化生成。逻辑就非常复杂,各种参数错综复杂,最后这片代码还成了雷区,不能动,一动就到处飞bug。