Prikaz jedne poruke
Stara 30.3.2009, 17:46   #17
holodoc
Deo inventara foruma
 
Član od: 5.12.2005.
Poruke: 6.785
Zahvalnice: 348
Zahvaljeno 1.892 puta na 1.077 poruka
Određen forumom Re: Online browser game.Team

Pazi...jQuery jeste moćan ali ćeš ponekada zaista želeti da određena ograničenja koja on ima eliminišeš pisanjem sopstvenih biblioteka koje imaju za cilj da sadrže samo kod koji je zaista potreban biblioteci. Drugim rečima možeš da se pozabaviš i njegovim proširivanjem, jer je za to jako pogodan, ali po meni to samo još više produbljuje problem i dodaje sloj nepotrebnog bloat-a konačnom kodu u određenim situacijama.

Mislim ako ti je potrebno da ti biblioteka sadrži samo funkcije za referenciranje objekta ili želiš isključivo da radiš tri ili četiri operacija nad njima kao što su recimo da ih $ (referenciranje), move(), denyAccess(), selfdestruct() nema potrebe da učitavaš celu jQuery biblioteku od 19 000 karaktera umesto autorskog koda koji staje u pedesetak redova. Evo dole primera neke najbezveznije verzije objekta koji podržava sve što sam gore naveo od metoda.
Kod:
Unit = {
	positionX : 1,
	
	positionY : 1,
	
	denied : false,
	
	$ : function(element){
		return document.getElementById(element);
	},
	
	move : function(direction){
		switch (){
			case 'left' :
				positionX--;
				break;
			case 'right' :
				positionX++;
				break;
			case 'up' :
				positionY++;
				break;
			case 'down' :
				positionY--;
				break;
			default :
				return false;
		}
	},
	denyAccess : function(){
		this.denied = true;
	},
	
	selfdestruct : function(){
		delete this;
	}
}
I to je to Ovaj kod podržava par osnovnih metoda koje su ti potrebne i pri tome ne sadrži ništa od funkcija koje ti eventualnio ne bi trebale kao što su AJAX itd. To ipak ne znači da JS biblioteke nisu itekako zgodne. Ja inače više preferiram Prototype biblioteku valjda zato što sam na nju navikao mada i jQuery nije daleko.

Kao što gore možeš da vidiš OOP je stvarno "a must" za bilo kakav ozbiljniji projekat tipa browser igre ili sl. Jednostavno ono što sam gore napomenuo u vezi design patterna je do te mere istinito da iskreno prvi put kada budeš shvatio kako rade neki od osnovnih patterna udarićeš samog sebe u glavu i reći ćeš "kako sam bio slep pred očima"...Ja jesam

Elem samo jedan mali hint... U terminologiji design patterna postoje dva izuzetno korisna patterna koja bi tebi ovde legla kao salivena... Prvi je Factory pattern ili u još boljem slučaju Abstract Factory dok je drugi Prototype. Da ne zalazim u detalje gde su oni primenjljivi shvatićeš sve to kada budeš došao do određene tačke u svom razvoju (čak i klasičnim OOP-om) i onda ukapiraš da si napravio previše nefleksibilnu koncepciju i da ti je sve teže da držiš pod kontrolom sve veći broj objekata i njihovih metoda pod kontrolom. Factory pattern ti je dobar da radi upravo ono po čemu je dobio ime tj. da proizvodi tvoje jedinice (vojnike, brodove itd.) dok ti Abstract Factory omogućava da praviš cele grupacije svih tih objekata a da se kasnije ne lupiš po glavi da si nešto prevideo i da će ti to zadavati glavobolje u kasnijem radu. Prototype je dobar za kloniranje i ponekad stvarno može da bude pravi life saver

Mogao bih sada da nastavim sa ovom svojom pričom i da navedem čak i neke primere kako korišćenje pattrena umnogome olakšava rad na projektima ali ću se ovde zaustaviti sve do trenutka kada se osnove OOP-a ne savladaju kao što su abstraktne klase, interfejsi, nasleđivanja i pomorfizmi jer je to osnova za dalju priču.
holodoc je offline