rails شما ممکن است برای ساخت وب سایت از زبانها و Framework های مختلفی استفاده کنید، پر استفاده ترین آنها که شما هم زیاد شنیده اید ASP و PHP است، اما از سال 2004 یک Framework جدید وارد عرصه اینترنت شد و باعث شگفتی بسیاری از برنامه نویسان شد . تو این پست میخوام در مورد یه Framework صحبت کنم، شاید اسمشو شنیده باشید، Ruby on Rails. قبل از توضیح دادن در مورد این زبان بهتره در مورد زبان  Ruby و یکسری اصطلاح ها صحبت کنم. فقط باید بگم که من خودم شیفته این زبان شدم و واقعا باهاش حال میکنم مطمئنم شما هم اگه باهاش کار کنید همین حس رو خواهید داشت

زبان شی گرا (Object Oriented) چیست ؟

زبانی است که در آن هر جز از برنامه می تواند قابلیتها و ویژگیهای خاص خودش را داشته باشد و میتوانند با هم در ارتباط باشند.

اطلاعات بیشتر در Wikipedia

Framework چیست ؟

مجموعه ای از نرم افزار، کتابخانه هایی که قبلا نوشته شده و ساختارهای سازمان دهی شده است که برای کمک در نوشتن برنامه های کاربردی به کار میرود.

اطلاعات بیشتر در Wikipedia

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 چیست ؟

اما چه ویژگیهایی باعث قدرت 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 در ارتباط است.

به شکل زیر دقت کنید :

MVC

در روش 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 دیدگاه

  1. ناصر حاجلو
    آذر 2, 1387

    مطلب خوب بود – توضیح اضافی هم نداشت ، فقط ای کاش توضیحات مربوط به MVC رو توی یک مطلب دیگه می نوشتی و اینجا به اون مطلب لینک میدادی – و اینجا بیشتر راجع به خود ruby می نوشتی جای اینکه راجع به mvc بنویسی . بهرحال دستت درد نکنه

    [پاسخ دهید]

  2. حسین شرفی
    آذر 2, 1387

    ممنون از بابت این مقاله . آشنایی خوبی بود.

    [پاسخ دهید]

  3. فرشاد
    آذر 2, 1387

    ممنون، به خاطر این MVC رو اینجا آوردم که یکی از ویژگیهای برتر این Framework هست، قصدم از این مقاله بیشتر آشنایی با این زبان بوده، حالا شاید بعدا توضیحات کاملتری رو بدم :)

    [پاسخ دهید]

  4. Mori5ive
    آذر 2, 1387

    عمو فرشاد کارت خیلی درسته
    من عاشق بچه های کار درستم
    دوست دارم با روبی کنار خودت حال کنم
    چون اونم (روبی)مثل خودت باحاله …
    این شماره منه اگه حال کردی یه تک بزن …
    09354881339

    [پاسخ دهید]

  5. فرشاد
    آذر 2, 1387

    ممنون شما لطف داری !

    [پاسخ دهید]

  6. علیرضا
    آذر 5, 1387

    اییییی که گفتی یعنی چه؟

    [پاسخ دهید]

  7. فرشاد
    آذر 5, 1387

    کدومش ؟

    [پاسخ دهید]

  8. محمد صالح
    اردیبهشت 6, 1388

    عالی بود مرسی

    [پاسخ دهید]

  9. مهدی فدوی
    اردیبهشت 12, 1388

    ممنون، خیلی عالی بود

    [پاسخ دهید]

  10. فرشاد
    اردیبهشت 12, 1388

    ممنون :)

    [پاسخ دهید]

  11. پیام
    دی 17, 1388

    مفید بود
    ممنون

    [پاسخ دهید]

  12. مریم
    اردیبهشت 23, 1389

    خیلی خوب بود . چون من به این توصیحات نیاز داشتم. از شما ممنونم. البته اگر یه مقدار از نحوه کار کردن با این زبان می نوشتید که عالی می شد . با این حال بازم ممنون

    [پاسخ دهید]

دیدگاه خود را ارسال نمایید

3 Trackbacks/Pingbacks

  1. پینگ: Ruby On Rails چیست ؟ | PHP-Blog.com در تاریخ آذر 2, 1387
  2. پینگ: Aptana IDE — وبلاگ داتیس دیزاین در تاریخ بهمن 30, 1387
  3. پینگ: راهنمای نصب Ruby on Rails روی ویندوز — وبلاگ داتیس دیزاین در تاریخ دی 17, 1388