This topic has been archived. It cannot be replied.
-
工作学习 / 学科技术讨论 / 我真的有点受不了 overuse/misuse dependency injection 了,无论什么玩意都要弄个 interface 然后放到 constructor 里,似乎因为有 DI,那就可以无所谓的在 constructor 那里有10几个参数。有一大堆 interface 但是到处 violate solid,有什么意义
-sowen(昂居居);
2013-10-15
(#8420167@0)
-
越复杂, 你JOB SECURITY越大。
-pufeng(pufeng);
2013-10-15
(#8420181@0)
-
复杂系统不弄这个不好测试
-lidakang(李大康);
2013-10-15
(#8420542@0)
-
我只能说这里的人真的没有见过(或者说这里的人也是)一个 team 刚刚学会 DI,非常兴奋,无论什么都一定要用……到处都是 DI 不等于成熟的 TDD,IOC 本身又不是万能的。不过算了,我又懂得什么,我也只能在中文网站撒撒娇而已
-sowen(昂居居);
2013-10-15
(#8420705@0)
-
目测撒娇帖。你要是得 review/fix 那种 everything knows everything about everything 的 code, 你就知道矫枉必需过正 lol...
-xmlhttprequest(build5381);
2013-10-15
(#8420586@0)
-
我能说你没有见过真正 overuse/misuse DI 系统吗?任何东西都需要合理的运用,we can that doesn't mean we should,合理运用并不等于 tightly coupled
-sowen(昂居居);
2013-10-15
(#8420703@0)
-
lol... 看来是被那什么一般的队友气着了... overuse 一般还能忍,misuse (比如有人为了用一个 pattern 而用一个 pattern 其实里面文不对题挂羊头卖狗肉 lol)确实让人恼火...
-xmlhttprequest(build5381);
2013-10-15
(#8420853@0)
-
好处是程序变身快,比如将来数据库从SQL server换到Orancle。当然绝大部分程序用到死亡也没机会变换环境。坏处是增加工作量。还有一个好处是队伍人多好分工,人少是没必要用,这活在领导眼里看不到。
-tjhong(以后再说);
2013-10-17
(#8423480@0)
-
haha, are you sure? 人人都是这么说,只要你这样写,今后如果你要换 DB,只要 refresh mapping 很容易就可以。honestly, 这么多年来,我反正没有见过一个项目突然从一个 DB 换到另外一个 DB. I am not against orm, but who will really change DB, especially legacy app?
-sowen(昂居居);
2013-10-18
(#8424726@0)
-
我的观点是和你一样的,我也不喜欢用。Visual Studio有很多自动生成代码的功能,再手动去修改,很无聊。如果开发商业程序,让买家决定环境,就要用它了。
-tjhong(以后再说);
2013-10-18
(#8424927@0)
-
DI 其实是很有用的,特别是 module app,因为 interface,可以把一个 service inject 到不同的 project 里面,非常方便。但至少应该知道在做什么和为什么。现在 contract 这间公司的人我个人感觉是他们认为只要用了就会是一个 good developer,所以什么都要用,晕倒
-sowen(昂居居);
2013-10-18
(#8424974@0)
-
要做的快就不用,要灵活就用。dependency injection 应该都是Singleton方式,性能上会好点。
-tjhong(以后再说);
2013-10-18
(#8425561@0)
-
如果真是这样, 那DI 就太傻了。
-outlink(outlink);
2013-10-19
(#8426633@0)
-
VS.NET 最好的就是有 T4 的支持,其实换 DB 也很容易,我做过不同 T4 专门针对不同的 DB,包括 sql server, oracle, db2 都有,想换的话直接 regenerate 就好了。问题是没有一个项目会这么做。那些不同的 T4 只是用在不同的项目里
-sowen(昂居居);
2013-10-18
(#8424985@0)
-
刚开始都这样。 不能很好把握哪些应该DI, 哪些不要。 所以后果就是统统DI
-outlink(outlink);
2013-10-19
(#8426635@0)