OOPAA

Focusing on OO, Patterns, Architecture, and Agile
posts - 29, comments - 75, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

我的评论

@jinfeng_wang
hi, 具体的解决方案其实倒不重要
这篇文章试图展现一种开发方式:
通过分解功能需求,按照OO思想设计,使得每个阶段的工作都能是原子性质的重构
re: Beyond OSworkflow mingj 2009-01-22 19:07  
@娃娃
好,希望有机会能跟你做进一步交流
re: Beyond OSworkflow mingj 2009-01-17 17:07  
@BeanSoft
多谢beanSoft支持
re: Beyond OSworkflow mingj 2009-01-17 17:07  
@Robin's Java World
多谢捧场哈
@pythonfly
看来老兄对python颇有研究啊
对python,我倒是不熟
希望以后能有机会请教python:)

1. play的JPAModel实现的机制是这样的:
基类里面的静态方法(User.save)默认实现抛出异常,只有在子类上生命@Entity之后,play框架自动帮你的子类实现字节码增强。
其实,这个方案也是在java平台的约束上实现class.save方法的无可奈何之举,但这个过程是用户不可控的,所以也是我比较反感的地方。

2. java是没有可以动态给一个对象增加一个方法的功能,而且无论如何也没有办法获得这个功能。
嗯,对的。因为java里面的class不具备ruby里面的概念,只能是修改字节码修改默认实现。而这也是play的实现方式。

3. 习惯了有DAO,Service,习惯了返回的时候配置一个返回文件,所以你给他一个简单的做法
嗯,没错。传统的web mvc开发模式已经限定了很多开发人员的思路,laying/iop 这些好的开发模式被僵化成为教条。但是play如果致力于消除laying/iop,那就找错靶子了:
1). 这些开发模式都只是形式,而不是本质,本质是后面的分离关注点、SRP或者DIP。
2). play开发一个简单的domain,肯定是很顺手的。但是面对复杂domain,以及团队里面的开发,这时候静态方法、修改字节码就成了它的软肋了。

所以,面对程序开发被教条化的时候,我们更多的是要考虑通过回归OO,使用OOA/OOD来重新评估项目框架的优劣。如何保证既提供一定的限制和约定,又提供充足的自由让开发人员挥洒设计?
我觉得play并没有很好的做到这一点。
@hcom
这个倒没有研究
因为我只是想研究里面一些比较新颖的东西和想法

如果你能花些时间做这方面测试
那对于我们就再好不过了:)
@hcom
这个就是见仁见智了,也没有唯一答案
作为坚持OO 和 Testable的“狂热分子”:)
我是不能接受的
@7047
django我倒是不熟,只是 play!宣称rails-like,所以也是这样理解的

能详细比较一下django和play么?
re: play! framework hot swap 浅析 mingj 2008-12-31 10:46  
@太阳里的雪
现阶段的play! 的确只能算是个玩具
一些编程理念和普遍接受的理念大相径庭

稍后我还会推出其他的博文来分析play!种种之痛的
敬请期待:)
re: play! framework hot swap 浅析 mingj 2008-12-30 23:50  
@太阳里的雪
是的,这是play! 要求的convention
被写死在Play类里面了

re: play! framework hot swap 浅析 mingj 2008-12-30 20:28  
@太阳里的雪
你说文件目录结构怎么搞是什么意思?
是说怎么放置相应的文件么?

你可以看看/resources目录下的application-skel文件夹
这下面就是新建application的skeleton
re: 由某手机厂商现状漫谈敏捷 mingj 2008-12-20 00:52  
@路过
没有万能的银弹
可惜很多时候人们会被冗繁的日常工作蒙蔽了决心和判断
这时候,敏捷教练或者工具就可以起一个mentor的作用了
当然,敏捷教练是深入到开发过程中去,了解具体的pain point再对症下药
所以有位同事风趣地将其形容为“挽起袖子做咨询”:)
re: 一个关于Jquery的问题 mingj 2008-11-18 12:53  
见appurple回复
document中有专门说明
@一脸大鼻涕
springmvc 的确很不错
其实看rod johnson的 without ejb,就知道他对web开发的理解多深刻
但毕竟不是专门做这块的, springmvc还是存在几个硬伤, 以后详加解释
re: DIP 沉思录 mingj 2008-11-02 20:30  
@paul xu
对, 消费者以及服务者提供了类似的定义
其实这也是提供了一种构建系统的方法
Integer,Float,Double都有parseXXX方法
自然Character也不应该少这样的方法

至于实现原因, api已经说的很明白了
不错
其实工作流引擎最难的是流转的定义和抽象
1. 如何将复杂的业务流程抽象成线性, 分支或合并的图形学关系
2. 如何提供dsl或脚本语言让业务专家编写工作流规则
更友好的是将input和select位置重叠
直接输入选项内容,回车即添加
SOA战略已经极大了提高了IT架构的抽象程度
原来的高层中间件之类,也变成了服务的基础设施

真是令人激动和期待
应该是个很不错的公司
希望以后有机会合作
关注
Benq还是一个很值得尊重的人
只可惜出现的时机太早了
re: Android动了Java的奶酪? mingj 2007-12-29 16:40  
所谓和久必分,分久必合

Android 也不是能长期一统江山的
re: Android动了Java的奶酪? mingj 2007-12-29 16:39  
当然,这对于敌人的敌人是再好不过的消息了,那个作壁上观的微软,那时可能已经笑得快合不笼嘴了。

哎,google何必呢
re: Groovy 1.5,你将去向何方? mingj 2007-12-29 16:32  
很值得期待
最好是在eclipse中有更好的支持
re: EasyJWeb vs Struts2 mingj 2007-12-29 16:29  
跟jdw同感
不可避免的有点倾向

个人认为easyjweb确实提供了很多便捷的方法
不过,在ror,grails这些敏捷框架的冲击下
easyjweb有多少值得称道的地方还很难说
re: 我们还需要struts2吗? mingj 2007-12-25 18:53  
明显是托
说struts2”挂羊头卖狗肉”,背后的webwork是狗肉?
webwork是狗肉,easyjweb那得是什么肉?

宣传也找个好点的理由撒
re: 类似google的拖动效果--转 mingj 2007-12-16 17:25  
果然不错
要是能提供撤销拖动的效果就更好了
re: 从指针到引用 mingj 2007-12-03 12:47  

领教了
地址由最初到现在,在空间和时间上都发生了很大的变化
最显著的特点就是更耦合了

我这个理解没错吧?
设计的精髓在于当某种变化来临时,能够重新审视,甚至是调整全部的设计,让它能够兼容之后的“同种类”变化,从而使今后再有这样的变化时,带来最少量改动。为此目的,哪怕是推翻重来也在所不惜。


比较含糊
“推翻重来也在所不惜”,这是不是说好的设计允许推翻重来?

而且,这些要求需要极其丰富的设计经验才行
经验足的,全面的设计是很自然的事情
经验不足的,自然还是需要思考越全面越好
re: 网络流媒体技术及其应用 mingj 2007-12-02 12:00  
印证到当前的视频网站
普通用户来承担内容提供商
网站充当应用提供商和业务支撑系统运营商的角色,而一方面又是半个内容提供商

是否?
一直关注呢
再做个eclipse上的吧,呵呵

1. 内嵌数据库Derby
2. 自动加载数据库驱动
3. SQLXML
4. SQLException增强
谢谢lz
这样的框架并不难实现
但是要做成通用框架,你就知道配置抽出框架的好处了
@javazhai
同意
嗯,我以前也看过这样的文章
字体占了太多的资源
时间勉强够用
~~~~~~~

scjp应该很简单啊
收到lz的邮件
谢谢
lz发一份给我研究可以吗
skyairmj@gmail.com
很难讲现在的选择从长期来看是不是最优的
只能保证短期内是极大值吧
能不能做个独立运行的版本出来?
re: 灵活的视图切换及导向 mingj 2007-09-01 22:40  
感觉就是代码糖而已

不过,还是支持你们
一个技术负责人带一帮刚毕业的大学生,经过一到两周的培训,就可以 进行正常开发,所有的技术学习曲线很低,每个人可能不太明白具体细节或者原理怎么回事,但是首先能用起来,而不是发愣.



....貌似lz的这个原则spring可以满足了
re: 零配置及惯例代替配置 mingj 2007-08-16 10:34  
...框架的侵入性也太强了一点
1、is null和字段=null
这种在oracle和sql server中非常明显,前者为oracle的,后者为sql server的。


sql server 是 is null