新足迹

 找回密码
 注册

精华好帖回顾

· NSW 2010 naplan 所有小学TOP100在170楼year3在175楼year5在204楼,公立小学排名前50在1楼51~100在202楼,YEAR (2011-3-4) PurpleRipples · 8月美食活动-烧肉是这样上色的 3楼上做法了哦 (2009-8-15) rongerchen
· 煮夫手记十七 川菜三味之过江茄龙 (2011-3-30) amon54 · 我也开始漫漫买房历程(悉尼) (2007-4-2) benben
Advertisement
Advertisement
查看: 3775|回复: 51

IT的人经常搞些概念唬自己 [复制链接]

2012年度奖章获得者 2011年度奖章获得者

发表于 2011-10-25 16:53 |显示全部楼层
此文章由 交易人生 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 交易人生 所有!转贴必须注明作者、出处和本声明,并保持内容完整
前两天碰到一个前同事,讲面试考他dependency injection,他没用过,不行;我说你肯定用过,他说他后来google了,一堆framework, EnLib的unity还什么.net spring framework等等。

明明是instance variable,非搞个怪名字。

感叹一下。

评分

参与人数 3积分 +8 收起 理由
BJ-KING + 2 向偶像学习!
porcorosso + 2 谢谢奉献
atransformer + 4 谢谢奉献

查看全部评分

0  to 1
Advertisement
Advertisement

发表于 2011-10-25 16:56 |显示全部楼层
此文章由 xieao1985325 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 xieao1985325 所有!转贴必须注明作者、出处和本声明,并保持内容完整

发表于 2011-10-25 17:02 |显示全部楼层
此文章由 flyspirit 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 flyspirit 所有!转贴必须注明作者、出处和本声明,并保持内容完整
DI和instance variable还是不一样啊。

退役斑竹 2007 年度奖章获得者 2008年度奖章获得者 特殊贡献奖章 参与宝库编辑功臣

发表于 2011-10-25 17:15 |显示全部楼层
此文章由 黑山老妖 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 黑山老妖 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这个 DI 听着就很高深。。。
(monkey08)

2012年度奖章获得者 2011年度奖章获得者

发表于 2011-10-25 17:22 |显示全部楼层
此文章由 交易人生 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 交易人生 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 flyspirit 于 2011-10-25 17:02 发表
DI和instance variable还是不一样啊。

di只能说是instance variable的一个特例,或者说:你把这个variable付值的时候通过setter或者constructor并且只付的base class(比如interface或者abstract) ,而implementation分离就是di。


如果你google di,肯定一大堆文章然后不知所云。
0  to 1

2012年度奖章获得者 2011年度奖章获得者

发表于 2011-10-25 17:23 |显示全部楼层
此文章由 交易人生 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 交易人生 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 黑山老妖 于 2011-10-25 17:15 发表
这个 DI 听着就很高深。。。
(monkey08)

听着高深,目的就达到了。好多事情还是简简单单地好。
0  to 1
Advertisement
Advertisement

发表于 2011-10-25 17:27 |显示全部楼层
此文章由 starchu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 starchu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
DI和instance variable是完全不同的。。。但是不是什么高深的概念,而是一种设计理念,只是LZ自己没有理解。推荐你看一看Manning出版的Dependency Injection, 详细的分析了DI的各个方面以及怎么实现DI,掌握DI对理解各种高级框架的设计和掌握其用法有着极其重要的左右。

[ 本帖最后由 starchu 于 2011-10-25 17:31 编辑 ]

发表于 2011-10-25 17:29 |显示全部楼层
此文章由 rogerk 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 rogerk 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 黑山老妖 于 2011-10-25 17:15 发表
这个 DI 听着就很高深。。。
(monkey08)



听着不高深,就不好混了。。。

发表于 2011-10-25 17:46 |显示全部楼层
此文章由 无视 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 无视 所有!转贴必须注明作者、出处和本声明,并保持内容完整
agreed with starchu.

DI is much more than that, maintaining objects hierarchy, resolving object, lifecycle...etc

发表于 2011-10-25 18:04 |显示全部楼层
此文章由 andy2001p 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 andy2001p 所有!转贴必须注明作者、出处和本声明,并保持内容完整
silverlight has (attached dependency property).  although its different thing

2012年度奖章获得者 2011年度奖章获得者

发表于 2011-10-25 18:09 |显示全部楼层
此文章由 交易人生 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 交易人生 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 starchu 于 2011-10-25 17:27 发表
DI和instance variable是完全不同的。。。但是不是什么高深的概念,而是一种设计理念,只是LZ自己没有理解。推荐你看一看Manning出版的Dependency Injection, 详细的分析了DI的各个方面以及怎么实现DI,掌握DI对理解各种高级框架的设计和掌握其用法有着极其重要的左右。


我知道di/ioc的,不过看到了一篇文章,有同感,转一部分:

When I first heard about dependency injection, I thought, "Dependendiwhatsit?" and promptly forgot about it. When I finally took the time to figure out what people were talking about, I laughed. "That's all it is?"

"Dependency Injection" is a 25-dollar term for a 5-cent concept. That's not to say that it's a bad term... and it's a good tool. But the top articles on Google focus on bells and whistles at the expense of the basic concept. I figured I should say something, well, simpler.


链接在此:
http://jamesshore.com/Blog/Dependency-Injection-Demystified.html

评分

参与人数 1积分 +6 收起 理由
黑山老妖 + 6 感谢分享

查看全部评分

0  to 1
Advertisement
Advertisement

2012年度奖章获得者 2011年度奖章获得者

发表于 2011-10-25 18:13 |显示全部楼层
此文章由 交易人生 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 交易人生 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 andy2001p 于 2011-10-25 18:04 发表
silverlight has (attached dependency property).  although its different thing

用silverlight或者wpf经常用mvvw ,没少用di
0  to 1
头像被屏蔽

禁止发言

发表于 2011-10-25 20:35 |显示全部楼层

确实,让我这样人容易理解成 deep injection

此文章由 iami 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 iami 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 黑山老妖 于 2011-10-25 05:15 PM 发表
这个 DI 听着就很高深。。。
(monkey08)
签名被屏蔽
头像被屏蔽

禁止访问

发表于 2011-10-25 21:03 |显示全部楼层
此文章由 atransformer 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 atransformer 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 交易人生 于 2011-10-25 18:09 发表


我知道di/ioc的,不过看到了一篇文章,有同感,转一部分:

When I first heard about dependency injection, I thought, "Dependendiwhatsit?" and promptly forgot about it. When I finally took the time to figure  ...


靠,终于明白了

发表于 2011-10-25 21:24 |显示全部楼层
此文章由 无视 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 无视 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 交易人生 于 2011-10-25 18:09 发表


我知道di/ioc的,不过看到了一篇文章,有同感,转一部分:

When I first heard about dependency injection, I thought, "Dependendiwhatsit?" and promptly forgot about it. When I finally took the time to figure  ...


很实在的文章,谢谢分享.

很冒昧的说一句,如果那些ioc framework中的含义和应用有10分,这篇文章的作者仅仅理解了不到2分,暂且不说高级的应用,连入门级都算不上。

那些文章后面留言的人,估计也是刚刚00入门。

如果真想好好研究一下DI,搞.net的建议看看meap的Dependency Injection in .NET,它的作者是这个领域公认的权威,起码在stackoverflow上是大师级的人物,有事没事还经常指点一下Krzysztof Kozmic(castle windsor的primary contributor)。

不过Krzysztof Kozmic水平的确欠指导,直到现在castle windsor的per web request object的lifecycle还有对资源释放有严重的memory leaking的问题,用到这个的同学自己注意了.
头像被屏蔽

禁止访问

发表于 2011-10-25 21:37 |显示全部楼层
此文章由 atransformer 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 atransformer 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Dependency Injection in .NET? 貌似本月的新书,你都看了?

原帖由 无视 于 2011-10-25 21:24 发表


很实在的文章,谢谢分享.

很冒昧的说一句,如果那些ioc framework中的含义和应用有10分,这篇文章的作者仅仅理解了不到2分,暂且不说高级的应用,连入门级都算不上。

那些文章后面留言的人,估计也是刚刚00入门。

如果真想 ...
Advertisement
Advertisement

退役斑竹 2007 年度奖章获得者 2008年度奖章获得者 特殊贡献奖章 参与宝库编辑功臣

发表于 2011-10-25 22:14 |显示全部楼层
此文章由 黑山老妖 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 黑山老妖 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原来这个 DI 就是装B啊。

发表于 2011-10-25 22:34 |显示全部楼层
此文章由 无视 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 无视 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 atransformer 于 2011-10-25 21:37 发表
Dependency Injection in .NET? 貌似本月的新书,你都看了?



meap的书是每章都是有兴趣购买的人和作者一起讨论的,尤其是新章节出来之后,作者会根据大家在论坛的讨论作进一步修改,最后定稿之后再正式发布。

很多人忙,没有这个精力参与作者写书的过程,喜欢从amazon直接买最后定稿的,看起来省事,没有曲折的过程,效率也高,有的人就喜欢参与作者写书的过程,不太一样。

我参与的时候作者写到一大半了。

当然,这只是一本书一个很小的技术而已,会不会,精不精都没什么大不了的,我说的是参与的意识和态度。

评分

参与人数 3积分 +10 收起 理由
交易人生 + 3 很强
IsDonIsGood + 3 这个会不会是乱大的马甲?
atransformer + 4 感谢分享

查看全部评分

发表于 2011-10-25 22:39 |显示全部楼层
此文章由 franknet 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 franknet 所有!转贴必须注明作者、出处和本声明,并保持内容完整
当年我的一个做architect的老板就成天把DI挂在嘴上,面试的时候还拿去问人。。。原来是。。。。

发表于 2011-10-25 22:53 |显示全部楼层
此文章由 无视 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 无视 所有!转贴必须注明作者、出处和本声明,并保持内容完整
看来大家都比较看不起DI,我说说它的优点,平衡一下:

1.如果策略合理,DI framework自动替你维护object hierarchy,自己一点不操心,你可能说这是废话,framework当然就是干这个的。

2.高层class constructor injection可以随意改动signature,不担心编译不通过.

3.跟2相关,高层objects不用new, 从而实现decouple.

4. unit testable,可以用其他的isolation framework,这很DI一样,还是很边缘的东西,可以有很多选择,可能又被人认为是装B.

5.普通开发人员不需要了解底层的东西,可以遵循相对固定的开发模式写东西。

评分

参与人数 1积分 +6 收起 理由
kr2000 + 6 感谢分享

查看全部评分

特殊贡献奖章

发表于 2011-10-25 23:06 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
di这个概念的引入,对新人和管理新人的都有很大的帮助
Advertisement
Advertisement
头像被屏蔽

禁止发言

发表于 2011-10-26 09:01 |显示全部楼层
此文章由 linkspeed 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 linkspeed 所有!转贴必须注明作者、出处和本声明,并保持内容完整
instance variable可以算作DI的简化版,比如
用2个constructor
public ClassA() : this(new ClassB())
public ClassA(InterfaceB obj)

不想用那些DI库的时候就这样做了。

发表于 2011-10-26 09:31 |显示全部楼层
此文章由 flyspirit 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 flyspirit 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 交易人生 于 2011-10-25 17:22 发表

di只能说是instance variable的一个特例,或者说:你把这个variable付值的时候通过setter或者constructor并且只付的base class(比如interface或者abstract) ,而implementation分离就是di。


如果你google di,肯定一大堆文章然后不知所云。


一提DI, 我脑子里面就会想到interface, loose coupling这些概念, 而说instance variable的时候是不会和这些概念联系在一起的。
DI本身并不是一个很高深的概念, 把他当作一个设计模式来用。 如果说因为DI和赋值关系密切就把它等同于instance variable, 那么Gof的设计模式们也没有必要存在了, 无非就是实现类初始化,赋值这些功能而以。

你引用的那个文章里面好像没有用interface。 不用interface不叫DI了。

发表于 2011-10-26 10:02 |显示全部楼层
此文章由 rumcoke 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 rumcoke 所有!转贴必须注明作者、出处和本声明,并保持内容完整
依赖注入和控制反转好长一段时间都是国内java培训的热门词汇 尤其是SSH体系的

发表于 2011-10-26 10:17 |显示全部楼层
此文章由 anotherone 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 anotherone 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 flyspirit 于 2011-10-26 09:31 发表


一提DI, 我脑子里面就会想到interface, loose coupling这些概念, 而说instance variable的时候是不会和这些概念联系在一起的。
DI本身并不是一个很高深的概念, 把他当作一个设计模式来用。 如果说因为DI和赋值关系 ...

我也一样,我脑子里头这两个概念也不是联系在一起的,这两个概念说的语境完全不同啊。

2012年度奖章获得者 2011年度奖章获得者

发表于 2011-10-26 10:53 |显示全部楼层

回复 flyspirit 23# 帖子

此文章由 交易人生 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 交易人生 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我的意思是说网上很多文章把它搞得太复杂,明明很简单的东西,搞得复杂化了。

loose coupling是di 模型应用的目的,但对模型的定义,从读过的文章来看,我给的那个连接最好,因为简单明了 - 其实就那么简单。

还是那个家伙的blog, 说:“There's a lot of ways to make this simple concept very complicated. (There's lots of ways to make any concept complicated! Simplicity is hard.) Sometimes such complexity is necessary... and it's never my first choice.”

把事情说得简单明了,才是真正有水平的人,何况本来就是简简单单的事情。比如找一个从来不懂di的人,找那篇Martin Fowler的关于di/ioc的文章来看,读一遍找不到北,但给他那个blog看,5分钟内解决战斗。
0  to 1
Advertisement
Advertisement

2012年度奖章获得者 2011年度奖章获得者

发表于 2011-10-26 10:54 |显示全部楼层
此文章由 交易人生 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 交易人生 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 linkspeed 于 2011-10-26 09:01 发表
instance variable可以算作DI的简化版,比如
用2个constructor
public ClassA() : this(new ClassB())
public ClassA(InterfaceB obj)

不想用那些DI库的时候就这样做了。

现在我们也不用那些库,哈哈/。
0  to 1

2012年度奖章获得者 2011年度奖章获得者

发表于 2011-10-26 10:55 |显示全部楼层

回复 无视 20# 帖子

此文章由 交易人生 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 交易人生 所有!转贴必须注明作者、出处和本声明,并保持内容完整
没看不起di,不过不想把简单问题复杂说法。

发表于 2011-10-26 11:09 |显示全部楼层
此文章由 flyspirit 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 flyspirit 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 交易人生 于 2011-10-26 10:53 发表
我的意思是说网上很多文章把它搞得太复杂,明明很简单的东西,搞得复杂化了。

loose coupling是di 模型应用的目的,但对模型的定义,从读过的文章来看,我给的那个连接最好,因为简单明了 - 其实就那么简单。

还是那个家伙的bl ...


我觉得那篇文章没有讲到DI的精髓, 从例子里面看不出和面向借口的编程有关, 也看不出IOC的概念, DI本身是IoC里面的一个具体应用。
也看不到loose coupling的影子, 恕我直言, 我感觉作者没有理解什么是DI.

我比较推荐这个链接,来龙去脉讲的比较清楚。
https://github.com/ninject/ninje ... y-Injection-By-Hand,

评分

参与人数 1积分 +2 收起 理由
porcorosso + 2 感谢分享

查看全部评分

发表于 2011-10-26 13:08 |显示全部楼层
此文章由 porcorosso 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 porcorosso 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 flyspirit 于 2011-10-26 11:09 发表


我觉得那篇文章没有讲到DI的精髓, 从例子里面看不出和面向借口的编程有关, 也看不出IOC的概念, DI本身是IoC里面的一个具体应用。
也看不到loose coupling的影子, 恕我直言, 我感觉作者没有理解什么是DI.

我比较推荐 ...


概念不难理解嘛。。。就名称牛了些。。。
呵呵被你们楼上的哄得傻呼傻呼。。。

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部