@yarel:
Czy to w praktyce nie ogranicza współdzielenia do jakichś prostych przypadków? Niby spoko jechać tym samym autobusem (współdzielony kod), ale do czasu, aż ktoś nie puści bąka (buga). Nie wszyscy oberwą, ale Ci na których trafi nie będą szczęśliwi.
Taka historia: w moim pierwszym januszsofcie miałem ostrą scysje z programistami. Odkryłem, że wszystkie systemy sa zrobione tak, że jest dziesiątki plików JSP (skrypty javy
), każdy zaczyna się od kilku tysięcy prawie tych samych skopiowanych funkcji bazowych (np, połączenie do bazy itp.). W ramach jednego systemu, wielokrotnie copy pastowany kod.
Zaproponowałem, żeby to wydzielić chociaż do jednego includowanego jsp i włączać do wszystkich plików. No i argument mamutów był nie do odparcia - przecież jak się ktoś pomyli w tym bazowym skrypcie to wszystkie strony serwisu nie będą działać... a przy copy-paste tylko kilka. Koniec bajki pierwszej.
W microserwisach jest problem raczej mentalny - ktoś kiedyś stwierdza, że to fajnie by wydzielić jakiś powtarzany kod - np. security, bo więcej serwisów z tego korzysta. OK.
Potem są jakieś zmiany w security, ale że jest jeden moduł, z którego wszyscy korzystają to nie ma problemu, są tam zmiany wrzucane i jest git.
Pewnego pięknego dnia chcesz coś zrobić w innej technologii i nagle się okazuje, że nikt już w zasadzie nie wie jak to zrobić, bo kluczowe elementy związane z security mają totalnie nieaktualną dokumentację. Przecież wszystko jest w jarze. Jar zmusza cię do korzystania z javy, springa i to jeszcze konkretnej wersji... koniec bajki drugiej.