JavaScript için nesne yönelimli programlama yaklaşımları

Bu çalışmada web tabanlı uygulamalarda MVC (Model-View-Controller) mimarisinin ve nesne yönelimli programlama yaklaşımlarının kullanılmasının yazılım geliştirme süreçlerine olan pozitif etkisi ele alınmıştır. MVC mimarisi, uygulama katman ve nesnelerini birbirinden ayırarak yazılım mimarisinin sadeleştirilmesini sağlamaktadır. JavaScript web tarayıcıların doğal dili olduğundan doğrudan tarayıcılar tarafından yorumlanabilmektedir. Bundan dolayı JavaScript web tabanlı uygulamalar için en popüler ve en etkili betik dilidir. Nesne yönelimli programlama, programlama nesnelerinin gerçek dünya nesnelerine benzetilerek problemlerin çözülmesini sağlar. JavaScript, kendi yapısı itibariyle nesne yönelimli yaklaşımları ve MVC mimarisini desteklememektedir. Sencha Ext JS, nesne yönelimli programlama yaklaşımlarından ve MVC mimarisinden faydalanarak zengin web uygulamaları geliştirmeyi sağlayan bir kütüphanedir. Performans, web tabanlı uygulamalar için her zaman kritiktir. Bu sebeple web sayfalarında tanımlı olan kaynak boyutu, performans artışı sağlamak için mümkün olduğunca küçültülmelidir. Bu küçültme hem kaynak sayısının azaltılması hem de kaynakların sıkıştırılması ile yapılabilmektedir. Kalıtım, JavaScript'in doğrudan desteklemediği nesne yönelimli programlamanın önemli özelliklerinden birisidir. Gerçek dünya nesnelerinin hepsi birbirinden türediğinden kalıtım kullanılmadan gerçek dünya nesnelerini web tabanlı uygulamalarda kullanmak mümkün değildir. Dinamik kaynak yükleme, web tabanlı uygulamalar için oldukça yeni bir yaklaşım olup, kaynakların gerektikçe yüklenmesini sağlamaktadır. Çalışma boyunca elde edilen tecrübeler ve sonuçlar, nesne yönelimli yaklaşım ve MVC mimarisinin yazılım geliştirme süreçlerini kolaylaştırdığını, hem geliştirme hem de üretim aşamalarında klasik web uygulama geliştirme yaklaşımlarına göre büyük performans kazancı elde edildiğini göstermektedir. Ayrıca bu yaklaşımların kullanılmaması durumunda, özellikle büyük çaplı yazılım projelerinin bakımının ve revizyonunun çoğu zaman mümkün olmadığı gözlemlenmiştir. JavaScript yapı olarak nesne yönelimli programlama yaklaşımlarına uygun olduğundan bu yaklaşımların JavaScript'e uyarlanmasının web tabanlı uygulamalara performans ve yetenek kazandıracağı düşünülmektedir.

Object-oriented programming approaches for JavaScript

n this study, web application development with MVC (Model-View-Controller) architecture and object-oriented programming approaches is discussed in order to show how much these approaches simplify web application development. MVC simplifies application architecture by separating application domain layers and objects. Because of JavaScript is the native language of web browsers that can be directly interpreted by them, it is currently most popular and effective scripting language for web applications. Object-oriented programming (OOP) is the paradigm of using objects a representation of real-world objects to solve problems. JavaScript doesn't have a built-in (native) support for both OOP and MVC approaches. Sencha Ext JS is a complete RIA (Rich Internet Application) development library makes available to use most of OOP principles with MVC architecture for JavaScript. Performance is always critical for web applications, so its required resource size must be minimized in order to boost its performance. This minimization can be done through eliminating unnecessary sources and source compression. Inheritance is also another key object-oriented programming feature that JavaScript doesn't support. Because of everything in real-life extends from something, it is impossible to define real-life objects for web applications without inheritance. Dynamic source loading is brand-new approach which offers to load only required sources for web applications. Results and experiments show that OOP and MVC approaches simplified development stages and offered big performance gains for both development and production stages than classic web application development paradigms. Also without these approaches, most of time it becomes impossible to maintenance and revise software projects especially big scaled ones. JavaScript has suitable structure for object-oriented programming approaches, so its approaches can be imitated for JavaScript to improve performances of web applications and extend their capabilities.

___

  • Boerman, R.: Using Model Associations in Sencha Touch and Ext JS , http://appointsolutions.com/2012/07/using-model- associations-in-sencha-touch-2-and-ext-js-4/, July 2012.
  • Crockford, D., JavaScript: The Good Parts, s. 2, O‟Reilly Media/Yahoo Press, 1005 Gravenstein Highway North, Sebastopol, CA 95472, 2008.
  • Flatt, M., Krishnamurthi, S., Felleisen, M., A programmer‟s reduction semantics for classes and mixins, In: Alves-Foss, J. (ed.) Formal syntax and semantics of Java, s. 13, Springer, 1999.
  • Garcia, J., Andresen, J.K., Grisogono, G., ExtJS in Action, 2nd ed., s. 19, Manning Publication Co., 180 Broad St. Suite 1323 Stamford, CT 06901, USA, 2013.
  • Groner, L., Ext JS 4 First Look, s. 272, Packt Publishing, Livery Place 35 Livery Street Birmingham B3 2PB, UK, Groner, L.: ExtJS 4 MVC Architecture Mind Map, http://www.slideshare.net/loianeg/extjs-4-mvc-architecture- mind-map-13669488, July 2012.
  • Hasan, S.S., Isaac, R.K., An integrated approach of MAS- CommonKADS, application optimization strategies for web-based expert system development, Expert Syst. Appl., 38, 417–428, and web MacCaw, A., JavaScript Web Applications, s.3, O‟Reilly Media, 1005 Gravenstein Highway North, Sebastopol, CA , 2011.
  • Neumann, G., Zdun, U., Strembeck, M., Object-based and class-based composition of transitive mixins, Inf. Softw. Technol., 49, 871–891, 2007.
  • Spencer, E.: Countdown to Ext JS 4: Dynamic Loading and http://www.sencha.com/blog/countdown-to-ext-js-4- dynamic-loading-and-new-class-system, Jan. 2011.
  • Uyun, S., Rifqi, M., Implementation Of Model View Controller ( MVC ) Architecture On Building Web-based Information System, Islam Zeitschrift Für Geschichte Und Kultur Des Islamischen Orients, 47–50, 2010.
  • Varma, V., Software Architecture: A Case Based Approach, s. 94, Pearson Education India, New Delhi, India, 2009.
  • Zakas, N.C., Professional JavaScript for Web Developers, s. 202, Wrox, Indianapolis, Indiana, 2012.