شما ممکن است برای ساخت وب سایت از زبانها و Framework های مختلفی استفاده کنید، پر استفاده ترین آنها که شما هم زیاد شنیده اید ASP و PHP است، اما از سال 2004 یک Framework جدید وارد عرصه اینترنت شد و باعث شگفتی بسیاری از برنامه نویسان شد . تو این پست میخوام در مورد یه Framework صحبت کنم، شاید اسمشو شنیده باشید، Ruby on Rails. قبل از توضیح دادن در مورد این زبان بهتره در مورد زبان Ruby و یکسری اصطلاح ها صحبت کنم. فقط باید بگم که من خودم شیفته این زبان شدم و واقعا باهاش حال میکنم مطمئنم شما هم اگه باهاش کار کنید همین حس رو خواهید داشت
زبان شی گرا (Object Oriented) چیست ؟
زبانی است که در آن هر جز از برنامه می تواند قابلیتها و ویژگیهای خاص خودش را داشته باشد و میتوانند با هم در ارتباط باشند.
Framework چیست ؟
مجموعه ای از نرم افزار، کتابخانه هایی که قبلا نوشته شده و ساختارهای سازمان دهی شده است که برای کمک در نوشتن برنامه های کاربردی به کار میرود.
Ruby چیست ؟
باید توجه داشته باشید که Ruby on Rails یک Web Framework است که بر مبنای زبان Ruby نوشته شده است، مشخصات زبان Ruby بدین شرح است :
- Ruby یک زبان برنامه نویسی است که توسط Yukihiro “matz” Matsumoto در سال 1995 ابداع شده است.
- شباهتهای زیادی به Perl، SmallTalk، Python و LISP دارد.
- Ruby فقط برای Web Application ساخته نشده است و همانند زبانهای مثل C کاربردهای بسیاری دارد.
- یک زبان شی گرا Object Oriented است.
- وب سایت : http://www.ruby-lang.org/en
بهتون پیشنهاد میکنم اگه میخواین با این زبان بیشتر آشنا بشید آنرا در وب سایت Ruby آزمایش کنید، این قسمت در چند دقیقه شما رو عاشق زبان Ruby میکنه ….
Rails چیست ؟
- یک Web Framework است.
- به زبان Ruby نوشته شده است.
- در سال 2004 توسط David Heinemeier Hansson ساخته شده است.
- این زبان Open Source هست.
- وب سایت : http://www.rubyonrails.com
اما چه ویژگیهایی باعث قدرت Ruby on Rails شده است ؟
اولین ویژگی که خیلی ممکن است به آن برخورد کنید و خیلی از آن صحبت میشود DRY است، این واژه مخفف Don’t Repeat Yourself است. بدین معنی است که در Rails شما باید سعی کنید فقط و فقط هر کد را یکبار و در یکجا بیاورید و نباید آنرا در جاهای مختلف برنامه تکرار کنید، این ویژگی این امکان رو به برنامه نویس میدهد تا به راحتی برنامه خود را کنترل کند و هر بار برای تغییرات روی آن نخواهد در صدها خط کد و حتی بیشتر دنبال قسمت مورد نظر بگردد.
مورد دیگر Conventions & Sensible Defaults است. به این معنیست که برای مثال وقتی شما در حال کار با Database هستید، Rails به طور پیش فرض یکسری قوانین و کدهایی رو برای اتصال به بانک اطلاعاتی شما در خود دارد و این امکان زو به شما میدهد تا بدون اینکه نیاز به کد نویسی زیادی داشته باشید به راحتی به بانک اطلاعاتی خود متصل شوید و Rails سایر کارها را خودش برای شما انجام میدهد.
اما شما هم میتوانید خودتان این کد نویسیها را انجام دهید بدون استفاده از Conventions & Sensible Defaults. اما استفاده از این ویژگیها در زمان و انرژی شما صرفه جویی زیادی خواهد کرد. یک مثال خیلی ساده این است که برای مثال شما دارید با بانک اطلاعاتی دانش آموزان کار میکنید، وقتی به Rails میگویید که Student (به مفرد بودن کلمه Student دقت کنید) Rails می فهمد که شما دنبال یک id از جدول Student ها هستید اما وقتی بگویید Students (به S که در آخر Student آمده دقت کنید) که یک کلمه جمع است Rails میفهمد که شما با چند id از جدول Student کار دارید. این یک مثال ساده از این ویژگی مفید هست.
مثال دیگر این است که همه Javascript ها یا CSS ها در فولدرهای مربوط به خودشون هستند، همه چیز مرتب و سازمان دهی شده است. شما میتوانید این قوانین و پیش فرض ها را تغییر دهید ولی دنبال کردن این موارد شما را خیلی جلو میندازه و بهتون خیلی کمک میکنه.
نکته دیگر که باعث قدرت Rails شده است ساخته شدن آن روی ساختار MVC است. این واژه مخفف کلمه های Model، View و Controller است. MVC از دو ویژگی که در بالا ذکر کردم استفاده میکند. در Model همه Object های ما با Database در ارتباط هستند و نه در جای دیگر، این همان ویژگی DRY است، چون شما فقط در Model با بانک اطلاعاتی در ارتباط هستید. لایه View همان قسمتی است که کاربر با آن در ارتباط است، همان صفحه های HTML که کاربر در انتها خواهد دید در این لایه ساخته میشوند. لایه Controller قسمتی است که وظیفه عکس العمل نشان دادن به Event ها را دارد و با دو لایه View و Model در ارتباط است.
به شکل زیر دقت کنید :
در روش Non-MVC معمولا در سایتهای سنتی که با ASP و PHP نوشته شده اند استفاده میشه ولی روش MVC در Ruby on Rails استفاده میشود. در روش سنتی مرورگر درخواست به View میفرستد و اگر لازم باشد View با بانک اطلاعاتی ارتباط برقرار میکند و پاسخ آنرا در View نشان میدهد. (در این روش Controller و Model درون همان View هست). البته این نکته را باید بگم که ممکن است برنامه نویسان ASP و PHP از روش MVC هم استفاده کنن ولی بیشتر برنامه نویسان این زبانها از این روش استفاده نمیکنن.
اما در روش MVC مرورگر درخواست خود را به Controller میفرستد (Controller وظیفه کنترل کردن Event ها را دارد و با Model و View در ارتباط است) Controller این درخواست را پردازش میکند و میبیند که مثلا چه لینکی کلیک شده است یا چه URL وارد شده است و آن را به Model میفرستد، Model با بانک اطلاعاتی ارتباط برقرار میکند و اطلاعات لازم رو دریافت میکنه یا درون آن قرار میده، سپس Model این اطلاعات رو به Controller میدهد و به آن میگوید که چه اطلاعاتی از Database گرفته و یا در آن قرار داده، Controller ممکن است بر حسب نیاز با Model دوباره ارتباط برقرار کند و در نهایت اطلاعات رو به View میفرستد تا نمایش داده شوند.
این روش به خوبی با DRY همخوانی دارد، شما وقتی بخواهید مثلا تغییری در Database بدهید میدونید که باید در Model این کار رو انجام بدید. اگر بخواهید Event ها رو کنترل کنید در Controller تغییر میدید و اگر بخواهید در نمایش اطلاعات برای کاربر تغییر ایجاد کنید میدونید که در View باید این کار رو بکنید. پس میبینید که همه چی در Rails سازماندهی شده است و شما میدونید که در کجا باید تغییرات را ایجاد کنید. اما در روش سنتی ممکن است شما همه صفحات رو مرور کنید تا بخواین یه تغییر کوچک در برنامه خود ایجاد کنید.
خب، امیدوارم توضیحات من براتون مفید بوده باشه، این خلاصه ای که من گفتم ویژگیهای کوچیکی از این Framework قدرتمند هستش، مطمئن باشید که اگه امتحانش کنید سمت هیچ زبان دیگه ای نمیرید
من فرشاد ذوالفقاری هستم، طراح اینترفیس و رابط کاربری وب سایت. در این وبلاگ مطالب متنوعی را در مورد طراحی وب سایت خواهید یافت.
15 دیدگاه
آذر 2, 1387
مطلب خوب بود – توضیح اضافی هم نداشت ، فقط ای کاش توضیحات مربوط به MVC رو توی یک مطلب دیگه می نوشتی و اینجا به اون مطلب لینک میدادی – و اینجا بیشتر راجع به خود ruby می نوشتی جای اینکه راجع به mvc بنویسی . بهرحال دستت درد نکنه
[پاسخ دهید]
آذر 2, 1387
ممنون از بابت این مقاله . آشنایی خوبی بود.
[پاسخ دهید]
آذر 2, 1387
ممنون، به خاطر این MVC رو اینجا آوردم که یکی از ویژگیهای برتر این Framework هست، قصدم از این مقاله بیشتر آشنایی با این زبان بوده، حالا شاید بعدا توضیحات کاملتری رو بدم
[پاسخ دهید]
آذر 2, 1387
عمو فرشاد کارت خیلی درسته
من عاشق بچه های کار درستم
دوست دارم با روبی کنار خودت حال کنم
چون اونم (روبی)مثل خودت باحاله …
این شماره منه اگه حال کردی یه تک بزن …
09354881339
[پاسخ دهید]
آذر 2, 1387
ممنون شما لطف داری !
[پاسخ دهید]
آذر 5, 1387
اییییی که گفتی یعنی چه؟
[پاسخ دهید]
آذر 5, 1387
کدومش ؟
[پاسخ دهید]
اردیبهشت 6, 1388
عالی بود مرسی
[پاسخ دهید]
اردیبهشت 12, 1388
ممنون، خیلی عالی بود
[پاسخ دهید]
اردیبهشت 12, 1388
ممنون
[پاسخ دهید]
دی 17, 1388
مفید بود
ممنون
[پاسخ دهید]
اردیبهشت 23, 1389
خیلی خوب بود . چون من به این توصیحات نیاز داشتم. از شما ممنونم. البته اگر یه مقدار از نحوه کار کردن با این زبان می نوشتید که عالی می شد . با این حال بازم ممنون
[پاسخ دهید]
دیدگاه خود را ارسال نمایید
3 Trackbacks/Pingbacks