Bu çoğunlukla fikir tabanlı olduğunu düşünüyorum, ama yine de benim 2p koyacağım.
Her zaman yaptığım gibi, kendime, kodumun yapması gereken şeyi yapmak için sahip olması gereken minimum bilgi miktarı nedir?
Kodum yalnızca gelen kodu kullanıyorsa Other team's library
, yalnızca Other team's library
bağımlılık olarak dahil edeceğim .
Kodum da kodu kullanıyorsa Third-party library
, ben de dahil edeceğim.
Diyelim ben şu sınıfları vardı ki My Library
, Other Library
ve Third-party Library
(ı örnek kodu için Java kullanacağız)
package mylibrary;
import otherlibrary.Bar;
public class Foo {
public void doFoo() {
Bar bar = new Bar();
bar.doBar();
}
}
İçinde Other Library
package otherlibrary;
import thirdparty.Baz;
public class Bar {
public void doBar() {
Baz baz = new Baz();
baz.doSomething();
}
}
İçinde Third-party library
package thirdparty;
public class Baz {
public void doBaz() {
System.out.println("baz");
}
}
Çünkü benim kod Foo
sadece gelen kod bağlıdır, otherlibrary
ben dahil tüm budur, çünkü tüm umurumda bu. Ne yaparsa yapsın umrumda değil otherlibrary.Bar#doBar
, sadece yapmasını istiyorum.
Ancak, biz değişti otherlibrary.Bar#doBar
bir kabul etmek Baz
gibi bir ilgisi
public void doBar(Baz baz) {
baz.doBaz();
}
Sonra mylibrary.Foo#doFoo
böyle bir şeye geçmem gerekecek
public void doFoo() {
Bar bar = new Bar();
Baz baz = new Baz();
bar.doBar(baz);
}
Şimdi nasıl ilgilenen ediyorum Çünkü Bar#doBar
onun şey için gidiyor ve benim kod ihtiyacı hakkında bilmek Baz
bunu yapmak istediğini yapmak, ben dahil kütüphaneler konusunda açık olmak gerekir.
Benim kod Eğer gerekir içindeki şeyleri gösterebilir thirdparty
kütüphane, o zaman gerekir bir bağımlılık olarak dahil edin.
Belki de yazarı Bar
bu detaylardan daha fazlasını gizlemesine rağmen , thirdparty
kütüphaneyi dahil etmeme gerek yok ...
thirdyparty
sürüm 4 ile başlar ve sürüm 3otherlibrary
gerekiyorsa, millet bu konuda ne yapıyorsun?