论坛首页 综合技术论坛

面子驱动编程

浏览 42619 次
该帖已经被评为精华帖
作者 正文
   发表时间:2009-02-17   最后修改:2009-02-17
组长的决定不一定是“面子问题”吧? 就这么给人家定性了?!

yiding_he 写道
他问,有没有使用现有的权限数据库表(包含角色和资源那种)?我说没有。又问:怎么配置权限?我说写死的。

看的出,你们公司有现成的关于权限的数据模型,那还是能用现成的就尽量用现成的(很反对那种忽视现有资源的做法,不职业,不高效,也不利于积累)

yiding_he 写道
我这个模块,用户权限和职务的划分就是基于岗位的。如果我使用了基于角色的权限方式,那么用户在变更岗位之后还要手动更改角色。否则就会造成混乱。这是不必要的麻烦

yiding_he 写道
我的理由是,用户现有的工作方式基本上不会变化,至少在项目生命周期内不会,客户也是明确的说过不需要那么灵活的配置。

既然客户不需要那么灵活的配置,那你为什么又提到这种情况:“用户在变更岗位之后还要手动更改角色”?是不是有点儿矛盾?

    其实,上面所讨论的“过度追求灵活”、“过度设计”的害处,没什么问题。其实大家都知道,别说四年工作经验了,刚开始工作就可以有这种意识。
   
    问题是:写成可配置的,相比写死来说能麻烦多少(当然,不给用户提供配置界面)?
    我的理解是:你最开始写成“可以配置的”——也就是通过修改数据库里关于权限的记录,就可以更改某个岗位可以进行的操作——这样,在上线之前,如果用户提出这方面的变更,你修改起来就很容易,更重要的是:与写死相比,这种修改不容易引入新的bug。到系统上线的时候,你根据用户最终确定好的岗位情况,准备好一个数据初始化脚本,一执行,就设置好了。
    如果用户在使用过程中,认为需要增加一个岗位,这个新增的岗位原来认为是与另一个岗位是一样的,但使用过程中发现有几个小操作还是不允许他用好一些。那好,那就升级系统呗,其实对你来说,只是修改一下权限表的数据。

    不用一开始就做的那么灵活,但也不代表就得一下子写死。你不想用那些权限表(省去dao),那可以在service层写死——至少先把位占上。需求有变动,大不了修改这一个类呗。
6 请登录后投票
   发表时间:2009-02-17  
我们也有这种情况,刚做完一个项目,一闲,领导就说,你们要把这个系统包装成一个产品,然后就是IF`````THEN``````。意思如果我们做好了,那可就牛了,能怎么怎么样了,一点不提怎么做,多少资源,多少时间,多少费用,要不就说,我们一定要`````。见多了就明白了,想法是好的,但不想投入,于是广撒种,不浇水施肥,万一有那个长成了,那领导就来摘桃。
0 请登录后投票
   发表时间:2009-02-17  
angelox 写道
功能少了你都不好意思和客户要钱


呵呵,深以为然。
0 请登录后投票
   发表时间:2009-02-17  
再现幽灵需求
0 请登录后投票
   发表时间:2009-02-17  
xiaoyu 写道
问题是,你在公司四年了,难道就没有现成的权限系统吗?

做一个灵活的组件是很好的事。以后能减少很多工作量

同问……
0 请登录后投票
   发表时间:2009-02-17  
LZ的小组长不是以前一直合作的吧?如果是一直合作的,这个问题应该不会提出……

另外,小组长,这个职位的概念是啥……
0 请登录后投票
   发表时间:2009-02-17  
正在进行中....
0 请登录后投票
   发表时间:2009-02-17  
jnduan 写道
yiding_he 写道
有些设计不是完全由用户需求决定的。需求越模糊,“面子驱动”的迹象就越明显。



太深刻了,看完后发现,我参与的项目就是一个大大的ZF的面子工程。


同志们,开发一个系统,不能仅仅是照本宣科完成客户的需求,还应该由业务专家领头,从用户角度出发,设想他日后可能的变动和升级,在设计上做适当的准备,或是作为附加的亮点功能提供给客户,为自己的软件在客户心目中多加点分..
0 请登录后投票
   发表时间:2009-02-18  
是不是过渡设计还不好说,一定程度的灵活性还是需要的,你真的无法保证需求铁定不会变。
0 请登录后投票
   发表时间:2009-02-18  
反正做B/S系统,
权限控制,I18n, 这些我觉得自然就应该有的,而且人力成本并不高。
在ruby on rails下,一个勉强可以用的权限控制费了我几个小时而已(可能很多人还嫌我太慢)。 当然如果用户要求到 某个column某个record的安全性能我暂时还没想好怎么做。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics