Sens aplikacji "modularnych"

0

Witam wszystkich.
Coraz czesciej widze aplikacje zbudowane z wielu pluginow.
I tak zastanawiam sie jaki moze byc sens pisania programow w ten o to sposob.
na pewno mozna latwo rozbudowywac mozliwosci programu ale czy tylko to ??

0

Takie aplikacje mają sens. Pluginy (o których wspominasz) to rozszerzenia do aplikacji, tworzone niekoniecznie przez autora samego programu.

Dla przykładu Firefox - przeglądarka z "podstawową" funkcjonalnością. Czegoś Ci w niej brakuje? Pobierasz odpowiedni plugin i już twoja przeglądarka została rozszerzona o następny bajer ;) A dlaczego nie wbudować tej funkcji od razu w program bez pluginów? Np. dlatego że program rozrósł by się o duuuużo niepotrzebnych dodatków, z większości których i tak byś nie korzystał.

0

Generalnie to tak ale mnie zawsze insteresowalo dlaczego IrfanView ktory tez obsluguje pluginy jest tak dziwnie zorganizowany. Bo jest instalka z calym programem i obsluga podstawowych formatow + osobna instalka z cala masa innych pluginow instalowanych. Kiedys tam zawsze instalowalem calosc ze wszystkimi [CIACH!] ale ktos instalowal moze tak ze wybral sobie obsluge jednego formatu nie wybierajac innego? IMHO bez sensu troche, tak jak by ktos chcial bardzo bardzo miec obsluge pluginow a tak naprawde nie korzystajac z tego ;)

Sam sens istnienia pluginow widze tylko w wiekszych projektach jak np ff ale w mniejszych zbyteczny bajer :>

0

Jeżeli ograniczać tylko do pluginów, to może nie zawsze ma to sens. Jednak jeżeli mówimy o rozdzielaniu programu na niezależne części, programy, biblioteki, które wykonują tylko swoją robotę i nic nad to to ma to sens jak najbardziej. Dzięki temu masz dosyć dużą niezależność w rozwijaniu i testowaniu modułów. To tak od strony programistycznej.

A w IrfanView zdecydowanie konieczne były pluginy. Pierwsze wersje tej przeglądarki obsługiwały zapewne niewiele formatów. W trakcie rozwoju programu wystarczyło jedynie podopisywać pluginy i nie trzeba było grzebać się w kodzie samej aplikacji. Działa dobrze, to nie ruszać.

Bardzo prawdopodobnym jest także, że inni programiści dorabiali pluginy i następnie do normalnej dystrybucji się w kolejnych wersjach dołączało.

I jeszcze jeden argument za stosowaniem pluginów. Nigdy nie wiesz, czy z twojej małej aplikacji nie wyrośnie coś większego. Więc projektuj zawsze tak, by była maksymalnie elastyczna. Pluginy to umożliwiają.

Oczywiście nie można robić tego na siłę. Czasem nie ma sensu robić pluginów, bo zbyt mocno komplikują kod w porównaniu do ew. korzyści.

0
Dryobates napisał(a)

A w IrfanView zdecydowanie konieczne były pluginy. Pierwsze wersje tej przeglądarki obsługiwały zapewne niewiele formatów. W trakcie rozwoju programu wystarczyło jedynie podopisywać pluginy i nie trzeba było grzebać się w kodzie samej aplikacji. Działa dobrze, to nie ruszać.

Mały OT: pluginy w IV to koszmar!
Nie mozna napisać samemu własnego działającego plugina!
Obsługa Każdego pluginu musi być wpisana w kodzie samego IV!
Wiem coś o tym, bo spędziłem raz 7 godzin z hexedytorem i IDA zeby dzczął działać mój plugin do VTF.

0

Co do OT Qyona: Nie znam polityki autorów IV, ale może tam system pluginów jest przeznaczony tylko i wyłącznie dla wygody autorów i możliwości wybierania tylko części funkcjonalności, a nie do możliwości tworzenia własnych wtyczek? Dzięki temu dają pewność, że program będzie funkcjonował tylko z "zatwierdzonymi" wtyczkami, więc system wtyczek nie będzie narażał programu na problemy z działaniem. Oczywiście zakładając, że ktoś nie grzebał w samej głównej aplikacji. Z drugiej strony uważam, że dużo wygodniejsze byłoby ostrzeganie użytkownika, że wtyczka nie została zatwierdzona przez autorów i jest potencjalnie niebezpieczna, ale umożliwienie uruchomienia takiej wtyczki mimo tego.

Co do głównego tematu: Modularyzacja programu jest bardzo wygodna, nawet w prostszych projektach. Spójrz chociażby na to, jak funkcjonuje Konnekt czy Miranda - sam główny program nawet nie ma podstawowej funkcjonalności - nie potrafi właściwie nic. Ale dodatkowe rozszerzenia pozwalają nabrać programowi funkcjonalności - wszystko ograniczone do tego, czego zażyczył sobie autor. Jedne skórki odpowiadają za wygląd, inne za obsługiwane sieci (akurat Konnekt i Miranda to multikomunikatory), jeszcze inne za dodatkowe bajery jak wbudowane boty-autorespondery czy jeszcze inne kombinacje. Podobną politykę przyjął projekt Firefly chociażby, wszystko ma swój sens. Dodatkową zaletą jest łatwość w aktualizacji programu - zmiana jednej opcji nie pociąga za sobą konieczności wypuszczenia całej aplikacji, wystarczy wydać nowąwersjęposzczególnej wtyczki, w której funkcjonalności została dokonana zmiana.

1 użytkowników online, w tym zalogowanych: 0, gości: 1