{"id":3857,"date":"2019-04-14T20:34:35","date_gmt":"2019-04-14T16:04:35","guid":{"rendered":"https:\/\/rasanegar.com\/blog\/?p=3857"},"modified":"2019-04-15T19:18:04","modified_gmt":"2019-04-15T14:48:04","slug":"what-is-ruby-on-rails-or-rob","status":"publish","type":"post","link":"https:\/\/rasanegaar.com\/blog\/what-is-ruby-on-rails-or-rob\/","title":{"rendered":"Ruby on Rails ( \u0631\u0648\u0628\u06cc \u0622\u0646 \u0631\u06cc\u0644\u0632 )\u200c \u06cc\u0627 RoR \u0686\u06cc\u0633\u062a\u061f"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0633\u0631\u0641\u0635\u0644\u0647\u0627\u06cc \u0645\u0637\u0644\u0628<\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/rasanegaar.com\/blog\/what-is-ruby-on-rails-or-rob\/#%d8%b1%d9%88%d8%a8%db%8c_%d8%a2%d9%86_%d8%b1%db%8c%d9%84%d8%b2_%da%86%db%8c%d8%b3%d8%aa_%d8%9f\" >\u0631\u0648\u0628\u06cc \u0622\u0646 \u0631\u06cc\u0644\u0632 \u0686\u06cc\u0633\u062a \u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/rasanegaar.com\/blog\/what-is-ruby-on-rails-or-rob\/#ruby\" >Ruby<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/rasanegaar.com\/blog\/what-is-ruby-on-rails-or-rob\/#rails\" >Rails<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/rasanegaar.com\/blog\/what-is-ruby-on-rails-or-rob\/#%d8%a2%db%8c%d8%a7_rails_%d8%a8%d8%b1%d8%a7%db%8c_%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%e2%80%8e%d9%86%d9%88%db%8c%d8%b3%d8%a7%d9%86_%d8%aa%d8%a7%d8%b2%d9%87%e2%80%8e%da%a9%d8%a7%d8%b1_%d9%85%d9%86%d8%a7%d8%b3%d8%a8_%d8%a7%d8%b3%d8%aa_%d8%9f\" >\u0622\u06cc\u0627 Rails \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200e\u0646\u0648\u06cc\u0633\u0627\u0646 \u062a\u0627\u0632\u0647\u200e\u06a9\u0627\u0631 \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a\u00a0 \u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/rasanegaar.com\/blog\/what-is-ruby-on-rails-or-rob\/#%da%86%d9%87_%da%86%db%8c%d8%b2%db%8c_%d8%b1%d9%88%d8%a8%db%8c_%d8%b1%d8%a7_%d8%a7%d8%b2_%d8%af%db%8c%da%af%d8%b1_%d8%b2%d8%a8%d8%a7%d9%86_%d9%87%d8%a7%db%8c_%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87_%d9%86%d9%88%db%8c%d8%b3%db%8c_%d9%88_%d9%81%d8%b1%db%8c%d9%85%e2%80%8e%d9%88%d8%b1%da%a9_%d9%87%d8%a7_%d9%85%d8%aa%d9%81%d8%a7%d9%88%d8%aa_%da%a9%d8%b1%d8%af%d9%87%d8%a7%d8%b3%d8%aa_%d8%9f\" >\u0686\u0647 \u0686\u06cc\u0632\u06cc \u0631\u0648\u0628\u06cc \u0631\u0627 \u0627\u0632 \u062f\u06cc\u06af\u0631 \u0632\u0628\u0627\u0646 \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0648 \u0641\u0631\u06cc\u0645\u200e\u0648\u0631\u06a9 \u0647\u0627 \u0645\u062a\u0641\u0627\u0648\u062a \u06a9\u0631\u062f\u0647\u0627\u0633\u062a \u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/rasanegaar.com\/blog\/what-is-ruby-on-rails-or-rob\/#what_are_some_ways_to_learn_ruby_on_rails_and_how_long_should_you_expect_it_to_take\" >What Are Some Ways to Learn Ruby on Rails and How Long Should You Expect it to Take?<\/a><\/li><\/ul><\/nav><\/div>\n<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">\u0632\u0645\u0627\u0646 \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0645\u0637\u0627\u0644\u0639\u0647: <\/span> <span class=\"rt-time\"> 9<\/span> <span class=\"rt-label rt-postfix\">\u062f\u0642\u06cc\u0642\u0647<\/span><\/span><h2><span class=\"ez-toc-section\" id=\"%d8%b1%d9%88%d8%a8%db%8c_%d8%a2%d9%86_%d8%b1%db%8c%d9%84%d8%b2_%da%86%db%8c%d8%b3%d8%aa_%d8%9f\"><\/span>\u0631\u0648\u0628\u06cc \u0622\u0646 \u0631\u06cc\u0644\u0632 \u0686\u06cc\u0633\u062a \u061f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u0644\u0646\u0627 \u0633\u0648\u06a9\u0648\u0644\u06cc\u06a9 \u060c \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u0647 \u0631\u0648\u0628\u06cc \u0622\u0646 \u0631\u06cc\u0644\u0632 \u062f\u0631 \u0634\u0631\u06a9\u062a\u06cc \u0631\u0648\u0628\u06cc \u06af\u0627\u0631\u0627\u0698 \u0645\u06cc\u200e\u06af\u0648\u06cc\u062f: \u0631\u0648\u0628\u06cc \u0622\u0646 \u0631\u0644\u06cc\u0632 \u06cc\u0627 \u0631\u0648\u0628\u06cc \u06cc\u06a9 \u0641\u0631\u0645 \u0648\u0631\u06a9 \u062a\u0648\u0633\u0639\u0647 \u0648\u0628 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0631\u0648\u0628\u06cc \u0645\u062a\u062f\u0647\u0627\u06cc \u0633\u0631\u06cc\u0639 \u0628\u0631\u0627\u06cc \u0646\u0648\u0634\u062a\u0646 \u06a9\u062f \u0631\u0627 \u0628\u062f\u0648\u0646 \u0627\u062a\u0644\u0627\u0641 \u0648\u0642\u062a \u0645\u06cc\u062f\u0647\u062f \u060c \u0631\u0648\u0628\u06cc \u06cc\u06a9\u06cc \u0627\u0632 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u062f\u0631 \u062f\u0646\u06cc\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0648 \u062a\u0648\u0633\u0639\u0647 \u0648\u0628 \u0627\u0633\u062a \u060c \u0627\u06cc\u0646 \u0686\u0647\u0627\u0631\u0686\u0648\u0628 \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0645\u062c\u0645\u0648\u0639\u0647 \u0627\u06cc \u0627\u0632 \u06a9\u062a\u0627\u0627\u0628\u062e\u0627\u0646\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0647\u0633\u062a\u0646\u062f \u06a9\u0647 \u0628\u0647 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u0647 \u0648\u0628 \u0648 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0631\u0627\u0647 \u06a9\u0627\u0631\u0647\u0627\u06cc \u0622\u0645\u0627\u062f\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0622\u0646\u0647\u0627 \u0628\u0635\u0648\u0631\u062a \u0639\u0627\u062f\u06cc \u0632\u0645\u0627\u0646 \u0628\u0631 \u0627\u0633\u062a \u0645\u06cc\u200e\u062f\u0647\u062f \u060c \u0686\u06cc\u0632\u0647\u0627\u06cc\u06cc \u0645\u062b\u0644 \u0633\u0627\u062e\u062a \u0645\u0646 \u0647\u0627 \u0648 \u062c\u062f\u0627\u0648\u0644 \u060c \u0641\u0631\u0645 \u0647\u0627 \u062f\u0631 \u06cc\u06a9 \u0648\u0628 \u0633\u0627\u06cc\u062a <\/p>\n<p>\u0628\u0647 \u0639\u0628\u0627\u0631\u062a \u062f\u06cc\u06af\u0631 \u0628\u062c\u0627\u06cc \u0627\u06cc\u0646\u06a9\u0647 \u0647\u0631 \u062e\u0637 \u06a9\u062f \u0631\u0627 \u062e\u0648\u062f\u062a\u0627\u0646 \u0631\u0627 \u0627\u0632 \u067e\u0627\u06cc\u0647 \u062e\u0648\u062f\u062a\u0627\u0646 \u0628\u0646\u0648\u06cc\u0633\u06cc\u062f \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0648\u0628 \u0628\u0647 \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u0631\u0686\u0648\u0639 \u0645\u06cc\u06a9\u0646\u0646\u062f \u0648 \u06a9\u062f \u0645\u0631\u0648\u0628\u0637 \u0628\u0647 \u062a\u0627\u0628\u0639\u00a0 \u0639\u0645\u0648\u0645\u06cc \u06a9\u0647 \u0645\u06cc\u062a\u0648\u0627\u0646\u0646\u062f \u062f\u0631 \u0648\u0628 \u0633\u0627\u06cc\u062a \u0648 \u06cc\u0627 \u0648\u0628 \u0627\u067e\u0644\u06cc\u06a9\u0634\u06cc\u0646 \u062e\u0648\u062f \u0642\u0631\u0627\u0631 \u0628\u062f\u0647\u0646\u062f \u067e\u06cc\u062f\u0627 \u0645\u06cc \u06a9\u0646\u0646\u062f \u060c \u0641\u0631\u06cc\u0645 \u0648\u0631\u06a9 \u0647\u0627\u06cc \u062a\u062d\u062a \u0648\u0628 \u0645\u0639\u0645\u0648\u0644\u0627 \u0645\u062e\u062a\u0635 \u0628\u0647 \u06cc\u06a9 \u0632\u0628\u0627\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0647\u0633\u062a\u0646\u062f ( \u0645\u062b\u0644\u0627 \u0627\u0646\u06af\u0648\u0644\u0627\u0631 \u06a9\u0647 \u0641\u0631\u0645 \u0648\u0631\u06a9 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u067e\u0631\u06cc\u062a \u0627\u0633\u062a \u060c \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062a\u0645\u0627\u0645 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0647\u0627\u06cc \u06a9\u062f\u06cc \u06a9\u0647 \u062f\u0627\u0631\u062f \u0628\u0647 \u0632\u0628\u0627\u0646 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0646\u0648\u0634\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a ) \u0648 \u0641\u0631\u0645 \u0648\u0631\u06a9 \u0631\u06cc\u0644\u0632 \u0646\u06cc\u0632 \u0647\u0645 \u0647\u0645\u06cc\u0646\u0637\u0648\u0631 \u0627\u0633\u062a \u060c \u0631\u06cc\u0644\u0632 \u0628\u0647 \u0633\u0627\u062f\u06af\u06cc \u06cc\u06a9 \u0641\u0631\u0645 \u0648\u0631\u06a9 \u0646\u0648\u0634\u062a\u0647 \u0634\u062f\u0647 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0631\u0648\u0628\u06cc \u0627\u0633\u062a<\/p>\n<p>While all frameworks by their nature help to make the development of complex websites more manageable, Jasmit Kaur, Founder and CEO at talent analytics platform\u00a0Culturebie, says that Rails is particularly notable for its easy maintenance and the fact that it lends itself to collaboration. Kaur says this is a result of the two key tenets Rails is founded on: DRY (Do Not Repeat Yourself) and Convention Over Configuration. Kaur points to these two descriptions from the\u00a0Rails website:<\/p>\n<ul>\n<li>\u201c<strong>Don\u2019t Repeat Yourself<\/strong>: DRY is a principle of software development which states that \u201cEvery piece of knowledge must have a single, unambiguous, authoritative representation within a system.\u201d By not writing the same information over and over again, our code is more maintainable, more extensible, and less buggy.\u201d<\/li>\n<li>\u201c<strong>Convention Over Configuration<\/strong>: Rails has opinions about the best way to do many things in a web application, and defaults to this set of conventions, rather than require that you specify minutiae through endless configuration files.\u201d<\/li>\n<\/ul>\n<p>In other words, not only does the Rails web framework cut down on the time sink of re-coding repetitive tasks, but\u2014by using Rails code\u2014Rails developers keep their overall work cleaner, less prone to bugs (bad, ineffective code), and easier to troubleshoot when problems do occur. At the same time, Rails subscribes to an overall method of best practices for Rails developers that removes the need to leave behind instructions and rationale for your coding decisions (through configuration files) in the code you write\u2014instead, Rails developers work from the shared common ground of Rails conventions. \u201cIn the past I\u2019ve built web applications that became unwieldy pretty fast, even when they were not big projects,\u201d Kaur says. \u201cRails\u2019 two tenets help prevent that, along with a terrific Rails community of users and great open-source libraries (Rails is open-source, meaning its source code\u2014the code that makes it work\u2014is open to the public and the framework itself is free to use).\u201d<\/p>\n<p>Finally, Rosie Thomas, Ruby Engineer at financial data software company\u00a0MX, adds that\u2014as a web framework\u2014Rails is most commonly used to build full\u00a0web applications\u00a0(web apps like\u00a0GitHub,\u00a0Basecamp, and\u00a0Kickstarter\u00a0were all built using Rails) and APIs (systems of tools and resources that are then used by developers to create software applications). Because of this, Thomas says, tech jobs that focus on providing browser-based applications or APIs are likely to use Rails and hire developers with Rails experience. As of this writing\u2014Glassdoor\u00a0lists nearly 6,000 open jobs for Ruby on Rails Developers.<\/p>\n<p>\u0631\u0648\u0628\u06cc \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0647 \u0645\u0641\u0627\u0647\u06cc\u0645 \u067e\u0627\u06cc\u0647\u200c\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0648\u0628 \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u06cc\u0645 \u0648 \u062a\u0648\u0636\u06cc\u062d \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645 \u06a9\u0647 Ruby on Rails \u0686\u06cc\u0633\u062a \u0648 \u0686\u0631\u0627 Ruby on Rails \u06cc\u06a9\u06cc \u0627\u0632 \u0641\u0631\u06cc\u0645\u0648\u0631\u06a9\u200c\u0647\u0627\u06cc \u0645\u062d\u0628\u0648\u0628 \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0648\u0628 \u0627\u0633\u062a. \u0627\u0635\u0637\u0644\u0627\u062d\u0627\u062a \u0641\u0646\u06cc \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u062f\u0647 \u200c\u0634\u062f\u0647\u200c \u0648 \u0628\u0627 \u06cc\u06a9 \u0632\u0628\u0627\u0646 \u0633\u0627\u062f\u0647 \u0648 \u0642\u0627\u0628\u0644\u200c\u0641\u0647\u0645 \u062a\u0634\u0631\u06cc\u062d \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. Rails \u06af\u0627\u0647\u06cc \u0628\u0627 \u0646\u0627\u0645 ROR \u0647\u0645 \u0634\u0646\u0627\u062e\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. ROR \u0641\u0631\u06cc\u0645\u0648\u0631\u06a9 \u0645\u062a\u0646\u200c\u0628\u0627\u0632 \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u062a\u062d\u062a \u0648\u0628 \u0627\u0633\u062a \u06a9\u0647 \u0627\u0632 \u0632\u0628\u0627\u0646 \u0631\u0648\u0628\u06cc \u06a9\u0647 \u06cc\u06a9 \u0632\u0628\u0627\u0646 \u0634\u06cc\u200c\u06af\u0631\u0627 \u0645\u0634\u0627\u0628\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0627\u0633\u062a\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>ruby on rails \u062f\u0631 \u0648\u0627\u0642\u0639\u00a0\u06cc\u06a9 \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 \u0648\u0628\u200c\u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0634\u0627\u0645\u0644 \u0647\u0645\u0647 \u0645\u0648\u0627\u0631\u062f \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u062a\u062d\u062a \u0648\u0628 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0631 \u0627\u0633\u0627\u0633 Model-View-Controller \u0627\u0633\u062a.<\/p>\n<p>\u062a\u0641\u0627\u0648\u062a \u0627\u0635\u0644\u06cc Ruby On Rails \u0628\u0627 \u062f\u06cc\u06af\u0631 \u0641\u0631\u06cc\u0645\u0648\u0631\u06a9\u200c\u0647\u0627\u060c \u0633\u0631\u0639\u062a \u062a\u0648\u0633\u0639\u0647 \u0648 \u0633\u0647\u0648\u0644\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646 \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647\u200c\u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u0633\u062a.\u00a0 \u0647\u0631 \u062a\u063a\u06cc\u06cc\u0631\u06cc \u06a9\u0647 \u0631\u0648\u06cc \u06a9\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0639\u0645\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0628\u0647\u200c\u0635\u0648\u0631\u062a \u0622\u0646\u06cc \u0646\u062a\u06cc\u062c\u0647 \u0627\u062c\u0631\u0627\u06cc \u0622\u0646 \u0631\u0627 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u0631\u0627\u062d\u0644 \u0648\u0642\u062a\u200c\u06af\u06cc\u0631 \u06a9\u0647 \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 \u0633\u0627\u06cc\u0631 \u0641\u0631\u06cc\u0645\u0648\u0631\u06a9\u200c\u0647\u0627 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u0631\u0627 \u062f\u0631 \u0627\u06cc\u0646 \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 \u0646\u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0627\u0634\u062a.<\/p>\n<p>\u0637\u0628\u0642 \u06af\u0641\u062a\u0647 David Geary\u00a0 \u06cc\u06a9 \u0645\u062a\u062e\u0635\u0635 \u062c\u0627\u0648\u0627\u060c \u0641\u0631\u06cc\u0645\u0648\u0631\u06a9\u200c\u0647\u0627\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0631\u0648\u0628\u06cc \u06f5 \u062a\u0627 \u06f1\u06f0 \u0628\u0631\u0627\u0628\u0631 \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0627\u0632 \u0641\u0631\u06cc\u0645\u0648\u0631\u06a9\u200c\u0647\u0627\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u062c\u0627\u0648\u0627 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p>Rails \u0627\u0632 \u0686\u0646\u062f\u06cc\u0646 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u00a0\u0627\u0632 \u062c\u0645\u0644\u0647 \u062e\u0648\u062f \u0631\u0648\u0628\u06cc \u062a\u0634\u06a9\u06cc\u0644 \u0634\u062f\u0647\u00a0 \u0627\u0633\u062a \u06a9\u0647 \u0639\u0628\u0627\u0631\u062a\u200c\u0627\u0646\u062f \u0627\u0632:<\/p>\n<ul>\n<li>Active Record:\u00a0 \u06cc\u06a9 \u0644\u0627\u06cc\u0647 \u0646\u06af\u0627\u0634\u062a \u0631\u0627\u0628\u0637\u0647\u200c\u0627\u06cc \u0628\u0647 \u0634\u06cc\u200c\u06af\u0631\u0627 (object-relational mapping)<\/li>\n<li>Action pack: \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647 \u0648 view functions<\/li>\n<li>Action mailer: \u0627\u062f\u0627\u0631\u0647 \u06a9\u0646\u0646\u062f\u0647 \u0627\u06cc\u0645\u06cc\u0644<\/li>\n<li>Action Web Service \u0647\u0627 \u0648 Prototype: \u0627\u06cc\u062c\u06a9\u0633 \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a drag &amp; drop \u0631\u0627 \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<\/ul>\n<p>Rails \u062f\u0631 \u0627\u06a9\u062b\u0631 \u0648\u0628 \u0633\u0631\u0648\u0631\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0627\u0632 CGI\u00a0 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0627\u062c\u0631\u0627 \u0634\u0648\u062f.\u00a0 \u0627\u06cc\u0646 \u0641\u0631\u06cc\u0645\u0648\u0631\u06a9 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc MySQL\u060c PostgreSQL\u060c SQLite\u060cDB\u06f2 \u0648 \u0627\u0648\u0631\u06a9\u0644\u00a0\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>Rails \u0627\u0632 \u0645\u0639\u0645\u0627\u0631\u06cc MVC \u06cc\u0627 (Model-View-Controller) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0647\u0645\u0686\u0646\u06cc\u0646 \u062a\u0645\u0627\u0645 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062a\u0648\u0633\u0637 Rails \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u062f\u0631 \u0645\u0642\u0627\u06cc\u0633\u0647 \u0628\u0627 \u062f\u06cc\u06af\u0631 \u0641\u0631\u06cc\u0645\u0648\u0631\u06a9\u200c\u0647\u0627\u060c \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u06a9\u0627\u0645\u0644\u06cc \u0627\u0632 MVC \u0628\u0647 \u0639\u0645\u0644 \u0645\u06cc\u200c\u0622\u0648\u0631\u062f.<\/p>\n<p>\u0641\u0631\u06cc\u0645\u0648\u0631\u06a9 Ruby on Rails \u06cc\u06a9 \u067e\u0631\u0648\u0698\u0647 \u0645\u062a\u0646\u200c\u0628\u0627\u0632 \u0627\u0633\u062a \u06a9\u0647 \u062a\u0648\u0633\u0637 David Heinemeier Hanse \u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0648\u0631\u0698\u0646\u200c\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0622\u0646 \u0631\u0627 \u0627\u0632 \u0633\u0627\u06cc\u062a rubyonrails.org \u062f\u0627\u0646\u0644\u0648\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"ruby\"><\/span>Ruby<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Ruby \u06cc\u06a9 \u0632\u0628\u0627\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u06f2\u06f0 \u0633\u0627\u0644 \u0642\u0628\u0644 \u062a\u0648\u0633\u0637 Yakihire Matz Matsumoto \u0627\u06cc\u062c\u0627\u062f \u0634\u062f. \u00a0\u0627\u0632 \u0646\u0638\u0631 \u0645\u06cc\u0632\u0627\u0646 \u0645\u062d\u0628\u0648\u0628\u06cc\u062a \u0632\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc\u060c\u00a0 \u0631\u0648\u0628\u06cc \u062c\u0632 \u062f\u0647 \u0632\u0628\u0627\u0646 \u0628\u0631\u062a\u0631 \u0645\u062d\u0627\u0633\u0628\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0627\u06af\u0631\u0686\u0647 \u0627\u0632 \u0646\u0638\u0631 \u0645\u062d\u0628\u0648\u0628\u06cc\u062a \u062f\u0631 \u062c\u0627\u06cc\u06af\u0627\u0647 \u062f\u0647\u0645 \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u062f \u0627\u0645\u0627 \u0627\u06cc\u0646 \u0645\u062d\u0628\u0648\u0628\u06cc\u062a \u0631\u0627 \u062a\u0627 \u062d\u062f \u0632\u06cc\u0627\u062f\u06cc \u0645\u062f\u06cc\u0648\u0646 Rails \u0627\u0633\u062a. \u0632\u0628\u0627\u0646 \u0631\u0648\u0628\u06cc \u0645\u0627\u0646\u0646\u062f \u062c\u0627\u0648\u0627 \u06cc\u0627 C \u06cc\u06a9 \u0632\u0628\u0627\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u0686\u0646\u062f \u0645\u0646\u0638\u0648\u0631\u0647 \u0627\u0633\u062a\u060c \u0628\u0627 \u0627\u06cc\u0646 \u0648\u062c\u0648\u062f \u0628\u06cc\u0634\u062a\u0631 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0632\u0628\u0627\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0648\u0628 \u0634\u0646\u0627\u062e\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"rails\"><\/span>Rails<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Rails \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0642\u0627\u0628\u0644\u06cc\u062a\u200c\u0647\u0627\u06cc \u0632\u0628\u0627\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u0631\u0648\u0628\u06cc \u0631\u0627 \u06af\u0633\u062a\u0631\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f. \u062e\u0627\u0644\u0642 \u0627\u06cc\u0646 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 David Heinemeier Hanse \u0627\u0633\u062a. \u0627\u0648 \u0646\u0627\u0645 \u0622\u0646 \u0631\u0627 Ruby on Rails \u06af\u0630\u0627\u0634\u062a. \u0627\u0645\u0627 \u0627\u063a\u0644\u0628 \u0622\u0646 \u0631\u0627 \u062a\u0646\u0647\u0627 \u0628\u0647\u200c\u0635\u0648\u0631\u062a Rails \u0645\u06cc\u200c\u0634\u0646\u0627\u0633\u0646\u062f.<\/p>\n<p>\u06cc\u06a9\u06cc \u0627\u0632 \u0645\u0632\u0627\u06cc\u0627\u06cc Rails \u0646\u0633\u0628\u062a \u0628\u0647 \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9\u200c\u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u0622\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0628\u0627 \u0633\u0631\u0639\u062a \u0628\u06cc\u0634\u062a\u0631 \u0648 \u062d\u062f\u0648\u062f \u062f\u0647 \u0628\u0631\u0627\u0628\u0631 \u0628\u06cc\u0634\u062a\u0631 \u0627\u0632 \u0633\u0627\u06cc\u0631 \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9\u200c\u0647\u0627 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u06a9\u0631\u062f. \u0639\u0644\u062a \u0627\u06cc\u0646 \u0633\u0631\u0639\u062a \u0628\u0627\u0644\u0627\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0632\u0628\u0627\u0646 Ruby \u0648 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u062f\u0648 \u0627\u0635\u0644 \u0645\u0647\u0645\u06cc CoC \u0648 DRY \u0627\u0633\u062a.<\/p>\n<p>Rails\u00a0\u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0632\u0628\u0627\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u0631\u0648\u0628\u06cc \u0627\u0636\u0627\u0641\u0647 \u0634\u062f\u0647 \u0648 \u0627\u0632 \u0646\u0638\u0631 \u0641\u0646\u06cc\u060c \u06cc\u06a9 package library \u0628\u0631\u0627\u06cc (RubyGem) \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0628\u0632\u0627\u0631 \u062e\u0637 \u0641\u0631\u0645\u0627\u0646 \u0633\u06cc\u0633\u062a\u0645\u200c\u0639\u0627\u0645\u0644 \u0646\u0635\u0628 \u0645\u06cc\u200c\u0634\u0648\u062f. Rails \u06cc\u06a9 \u0641\u0631\u06cc\u0645\u0648\u0631\u06a9 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0648\u0628\u200c\u0633\u0627\u06cc\u062a \u0627\u0633\u062a. \u0628\u0647 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628 Rails \u06cc\u06a9 \u0633\u0631\u06cc \u0627\u0632 \u0642\u0631\u0627\u0631\u062f\u0627\u062f\u0647\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0641\u0632\u0627\u06cc\u0634 \u0627\u0634\u062a\u0631\u0627\u06a9\u200c\u067e\u0630\u06cc\u0631\u06cc \u0648 \u0642\u0627\u0628\u0644\u06cc\u062a \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0642\u0631\u0627\u0631\u062f\u0627\u062f\u0647\u0627 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 Api\u200c \u0647\u0627\u06cc Rails \u06cc\u0627 Rails API \u0634\u0646\u0627\u062e\u062a\u0647\u00a0 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.(API= \u0631\u0627\u0628\u0637 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u06cc\u0627 \u062f\u0633\u062a\u0648\u0631\u0627\u062a\u06cc \u06a9\u0647 \u06a9\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u06a9\u0646\u062a\u0631\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f.)<\/p>\n<p>Rails API \u0634\u0627\u0645\u0644 \u062f\u0627\u06a9\u06cc\u0648\u0645\u0646\u062a\u200c\u0647\u0627\u06cc \u0622\u0646\u0644\u0627\u06cc\u0646 \u0627\u0633\u062a \u0648 \u062f\u0631 \u0642\u0627\u0644\u0628 \u06a9\u062a\u0627\u0628\u200c\u0647\u0627\u060c \u0645\u0642\u0627\u0644\u0627\u062a \u0648 \u067e\u0633\u062a\u200c\u0647\u0627\u06cc \u0648\u0628\u0644\u0627\u06af \u062a\u0648\u0636\u06cc\u062d \u062f\u0627\u062f\u0647\u200c \u0634\u062f\u0647\u200c\u0627\u0646\u062f. \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc Rails \u0628\u0647 \u0645\u0639\u0646\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0686\u06af\u0648\u0646\u06af\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0642\u0631\u0627\u0631\u062f\u0627\u062f\u0647\u0627\u06cc Rails \u0648 API\u0647\u0627\u06cc \u0622\u0646 \u0627\u0633\u062a. Rails \u0632\u0628\u0627\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u0631\u0648\u0628\u06cc \u0631\u0627 \u0628\u0627 Html \u060cCSS \u0648 \u062c\u0627\u0648\u0627\u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0647\u200c\u0645\u0646\u0638\u0648\u0631 \u0633\u0627\u062e\u062a \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u062a\u062d\u062a \u0648\u0628 \u06a9\u0647 \u0631\u0648\u06cc \u06cc\u06a9 \u0648\u0628 \u0633\u0631\u0648\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u062a\u0631\u06a9\u06cc\u0628 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>\u0627\u0632 \u0622\u0646\u200c\u062c\u0627\u06cc\u06cc \u06a9\u0647 Rails \u0631\u0648\u06cc \u06cc\u06a9 \u0648\u0628 \u0633\u0631\u0648\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u0644\u062a\u0641\u0631\u0645 \u062a\u0648\u0633\u0639\u0647 \u0648\u0628 \u0633\u0645\u062a \u0633\u0631\u0648\u0631 \u06cc\u0627 backend \u0634\u0646\u0627\u062e\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f (\u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u0627\u0635\u0637\u0644\u0627\u062d\u0627\u064b front end \u0645\u06cc\u200c\u06af\u0648\u06cc\u0646\u062f)<\/p>\n<p>Rails \u0627\u0632 \u06cc\u06a9 \u062f\u06cc\u062f \u0628\u0627\u0644\u0627\u062a\u0631\u060c \u0686\u06cc\u0632\u06cc \u0628\u06cc\u0634 \u0627\u0632 \u06cc\u06a9 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u06cc \u06cc\u0627 \u06cc\u06a9 API \u0627\u0633\u062a. Rails \u067e\u0631\u0648\u0698\u0647 \u0645\u0631\u06a9\u0632\u06cc \u06cc\u06a9 \u062c\u0627\u0645\u0639\u0647 \u06af\u0633\u062a\u0631\u062f\u0647\u200c\u0627\u06cc \u0627\u0633\u062a \u06a9\u0647 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647\u200c\u0647\u0627\u06cc \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u06cc \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0648 \u0627\u0632 \u0627\u06cc\u0646 \u0637\u0631\u06cc\u0642 \u06a9\u0627\u0631 \u0633\u0627\u062e\u062a\u0646 \u0648\u0628\u200c\u0633\u0627\u06cc\u062a\u200c\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0631\u0627 \u0622\u0633\u0627\u0646 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/p>\n<p>\u0627\u0639\u0636\u0627\u06cc \u062c\u0627\u0645\u0639\u0647 Rails \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0627\u0631\u0632\u0634\u200c\u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u0631\u0627 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0645\u06cc\u200c\u06af\u0630\u0627\u0631\u0646\u062f\u060c \u0627\u063a\u0644\u0628 \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u06cc\u06a9\u0633\u0627\u0646\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0648 \u0628\u0627 \u06cc\u06a9 \u0634\u0628\u06a9\u0647 \u063a\u06cc\u0631\u0631\u0633\u0645\u06cc \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0641\u0639\u0627\u0644\u06cc\u062a\u200c\u0647\u0627\u06cc \u062f\u0627\u0648\u0637\u0644\u0628\u0627\u0646\u0647 \u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647\u060c \u0627\u0632 \u06cc\u06a9\u062f\u06cc\u06af\u0631 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f. \u0627\u06cc\u0646 \u062c\u0627\u0645\u0639\u0647 \u063a\u06cc\u0631\u0631\u0633\u0645\u06cc \u0627\u0632 \u06cc\u06a9 \u0634\u0628\u06a9\u0647 \u0627\u0642\u062a\u0635\u0627\u062f\u06cc \u06a9\u0647 \u0634\u0627\u0645\u0644 \u0645\u0634\u0627\u063a\u0644\u060c \u0634\u0631\u06a9\u062a\u200c\u0647\u0627\u06cc \u0645\u0634\u0627\u0648\u0631\u0647\u200c\u0627\u06cc\u060c \u06a9\u0646\u0641\u0631\u0627\u0646\u0633\u200c\u0647\u0627 \u0648 \u06a9\u0633\u0628\u200c\u0648\u06a9\u0627\u0631\u0647\u0627 \u0648 \u0633\u0631\u0645\u0627\u06cc\u0647\u200c\u06af\u0630\u0627\u0631\u0627\u0646\u06cc \u06a9\u0647 \u0647\u0632\u06cc\u0646\u0647\u200c\u0647\u0627\u06cc \u06cc\u06a9 \u0627\u0633\u062a\u0627\u0631\u062a\u200c\u0622\u067e \u0631\u0627 \u062a\u0623\u0645\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f\u060c \u062a\u0634\u06a9\u06cc\u0644 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f.<\/p>\n<p>Rails \u062f\u0631 \u0645\u06cc\u0627\u0646 \u0634\u0631\u06a9\u062a\u200c\u0647\u0627\u06cc \u0646\u0648\u067e\u0627 \u0628\u0633\u06cc\u0627\u0631 \u0645\u062d\u0628\u0648\u0628 \u0627\u0633\u062a. \u0628\u0647 \u0627\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u06a9 \u0634\u0627\u0645\u0644 \u0645\u062c\u0645\u0648\u0639\u0647\u200c\u0627\u06cc \u0627\u0632 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u0647\u0627\u06cc \u0645\u062a\u0646\u200c\u0628\u0627\u0632 (RubyGem \u06cc\u0627 Gem) \u0627\u0633\u062a \u06a9\u0647 \u0627\u0645\u06a9\u0627\u0646 \u0633\u0627\u062e\u062a \u0633\u0631\u06cc\u0639 \u0633\u0627\u06cc\u062a\u200c\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f<\/p>\n<p>&nbsp;<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%d8%a2%db%8c%d8%a7_rails_%d8%a8%d8%b1%d8%a7%db%8c_%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87%e2%80%8e%d9%86%d9%88%db%8c%d8%b3%d8%a7%d9%86_%d8%aa%d8%a7%d8%b2%d9%87%e2%80%8e%da%a9%d8%a7%d8%b1_%d9%85%d9%86%d8%a7%d8%b3%d8%a8_%d8%a7%d8%b3%d8%aa_%d8%9f\"><\/span>\u0622\u06cc\u0627 Rails \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647\u200e\u0646\u0648\u06cc\u0633\u0627\u0646 \u062a\u0627\u0632\u0647\u200e\u06a9\u0627\u0631 \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a\u00a0 \u061f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>While HTML and CSS (markup languages used to define the parts of webpages and to adjust colors, fonts, etc.) are often pointed to as gateways for becoming a web developer, where does that leave web frameworks like Rails? Is Rails something to tackle only after you\u2019re deep in the throes of tech skills, or is it something that\u2019s in reach for a beginning web developer, too?<\/p>\n<p>According to Laura B\u00e2rl\u0103deanu, Tech Lead at mind mapping software company\u00a0MindMeister, Rails is actually very beginner friendly. In fact, B\u00e2rl\u0103deanu says, Rails is SO beginner friendly that she and other program organizers are able to teach women and girls who\u2019ve never programmed before how to use Rails in only one day during\u00a0Rails Girls\u00a0workshops. Rails Girls is a global, non-profit volunteer community dedicated to helping women understand technology, and the entire enterprise was founded on the back of Rails as an instructional tool. \u201cI\u2019ve coached at several of these events, and I can safely say that Rails is a very suitable framework to learn as an entry into programming,\u201d B\u00e2rl\u0103deanu says.<\/p>\n<p>However, to talk about Rails and its relevance for beginners, it\u2019s important to take a step back and understand that it\u2019s not just the Rails framework that\u2019s beginner friendly, but the Ruby language it\u2019s built on as well. \u201cRails IS Ruby,\u201d B\u00e2rl\u0103deanu says, \u201cor it at least exists on top of Ruby.\u201d According to B\u00e2rl\u0103deanu, this means that understanding Rails will involve learning at least some parts of the Ruby programming language\u2014though nothing beyond basic concepts and syntax. \u201cRuby is a\u00a0scripting language\u00a0that has more applications than using it through Rails,\u201d B\u00e2rl\u0103deanu says. \u201cFor instance, Ruby developers can use it to write a script that moves all your music files that have the name of your favorite band into a folder with that band\u2019s name.\u201d B\u00e2rl\u0103deanu says to think of the Ruby language like flour\u2014you can use it to make bread (or Rails), but also pizza, shortbread, etc.<\/p>\n<p>Thomas reiterates that the Ruby language itself\u2014and not just the Rails web framework\u2014is a solid choice as a beginning coding language. \u201cIt\u2019s what I started with!\u201d says Thomas. \u201cIt\u2019s easy to read and does a lot of the work for you. Other languages,\u00a0like C, require a lot more code to do something you can accomplish in a few lines with Ruby.\u201d While Thomas says this isn\u2019t without some drawbacks\u2014more complicated programming languages ultimately offer more options and control\u2014it works out well for someone just getting started with web development. Thomas also says that Ruby is more than capable of carrying you through to an intermediate level of programming. \u201cI\u2019ve been using Ruby and Rails for three years now, and I don\u2019t see myself stopping any time soon,\u201d Thomas says. \u201cRails is like an extension of Ruby\u2014once you\u2019ve learned Ruby basics you can start to learn Ruby on Rails.\u201d<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%da%86%d9%87_%da%86%db%8c%d8%b2%db%8c_%d8%b1%d9%88%d8%a8%db%8c_%d8%b1%d8%a7_%d8%a7%d8%b2_%d8%af%db%8c%da%af%d8%b1_%d8%b2%d8%a8%d8%a7%d9%86_%d9%87%d8%a7%db%8c_%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87_%d9%86%d9%88%db%8c%d8%b3%db%8c_%d9%88_%d9%81%d8%b1%db%8c%d9%85%e2%80%8e%d9%88%d8%b1%da%a9_%d9%87%d8%a7_%d9%85%d8%aa%d9%81%d8%a7%d9%88%d8%aa_%da%a9%d8%b1%d8%af%d9%87%d8%a7%d8%b3%d8%aa_%d8%9f\"><\/span>\u0686\u0647 \u0686\u06cc\u0632\u06cc \u0631\u0648\u0628\u06cc \u0631\u0627 \u0627\u0632 \u062f\u06cc\u06af\u0631 \u0632\u0628\u0627\u0646 \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0648 \u0641\u0631\u06cc\u0645\u200e\u0648\u0631\u06a9 \u0647\u0627 \u0645\u062a\u0641\u0627\u0648\u062a \u06a9\u0631\u062f\u0647\u0627\u0633\u062a \u061f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>So we know that Rails is a framework that lets Rails developers harness the Ruby language for developing websites, and both Ruby and Rails are good skills to learn for tech beginners, but what exactly sets Ruby and Rails apart from other programming languages and web frameworks? Why would someone use Rails to build a web app instead of HTML, or CSS, or JavaScript?<\/p>\n<p>Sokolyk says one of Ruby\u2019s key characteristics is that it\u2019s an\u00a0object-oriented programming\u00a0language. Unlike some languages that function by giving a computer a list of tasks to execute, an object-oriented programming language lets a developer create virtual objects in their code. Each object can have its own specific attributes and abilities and can interact with other objects to perform actions. Groups of objects can then be given instructions based on those attributes and how they relate to one another. If you think of objects like virtual building blocks, a group of A blocks can be used to build a tower, while a group of B blocks can be instructed to create steps leading to the top of the tower. An object-oriented language makes development less complex by giving programmers structures to work with that resemble building in the real world. Objects can also be easily reused in future programs.<\/p>\n<p>To give an example of what programming with Ruby looks like, compare writing a simple function in Ruby with writing the same function with\u00a0PHP\u00a0(another scripting language that can be used for similar functions as Ruby).<\/p>\n<p>To print the worlds Hello World on a web browser screen in PHP you would need to write:<\/p>\n<p>echo \u201cHello World\u201d;<\/p>\n<p>Notice the non-intuitive use of a semicolon and the command \u201cecho.\u201d<\/p>\n<p>On the other hand, to do the same thing with Ruby you would simply write is<\/p>\n<p>puts \u201cHello World\u201d<\/p>\n<p>Ruby lacks the extraneous semicolon, and uses the more spoken-language-like \u201cputs\u201d command. Extrapolate this small example into hours a day writing code with increasingly longer and complex functions, and you can see how the Ruby interface can save time and boost efficiency.<\/p>\n<p>Where Rails comes into play is that if you were to simply write \u201cputs \u201cHello World\u201d\u201d in an HTML document, if would show up exactly as written in a web browser. Rails provides the framework for entering these Ruby commands into the code of a website or web application.<\/p>\n<p>Finally, where Ruby and Rails really differentiate themselves from other web development languages (HTML, CSS, JavaScript, etc.) is that HTML, CSS, and JavaScript all define and control the \u201cfront end\u201d aspects of websites and web apps\u2014the things a user sees and interacts with through their web browser. Meanwhile, Ruby on Rails works on the back end of websites and apps to request and fetch\u00a0data\u00a0from databases and to display data that contains HTML, CSS, and JavaScript content.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"what_are_some_ways_to_learn_ruby_on_rails_and_how_long_should_you_expect_it_to_take\"><\/span>What Are Some Ways to Learn Ruby on Rails and How Long Should You Expect it to Take?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>When it comes to learning Ruby on Rails, you can start picking up skills from the usual suspects\u2014you can take a free Ruby on Rails tutorial from sites like\u00a0Udemy\u00a0and\u00a0Code Academy, enroll in a\u00a0paid online class\u00a0with instructor support, or learn tips from forums on programming sites like\u00a0Stack Overflow. Because of Rails\u2019 strong community support, there are also dedicated Rails organizations (like Rails Girls mentioned above, and\u00a0RailsBridge) that offer Rails classes, meetups, and workshops. Sokolyk says that she learned Rails through courses organized by RubyGarage, the company she now works for. This led to an internship after she graduated, and eventually a full-time position as part of their web development team. Meanwhile, Thomas learned Ruby and Rails by attending a three-month long bootcamp program with two instructors and about 20 other students. Thomas worked as a TA at the bootcamp after she completed the program, and says that teaching helped solidify what she learned.<\/p>\n<p>As far as how long you should expect the Rails learning process to take? When it comes to nailing down the basics you can expect a relatively short learning curve. B\u00e2rl\u0103deanu wrote her first lines of code in Rails on her first day of working with the framework and was able to build a Rails application after one month, while Kaur says it took her about five days to familiarize herself with Rails to the point where she could make a simple web app. However, once you have the basics handled, Thomas says working with Ruby and Rails will be a constant learning process. \u201cI still learn things I didn\u2019t know, and that\u2019s half the fun,\u201d says Thomas.<\/p>\n<p>The takeaway? Ruby on Rails is a powerful web development tool that adds a back end dimension to front end skills like HTML, CSS, and JavaScript. While Rails is a crucial skill to add if you already have tech skills, it\u2019s also user-friendly enough to be a totally manageable entry point into programming and web development.<\/p>\n<p>&nbsp;<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-center kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;center&quot;,&quot;id&quot;:&quot;3857&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;17&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;4.5&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;5&quot;,&quot;greet&quot;:&quot;\u0627\u0645\u062a\u06cc\u0627\u0632 \u0634\u0645\u0627 \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0637\u0644\u0628&quot;,&quot;legend&quot;:&quot;4.5\\\/5 (17 \u0631\u0627\u06cc)&quot;,&quot;size&quot;:&quot;30&quot;,&quot;title&quot;:&quot;Ruby on Rails ( \u0631\u0648\u0628\u06cc \u0622\u0646 \u0631\u06cc\u0644\u0632 )\u200c \u06cc\u0627 RoR \u0686\u06cc\u0633\u062a\u061f&quot;,&quot;width&quot;:&quot;155&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} ({count} \u0631\u0627\u06cc)&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 155px;\">\n            <div class=\"kksr-star\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 24px;\">\n            4.5\/5 (17 \u0631\u0627\u06cc)    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">\u0632\u0645\u0627\u0646 \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0645\u0637\u0627\u0644\u0639\u0647: <\/span> <span class=\"rt-time\"> 9<\/span> <span class=\"rt-label rt-postfix\">\u062f\u0642\u06cc\u0642\u0647<\/span><\/span>ruby on rails \u062f\u0631 \u0648\u0627\u0642\u0639\u00a0\u06cc\u06a9 \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 \u0648\u0628\u200c\u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0634\u0627\u0645\u0644 \u0647\u0645\u0647 \u0645\u0648\u0627\u0631\u062f \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u062a\u062d\u062a \u0648\u0628 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0631 \u0627\u0633\u0627\u0633 Model-View-Controller \u0627\u0633\u062a.<\/p>\n","protected":false},"author":6,"featured_media":3861,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[206,620],"tags":[931,930,932,927,929,928],"class_list":["post-3857","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development","category-programming","tag-rails","tag-ruby","tag-932","tag-927","tag-929","tag-928"],"acf":[],"_links":{"self":[{"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/posts\/3857","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/comments?post=3857"}],"version-history":[{"count":0,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/posts\/3857\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/media\/3861"}],"wp:attachment":[{"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/media?parent=3857"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/categories?post=3857"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/tags?post=3857"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}