Pozdrav,
evo jednog tricky pitanja, pa ponudite mišljenje …solucije …kako vi vidite rješenje problema.
Problem je sljedeći:
Pero Perić je web developer i razvija komponentu/modul koja će slušati response ajaxa, te će prepoznati da li u server odgovoru postoje poruke koje se trebaju prikazati korisniku. Ako postoje, prikazat će ih.
Pero je komponentu nazvao “serverListener”
(Da ne bude pomutnje sa nebitnim, server response zna da postoji komponenta serverListener na client strani…i oni imaju međusobno usklađeno kako su formatirane poruke unutar response-a)
Pero perić s toga nema puno posla…treba detektirati poruku u ajax responseu i prikazat je korisniku ako ista postoji.
No Pero ima jedan mali problem, s čime prikazati poruku?
On naime ne razvija modul samo za sebe…nego bi on htio da bilo koji developer može koristiti njegov modul na svojoj stranici na što jednostavniji način. (plug and play).
Pero tako postaje poprilično ograničen, jer je jedino siguran da svaka stranica podržava alert() metodu, a svjestan je da je alert “izumro” još davnih dana. Stoga bi on radije koristio neki moderan modal/dialog …ali tu je ograničen, jer ne želi “zagaditi” tuđe stranice sa svojom modal komponentom…koja povlači dependecy od raznih css-a do raznih JS librirya…(Pero naime pretpostavlja da drugi developeri već koriste neki modal)
Nadalje, Pero je svjestan da se njegov modal najvjerovatnije razlikuje u user-experience od modal komponente koju već koristi developer koji će koristiti njegovu serverListener komponentu, te ne vidi smisla da useri gledaju malo u jedan modal …malo u drugi. (A to naravno ne želi niti jedan developer koji drži do svog rada)
Pero vidi kao opciju da radi svoju komponentu unutar nekog gotovog frameworka koji već ima modal …ali i to mu je glupo, jer je onda ograničen da njegovu komponentu koriste samo developeri koji koriste taj framework. A to je daleko od globalnog plug and play.
To bi također značilo da će Pero napraviti svoju komponentu unutar frameworka A, a Ivo će napraviti neku svoju komponentu unutar frameworka B …i na kraju završavamo s time da svaka popularna komponenta mora biti napravljena unutar svakog popularnog frameworka. A to je puuuuuuno bačenog vremena zajednice koje je moglo biti utrošeno produktivnije. A stvari trenutno upravo tako izgledaju… podjela posla gotovo nikakava, svi rade sve.
S druge strane, Ivo radi uber moderan i napredan modal kakav ne postoji još niti u jednom frameworku. Njegov modal ima sučelje koje se otvara na desni klik gdje user može prilagoditi neke funkcije modala prema osobnim željama. Ništa komplicirano, osim jedne sitnice…za prikaz tog sučelja Ivi treba “dropdown” komponenta. Sitnica, ali niti Ivo nema pojma kako će njegov uber napredni modal biti kompatibilan drugim developerima…jer on nema blage ideje koji dropdown da koristi kako bi drugi developeri mogli koristiti njegov modal…bez da se susretnu s istim problemom koji ima i Pero.
Itd…itd. danas svaka komponenta zavisi od mnogo drugih komponenta.
Gornji primjeri su slikoviti pokušaj dočarati kako nas ta zavisnost ograničava da se fokusiramo na izradu točno specifične komponente…koja će rješavati točno specifičan problem…a da komponenta bude globalno jednostavno primjenjiva po principu “plug and play”.
Kakvo je vaše mišljenje na temu? Njušite soluciju problema ili niti ne vidite problem?