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 只是我们抽象分类事物的一种方式,这种方式很管用不代表其它方法不管用。
Global site tag (gtag.js) - Google Analytics