The definitiveGuideTo lift 第13页一个例子的思考
yangzhan
2009-11-23
界面的东西怎么写到Model里去了呢?个人感觉这种写法不好,大家觉得呢?
object User extends User with MetaMegaProtoUser[User] { // define the DB table name override def dbTableName = "users" // Spruce up the forms a bit override def loginXhtml = <lift:surround with="default" at="content"> <div id="formBox">{ super.loginXhtml }</div> </lift:surround> override def signupXhtml(user: User) = <lift:surround with="default" at="content"> <div id="formBox"> { super.signupXhtml(user) } </div> </lift:surround> } |
|
night_stalker
2009-11-23
web 开发一直有两种切分:
纵向往往是 mvc 甚至更多的分层 横向是控件化 切分是为了分而治之,但总代码量肯定会增加一点点的,如果东西不多,没必要切就算了 …… 而且 lift 是非 mvc 的,并且强调不能在页面写逻辑的 …… 所以得在 model 中写一点页面 …… |
|
yangzhan
2009-11-23
以前有贫血模型和充血模型之争,现在连页面逻辑都写到Model里去了。感觉这种做法太不符合领域模型了。 要是项目大了,以后维护估计也是一个恶梦!
|
|
night_stalker
2009-11-23
不要盲目切分 …… 也不要盲目套用 java 理论 ……
何况 scala 本来就比 java 简洁很多,块分大一点也不算啥。 |
|
iaimstar
2009-11-23
领域模型和编码没啥关系吧
|
|
night_stalker
2009-11-23
有关系的 …… 如果代码膨胀很厉害,必须得仔细的设计拆分,反之,设计就显得不重要了。
|
|
iaimstar
2009-11-23
领域模型是系统是系统分析阶段的东西
干不找代码膨胀的事情啊,连详细设计的事都不怎么干 |
|
night_stalker
2009-11-23
这么说吧,推销方法论的人总说自己的方法是通用的,你们使劲洗脑,不要怕以后会落伍 ……
|
|
fineqtbull
2009-11-23
领域模型里混入控制或画面逻辑因该不是个好兆头,领域模型是系统业务逻辑的抽象,只应该包含系统业务相关的数据和逻辑,只有这样才能做到重用。还有就是测试方面因该也有问题吧,领域模型依赖了页面逻辑之后单独测试就成问题了,项目一大团队之间的分工合作也受影响。
Lift不是很熟,但觉得是不是把页面控制放在MVC的C里会好一点,而不是M里。 |
|
night_stalker
2009-11-23
注意,Lift 早就明确的说明了:它是 view-first 框架,不是 MVC 框架 ……
非要按照 MVC 做的话,需要在 view 类里面手动写 dispatch 函数,会很郁闷的。有人做了 lift mvc 的一些辅助类,写起来会好一点。 知道这东西的窍门在哪吗? xml 在 scala 里面是有语义的,不是字符串,它们是 document model,document model 也是 model 啊 —— 良心马上就舒坦了。view,model 只是我们抽象分类事物的一种方式,这种方式很管用不代表其它方法不管用。 |