由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 多少公司用 java guice 这烂玩意?
相关主题
angular 2简直就是java嘛Synthesized Constructor到底什么意思?
question about mock[合集] 又学了一招
怎么把const T& 作为一个class的member请教个Bloomberg 的 C++ 题目
做网站的语言,技术推荐 (转载)Is the order of initialization a, b, c or c, b, a?
糊涂了,请问一个对象访问的基本问题一个c++ constructor的问题, thanks
有JAVA底子学习web service那些库或者framework有没有什么好方法question about Design Patterns
看C代码很崩溃c++ question
请教几个C++问题what is the difference?
相关话题的讨论汇总
话题: db话题: guice话题: public话题: sample话题: java
进入Programming版参与讨论
1 (共1页)
t*****d
发帖数: 525
1
如题
p*****2
发帖数: 21240
2
我们再用,是很烂
x***4
发帖数: 1815
3
讲讲怎么烂?只用过spring DI。guice听过没用过。

【在 p*****2 的大作中提到】
: 我们再用,是很烂
d****i
发帖数: 4809
4
谷歌自己搞的东西你指望不是烂货?go, guice, dart, 一个比一个烂。。。

【在 t*****d 的大作中提到】
: 如题
s***o
发帖数: 2191
5
现在google不是在推dagger 2吗,guice被抛弃了吧
c*********e
发帖数: 16335
6
en,google是计算机博士开的公司,思路比较偏理论一点,实践方面的自己的想法不是
很多,比如最近和ms合作搞的angularjs 2.

【在 d****i 的大作中提到】
: 谷歌自己搞的东西你指望不是烂货?go, guice, dart, 一个比一个烂。。。
t*****d
发帖数: 525
7
所有的行为变成 runtime based, 你完全不能从 code 容易知道。加上 annotation,
完全是一团乱麻。

【在 x***4 的大作中提到】
: 讲讲怎么烂?只用过spring DI。guice听过没用过。
p*****2
发帖数: 21240
8

我感觉DI破坏了封装性,把很多细节expose出来了

【在 x***4 的大作中提到】
: 讲讲怎么烂?只用过spring DI。guice听过没用过。
j*******l
发帖数: 1066
9
spring不是一码事吗 你要是code generation based的di 那叫dagger

,

【在 t*****d 的大作中提到】
: 所有的行为变成 runtime based, 你完全不能从 code 容易知道。加上 annotation,
: 完全是一团乱麻。

j*******l
发帖数: 1066
10
这个是缺点 但让test变容易
更何况di的constructor不用是public的 一定程度上保护了封装

【在 p*****2 的大作中提到】
:
: 我感觉DI破坏了封装性,把很多细节expose出来了

相关主题
有JAVA底子学习web service那些库或者framework有没有什么好方法Synthesized Constructor到底什么意思?
看C代码很崩溃[合集] 又学了一招
请教几个C++问题请教个Bloomberg 的 C++ 题目
进入Programming版参与讨论
j*******l
发帖数: 1066
11
烂不烂你要看和谁比 guice出来的时候所有人还在写spring xml呢

【在 d****i 的大作中提到】
: 谷歌自己搞的东西你指望不是烂货?go, guice, dart, 一个比一个烂。。。
p*****2
发帖数: 21240
12

我觉得测试有mockito就够了。
我感觉为了自己测试容易,使得caller的负担加大,有点本末倒置。

【在 j*******l 的大作中提到】
: 这个是缺点 但让test变容易
: 更何况di的constructor不用是public的 一定程度上保护了封装

t*****d
发帖数: 525
13
你也可以手动向constructor supply 参数。测试也会很容易。

【在 j*******l 的大作中提到】
: 这个是缺点 但让test变容易
: 更何况di的constructor不用是public的 一定程度上保护了封装

q*c
发帖数: 9453
14
guice 这烂货被 abuse 以后程序实在没法看。

【在 t*****d 的大作中提到】
: 你也可以手动向constructor supply 参数。测试也会很容易。
j*******l
发帖数: 1066
15
public class Sample{
public void doSomething(){
db.connect();
}
private final DB db = new DB();
}
就说这个class应该怎么unit test 或者不用constructor injection 这个class如何写
才能方便测试

【在 p*****2 的大作中提到】
:
: 我觉得测试有mockito就够了。
: 我感觉为了自己测试容易,使得caller的负担加大,有点本末倒置。

p*****2
发帖数: 21240
16

好问题,我宁愿remove final

【在 j*******l 的大作中提到】
: public class Sample{
: public void doSomething(){
: db.connect();
: }
: private final DB db = new DB();
: }
: 就说这个class应该怎么unit test 或者不用constructor injection 这个class如何写
: 才能方便测试

t*****d
发帖数: 525
17
public class Sample {
public Sample(DB db) {
this. db = db:
}
public void doSomething(){
db.connect();
}
private final DB db;
}
或者
public class Sample {
void setDB(DB db) {
this. db = db:
}
public void doSomething(){
db.connect();
}
private DB db;
}

【在 j*******l 的大作中提到】
: public class Sample{
: public void doSomething(){
: db.connect();
: }
: private final DB db = new DB();
: }
: 就说这个class应该怎么unit test 或者不用constructor injection 这个class如何写
: 才能方便测试

d******e
发帖数: 2265
18
比spring 强。
最糟糕的是java 8 + 一堆 interface + 一个impl + spring

【在 t*****d 的大作中提到】
: 如题
d******e
发帖数: 2265
19
java设计的问题。这个只有换门比如scala, swift等等才能解决。

,

【在 t*****d 的大作中提到】
: 所有的行为变成 runtime based, 你完全不能从 code 容易知道。加上 annotation,
: 完全是一团乱麻。

j*******l
发帖数: 1066
20
这和Java有什么关系 dagger这些code generation based不也是Java吗

【在 d******e 的大作中提到】
: java设计的问题。这个只有换门比如scala, swift等等才能解决。
:
: ,

相关主题
Is the order of initialization a, b, c or c, b, a?c++ question
一个c++ constructor的问题, thankswhat is the difference?
question about Design Patterns问个构造函数的问题
进入Programming版参与讨论
j*******l
发帖数: 1066
21
所以为了test也要用dependency injection
Guice/spring这不过把dependency injection变容易 少了繁琐的factory代码而已

【在 t*****d 的大作中提到】
: public class Sample {
: public Sample(DB db) {
: this. db = db:
: }
: public void doSomething(){
: db.connect();
: }
: private final DB db;
: }
: 或者

j*******l
发帖数: 1066
22
你举个例子 怎么remove final 然后用mockito测试? setter injection?

【在 p*****2 的大作中提到】
:
: 好问题,我宁愿remove final

d******e
发帖数: 2265
23
所谓testable,DI, 的实质就是消除内部状态,everything is injectable.就是一条
条线传下来。
其实这就是FP。
OOP语言的缺陷导致必须用DI来 patch.

【在 j*******l 的大作中提到】
: 这和Java有什么关系 dagger这些code generation based不也是Java吗
p*****2
发帖数: 21240
24

setter injection也好不了。我说的是field injection

【在 j*******l 的大作中提到】
: 你举个例子 怎么remove final 然后用mockito测试? setter injection?
p*****2
发帖数: 21240
25

我觉得内部状态还好,更重要的是要消除副作用。Java这个语言确实设计有很多问题,
后边用pattern来补,最后搞的乱糟糟的。

【在 d******e 的大作中提到】
: 所谓testable,DI, 的实质就是消除内部状态,everything is injectable.就是一条
: 条线传下来。
: 其实这就是FP。
: OOP语言的缺陷导致必须用DI来 patch.

1 (共1页)
进入Programming版参与讨论
相关主题
what is the difference?糊涂了,请问一个对象访问的基本问题
问个构造函数的问题有JAVA底子学习web service那些库或者framework有没有什么好方法
菜鸟请教smart pointer看C代码很崩溃
spring di的project请教几个C++问题
angular 2简直就是java嘛Synthesized Constructor到底什么意思?
question about mock[合集] 又学了一招
怎么把const T& 作为一个class的member请教个Bloomberg 的 C++ 题目
做网站的语言,技术推荐 (转载)Is the order of initialization a, b, c or c, b, a?
相关话题的讨论汇总
话题: db话题: guice话题: public话题: sample话题: java