Ich denke, dies ist größtenteils meinungsbasiert, aber ich werde trotzdem meine 2p einsetzen.
Ich habe es immer so gemacht, indem ich mich gefragt habe, wie viel Wissen mein Code mindestens benötigt , um das zu tun, was er tun soll.
Wenn mein Code nur Code von verwendet Other team's library
, werde ich nur Other team's library
als Abhängigkeit einschließen .
Wenn mein Code auch Code von verwendet Third-party library
, werde ich ihn ebenfalls einschließen.
Angenommen, ich hatte die folgenden Klassen von My Library
, Other Library
und Third-party Library
(ich verwende Java für den Beispielcode)
package mylibrary;
import otherlibrary.Bar;
public class Foo {
public void doFoo() {
Bar bar = new Bar();
bar.doBar();
}
}
In dem Other Library
package otherlibrary;
import thirdparty.Baz;
public class Bar {
public void doBar() {
Baz baz = new Baz();
baz.doSomething();
}
}
In dem Third-party library
package thirdparty;
public class Baz {
public void doBaz() {
System.out.println("baz");
}
}
Da mein Code Foo
nur vom Code abhängt otherlibrary
, ist das alles, was ich einschließen würde, denn das ist alles, was mich interessiert. Es ist mir egal, wie otherlibrary.Bar#doBar
es funktioniert, ich möchte nur, dass es es tut.
Wenn wir jedoch das geändert haben otherlibrary.Bar#doBar
, um ein Baz
zu akzeptieren , um etwas damit zu tun, wie
public void doBar(Baz baz) {
baz.doBaz();
}
Ich müsste dann mylibrary.Foo#doFoo
zu so etwas wechseln
public void doFoo() {
Bar bar = new Bar();
Baz baz = new Baz();
bar.doBar(baz);
}
Weil ich jetzt bin interessiert , wie Bar#doBar
wird seine Sache zu tun, und mein Code muss wissen , über Baz
zu tun , was ich will , es zu tun, muss ich über die Bibliotheken explizit sein I enthalten.
Wenn mein Code muss über solche Sachen in der wissen - thirdparty
Bibliothek, dann ich muss es als eine Abhängigkeit enthalten.
Obwohl der Autor von vielleicht Bar
mehr dieser Details verstecken sollte, muss ich die thirdparty
Bibliothek nicht einschließen ...
thirdyparty
Version 4 beginne undotherlibrary
Version 3 benötige. Was machen Sie Leute dagegen?