Efekt wewnętrznej platformy
Efekt wewnętrznej platformy to tendencja architektów oprogramowania do tworzenia systemu tak dostosowywalnego, że staje się repliką, a często kiepską repliką używanej przez nich platformy programistycznej. Jest to generalnie nieefektywne i takie systemy są często uważane za przykłady antywzorca .
Przykłady
Przykłady są widoczne w oprogramowaniu opartym na wtyczkach , takim jak niektóre edytory tekstu i przeglądarki internetowe , w których programiści często tworzą wtyczki odtwarzające oprogramowanie, które normalnie działałoby na samym systemie operacyjnym. Mechanizm dodatków Firefoksa został wykorzystany do opracowania wielu klientów FTP i przeglądarek plików , które skutecznie replikują niektóre funkcje systemu operacyjnego , choć na bardziej ograniczonej platformie.
W świecie baz danych programiści czasami mają ochotę ominąć RDBMS , na przykład przechowując wszystko w jednej dużej tabeli z trzema kolumnami oznaczonymi identyfikatorem podmiotu, kluczem i wartością. Chociaż ten model encji-atrybutów-wartości pozwala programiście wyrwać się ze struktury narzuconej przez bazę danych SQL , traci wszystkie korzyści, ponieważ cała praca, którą mógłby wydajnie wykonać system RDBMS, jest wymuszana na aplikacji . Zapytania stają się znacznie bardziej zawiłe, indeksy i optymalizator zapytań nie może już działać efektywnie, a ograniczenia poprawności danych nie są wymuszane. Wydajność i łatwość konserwacji mogą być bardzo słabe.
Podobna pokusa istnieje w przypadku XML , gdzie programiści czasami preferują ogólne nazwy elementów i używają atrybutów do przechowywania znaczących informacji. Na przykład każdy element może mieć nazwę item i mieć atrybuty type i value . Ta praktyka wymaga łączenia wielu atrybutów w celu wyodrębnienia znaczenia. W rezultacie XPath są bardziej zawiłe, ocena jest mniej wydajna, a walidacja strukturalna zapewnia niewielkie korzyści.
Innym przykładem jest zjawisko pulpitów internetowych , gdzie całe środowisko graficzne — często obejmujące przeglądarkę internetową — działa w przeglądarce (która zwykle działa w środowisku graficznym zapewnianym przez system operacyjny ). Pulpit na pulpicie może być niezwykle niewygodny dla użytkownika, dlatego generalnie robi się to tylko w celu uruchamiania programów, których nie można łatwo wdrożyć w systemach użytkownika końcowego, lub przez ukrycie zewnętrznego pulpitu.
Efekt
To normalne, że twórcy oprogramowania tworzą bibliotekę niestandardowych funkcji, które odnoszą się do ich konkretnego projektu. Efekt wewnętrznej platformy występuje, gdy ta biblioteka rozszerza się o funkcje ogólnego przeznaczenia, które powielają funkcjonalność już dostępną jako część języka programowania lub platformy. Ponieważ każda z tych nowych funkcji będzie na ogół wywoływać pewną liczbę oryginalnych funkcji, są one zwykle wolniejsze, a jeśli są źle zakodowane, również mniej niezawodne. [ potrzebne źródło ]
Z drugiej strony, takie funkcje są często tworzone w celu przedstawienia prostszej (i często bardziej przenośnej) warstwy abstrakcji na usługach niższego poziomu, które albo mają niewygodny interfejs, są zbyt złożone, nieprzenośne lub niewystarczająco przenośne, albo po prostu słabe dopasowanie do kodu aplikacji wyższego poziomu.
Odpowiednie zastosowania
Platforma wewnętrzna może być przydatna ze względu na przenośność i separację uprawnień — innymi słowy, aby ta sama aplikacja mogła działać na wielu różnych platformach zewnętrznych bez wpływu na cokolwiek poza piaskownicą zarządzaną przez platformę wewnętrzną . Na przykład Sun Microsystems zaprojektował platformę Java , aby spełnić oba te cele.
Zobacz też
- Zasada od końca do końca
- Dziesiąta reguła Greenspuna
- Nie wynaleziony tutaj
- Zwykły stary obiekt Java
- Efekt drugiego systemu
- Prawo otaczania oprogramowania Zawińskiego
Linki zewnętrzne
- Oryginalna definicja i przykład
- Przykład: silnik reguł korporacyjnych
- Przykład: myślę, że nazwę je „transakcjami”
- AntiPatterns: oprogramowanie do refaktoryzacji, architektury i projekty w kryzysie autorstwa Williama J. Browna i in.