ارائه شده در سومین کنفرانس نرمافزارهای متنباز/آزاد زنجان
امروزه طراحی وب سایت در هر اندازهای بینیاز از JavaScript نیست. برعکس تصور بسیاری از طراحان سایت javascript از حوزه کاری گرافیست ها خارج بده و کاملاً میتواند به برنامه نویسی پروژه مرتبط باشد.
پروژه های کوچکتر با کتابخانههای مثل jQuery نیاز اولیه شان را برطرف میکنند ولی آیا یک پروژه بزرگ نیز به راحتی قابلیت اجرا با همچین ابزار هایی دارد؟ به طور کلی چه کارهایی در سمت javascript میشود انجام داد؟ آیا به کارهایی مثل show و hide خلاصه می شود؟
در کل در javascript code هایی که به صورت اسپاگتی کد نوشته میشوند کد تکراری به شدت مشاهده میشود و معمولاً وابستگی به ابزاری مثل jQuery آنقدر زیاد است که قابلیت حذف یا تعویض به هیچ وجه نیست.
طبعیت نکردن از design pattern هایی مثل interface باعث میشود که refactoring به شدت عذاب آور باشد.
هدف این مقاله، ارایه بهترین روش برای طراحی پروژه های بزرگ javascript است به طوری که کمترین منابع را مصرف کرده و بیشترین خروجی را داشته باشد
در این ارایه به بررسی موارد زیر میپردازیم
-
Testing and Debugging
-
Deploying .
-
بررسی کتابخانههایی برای Rich application
-
BackboneJs
-
معرفی KnockoutJs ، Ember.Js و …
در هر کدام از قسمتها الگوریتم اصلی توضیح داده میشود و در نهایت ابزار های آماده و سادهتر برای پیادهسازی هر کدام ارایه می شود.
در این مقاله از backbone.js به عنوان ابزاری که تلاش کرده است بیشتر این ساختار را رعایت کند استفاده میکنیم و مثالها را بیشتر از این می زنیم.
البته از کتابخانه دیگر هم استفاده میشود و تا جای ممکن آنها هم معرفی میشود
مخاطبین
کسانی که این مقاله را میخوانند می بایستی با javascript آشنا باشند تا با مفاهیم اولیه راحتتر ارتباط برقرار کنند.
توصیه میشود قبل از خواند حتماً کتابخانههایی مثلJQuery را حتماً بررسی کنید و کار عمومیشان را یاد بگیرید
Scalable Application چیست؟
Scalable در لغت به معنی مقیاس پذیر است. یعنی از یک نرمافزار ساده به یک نرمافزارlarge size قابل ارتقا باشد. هر چه نرمافزار طراحی شده با اصول Scalable مطابقت بیشتری داشته باشد طراحی قابل ارتقاتری دارد.
تعریف را کمی گستردهتر کنیم. آیا Developer پروژه فقط یک نفر است؟ آیا فقط یک تیم است؟ فردا روز کسی به تیم اضافه نمی شود؟ تیم عوض نمی شود؟ پروژه های Scalable فقط حرف توسعه نرمافزار از دید درخواست و کد و … را ندارند. بحث اینکه بعد تر ها دیگران هم بتوانند این پروژه را توسعه دهند هم هست.
در تعریف به واژه large size اشاره کردم. به چه نرم افزاری large size می گویند؟
در javascript در اولین نگاه به اندازه نرمافزار نگاه میشود و می گویند نرم افزاری که بیشتر از 100,000loc داشته باشد یا اینکه 1MB بیشتر باشد. آیا این تعریف کافیست؟
نرم افزاری که قسمتهای غیر بدیهی داشته باشد و نیاز به طراحان بیشتر حرفهای جهت نگهداری و توسعه داشته باشد. همچنین قسمت اساسی بررسی، پردازش و نمایش سمت کاربر و Browser باشد.
پانوشت: این پست بیشتر به عنوان فهرست مقاله می باشد و هر مطلب پس از تکمیل بیشتر به عنوان صفحه ای جدید اینجا لینک می شود.