软件设计时的取舍问题

最近在公司搭一个平台,遇到这样一个问题,如果想让平台更灵活时则在后期使用时会有比较复杂的工作需要处理;如果想让平台使用简单一点,则在使用平台时需要遵守许多条条框框,并且代码不规范(按行业规范讲)
针对这样一个问题不知该如何取舍?

看上去是个内部系统,[quote]...许多条条框框...[/quote]这种拿不去给客户的。

那样的话我觉得问题就变成:“能做吗?”——有足够的预算,人力和时间吗?

如果有,肯定做。可以做好当然做好。
如果没有,那么当然按能解决问题的最经济方案走了。

不过,
灵活易扩展 vs 过度设计
简洁 vs 简陋

没有实际情景支撑空谈的话,无论如何也不会说出个道道的。

表达的意思是:无论如何后期使用都很复杂?业务梳理的有问题...

根据你对问题的描述,实际上就是定位在如何把基础平台做好。
我觉得灵活易扩展与简单多限制实际并不是冲突的。
一个框架不能说简单多限制,就很难扩展就失去灵活。
做任何一个框架,都应该考虑扩展性(当然有个度,你不能说把任何无法预料的事情都考虑进去),而简单是对于上层而言的。如你所说,你的基础模块要包括用户、角色、菜单、报表。那么用户、角色完全同属于安全业务,那么只需要向上层提供一个门面类(如:SecurityManager类,该类负责对用户、部门、角色、权限的控制)供其它业务模块调用。简单多限制,不知道具体应用场景,不好回答。可以参考一些开源框架,对于限制部门使用默认方式,但可以通过提供对限制方面的配置来提高扩展性。

可以先整理下业务,把条条框框最小化。毕竟是一个平台,简单好用是基础!

先满足当前的基本需求吧
以后的事情要看发展
不要一开始就设计一个复杂的系统