Mais conteúdo relacionado Semelhante a Ruby/Rails (20) Ruby/Rails7. Ruby on Rails
Ruby on Rails е framework
за уеб приложения.
Неготово мото е:
“Web development doesn’t hurt”
8. Ruby
Създаден от японеца Юкихиро
Мацумото „Мац“.
Първата публична версия излиза
през 1995.
Версия 2.0 се очакава да излезе за
Коледа / не се казва коя /
10. class System {
// ... code ...
private $_categories = null;
public function getVisibleCategories() {
if ($this->_categories === null) {
$this->_categories = $this->findCategories(array(
'visible' => true
));
}
return $this->_categories;
}
}
11. class System
# ... code ...
def visible_categories()
return @categories ||= self.find_categories({:visible => t
end
end
12. class System
# ... code ...
def visible_categories()
return @categories ||= self.find_categories({:visible => t
end
end
13. class System
# ... code ...
def visible_categories
return @categories ||= self.find_categories({:visible => t
end
end
14. class System
# ... code ...
def visible_categories
return @categories ||= self.find_categories({:visible => t
end
end
15. class System
# ... code ...
def visible_categories
return @categories ||= self.find_categories({:visible => t
end
end
16. class System
# ... code ...
def visible_categories
@categories ||= self.find_categories({:visible => true})
end
end
17. class System
# ... code ...
def visible_categories
@categories ||= self.find_categories({:visible => true})
end
end
18. class System
# ... code ...
def visible_categories
@categories ||= self.find_categories({:visible => true})
end
end
19. class System
# ... code ...
def visible_categories
@categories ||= self.find_categories({:visible => true})
end
end
20. class System
# ... code ...
def visible_categories
@categories ||= find_categories({:visible => true})
end
end
21. class System
# ... code ...
def visible_categories
@categories ||= find_categories({:visible => true})
end
end
22. class System
# ... code ...
def visible_categories
@categories ||= find_categories :visible => true
end
end
26. [1,2,3,4].each { |value| puts value }
# => [1, 2, 3, 4]
[1,2,3,4].map { |value| value * value }
# => [1, 4, 9, 16]
[1,2,3,4].reduce { |a, b| a + b }
# => 10
[1,2] * 3
# => [1, 2, 1, 2, 1, 2]
28. class Person
attr_accessor :fist_name, :last_name
def initialize(first_name, last_name)
@first_name = first_name
@last_name = last_name
end
def full_name
first_name + " " + last_name
end
end
me = Person.new("Radoslav", "Stankov")
puts me.full_name # Radoslav Stankov
29. class Person
attr_accessor :fist_name, :last_name
def initialize(first_name, last_name)
@first_name = first_name
@last_name = last_name
end
def full_name
first_name + " " + last_name
end
end
me = Person.new("Radoslav", "Stankov")
puts me.full_name # Radoslav Stankov
30. class Person
attr_accessor :fist_name, :last_name
def initialize(first_name, last_name)
@first_name = first_name
@last_name = last_name
end
def full_name
first_name + " " + last_name
end
end
me = Person.new("Radoslav", "Stankov")
puts me.full_name # Radoslav Stankov
31. class Person
attr_accessor :fist_name, :last_name
def initialize(first_name, last_name)
@first_name = first_name
@last_name = last_name
end
def full_name
first_name + " " + last_name
end
end
me = Person.new("Radoslav", "Stankov")
puts me.full_name # Radoslav Stankov
32. class Person
attr_accessor :fist_name, :last_name
def initialize(first_name, last_name)
@first_name = first_name
@last_name = last_name
end
def full_name
first_name + " " + last_name
end
end
me = Person.new("Radoslav", "Stankov")
puts me.full_name # Radoslav Stankov
33. class Person
def +(other_person)
# ...
end
end
person1 + person2
34. class Array
def first
self[0]
end
def second
self[1]
end
end
array = [1, 2, 3, 4]
array.first # 1
array.second # 2
37. Ruby
• димично определяне на типа данните
• модули
• отворени класове
• блокове
• анонимни функции
• всяка операция връща резултат
• всичко е изпълним код
• изчистен синтаксис
• мета програмиране
• промяна на обектите по време на изпълнение
• вградени регулярни изрази
44. Ruby on Rails
Разработен от David
Heinemeier Hansson от 37
Signals.
Първата публична версия е
излиза през юли 2004.
Вървим бавно, но сигурно
към 3.1
56. Основни принципи на
Ruby on Rails
• Convention over Configuration
• DRY - Don’t Repeat Yourself
• KISS - Keep it simple, Stupid!
• Skinny Controller, Fat Model
• Тest Driven Development / Behavior Driven Development
• Less is More
• Code Generation
• REST
57. Основни принципи на
Ruby on Rails
• Convention over Configuration
• DRY - Don’t Repeat Yourself
• KISS - Keep it simple, Stupid!
• Skinny Controller, Fat Model
• Тest Driven Development / Behavior Driven Development
• Less is More
• Code Generation
• REST
N !
VE FU
HA
60. REST
Method Path Controller Action
GET /tasks tasks index
GET /tasks/new tasks new
POST /tasks tasks create
GET /tasks/:id tasks show
GET /tasks/:id/edit tasks edit
PUT /tasks/:id tasks update
DELETE /tasks/:id tasks delete
61. Url формати
Method Path Shows Action
GET /tasks/1 html show
GET /tasks/1.xml xml show
GET /tasks/1.json json show
GET /tasks/1.print html show
PUT /tasks/1 redirect update
PUT(xhr) /tasks/1 html/js update
PUT /tasks/1.json json update
81. Model
class Task < ActiveRecord::Base
belongs_to :user
has_many :comments
validates_presence_of :user, :text
validates_inclusion_of :status, :in => ["opened", "completed"]
attr_readonly :user_id
def editable?
status == "opened"
end
end
82. Model
class Task < ActiveRecord::Base
belongs_to :user
has_many :comments
validates_presence_of :user, :text
validates_inclusion_of :status, :in => ["opened", "completed"]
attr_readonly :user_id
def editable?
status == "opened"
end
end
83. Model
class Task < ActiveRecord::Base
belongs_to :user
has_many :comments
validates_presence_of :user, :text
validates_inclusion_of :status, :in => ["opened", "completed"]
attr_readonly :user_id
def editable?
status == "opened"
end
end
84. Model
class Task < ActiveRecord::Base
belongs_to :user
has_many :comments
validates_presence_of :user, :text
validates_inclusion_of :status, :in => ["opened", "completed"]
attr_readonly :user_id
def editable?
status == "opened"
end
end
85. Model
class Task < ActiveRecord::Base
belongs_to :user
has_many :comments
validates_presence_of :user, :text
validates_inclusion_of :status, :in => ["opened", "completed"]
attr_readonly :user_id
def editable?
status == "opened"
end
end
86. Controller
class TasksController < ApplicationController
before_filter :require_user
def index
@tasks = Task.where(:status => "opened")
end
def show
@task = Task.find(params[:id])
end
def create
@task = current_user.tasks.build(params[:task])
if @task.save
redirect_to tasks_path
else
render :partial => "new"
end
end
end
87. Controller
class TasksController < ApplicationController
before_filter :require_user
def index
@tasks = Task.where(:status => "opened")
end
def show
@task = Task.find(params[:id])
end
def create
@task = current_user.tasks.build(params[:task])
if @task.save
redirect_to tasks_path
else
render :partial => "new"
end
end
end
88. Controller
class TasksController < ApplicationController
before_filter :require_user
def index
@tasks = Task.where(:status => "opened")
end
def show
@task = Task.find(params[:id])
end
def create
@task = current_user.tasks.build(params[:task])
if @task.save
redirect_to tasks_path
else
render :partial => "new"
end
end
end
89. Controller
class TasksController < ApplicationController
before_filter :require_user
def index
@tasks = Task.where(:status => "opened")
end
def show
@task = Task.find(params[:id])
end
def create
@task = current_user.tasks.build(params[:task])
if @task.save
redirect_to tasks_path
else
render :partial => "new"
end
end
end
90. Controller
class TasksController < ApplicationController
before_filter :require_user
def index
@tasks = Task.where(:status => "opened")
end
def show
@task = Task.find(params[:id])
end
def create
@task = current_user.tasks.build(params[:task])
if @task.save
redirect_to tasks_path
else
render :partial => "new"
end
end
end
91. View
<%= form_for task do |form| %>
<%= render 'shared/error_messages', :target => form.object
%>
<p>
<%= form.label :text %>
<%= form.text_area :text %>
</p>
<p>
<%= form.label :status %>
<%= form.select :status, Task.statuses %>
</p>
<div class="buttons">
<%= form.submit %> |
<% link_to "Cancel", tasks_path %>
</div>
<% end %>
92. View + simple_form / slim
= simple_form_for task do |form|
= form.error_banner
= form.input :text
= form.input :status, :collection => Task.statuses
.buttons
= form.submit
= link_to 'Cancel', tasks_path
96. Test Driven Development
1 Добавя се тест
... за несъществуващ код
2 Пише се код
... колкото само тестът да мине
3 Правят се подобрения
... подобрява се качеството на кода
97. Test Driven Development
1 Добавя се тест
... за несъществуващ код
2 Пише се код
... колкото само тестът да мине
3 Правят се подобрения
... подобрява се качеството на кода
98. Cucumber feature
Feature: Tasks
In order to get more productive and organize
As a user
I want able to manage my tasks
Scenario: Adding tasks
Given I am on the tasks page
When I follow "New task"
And I fill in "Text" with "Present Ruby"
And I select "opened" from "Status"
And I press "Create task"
Then I should have opened task "Present Ruby"
Scenario: Completing tasks
Given I am on the tasks page
And I have opened task "Present Ruby"
When I follow "Edit tasks"
And I select "completed" from "Status"
And I press "Update task"
Then I should have completed task "Present Ruby"
99. Тесване на Controller
describe TasksController do
describe "GET 'show'" do
before { Task.should_recive(:find).with("1").and_return task }
before { get :show, :id => "1" }
it { should assign_to(:task).with(task) }
it { should render_temlate("show") }
end
end
100. describe Task do
it { should belong_to(:user) }
it { should have_many(:notes) }
it { should validate_presence_of(:user) }
it { should validate_presence_of(:text) }
describe "#editable?" do
it "returns true if task status is 'opened'" do
Task.new(:status => "opened").should be_editable
end
it "returns false if task status is 'rejected'" do
Task.new(:status => "rejected").should_not be_editable
end
it "returns false if task status is 'completed" do
Task.new(:status => "completed").should_not be_editable
end
end
end
101. Тестване на View
describe "tasks/show.html.erb" do
before do
assign :task, mock_model(Task, {
:id => 1,
:text => "task text"
})
render
end
it "renders task text" do
rendered.should contain("task text")
end
it "renders link for editing task" do
rendered.should have_selector('a[href="/tasks/1/edit"]')
end
end
102. ... и още, и още
• database migrations
• gem dependency management
• css/javascript management (from Rails 3.1)
• nested forms
• automatic deploys
• Rack
• generations
• send/receive mails
• caching
• internalization (i18n)
• Ruby language extentions
• a LOT plugins, tools and services
• ... и т.н.
103. Погрешни схващания
• Rails CAN'T SCALE
• Rails is SLOW!!!!
• Hard to deploy
• Too much magic
• Hard to learn every thing
• Impossible to extend rails!
• No good IDE
• Bad windows support
• Documentation
104. Погрешни схващания
• Rails CAN'T SCALE
• Rails is SLOW!!!!
• Hard to deploy
• Too much magic
• Hard to learn every thing
• Impossible to extend rails!
• No good IDE
• Bad windows support
• Documentation
105. Погрешни схващания
• Rails CAN'T SCALE
• Rails is SLOW!!!!
• Hard to deploy
• Too much magic
• Hard to learn every thing
• Impossible to extend rails!
• No good IDE
• Bad windows support
• Documentation
106. Погрешни схващания
• Rails CAN'T SCALE
• Rails is SLOW!!!!
• Hard to deploy
• Too much magic
• Hard to learn every thing
• Impossible to extend rails!
• No good IDE
• Bad windows support
• Documentation
107. Погрешни схващания
• Rails CAN'T SCALE
• Rails is SLOW!!!!
• Hard to deploy
• Too much magic
• Hard to learn every thing
• Impossible to extend rails!
• No good IDE
• Bad windows support
• Documentation
108. Погрешни схващания
• Rails CAN'T SCALE
• Rails is SLOW!!!!
• Hard to deploy
• Too much magic
• Hard to learn every thing
• Impossible to extend rails!
• No good IDE
• Bad windows support
• Documentation
109. Погрешни схващания
• Rails CAN'T SCALE
• Rails is SLOW!!!!
• Hard to deploy
• Too much magic
• Hard to learn every thing
• Impossible to extend rails!
• No good IDE
• Bad windows support
• Documentation
110. Погрешни схващания
• Rails CAN'T SCALE
• Rails is SLOW!!!!
• Hard to deploy
• Too much magic
• Hard to learn every thing
• Impossible to extend rails!
• No good IDE
• Bad windows support
• Documentation
111. Погрешни схващания
• Rails CAN'T SCALE
• Rails is SLOW!!!!
• Hard to deploy
• Too much magic
• Hard to learn every thing
• Impossible to extend rails!
• No good IDE
• Bad windows support
• Documentation
Notas do Editor \n \n \n \n \n Ruby &#x435; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x43F;&#x440;&#x435;&#x442;&#x438;&#x440;&#x443;&#x435;&#x43C;, &#x438;&#x43D;&#x442;&#x435;&#x440;&#x430;&#x43A;&#x442;&#x438;&#x432;&#x435;&#x43D;, &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x43D;&#x43E;-&#x43E;&#x440;&#x438;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x430;&#x43D; &#x435;&#x437;&#x438;&#x43A; &#x437;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x440;&#x430;&#x43D;&#x435;. &#x422;&#x43E;&#x439; &#x43A;&#x43E;&#x43C;&#x431;&#x438;&#x43D;&#x438;&#x440;&#x430; &#x447;&#x435;&#x440;&#x442;&#x438; &#x43E;&#x442; &#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x434;&#x440;&#x443;&#x433;&#x438; &#x435;&#x437;&#x438;&#x446;&#x438;, &#x441;&#x440;&#x435;&#x434; &#x43A;&#x43E;&#x438;&#x442;&#x43E; Smalltalk, Perl, Lisp &#x438; Python.\n\n &#x422;&#x43E;&#x439; &#x435; framework &#x437;&#x430; &#x443;&#x435;&#x431; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F;. &#x427;&#x438;&#x44F;&#x442;&#x43E; &#x446;&#x435;&#x43B; &#x435; &#x434;&#x430; &#x443;&#x43B;&#x435;&#x441;&#x43D;&#x438; &#x438; &#x443;&#x441;&#x43A;&#x43E;&#x440;&#x438; &#x43D;&#x430;&#x447;&#x438;&#x43D;&#x430; &#x43D;&#x430; &#x440;&#x430;&#x437;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x432;&#x430;&#x43D;&#x435; &#x43D;&#x430; &#x443;&#x435;&#x431; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x44F;.\n\n &#x422;&#x43E;&#x439; &#x435; &#x441;&#x44A;&#x437;&#x434;&#x430;&#x434;&#x435;&#x43D; &#x43E;&#x442; &#x44F;&#x43F;&#x43E;&#x43D;&#x435;&#x446;&#x430; &#x42E;&#x43A;&#x438;&#x445;&#x438;&#x440;&#x43E; &#x41C;&#x430;&#x446;&#x443;&#x43C;&#x43E;&#x442;&#x43E; &#x201E;&#x41C;&#x430;&#x446;&#x201C;. &#x41A;&#x430;&#x442;&#x43E; &#x43F;&#x440;&#x435;&#x437; 1995 &#x438;&#x437;&#x43B;&#x438;&#x437;&#x430; &#x43F;&#x44A;&#x440;&#x432;&#x430;&#x442;&#x430; &#x432;&#x435;&#x440;&#x441;&#x438;&#x44F; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430;. &#xA0;&#x41C;&#x43E;&#x442;&#x43E;&#x442;&#x43E; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x435; &#xA0;&#x201E;&#x41E;&#x43F;&#x442;&#x438;&#x43C;&#x438;&#x437;&#x438;&#x440;&#x430;&#x43D; &#x437;&#x430; &#x449;&#x430;&#x441;&#x442;&#x438;&#x435;&#x442;&#x43E; &#x43D;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x441;&#x442;&#x430;&#x201D;\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n &#x421;&#x442;&#x440;&#x435;&#x43C;&#x435;&#x436;&#x44A;&#x442; &#x43D;&#x430; Ruby &#x435; &#x434;&#x430; &#x441;&#x43B;&#x435;&#x434;&#x432;&#x430; &#x43F;&#x440;&#x438;&#x43D;&#x446;&#x438;&#x43F;&#x430; &#x43D;&#x430; &#x43D;&#x430;&#x439;-&#x43C;&#x430;&#x43B;&#x43A;&#x430; &#x438;&#x437;&#x43D;&#x435;&#x43D;&#x430;&#x434;&#x430;. &#x422;&#x43E;&#x432;&#x430; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x432;&#x430;, &#x447;&#x435; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435;&#x442;&#x43E; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x442;&#x440;&#x44F;&#x431;&#x432;&#x430; &#x434;&#x430; &#x435; &#x438;&#x43D;&#x442;&#x443;&#x438;&#x442;&#x438;&#x432;&#x43D;&#x43E; &#x438; &#x442;&#x43E;&#x439; &#x434;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x438; &#x442;&#x430;&#x43A;&#x430;, &#x43A;&#x430;&#x43A;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x441;&#x442;&#x44A;&#x442; &#x431;&#x438; &#x43E;&#x447;&#x430;&#x43A;&#x432;&#x430;&#x43B;.\nRuby &#x435; &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x43D;&#x43E;-&#x43E;&#x440;&#x438;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x430;&#x43D;: &#x432;&#x441;&#x435;&#x43A;&#x438; &#x442;&#x438;&#x43F; &#x434;&#x430;&#x43D;&#x43D;&#x438; &#x435; &#x43E;&#x431;&#x435;&#x43A;&#x442;, &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;, &#x447;&#x438;&#x441;&#x43B;&#x430;, &#x431;&#x443;&#x43B;&#x435;&#x432;&#x438; &#x441;&#x442;&#x43E;&#x439;&#x43D;&#x43E;&#x441;&#x442;&#x438;, &#x43A;&#x43E;&#x438;&#x442;&#x43E; &#x432; &#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x434;&#x440;&#x443;&#x433;&#x438; &#x435;&#x437;&#x438;&#x446;&#x438; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x442; &#x43A;&#x430;&#x442;&#x43E; &#x43F;&#x440;&#x438;&#x43C;&#x438;&#x442;&#x438;&#x432;&#x438;, &#x430; &#x43D;&#x435; &#x43A;&#x430;&#x442;&#x43E; &#x440;&#x435;&#x430;&#x43B;&#x43D;&#x438; &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x438;.\n\n&#x41D;&#x44F;&#x43A;&#x43E;&#x438; &#x43E;&#x442; &#x43D;&#x430;&#x439;-&#x432;&#x430;&#x436;&#x43D;&#x438;&#x442;&#x435; &#x445;&#x430;&#x440;&#x430;&#x43A;&#x442;&#x435;&#x440;&#x438;&#x441;&#x442;&#x438;&#x43A;&#x438; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x441;&#x430;: \n&#x434;&#x438;&#x43C;&#x438;&#x447;&#x43D;&#x43E; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x43D;&#x435; &#x43D;&#x430; &#x442;&#x438;&#x43F;&#x430; &#x434;&#x430;&#x43D;&#x43D;&#x438;&#x442;&#x435;\n&#x43C;&#x43E;&#x434;&#x443;&#x43B;&#x438; - &#x201C;&#x432;&#x44A;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442; &#x435;&#x434;&#x438;&#x43D; &#x43C;&#x43E;&#x434;&#x443;&#x43B; &#x434;&#x430; &#x441;&#x435; &#x432;&#x433;&#x440;&#x430;&#x436;&#x434;&#x430; &#x432; &#x43C;&#x43D;&#x43E;&#x436;&#x435;&#x441;&#x442;&#x432;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;, &#x43A;&#x430;&#x442;&#x43E; &#x442;&#x430;&#x43A;&#x430; &#x441;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x438;&#x433;&#x430; &#x43C;&#x43D;&#x43E;&#x436;&#x435;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43E; &#x43D;&#x430;&#x441;&#x43B;&#x435;&#x434;&#x44F;&#x432;&#x430;&#x43D;&#x435;&#x201D;\n&#x43E;&#x442;&#x432;&#x43E;&#x440;&#x435;&#x43D;&#x438; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435; - &#x201C;&#x43A;&#x44A;&#x43C; &#x432;&#x441;&#x435;&#x43A;&#x438; &#x43A;&#x43B;&#x430;&#x441; &#x43C;&#x43E;&#x433;&#x430;&#x442; &#x434;&#x430; &#x441;&#x435; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44F;&#x442; &#x43D;&#x43E;&#x432;&#x438; &#x430;&#x442;&#x440;&#x438;&#x431;&#x443;&#x442;&#x438; &#x438; &#x43C;&#x435;&#x442;&#x43E;&#x434;&#x438; &#x43F;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x435; &#x43D;&#x430; &#x438;&#x437;&#x43F;&#x44A;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x430;&#x442;&#x430;&#x201D;\n&#x431;&#x43B;&#x43E;&#x43A;&#x43E;&#x432;&#x435;\n&#x430;&#x43D;&#x43E;&#x43D;&#x438;&#x43C;&#x43D;&#x438; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438;\n&#x432;&#x441;&#x44F;&#x43A;&#x430; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x432;&#x440;&#x44A;&#x449;&#x430; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x442;&#x430;&#x442;\n&#x432;&#x441;&#x438;&#x447;&#x43A;&#x43E; &#x435; &#x438;&#x437;&#x43F;&#x44A;&#x43B;&#x43D;&#x438;&#x43C; &#x43A;&#x43E;&#x434; - &#x201C;&#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E; &#x438; &#x442;&#x435;&#x43B;&#x430;&#x442;&#x430; &#x43D;&#x430; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;&#x442;&#x435; &#x432; &#x43A;&#x43E;&#x439;&#x442;&#x43E; &#x43C;&#x43E;&#x436;&#x435; &#x438;&#x43C;&#x430; &#x446;&#x438;&#x43A;&#x43B;&#x438;, &#x443;&#x441;&#x43B;&#x43E;&#x432;&#x43D;&#x438; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x438; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x201D;\n&#x438;&#x437;&#x447;&#x438;&#x441;&#x442;&#x435;&#x43D; &#x441;&#x438;&#x43D;&#x442;&#x430;&#x43A;&#x441;&#x438;&#x441; - &#x201C;&#x43D;&#x435; &#x435; &#x437;&#x430;&#x434;&#x44A;&#x43B;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E;, &#x434;&#x430; &#x441;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44F;&#x442; &#x441;&#x43A;&#x43E;&#x431;&#x438;, &#x442;&#x43E;&#x447;&#x43A;&#x430; &#x438; &#x437;&#x430;&#x43F;&#x435;&#x442;&#x430;&#x44F; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x201D;\n&#x43C;&#x435;&#x442;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x440;&#x430;&#x43D;&#x435;\n&#xA0;\n\n \n \n \n \n &#x420;&#x430;&#x437;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x435;&#x43D; &#x43E;&#x442; David Heinemeier Hansson &#x43E;&#x442; 37 Signals. &#x41A;&#x430;&#x442;&#x43E; &#x435; Rails &#x435; &#x431;&#x438;&#x43B; &#x438;&#x437;&#x432;&#x43B;&#x435;&#x447;&#x435;&#x43D; &#x43E;&#x442; &#x442;&#x44F;&#x445;&#x43D;&#x43E;&#x442;&#x43E; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435; Basecamp. &#x412; &#x440;&#x430;&#x437;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;&#x43A;&#x430;&#x442;&#x430; &#x43D;&#x430; Rails &#x441;&#x430; &#x443;&#x447;&#x430;&#x441;&#x442;&#x432;&#x430;&#x43B;&#x438; &#x43D;&#x430;&#x434; 1500 &#x447;&#x43E;&#x432;&#x435;&#x43A;&#x430; &#x43A;&#x44A;&#x43C; &#x43C;&#x43E;&#x43C;&#x435;&#x43D;&#x442;&#x430;.\n\n \n \n \n \n \n \n \n \n \n &#x421;&#x442;&#x440;&#x435;&#x43C;&#x435;&#x436;&#x44A;&#x442; &#x43D;&#x430; Ruby &#x435; &#x434;&#x430; &#x441;&#x43B;&#x435;&#x434;&#x432;&#x430; &#x43F;&#x440;&#x438;&#x43D;&#x446;&#x438;&#x43F;&#x430; &#x43D;&#x430; &#x43D;&#x430;&#x439;-&#x43C;&#x430;&#x43B;&#x43A;&#x430; &#x438;&#x437;&#x43D;&#x435;&#x43D;&#x430;&#x434;&#x430;. &#x422;&#x43E;&#x432;&#x430; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x432;&#x430;, &#x447;&#x435; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435;&#x442;&#x43E; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x442;&#x440;&#x44F;&#x431;&#x432;&#x430; &#x434;&#x430; &#x435; &#x438;&#x43D;&#x442;&#x443;&#x438;&#x442;&#x438;&#x432;&#x43D;&#x43E; &#x438; &#x442;&#x43E;&#x439; &#x434;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x438; &#x442;&#x430;&#x43A;&#x430;, &#x43A;&#x430;&#x43A;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x441;&#x442;&#x44A;&#x442; &#x431;&#x438; &#x43E;&#x447;&#x430;&#x43A;&#x432;&#x430;&#x43B;.\nRuby &#x435; &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x43D;&#x43E;-&#x43E;&#x440;&#x438;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x430;&#x43D;: &#x432;&#x441;&#x435;&#x43A;&#x438; &#x442;&#x438;&#x43F; &#x434;&#x430;&#x43D;&#x43D;&#x438; &#x435; &#x43E;&#x431;&#x435;&#x43A;&#x442;, &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;, &#x447;&#x438;&#x441;&#x43B;&#x430;, &#x431;&#x443;&#x43B;&#x435;&#x432;&#x438; &#x441;&#x442;&#x43E;&#x439;&#x43D;&#x43E;&#x441;&#x442;&#x438;, &#x43A;&#x43E;&#x438;&#x442;&#x43E; &#x432; &#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x434;&#x440;&#x443;&#x433;&#x438; &#x435;&#x437;&#x438;&#x446;&#x438; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x442; &#x43A;&#x430;&#x442;&#x43E; &#x43F;&#x440;&#x438;&#x43C;&#x438;&#x442;&#x438;&#x432;&#x438;, &#x430; &#x43D;&#x435; &#x43A;&#x430;&#x442;&#x43E; &#x440;&#x435;&#x430;&#x43B;&#x43D;&#x438; &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x438;.\n\n&#x41D;&#x44F;&#x43A;&#x43E;&#x438; &#x43E;&#x442; &#x43D;&#x430;&#x439;-&#x432;&#x430;&#x436;&#x43D;&#x438;&#x442;&#x435; &#x445;&#x430;&#x440;&#x430;&#x43A;&#x442;&#x435;&#x440;&#x438;&#x441;&#x442;&#x438;&#x43A;&#x438; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x441;&#x430;: \n&#x434;&#x438;&#x43C;&#x438;&#x447;&#x43D;&#x43E; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x43D;&#x435; &#x43D;&#x430; &#x442;&#x438;&#x43F;&#x430; &#x434;&#x430;&#x43D;&#x43D;&#x438;&#x442;&#x435;\n&#x43C;&#x43E;&#x434;&#x443;&#x43B;&#x438; - &#x201C;&#x432;&#x44A;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442; &#x435;&#x434;&#x438;&#x43D; &#x43C;&#x43E;&#x434;&#x443;&#x43B; &#x434;&#x430; &#x441;&#x435; &#x432;&#x433;&#x440;&#x430;&#x436;&#x434;&#x430; &#x432; &#x43C;&#x43D;&#x43E;&#x436;&#x435;&#x441;&#x442;&#x432;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;, &#x43A;&#x430;&#x442;&#x43E; &#x442;&#x430;&#x43A;&#x430; &#x441;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x438;&#x433;&#x430; &#x43C;&#x43D;&#x43E;&#x436;&#x435;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43E; &#x43D;&#x430;&#x441;&#x43B;&#x435;&#x434;&#x44F;&#x432;&#x430;&#x43D;&#x435;&#x201D;\n&#x43E;&#x442;&#x432;&#x43E;&#x440;&#x435;&#x43D;&#x438; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435; - &#x201C;&#x43A;&#x44A;&#x43C; &#x432;&#x441;&#x435;&#x43A;&#x438; &#x43A;&#x43B;&#x430;&#x441; &#x43C;&#x43E;&#x433;&#x430;&#x442; &#x434;&#x430; &#x441;&#x435; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44F;&#x442; &#x43D;&#x43E;&#x432;&#x438; &#x430;&#x442;&#x440;&#x438;&#x431;&#x443;&#x442;&#x438; &#x438; &#x43C;&#x435;&#x442;&#x43E;&#x434;&#x438; &#x43F;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x435; &#x43D;&#x430; &#x438;&#x437;&#x43F;&#x44A;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x430;&#x442;&#x430;&#x201D;\n&#x431;&#x43B;&#x43E;&#x43A;&#x43E;&#x432;&#x435;\n&#x430;&#x43D;&#x43E;&#x43D;&#x438;&#x43C;&#x43D;&#x438; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438;\n&#x432;&#x441;&#x44F;&#x43A;&#x430; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x432;&#x440;&#x44A;&#x449;&#x430; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x442;&#x430;&#x442;\n&#x432;&#x441;&#x438;&#x447;&#x43A;&#x43E; &#x435; &#x438;&#x437;&#x43F;&#x44A;&#x43B;&#x43D;&#x438;&#x43C; &#x43A;&#x43E;&#x434; - &#x201C;&#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E; &#x438; &#x442;&#x435;&#x43B;&#x430;&#x442;&#x430; &#x43D;&#x430; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;&#x442;&#x435; &#x432; &#x43A;&#x43E;&#x439;&#x442;&#x43E; &#x43C;&#x43E;&#x436;&#x435; &#x438;&#x43C;&#x430; &#x446;&#x438;&#x43A;&#x43B;&#x438;, &#x443;&#x441;&#x43B;&#x43E;&#x432;&#x43D;&#x438; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x438; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x201D;\n&#x438;&#x437;&#x447;&#x438;&#x441;&#x442;&#x435;&#x43D; &#x441;&#x438;&#x43D;&#x442;&#x430;&#x43A;&#x441;&#x438;&#x441; - &#x201C;&#x43D;&#x435; &#x435; &#x437;&#x430;&#x434;&#x44A;&#x43B;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E;, &#x434;&#x430; &#x441;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44F;&#x442; &#x441;&#x43A;&#x43E;&#x431;&#x438;, &#x442;&#x43E;&#x447;&#x43A;&#x430; &#x438; &#x437;&#x430;&#x43F;&#x435;&#x442;&#x430;&#x44F; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x201D;\n&#x43C;&#x435;&#x442;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x440;&#x430;&#x43D;&#x435;\n&#xA0;\n\n Rails &#x438;&#x437;&#x43F;&#x43E;&#x43B;&#x437;&#x432;&#x430; Model-View-Controller &#x430;&#x440;&#x445;&#x438;&#x442;&#x435;&#x43A;&#x442;&#x443;&#x440;&#x430;. &#x427;&#x438;&#x44F;&#x442;&#x43E; &#x43E;&#x441;&#x43D;&#x43E;&#x432;&#x43D;&#x430; &#x446;&#x435;&#x43B; &#x435; &#x440;&#x430;&#x437;&#x434;&#x435;&#x43B;&#x44F;&#x43D;&#x435;&#x442;&#x43E; &#x43D;&#x430; &#x431;&#x438;&#x437;&#x43D;&#x435;&#x441; &#x43B;&#x43E;&#x433;&#x438;&#x43A;&#x430;&#x442;&#x430; &#x43E;&#x442; &#x43F;&#x43E;&#x442;&#x440;&#x435;&#x431;&#x438;&#x442;&#x435;&#x43B;&#x441;&#x43A;&#x438;&#x44F; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x444;&#x435;&#x439;&#x441;. &#x41F;&#x43E; &#x442;&#x43E;&#x437;&#x438; &#x43D;&#x430;&#x447;&#x438;&#x43D; &#x43A;&#x43E;&#x434;&#x430; &#x435; &#x43F;&#x43E;-&#x43B;&#x435;&#x441;&#x435;&#x43D; &#x437;&#x430; &#x442;&#x435;&#x441;&#x442;&#x432;&#x430;&#x43D;&#x435;, &#x43F;&#x43E;&#x434;&#x434;&#x440;&#x44A;&#x436;&#x43A;&#x430; &#x438; &#x431;&#x44A;&#x434;&#x435;&#x449;&#x430; &#x440;&#x430;&#x437;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x430;.\nModel - &#x201C;&#x43E;&#x431;&#x435;&#x434;&#x438;&#x43D;&#x44F;&#x432;&#x430; &#x431;&#x438;&#x437;&#x43D;&#x435;&#x441; &#x43B;&#x43E;&#x433;&#x438;&#x43A;&#x430;&#x442;&#x430; &#x438; &#x438;&#x43D;&#x444;&#x440;&#x430;&#x441;&#x442;&#x440;&#x443;&#x43A;&#x442;&#x443;&#x440;&#x430;&#x442;&#x430; &#x43D;&#x430; &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435;&#x442;&#x43E;. &#x41A;&#x430;&#x442;&#x43E; &#x43D;&#x430;&#x439;-&#x447;&#x435;&#x441;&#x442;&#x43E; &#x441;&#x435; &#x438;&#x437;&#x43F;&#x43E;&#x43B;&#x437;&#x432;&#x430;&#x442; ActiveRecord &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x438;, &#x447;&#x440;&#x435;&#x437; &#x43A;&#x43E;&#x438;&#x442;&#x43E; &#x441;&#x435; &#x432;&#x437;&#x430;&#x438;&#x43C;&#x43E;&#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x430; &#x441; &#x431;&#x430;&#x437;&#x430;&#x442;&#x430; &#x43E;&#x442; &#x434;&#x430;&#x43D;&#x43D;&#x438;. &#x412; Rails &#xA0;&#x43F;&#x43E;&#x447;&#x442;&#x438; &#x43D;&#x438;&#x43A;&#x43E;&#x433;&#x430; &#x43D;&#x435; &#x441;&#x435; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x438; &#x434;&#x438;&#x440;&#x435;&#x43A;&#x442;&#x43D;&#x43E; &#x441; &#x431;&#x430;&#x437;&#x430;&#x442;&#x430; &#x43E;&#x442; &#x434;&#x430;&#x43D;&#x438; &#x438; &#x441; sql &#x43A;&#x43E;&#x434;, &#x430; &#x441;&#x435; &#x43C;&#x438;&#x43D;&#x430;&#x432;&#x430; &#x43F;&#x440;&#x435;&#x437; ActiveRecord &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435;&#x201D;\nView - &#x201C;&#x43F;&#x440;&#x435;&#x434;&#x441;&#x442;&#x430;&#x432;&#x43B;&#x44F;&#x432;&#x430; &#x43F;&#x43E;&#x442;&#x440;&#x435;&#x431;&#x438;&#x442;&#x435;&#x43B;&#x441;&#x43A;&#x438;&#x44F; &#x438;&#x43D;&#x442;&#x435;&#x440;&#x444;&#x435;&#x439;&#x441;. &#x422;&#x43E;&#x432;&#x430; &#x43D;&#x430;&#x439;-&#x447;&#x435;&#x441;&#x442;&#x43E; &#x435; HTML &#x43A;&#x43E;&#x434;&#x430;&#x201D;.\nController - &#x201C;&#x441;&#x432;&#x44A;&#x440;&#x437;&#x432;&#x430; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435; &#x438; &#x438;&#x437;&#x433;&#x43B;&#x435;&#x434;&#x438;&#x442;&#x435; &#x438; &#x432;&#x440;&#x44A;&#x449;&#x430; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x442;&#x430;&#x442; &#x43D;&#x430; &#x43F;&#x43E;&#x442;&#x440;&#x435;&#x431;&#x438;&#x442;&#x435;&#x43B;&#x44F;&#x201D;.\n&#xA0;\n\n &#x41A;&#x430;&#x43A; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x438; &#x435;&#x434;&#x43D;&#x43E; Rails &#x43F;&#x440;&#x438;&#x43B;&#x43E;&#x436;&#x435;&#x43D;&#x438;&#x435;? \n&#x41F;&#x440;&#x438; &#x43F;&#x440;&#x438;&#x441;&#x442;&#x438;&#x433;&#x430;&#x43D;&#x435; &#x43D;&#x430; &#x437;&#x430;&#x43F;&#x438;&#x442;&#x432;&#x430;&#x43D;&#x435; &#x43E;&#x442; browser-&#x430;. &#xA0;&#x41F;&#x44A;&#x440;&#x432;&#x43E; &#x441;&#x435; &#x43C;&#x438;&#x43D;&#x430;&#x432;&#x430; &#x43F;&#x440;&#x435;&#x437; Routing &#x441;&#x438;&#x441;&#x442;&#x435;&#x43C;&#x430;&#x442;&#x430;, &#x43A;&#x43E;&#x44F;&#x442;&#x43E; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;, &#x43A;&#x43E;&#x439; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x435;&#x440; &#x435; &#x43E;&#x442;&#x433;&#x43E;&#x432;&#x43E;&#x440;&#x435;&#x43D; &#x437;&#x430; &#x43E;&#x431;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x430;&#x442;&#x430; &#x43D;&#x430; &#x437;&#x430;&#x43F;&#x438;&#x442;&#x432;&#x430;&#x43D;&#x435;&#x442;&#x43E;. &#x421;&#x43B;&#x435;&#x434; &#x442;&#x43E;&#x432;&#x430; &#x441;&#x44A;&#x43E;&#x442;&#x432;&#x435;&#x442;&#x43D;&#x438;&#x44F; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x435;&#x440; &#x432;&#x437;&#x430;&#x438;&#x43C;&#x43E;&#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x430; &#x441; &#x431;&#x438;&#x437;&#x43D;&#x435;&#x441; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435;.\n&#x41A;&#x43E;&#x438;&#x442;&#x43E; &#x441;&#x430; &#x43D;&#x430;&#x439;-&#x447;&#x435;&#x441;&#x442;&#x43E; &#x441;&#x430; ActiveRecord &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x438;, &#x43A;&#x43E;&#x438;&#x442;&#x43E; &#x441;&#x438; &#x432;&#x437;&#x430;&#x438;&#x43C;&#x43E;&#x434;&#x435;&#x439;&#x441;&#x442;&#x432;&#x430;&#x442; &#x441; &#x431;&#x430;&#x437;&#x430;&#x442;&#x430; &#x43E;&#x442; &#x434;&#x430;&#x43D;&#x43D;&#x438;. \n&#x421;&#x43B;&#x435;&#x434; &#x442;&#x43E;&#x432;&#x430; &#x43A;&#x43E;&#x43D;&#x442;&#x440;&#x43E;&#x43B;&#x435;&#x440;&#x430; &#x43F;&#x440;&#x435;&#x434;&#x430;&#x432;&#x430; &#x43C;&#x43E;&#x434;&#x435;&#x43B;&#x438;&#x442;&#x435; &#x43D;&#x430; View Layer-a, &#x43A;&#x43E;&#x439;&#x442;&#x43E; &#x433;&#x435;&#x43D;&#x435;&#x440;&#x438;&#x440;&#x430; &#x438; &#x438;&#x437;&#x43F;&#x440;&#x430;&#x449;&#x430; &#x43E;&#x442;&#x433;&#x43E;&#x432;&#x43E;&#x440; &#x43D;&#x430; &#x431;&#x440;&#x430;&#x443;&#x437;&#x44A;&#x440;&#x430;. &#x41A;&#x430;&#x442;&#x43E; &#x442;&#x43E;&#x437;&#x438; &#x43E;&#x442;&#x433;&#x43E;&#x432;&#x43E;&#x440; &#x43C;&#x43E;&#x436;&#x435; &#x434;&#x430; &#x435; html, xml, json, JavaScript &#x438;&#x43B;&#x438; &#x434;&#x440;&#x443;&#x433; &#x43A;&#x43E;&#x434;.\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Taskar e &#x440;&#x430;&#x437;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x435;&#x43D; &#x447;&#x440;&#x435;&#x437; &#xA0;&#x422;est Driven Development &#x43C;&#x435;&#x442;&#x43E;&#x434;&#x43E;&#x43B;&#x43E;&#x433;&#x438;&#x44F;&#x442;&#x430;, &#x447;&#x438;&#x44F;&#x442;&#x43E; &#x43E;&#x441;&#x43D;&#x43E;&#x432;&#x43D;&#x430; &#x438;&#x434;&#x435;&#x44F; &#x435; &#x434;&#x430; &#x441;&#x435; &#x43F;&#x438;&#x448;&#x435; &#x43A;&#x43E;&#x434; &#x432; 3 &#x441;&#x442;&#x44A;&#x43F;&#x43A;&#x438;:\n&#x41F;&#x44A;&#x440;&#x432;&#x43E; &#x441;&#x435; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44F; &#x442;&#x435;&#x441;&#x442;, &#x437;&#x430; &#x432;&#x441;&#x435; &#x43E;&#x449;&#x435; &#x43D;&#x435; &#x441;&#x44A;&#x449;&#x435;&#x441;&#x442;&#x432;&#x443;&#x432;&#x430;&#x449; &#x43A;&#x43E;&#x434;. &#x41A;&#x43E;&#x439;&#x442;&#x43E; &#x442;&#x440;&#x44F;&#x431;&#x432;&#x430; &#x434;&#x430; &#x441;&#x435; &#x43C;&#x430;&#x440;&#x43A;&#x438;&#x440;&#x430; &#x43A;&#x430;&#x442;&#x43E; &#x43D;&#x435; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x435;&#x43D;\n&#x421;&#x43B;&#x435;&#x434; &#x442;&#x43E;&#x432;&#x430; &#x441;&#x435; &#x43F;&#x438;&#x448;&#x435; &#x432;&#x44A;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43D;&#x430;&#x439;-&#x43F;&#x440;&#x43E;&#x441;&#x442;&#x438;&#x44F; &#x43A;&#x43E;&#x434;, &#x441; &#x43A;&#x43E;&#x439;&#x442;&#x43E; &#x442;&#x435;&#x441;&#x442;&#x430; &#x43C;&#x438;&#x43D;&#x430;&#x432;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E;.\n&#x41D;&#x430;&#x43A;&#x440;&#x430;&#x44F; &#x441;&#x435; &#x43F;&#x440;&#x430;&#x432;&#x44F;&#x442; &#x43F;&#x43E;&#x434;&#x43E;&#x431;&#x440;&#x435;&#x43D;&#x438;&#x44F; &#x43F;&#x43E; &#x43A;&#x43E;&#x434;&#x430;, &#x438;&#x437;&#x447;&#x438;&#x441;&#x442;&#x432;&#x430;&#x442; &#x441;&#x435; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x435;&#x43D;&#x438;&#x44F;, &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44F;&#x442; &#x441;&#x435; &#x43D;&#x43E;&#x432;&#x438; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;&#x435; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;.\n\n&#x41A;&#x430;&#x442;&#x43E; &#x442;&#x435;&#x437;&#x438; 3 &#x441;&#x442;&#x44A;&#x43F;&#x43A;&#x438; &#x441;&#x435; &#x43F;&#x43E;&#x432;&#x442;&#x430;&#x440;&#x44F;&#x442; &#x43D;&#x435;&#x43F;&#x440;&#x435;&#x43A;&#x44A;&#x441;&#x43D;&#x430;&#x442;&#x43E; &#x432; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x430; &#x43D;&#x430; &#x440;&#x430;&#x437;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x430;. &#x41A;&#x430;&#x442;&#x43E; &#x446;&#x44F;&#x43B;&#x43E; &#x442;&#x43E;&#x437;&#x438; &#x43C;&#x435;&#x442;&#x43E;&#x434; &#x43D;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430; &#x433;&#x430;&#x440;&#x430;&#x43D;&#x442;&#x438;&#x440;&#x430; &#x447;&#x435; 100% &#x43E;&#x442; &#x43A;&#x43E;&#x434;&#x430; &#x449;&#x435; &#x435; &#x43F;&#x43E;&#x43A;&#x440;&#x438;&#x442; &#x441; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x447;&#x43D;&#x438; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;&#x435;. &#x41A;&#x43E;&#x435;&#x442;&#x43E; &#x433;&#x43E; &#x43F;&#x440;&#x430;&#x432;&#x438; &#x43B;&#x435;&#x441;&#x435;&#x43D; &#x437;&#x430; &#x43F;&#x43E;&#x434;&#x434;&#x440;&#x44A;&#x436;&#x43A;&#x430; &#x438; &#x441; &#x43F;&#x43E;--&#x434;&#x43E;&#x431;&#x44A;&#x440; &#x434;&#x438;&#x437;&#x430;&#x439;&#x43D;. &#xA0;&#x422;&#x43E;&#x432;&#x430; &#x43E;&#x449;&#x435; &#x441;&#x435; &#x43D;&#x430;&#x440;&#x438;&#x447;&#x430; Red-Green-Blue &#x43D;&#x430;&#x447;&#x438;&#x43D; &#x43D;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;.\n&#xA0;\n\n Taskar e &#x440;&#x430;&#x437;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x435;&#x43D; &#x447;&#x440;&#x435;&#x437; &#xA0;&#x422;est Driven Development &#x43C;&#x435;&#x442;&#x43E;&#x434;&#x43E;&#x43B;&#x43E;&#x433;&#x438;&#x44F;&#x442;&#x430;, &#x447;&#x438;&#x44F;&#x442;&#x43E; &#x43E;&#x441;&#x43D;&#x43E;&#x432;&#x43D;&#x430; &#x438;&#x434;&#x435;&#x44F; &#x435; &#x434;&#x430; &#x441;&#x435; &#x43F;&#x438;&#x448;&#x435; &#x43A;&#x43E;&#x434; &#x432; 3 &#x441;&#x442;&#x44A;&#x43F;&#x43A;&#x438;:\n&#x41F;&#x44A;&#x440;&#x432;&#x43E; &#x441;&#x435; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44F; &#x442;&#x435;&#x441;&#x442;, &#x437;&#x430; &#x432;&#x441;&#x435; &#x43E;&#x449;&#x435; &#x43D;&#x435; &#x441;&#x44A;&#x449;&#x435;&#x441;&#x442;&#x432;&#x443;&#x432;&#x430;&#x449; &#x43A;&#x43E;&#x434;. &#x41A;&#x43E;&#x439;&#x442;&#x43E; &#x442;&#x440;&#x44F;&#x431;&#x432;&#x430; &#x434;&#x430; &#x441;&#x435; &#x43C;&#x430;&#x440;&#x43A;&#x438;&#x440;&#x430; &#x43A;&#x430;&#x442;&#x43E; &#x43D;&#x435; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x435;&#x43D;\n&#x421;&#x43B;&#x435;&#x434; &#x442;&#x43E;&#x432;&#x430; &#x441;&#x435; &#x43F;&#x438;&#x448;&#x435; &#x432;&#x44A;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43D;&#x430;&#x439;-&#x43F;&#x440;&#x43E;&#x441;&#x442;&#x438;&#x44F; &#x43A;&#x43E;&#x434;, &#x441; &#x43A;&#x43E;&#x439;&#x442;&#x43E; &#x442;&#x435;&#x441;&#x442;&#x430; &#x43C;&#x438;&#x43D;&#x430;&#x432;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E;.\n&#x41D;&#x430;&#x43A;&#x440;&#x430;&#x44F; &#x441;&#x435; &#x43F;&#x440;&#x430;&#x432;&#x44F;&#x442; &#x43F;&#x43E;&#x434;&#x43E;&#x431;&#x440;&#x435;&#x43D;&#x438;&#x44F; &#x43F;&#x43E; &#x43A;&#x43E;&#x434;&#x430;, &#x438;&#x437;&#x447;&#x438;&#x441;&#x442;&#x432;&#x430;&#x442; &#x441;&#x435; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x435;&#x43D;&#x438;&#x44F;, &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44F;&#x442; &#x441;&#x435; &#x43D;&#x43E;&#x432;&#x438; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;&#x435; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;.\n\n&#x41A;&#x430;&#x442;&#x43E; &#x442;&#x435;&#x437;&#x438; 3 &#x441;&#x442;&#x44A;&#x43F;&#x43A;&#x438; &#x441;&#x435; &#x43F;&#x43E;&#x432;&#x442;&#x430;&#x440;&#x44F;&#x442; &#x43D;&#x435;&#x43F;&#x440;&#x435;&#x43A;&#x44A;&#x441;&#x43D;&#x430;&#x442;&#x43E; &#x432; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x430; &#x43D;&#x430; &#x440;&#x430;&#x437;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x430;. &#x41A;&#x430;&#x442;&#x43E; &#x446;&#x44F;&#x43B;&#x43E; &#x442;&#x43E;&#x437;&#x438; &#x43C;&#x435;&#x442;&#x43E;&#x434; &#x43D;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430; &#x433;&#x430;&#x440;&#x430;&#x43D;&#x442;&#x438;&#x440;&#x430; &#x447;&#x435; 100% &#x43E;&#x442; &#x43A;&#x43E;&#x434;&#x430; &#x449;&#x435; &#x435; &#x43F;&#x43E;&#x43A;&#x440;&#x438;&#x442; &#x441; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x447;&#x43D;&#x438; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;&#x435;. &#x41A;&#x43E;&#x435;&#x442;&#x43E; &#x433;&#x43E; &#x43F;&#x440;&#x430;&#x432;&#x438; &#x43B;&#x435;&#x441;&#x435;&#x43D; &#x437;&#x430; &#x43F;&#x43E;&#x434;&#x434;&#x440;&#x44A;&#x436;&#x43A;&#x430; &#x438; &#x441; &#x43F;&#x43E;--&#x434;&#x43E;&#x431;&#x44A;&#x440; &#x434;&#x438;&#x437;&#x430;&#x439;&#x43D;. &#xA0;&#x422;&#x43E;&#x432;&#x430; &#x43E;&#x449;&#x435; &#x441;&#x435; &#x43D;&#x430;&#x440;&#x438;&#x447;&#x430; Red-Green-Blue &#x43D;&#x430;&#x447;&#x438;&#x43D; &#x43D;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;.\n&#xA0;\n\n Taskar e &#x440;&#x430;&#x437;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x435;&#x43D; &#x447;&#x440;&#x435;&#x437; &#xA0;&#x422;est Driven Development &#x43C;&#x435;&#x442;&#x43E;&#x434;&#x43E;&#x43B;&#x43E;&#x433;&#x438;&#x44F;&#x442;&#x430;, &#x447;&#x438;&#x44F;&#x442;&#x43E; &#x43E;&#x441;&#x43D;&#x43E;&#x432;&#x43D;&#x430; &#x438;&#x434;&#x435;&#x44F; &#x435; &#x434;&#x430; &#x441;&#x435; &#x43F;&#x438;&#x448;&#x435; &#x43A;&#x43E;&#x434; &#x432; 3 &#x441;&#x442;&#x44A;&#x43F;&#x43A;&#x438;:\n&#x41F;&#x44A;&#x440;&#x432;&#x43E; &#x441;&#x435; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44F; &#x442;&#x435;&#x441;&#x442;, &#x437;&#x430; &#x432;&#x441;&#x435; &#x43E;&#x449;&#x435; &#x43D;&#x435; &#x441;&#x44A;&#x449;&#x435;&#x441;&#x442;&#x432;&#x443;&#x432;&#x430;&#x449; &#x43A;&#x43E;&#x434;. &#x41A;&#x43E;&#x439;&#x442;&#x43E; &#x442;&#x440;&#x44F;&#x431;&#x432;&#x430; &#x434;&#x430; &#x441;&#x435; &#x43C;&#x430;&#x440;&#x43A;&#x438;&#x440;&#x430; &#x43A;&#x430;&#x442;&#x43E; &#x43D;&#x435; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x435;&#x43D;\n&#x421;&#x43B;&#x435;&#x434; &#x442;&#x43E;&#x432;&#x430; &#x441;&#x435; &#x43F;&#x438;&#x448;&#x435; &#x432;&#x44A;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43D;&#x430;&#x439;-&#x43F;&#x440;&#x43E;&#x441;&#x442;&#x438;&#x44F; &#x43A;&#x43E;&#x434;, &#x441; &#x43A;&#x43E;&#x439;&#x442;&#x43E; &#x442;&#x435;&#x441;&#x442;&#x430; &#x43C;&#x438;&#x43D;&#x430;&#x432;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E;.\n&#x41D;&#x430;&#x43A;&#x440;&#x430;&#x44F; &#x441;&#x435; &#x43F;&#x440;&#x430;&#x432;&#x44F;&#x442; &#x43F;&#x43E;&#x434;&#x43E;&#x431;&#x440;&#x435;&#x43D;&#x438;&#x44F; &#x43F;&#x43E; &#x43A;&#x43E;&#x434;&#x430;, &#x438;&#x437;&#x447;&#x438;&#x441;&#x442;&#x432;&#x430;&#x442; &#x441;&#x435; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x435;&#x43D;&#x438;&#x44F;, &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44F;&#x442; &#x441;&#x435; &#x43D;&#x43E;&#x432;&#x438; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;&#x435; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;.\n\n&#x41A;&#x430;&#x442;&#x43E; &#x442;&#x435;&#x437;&#x438; 3 &#x441;&#x442;&#x44A;&#x43F;&#x43A;&#x438; &#x441;&#x435; &#x43F;&#x43E;&#x432;&#x442;&#x430;&#x440;&#x44F;&#x442; &#x43D;&#x435;&#x43F;&#x440;&#x435;&#x43A;&#x44A;&#x441;&#x43D;&#x430;&#x442;&#x43E; &#x432; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x430; &#x43D;&#x430; &#x440;&#x430;&#x437;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x430;. &#x41A;&#x430;&#x442;&#x43E; &#x446;&#x44F;&#x43B;&#x43E; &#x442;&#x43E;&#x437;&#x438; &#x43C;&#x435;&#x442;&#x43E;&#x434; &#x43D;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430; &#x433;&#x430;&#x440;&#x430;&#x43D;&#x442;&#x438;&#x440;&#x430; &#x447;&#x435; 100% &#x43E;&#x442; &#x43A;&#x43E;&#x434;&#x430; &#x449;&#x435; &#x435; &#x43F;&#x43E;&#x43A;&#x440;&#x438;&#x442; &#x441; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x447;&#x43D;&#x438; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;&#x435;. &#x41A;&#x43E;&#x435;&#x442;&#x43E; &#x433;&#x43E; &#x43F;&#x440;&#x430;&#x432;&#x438; &#x43B;&#x435;&#x441;&#x435;&#x43D; &#x437;&#x430; &#x43F;&#x43E;&#x434;&#x434;&#x440;&#x44A;&#x436;&#x43A;&#x430; &#x438; &#x441; &#x43F;&#x43E;--&#x434;&#x43E;&#x431;&#x44A;&#x440; &#x434;&#x438;&#x437;&#x430;&#x439;&#x43D;. &#xA0;&#x422;&#x43E;&#x432;&#x430; &#x43E;&#x449;&#x435; &#x441;&#x435; &#x43D;&#x430;&#x440;&#x438;&#x447;&#x430; Red-Green-Blue &#x43D;&#x430;&#x447;&#x438;&#x43D; &#x43D;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;.\n&#xA0;\n\n Taskar e &#x440;&#x430;&#x437;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x435;&#x43D; &#x447;&#x440;&#x435;&#x437; &#xA0;&#x422;est Driven Development &#x43C;&#x435;&#x442;&#x43E;&#x434;&#x43E;&#x43B;&#x43E;&#x433;&#x438;&#x44F;&#x442;&#x430;, &#x447;&#x438;&#x44F;&#x442;&#x43E; &#x43E;&#x441;&#x43D;&#x43E;&#x432;&#x43D;&#x430; &#x438;&#x434;&#x435;&#x44F; &#x435; &#x434;&#x430; &#x441;&#x435; &#x43F;&#x438;&#x448;&#x435; &#x43A;&#x43E;&#x434; &#x432; 3 &#x441;&#x442;&#x44A;&#x43F;&#x43A;&#x438;:\n&#x41F;&#x44A;&#x440;&#x432;&#x43E; &#x441;&#x435; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44F; &#x442;&#x435;&#x441;&#x442;, &#x437;&#x430; &#x432;&#x441;&#x435; &#x43E;&#x449;&#x435; &#x43D;&#x435; &#x441;&#x44A;&#x449;&#x435;&#x441;&#x442;&#x432;&#x443;&#x432;&#x430;&#x449; &#x43A;&#x43E;&#x434;. &#x41A;&#x43E;&#x439;&#x442;&#x43E; &#x442;&#x440;&#x44F;&#x431;&#x432;&#x430; &#x434;&#x430; &#x441;&#x435; &#x43C;&#x430;&#x440;&#x43A;&#x438;&#x440;&#x430; &#x43A;&#x430;&#x442;&#x43E; &#x43D;&#x435; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x435;&#x43D;\n&#x421;&#x43B;&#x435;&#x434; &#x442;&#x43E;&#x432;&#x430; &#x441;&#x435; &#x43F;&#x438;&#x448;&#x435; &#x432;&#x44A;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E; &#x43D;&#x430;&#x439;-&#x43F;&#x440;&#x43E;&#x441;&#x442;&#x438;&#x44F; &#x43A;&#x43E;&#x434;, &#x441; &#x43A;&#x43E;&#x439;&#x442;&#x43E; &#x442;&#x435;&#x441;&#x442;&#x430; &#x43C;&#x438;&#x43D;&#x430;&#x432;&#x430; &#x443;&#x441;&#x43F;&#x435;&#x448;&#x43D;&#x43E;.\n&#x41D;&#x430;&#x43A;&#x440;&#x430;&#x44F; &#x441;&#x435; &#x43F;&#x440;&#x430;&#x432;&#x44F;&#x442; &#x43F;&#x43E;&#x434;&#x43E;&#x431;&#x440;&#x435;&#x43D;&#x438;&#x44F; &#x43F;&#x43E; &#x43A;&#x43E;&#x434;&#x430;, &#x438;&#x437;&#x447;&#x438;&#x441;&#x442;&#x432;&#x430;&#x442; &#x441;&#x435; &#x43F;&#x43E;&#x432;&#x442;&#x43E;&#x440;&#x435;&#x43D;&#x438;&#x44F;, &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44F;&#x442; &#x441;&#x435; &#x43D;&#x43E;&#x432;&#x438; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;&#x435; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;.\n\n&#x41A;&#x430;&#x442;&#x43E; &#x442;&#x435;&#x437;&#x438; 3 &#x441;&#x442;&#x44A;&#x43F;&#x43A;&#x438; &#x441;&#x435; &#x43F;&#x43E;&#x432;&#x442;&#x430;&#x440;&#x44F;&#x442; &#x43D;&#x435;&#x43F;&#x440;&#x435;&#x43A;&#x44A;&#x441;&#x43D;&#x430;&#x442;&#x43E; &#x432; &#x43F;&#x440;&#x43E;&#x446;&#x435;&#x441;&#x430; &#x43D;&#x430; &#x440;&#x430;&#x437;&#x440;&#x430;&#x431;&#x43E;&#x442;&#x43A;&#x430;. &#x41A;&#x430;&#x442;&#x43E; &#x446;&#x44F;&#x43B;&#x43E; &#x442;&#x43E;&#x437;&#x438; &#x43C;&#x435;&#x442;&#x43E;&#x434; &#x43D;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430; &#x433;&#x430;&#x440;&#x430;&#x43D;&#x442;&#x438;&#x440;&#x430; &#x447;&#x435; 100% &#x43E;&#x442; &#x43A;&#x43E;&#x434;&#x430; &#x449;&#x435; &#x435; &#x43F;&#x43E;&#x43A;&#x440;&#x438;&#x442; &#x441; &#x430;&#x432;&#x442;&#x43E;&#x43C;&#x430;&#x442;&#x438;&#x447;&#x43D;&#x438; &#x442;&#x435;&#x441;&#x442;&#x43E;&#x432;&#x435;. &#x41A;&#x43E;&#x435;&#x442;&#x43E; &#x433;&#x43E; &#x43F;&#x440;&#x430;&#x432;&#x438; &#x43B;&#x435;&#x441;&#x435;&#x43D; &#x437;&#x430; &#x43F;&#x43E;&#x434;&#x434;&#x440;&#x44A;&#x436;&#x43A;&#x430; &#x438; &#x441; &#x43F;&#x43E;--&#x434;&#x43E;&#x431;&#x44A;&#x440; &#x434;&#x438;&#x437;&#x430;&#x439;&#x43D;. &#xA0;&#x422;&#x43E;&#x432;&#x430; &#x43E;&#x449;&#x435; &#x441;&#x435; &#x43D;&#x430;&#x440;&#x438;&#x447;&#x430; Red-Green-Blue &#x43D;&#x430;&#x447;&#x438;&#x43D; &#x43D;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x430;.\n&#xA0;\n\n \n \n \n \n &#x421;&#x442;&#x440;&#x435;&#x43C;&#x435;&#x436;&#x44A;&#x442; &#x43D;&#x430; Ruby &#x435; &#x434;&#x430; &#x441;&#x43B;&#x435;&#x434;&#x432;&#x430; &#x43F;&#x440;&#x438;&#x43D;&#x446;&#x438;&#x43F;&#x430; &#x43D;&#x430; &#x43D;&#x430;&#x439;-&#x43C;&#x430;&#x43B;&#x43A;&#x430; &#x438;&#x437;&#x43D;&#x435;&#x43D;&#x430;&#x434;&#x430;. &#x422;&#x43E;&#x432;&#x430; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x432;&#x430;, &#x447;&#x435; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435;&#x442;&#x43E; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x442;&#x440;&#x44F;&#x431;&#x432;&#x430; &#x434;&#x430; &#x435; &#x438;&#x43D;&#x442;&#x443;&#x438;&#x442;&#x438;&#x432;&#x43D;&#x43E; &#x438; &#x442;&#x43E;&#x439; &#x434;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x438; &#x442;&#x430;&#x43A;&#x430;, &#x43A;&#x430;&#x43A;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x441;&#x442;&#x44A;&#x442; &#x431;&#x438; &#x43E;&#x447;&#x430;&#x43A;&#x432;&#x430;&#x43B;.\nRuby &#x435; &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x43D;&#x43E;-&#x43E;&#x440;&#x438;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x430;&#x43D;: &#x432;&#x441;&#x435;&#x43A;&#x438; &#x442;&#x438;&#x43F; &#x434;&#x430;&#x43D;&#x43D;&#x438; &#x435; &#x43E;&#x431;&#x435;&#x43A;&#x442;, &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;, &#x447;&#x438;&#x441;&#x43B;&#x430;, &#x431;&#x443;&#x43B;&#x435;&#x432;&#x438; &#x441;&#x442;&#x43E;&#x439;&#x43D;&#x43E;&#x441;&#x442;&#x438;, &#x43A;&#x43E;&#x438;&#x442;&#x43E; &#x432; &#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x434;&#x440;&#x443;&#x433;&#x438; &#x435;&#x437;&#x438;&#x446;&#x438; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x442; &#x43A;&#x430;&#x442;&#x43E; &#x43F;&#x440;&#x438;&#x43C;&#x438;&#x442;&#x438;&#x432;&#x438;, &#x430; &#x43D;&#x435; &#x43A;&#x430;&#x442;&#x43E; &#x440;&#x435;&#x430;&#x43B;&#x43D;&#x438; &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x438;.\n\n&#x41D;&#x44F;&#x43A;&#x43E;&#x438; &#x43E;&#x442; &#x43D;&#x430;&#x439;-&#x432;&#x430;&#x436;&#x43D;&#x438;&#x442;&#x435; &#x445;&#x430;&#x440;&#x430;&#x43A;&#x442;&#x435;&#x440;&#x438;&#x441;&#x442;&#x438;&#x43A;&#x438; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x441;&#x430;: \n&#x434;&#x438;&#x43C;&#x438;&#x447;&#x43D;&#x43E; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x43D;&#x435; &#x43D;&#x430; &#x442;&#x438;&#x43F;&#x430; &#x434;&#x430;&#x43D;&#x43D;&#x438;&#x442;&#x435;\n&#x43C;&#x43E;&#x434;&#x443;&#x43B;&#x438; - &#x201C;&#x432;&#x44A;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442; &#x435;&#x434;&#x438;&#x43D; &#x43C;&#x43E;&#x434;&#x443;&#x43B; &#x434;&#x430; &#x441;&#x435; &#x432;&#x433;&#x440;&#x430;&#x436;&#x434;&#x430; &#x432; &#x43C;&#x43D;&#x43E;&#x436;&#x435;&#x441;&#x442;&#x432;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;, &#x43A;&#x430;&#x442;&#x43E; &#x442;&#x430;&#x43A;&#x430; &#x441;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x438;&#x433;&#x430; &#x43C;&#x43D;&#x43E;&#x436;&#x435;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43E; &#x43D;&#x430;&#x441;&#x43B;&#x435;&#x434;&#x44F;&#x432;&#x430;&#x43D;&#x435;&#x201D;\n&#x43E;&#x442;&#x432;&#x43E;&#x440;&#x435;&#x43D;&#x438; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435; - &#x201C;&#x43A;&#x44A;&#x43C; &#x432;&#x441;&#x435;&#x43A;&#x438; &#x43A;&#x43B;&#x430;&#x441; &#x43C;&#x43E;&#x433;&#x430;&#x442; &#x434;&#x430; &#x441;&#x435; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44F;&#x442; &#x43D;&#x43E;&#x432;&#x438; &#x430;&#x442;&#x440;&#x438;&#x431;&#x443;&#x442;&#x438; &#x438; &#x43C;&#x435;&#x442;&#x43E;&#x434;&#x438; &#x43F;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x435; &#x43D;&#x430; &#x438;&#x437;&#x43F;&#x44A;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x430;&#x442;&#x430;&#x201D;\n&#x431;&#x43B;&#x43E;&#x43A;&#x43E;&#x432;&#x435;\n&#x430;&#x43D;&#x43E;&#x43D;&#x438;&#x43C;&#x43D;&#x438; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438;\n&#x432;&#x441;&#x44F;&#x43A;&#x430; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x432;&#x440;&#x44A;&#x449;&#x430; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x442;&#x430;&#x442;\n&#x432;&#x441;&#x438;&#x447;&#x43A;&#x43E; &#x435; &#x438;&#x437;&#x43F;&#x44A;&#x43B;&#x43D;&#x438;&#x43C; &#x43A;&#x43E;&#x434; - &#x201C;&#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E; &#x438; &#x442;&#x435;&#x43B;&#x430;&#x442;&#x430; &#x43D;&#x430; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;&#x442;&#x435; &#x432; &#x43A;&#x43E;&#x439;&#x442;&#x43E; &#x43C;&#x43E;&#x436;&#x435; &#x438;&#x43C;&#x430; &#x446;&#x438;&#x43A;&#x43B;&#x438;, &#x443;&#x441;&#x43B;&#x43E;&#x432;&#x43D;&#x438; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x438; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x201D;\n&#x438;&#x437;&#x447;&#x438;&#x441;&#x442;&#x435;&#x43D; &#x441;&#x438;&#x43D;&#x442;&#x430;&#x43A;&#x441;&#x438;&#x441; - &#x201C;&#x43D;&#x435; &#x435; &#x437;&#x430;&#x434;&#x44A;&#x43B;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E;, &#x434;&#x430; &#x441;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44F;&#x442; &#x441;&#x43A;&#x43E;&#x431;&#x438;, &#x442;&#x43E;&#x447;&#x43A;&#x430; &#x438; &#x437;&#x430;&#x43F;&#x435;&#x442;&#x430;&#x44F; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x201D;\n&#x43C;&#x435;&#x442;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x440;&#x430;&#x43D;&#x435;\n&#xA0;\n\n &#x421;&#x442;&#x440;&#x435;&#x43C;&#x435;&#x436;&#x44A;&#x442; &#x43D;&#x430; Ruby &#x435; &#x434;&#x430; &#x441;&#x43B;&#x435;&#x434;&#x432;&#x430; &#x43F;&#x440;&#x438;&#x43D;&#x446;&#x438;&#x43F;&#x430; &#x43D;&#x430; &#x43D;&#x430;&#x439;-&#x43C;&#x430;&#x43B;&#x43A;&#x430; &#x438;&#x437;&#x43D;&#x435;&#x43D;&#x430;&#x434;&#x430;. &#x422;&#x43E;&#x432;&#x430; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x432;&#x430;, &#x447;&#x435; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435;&#x442;&#x43E; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x442;&#x440;&#x44F;&#x431;&#x432;&#x430; &#x434;&#x430; &#x435; &#x438;&#x43D;&#x442;&#x443;&#x438;&#x442;&#x438;&#x432;&#x43D;&#x43E; &#x438; &#x442;&#x43E;&#x439; &#x434;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x438; &#x442;&#x430;&#x43A;&#x430;, &#x43A;&#x430;&#x43A;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x441;&#x442;&#x44A;&#x442; &#x431;&#x438; &#x43E;&#x447;&#x430;&#x43A;&#x432;&#x430;&#x43B;.\nRuby &#x435; &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x43D;&#x43E;-&#x43E;&#x440;&#x438;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x430;&#x43D;: &#x432;&#x441;&#x435;&#x43A;&#x438; &#x442;&#x438;&#x43F; &#x434;&#x430;&#x43D;&#x43D;&#x438; &#x435; &#x43E;&#x431;&#x435;&#x43A;&#x442;, &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;, &#x447;&#x438;&#x441;&#x43B;&#x430;, &#x431;&#x443;&#x43B;&#x435;&#x432;&#x438; &#x441;&#x442;&#x43E;&#x439;&#x43D;&#x43E;&#x441;&#x442;&#x438;, &#x43A;&#x43E;&#x438;&#x442;&#x43E; &#x432; &#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x434;&#x440;&#x443;&#x433;&#x438; &#x435;&#x437;&#x438;&#x446;&#x438; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x442; &#x43A;&#x430;&#x442;&#x43E; &#x43F;&#x440;&#x438;&#x43C;&#x438;&#x442;&#x438;&#x432;&#x438;, &#x430; &#x43D;&#x435; &#x43A;&#x430;&#x442;&#x43E; &#x440;&#x435;&#x430;&#x43B;&#x43D;&#x438; &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x438;.\n\n&#x41D;&#x44F;&#x43A;&#x43E;&#x438; &#x43E;&#x442; &#x43D;&#x430;&#x439;-&#x432;&#x430;&#x436;&#x43D;&#x438;&#x442;&#x435; &#x445;&#x430;&#x440;&#x430;&#x43A;&#x442;&#x435;&#x440;&#x438;&#x441;&#x442;&#x438;&#x43A;&#x438; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x441;&#x430;: \n&#x434;&#x438;&#x43C;&#x438;&#x447;&#x43D;&#x43E; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x43D;&#x435; &#x43D;&#x430; &#x442;&#x438;&#x43F;&#x430; &#x434;&#x430;&#x43D;&#x43D;&#x438;&#x442;&#x435;\n&#x43C;&#x43E;&#x434;&#x443;&#x43B;&#x438; - &#x201C;&#x432;&#x44A;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442; &#x435;&#x434;&#x438;&#x43D; &#x43C;&#x43E;&#x434;&#x443;&#x43B; &#x434;&#x430; &#x441;&#x435; &#x432;&#x433;&#x440;&#x430;&#x436;&#x434;&#x430; &#x432; &#x43C;&#x43D;&#x43E;&#x436;&#x435;&#x441;&#x442;&#x432;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;, &#x43A;&#x430;&#x442;&#x43E; &#x442;&#x430;&#x43A;&#x430; &#x441;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x438;&#x433;&#x430; &#x43C;&#x43D;&#x43E;&#x436;&#x435;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43E; &#x43D;&#x430;&#x441;&#x43B;&#x435;&#x434;&#x44F;&#x432;&#x430;&#x43D;&#x435;&#x201D;\n&#x43E;&#x442;&#x432;&#x43E;&#x440;&#x435;&#x43D;&#x438; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435; - &#x201C;&#x43A;&#x44A;&#x43C; &#x432;&#x441;&#x435;&#x43A;&#x438; &#x43A;&#x43B;&#x430;&#x441; &#x43C;&#x43E;&#x433;&#x430;&#x442; &#x434;&#x430; &#x441;&#x435; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44F;&#x442; &#x43D;&#x43E;&#x432;&#x438; &#x430;&#x442;&#x440;&#x438;&#x431;&#x443;&#x442;&#x438; &#x438; &#x43C;&#x435;&#x442;&#x43E;&#x434;&#x438; &#x43F;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x435; &#x43D;&#x430; &#x438;&#x437;&#x43F;&#x44A;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x430;&#x442;&#x430;&#x201D;\n&#x431;&#x43B;&#x43E;&#x43A;&#x43E;&#x432;&#x435;\n&#x430;&#x43D;&#x43E;&#x43D;&#x438;&#x43C;&#x43D;&#x438; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438;\n&#x432;&#x441;&#x44F;&#x43A;&#x430; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x432;&#x440;&#x44A;&#x449;&#x430; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x442;&#x430;&#x442;\n&#x432;&#x441;&#x438;&#x447;&#x43A;&#x43E; &#x435; &#x438;&#x437;&#x43F;&#x44A;&#x43B;&#x43D;&#x438;&#x43C; &#x43A;&#x43E;&#x434; - &#x201C;&#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E; &#x438; &#x442;&#x435;&#x43B;&#x430;&#x442;&#x430; &#x43D;&#x430; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;&#x442;&#x435; &#x432; &#x43A;&#x43E;&#x439;&#x442;&#x43E; &#x43C;&#x43E;&#x436;&#x435; &#x438;&#x43C;&#x430; &#x446;&#x438;&#x43A;&#x43B;&#x438;, &#x443;&#x441;&#x43B;&#x43E;&#x432;&#x43D;&#x438; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x438; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x201D;\n&#x438;&#x437;&#x447;&#x438;&#x441;&#x442;&#x435;&#x43D; &#x441;&#x438;&#x43D;&#x442;&#x430;&#x43A;&#x441;&#x438;&#x441; - &#x201C;&#x43D;&#x435; &#x435; &#x437;&#x430;&#x434;&#x44A;&#x43B;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E;, &#x434;&#x430; &#x441;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44F;&#x442; &#x441;&#x43A;&#x43E;&#x431;&#x438;, &#x442;&#x43E;&#x447;&#x43A;&#x430; &#x438; &#x437;&#x430;&#x43F;&#x435;&#x442;&#x430;&#x44F; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x201D;\n&#x43C;&#x435;&#x442;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x440;&#x430;&#x43D;&#x435;\n&#xA0;\n\n &#x421;&#x442;&#x440;&#x435;&#x43C;&#x435;&#x436;&#x44A;&#x442; &#x43D;&#x430; Ruby &#x435; &#x434;&#x430; &#x441;&#x43B;&#x435;&#x434;&#x432;&#x430; &#x43F;&#x440;&#x438;&#x43D;&#x446;&#x438;&#x43F;&#x430; &#x43D;&#x430; &#x43D;&#x430;&#x439;-&#x43C;&#x430;&#x43B;&#x43A;&#x430; &#x438;&#x437;&#x43D;&#x435;&#x43D;&#x430;&#x434;&#x430;. &#x422;&#x43E;&#x432;&#x430; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x432;&#x430;, &#x447;&#x435; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435;&#x442;&#x43E; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x442;&#x440;&#x44F;&#x431;&#x432;&#x430; &#x434;&#x430; &#x435; &#x438;&#x43D;&#x442;&#x443;&#x438;&#x442;&#x438;&#x432;&#x43D;&#x43E; &#x438; &#x442;&#x43E;&#x439; &#x434;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x438; &#x442;&#x430;&#x43A;&#x430;, &#x43A;&#x430;&#x43A;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x441;&#x442;&#x44A;&#x442; &#x431;&#x438; &#x43E;&#x447;&#x430;&#x43A;&#x432;&#x430;&#x43B;.\nRuby &#x435; &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x43D;&#x43E;-&#x43E;&#x440;&#x438;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x430;&#x43D;: &#x432;&#x441;&#x435;&#x43A;&#x438; &#x442;&#x438;&#x43F; &#x434;&#x430;&#x43D;&#x43D;&#x438; &#x435; &#x43E;&#x431;&#x435;&#x43A;&#x442;, &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;, &#x447;&#x438;&#x441;&#x43B;&#x430;, &#x431;&#x443;&#x43B;&#x435;&#x432;&#x438; &#x441;&#x442;&#x43E;&#x439;&#x43D;&#x43E;&#x441;&#x442;&#x438;, &#x43A;&#x43E;&#x438;&#x442;&#x43E; &#x432; &#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x434;&#x440;&#x443;&#x433;&#x438; &#x435;&#x437;&#x438;&#x446;&#x438; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x442; &#x43A;&#x430;&#x442;&#x43E; &#x43F;&#x440;&#x438;&#x43C;&#x438;&#x442;&#x438;&#x432;&#x438;, &#x430; &#x43D;&#x435; &#x43A;&#x430;&#x442;&#x43E; &#x440;&#x435;&#x430;&#x43B;&#x43D;&#x438; &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x438;.\n\n&#x41D;&#x44F;&#x43A;&#x43E;&#x438; &#x43E;&#x442; &#x43D;&#x430;&#x439;-&#x432;&#x430;&#x436;&#x43D;&#x438;&#x442;&#x435; &#x445;&#x430;&#x440;&#x430;&#x43A;&#x442;&#x435;&#x440;&#x438;&#x441;&#x442;&#x438;&#x43A;&#x438; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x441;&#x430;: \n&#x434;&#x438;&#x43C;&#x438;&#x447;&#x43D;&#x43E; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x43D;&#x435; &#x43D;&#x430; &#x442;&#x438;&#x43F;&#x430; &#x434;&#x430;&#x43D;&#x43D;&#x438;&#x442;&#x435;\n&#x43C;&#x43E;&#x434;&#x443;&#x43B;&#x438; - &#x201C;&#x432;&#x44A;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442; &#x435;&#x434;&#x438;&#x43D; &#x43C;&#x43E;&#x434;&#x443;&#x43B; &#x434;&#x430; &#x441;&#x435; &#x432;&#x433;&#x440;&#x430;&#x436;&#x434;&#x430; &#x432; &#x43C;&#x43D;&#x43E;&#x436;&#x435;&#x441;&#x442;&#x432;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;, &#x43A;&#x430;&#x442;&#x43E; &#x442;&#x430;&#x43A;&#x430; &#x441;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x438;&#x433;&#x430; &#x43C;&#x43D;&#x43E;&#x436;&#x435;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43E; &#x43D;&#x430;&#x441;&#x43B;&#x435;&#x434;&#x44F;&#x432;&#x430;&#x43D;&#x435;&#x201D;\n&#x43E;&#x442;&#x432;&#x43E;&#x440;&#x435;&#x43D;&#x438; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435; - &#x201C;&#x43A;&#x44A;&#x43C; &#x432;&#x441;&#x435;&#x43A;&#x438; &#x43A;&#x43B;&#x430;&#x441; &#x43C;&#x43E;&#x433;&#x430;&#x442; &#x434;&#x430; &#x441;&#x435; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44F;&#x442; &#x43D;&#x43E;&#x432;&#x438; &#x430;&#x442;&#x440;&#x438;&#x431;&#x443;&#x442;&#x438; &#x438; &#x43C;&#x435;&#x442;&#x43E;&#x434;&#x438; &#x43F;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x435; &#x43D;&#x430; &#x438;&#x437;&#x43F;&#x44A;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x430;&#x442;&#x430;&#x201D;\n&#x431;&#x43B;&#x43E;&#x43A;&#x43E;&#x432;&#x435;\n&#x430;&#x43D;&#x43E;&#x43D;&#x438;&#x43C;&#x43D;&#x438; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438;\n&#x432;&#x441;&#x44F;&#x43A;&#x430; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x432;&#x440;&#x44A;&#x449;&#x430; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x442;&#x430;&#x442;\n&#x432;&#x441;&#x438;&#x447;&#x43A;&#x43E; &#x435; &#x438;&#x437;&#x43F;&#x44A;&#x43B;&#x43D;&#x438;&#x43C; &#x43A;&#x43E;&#x434; - &#x201C;&#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E; &#x438; &#x442;&#x435;&#x43B;&#x430;&#x442;&#x430; &#x43D;&#x430; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;&#x442;&#x435; &#x432; &#x43A;&#x43E;&#x439;&#x442;&#x43E; &#x43C;&#x43E;&#x436;&#x435; &#x438;&#x43C;&#x430; &#x446;&#x438;&#x43A;&#x43B;&#x438;, &#x443;&#x441;&#x43B;&#x43E;&#x432;&#x43D;&#x438; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x438; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x201D;\n&#x438;&#x437;&#x447;&#x438;&#x441;&#x442;&#x435;&#x43D; &#x441;&#x438;&#x43D;&#x442;&#x430;&#x43A;&#x441;&#x438;&#x441; - &#x201C;&#x43D;&#x435; &#x435; &#x437;&#x430;&#x434;&#x44A;&#x43B;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E;, &#x434;&#x430; &#x441;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44F;&#x442; &#x441;&#x43A;&#x43E;&#x431;&#x438;, &#x442;&#x43E;&#x447;&#x43A;&#x430; &#x438; &#x437;&#x430;&#x43F;&#x435;&#x442;&#x430;&#x44F; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x201D;\n&#x43C;&#x435;&#x442;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x440;&#x430;&#x43D;&#x435;\n&#xA0;\n\n &#x421;&#x442;&#x440;&#x435;&#x43C;&#x435;&#x436;&#x44A;&#x442; &#x43D;&#x430; Ruby &#x435; &#x434;&#x430; &#x441;&#x43B;&#x435;&#x434;&#x432;&#x430; &#x43F;&#x440;&#x438;&#x43D;&#x446;&#x438;&#x43F;&#x430; &#x43D;&#x430; &#x43D;&#x430;&#x439;-&#x43C;&#x430;&#x43B;&#x43A;&#x430; &#x438;&#x437;&#x43D;&#x435;&#x43D;&#x430;&#x434;&#x430;. &#x422;&#x43E;&#x432;&#x430; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x432;&#x430;, &#x447;&#x435; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435;&#x442;&#x43E; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x442;&#x440;&#x44F;&#x431;&#x432;&#x430; &#x434;&#x430; &#x435; &#x438;&#x43D;&#x442;&#x443;&#x438;&#x442;&#x438;&#x432;&#x43D;&#x43E; &#x438; &#x442;&#x43E;&#x439; &#x434;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x438; &#x442;&#x430;&#x43A;&#x430;, &#x43A;&#x430;&#x43A;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x441;&#x442;&#x44A;&#x442; &#x431;&#x438; &#x43E;&#x447;&#x430;&#x43A;&#x432;&#x430;&#x43B;.\nRuby &#x435; &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x43D;&#x43E;-&#x43E;&#x440;&#x438;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x430;&#x43D;: &#x432;&#x441;&#x435;&#x43A;&#x438; &#x442;&#x438;&#x43F; &#x434;&#x430;&#x43D;&#x43D;&#x438; &#x435; &#x43E;&#x431;&#x435;&#x43A;&#x442;, &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;, &#x447;&#x438;&#x441;&#x43B;&#x430;, &#x431;&#x443;&#x43B;&#x435;&#x432;&#x438; &#x441;&#x442;&#x43E;&#x439;&#x43D;&#x43E;&#x441;&#x442;&#x438;, &#x43A;&#x43E;&#x438;&#x442;&#x43E; &#x432; &#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x434;&#x440;&#x443;&#x433;&#x438; &#x435;&#x437;&#x438;&#x446;&#x438; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x442; &#x43A;&#x430;&#x442;&#x43E; &#x43F;&#x440;&#x438;&#x43C;&#x438;&#x442;&#x438;&#x432;&#x438;, &#x430; &#x43D;&#x435; &#x43A;&#x430;&#x442;&#x43E; &#x440;&#x435;&#x430;&#x43B;&#x43D;&#x438; &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x438;.\n\n&#x41D;&#x44F;&#x43A;&#x43E;&#x438; &#x43E;&#x442; &#x43D;&#x430;&#x439;-&#x432;&#x430;&#x436;&#x43D;&#x438;&#x442;&#x435; &#x445;&#x430;&#x440;&#x430;&#x43A;&#x442;&#x435;&#x440;&#x438;&#x441;&#x442;&#x438;&#x43A;&#x438; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x441;&#x430;: \n&#x434;&#x438;&#x43C;&#x438;&#x447;&#x43D;&#x43E; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x43D;&#x435; &#x43D;&#x430; &#x442;&#x438;&#x43F;&#x430; &#x434;&#x430;&#x43D;&#x43D;&#x438;&#x442;&#x435;\n&#x43C;&#x43E;&#x434;&#x443;&#x43B;&#x438; - &#x201C;&#x432;&#x44A;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442; &#x435;&#x434;&#x438;&#x43D; &#x43C;&#x43E;&#x434;&#x443;&#x43B; &#x434;&#x430; &#x441;&#x435; &#x432;&#x433;&#x440;&#x430;&#x436;&#x434;&#x430; &#x432; &#x43C;&#x43D;&#x43E;&#x436;&#x435;&#x441;&#x442;&#x432;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;, &#x43A;&#x430;&#x442;&#x43E; &#x442;&#x430;&#x43A;&#x430; &#x441;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x438;&#x433;&#x430; &#x43C;&#x43D;&#x43E;&#x436;&#x435;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43E; &#x43D;&#x430;&#x441;&#x43B;&#x435;&#x434;&#x44F;&#x432;&#x430;&#x43D;&#x435;&#x201D;\n&#x43E;&#x442;&#x432;&#x43E;&#x440;&#x435;&#x43D;&#x438; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435; - &#x201C;&#x43A;&#x44A;&#x43C; &#x432;&#x441;&#x435;&#x43A;&#x438; &#x43A;&#x43B;&#x430;&#x441; &#x43C;&#x43E;&#x433;&#x430;&#x442; &#x434;&#x430; &#x441;&#x435; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44F;&#x442; &#x43D;&#x43E;&#x432;&#x438; &#x430;&#x442;&#x440;&#x438;&#x431;&#x443;&#x442;&#x438; &#x438; &#x43C;&#x435;&#x442;&#x43E;&#x434;&#x438; &#x43F;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x435; &#x43D;&#x430; &#x438;&#x437;&#x43F;&#x44A;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x430;&#x442;&#x430;&#x201D;\n&#x431;&#x43B;&#x43E;&#x43A;&#x43E;&#x432;&#x435;\n&#x430;&#x43D;&#x43E;&#x43D;&#x438;&#x43C;&#x43D;&#x438; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438;\n&#x432;&#x441;&#x44F;&#x43A;&#x430; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x432;&#x440;&#x44A;&#x449;&#x430; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x442;&#x430;&#x442;\n&#x432;&#x441;&#x438;&#x447;&#x43A;&#x43E; &#x435; &#x438;&#x437;&#x43F;&#x44A;&#x43B;&#x43D;&#x438;&#x43C; &#x43A;&#x43E;&#x434; - &#x201C;&#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E; &#x438; &#x442;&#x435;&#x43B;&#x430;&#x442;&#x430; &#x43D;&#x430; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;&#x442;&#x435; &#x432; &#x43A;&#x43E;&#x439;&#x442;&#x43E; &#x43C;&#x43E;&#x436;&#x435; &#x438;&#x43C;&#x430; &#x446;&#x438;&#x43A;&#x43B;&#x438;, &#x443;&#x441;&#x43B;&#x43E;&#x432;&#x43D;&#x438; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x438; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x201D;\n&#x438;&#x437;&#x447;&#x438;&#x441;&#x442;&#x435;&#x43D; &#x441;&#x438;&#x43D;&#x442;&#x430;&#x43A;&#x441;&#x438;&#x441; - &#x201C;&#x43D;&#x435; &#x435; &#x437;&#x430;&#x434;&#x44A;&#x43B;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E;, &#x434;&#x430; &#x441;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44F;&#x442; &#x441;&#x43A;&#x43E;&#x431;&#x438;, &#x442;&#x43E;&#x447;&#x43A;&#x430; &#x438; &#x437;&#x430;&#x43F;&#x435;&#x442;&#x430;&#x44F; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x201D;\n&#x43C;&#x435;&#x442;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x440;&#x430;&#x43D;&#x435;\n&#xA0;\n\n &#x421;&#x442;&#x440;&#x435;&#x43C;&#x435;&#x436;&#x44A;&#x442; &#x43D;&#x430; Ruby &#x435; &#x434;&#x430; &#x441;&#x43B;&#x435;&#x434;&#x432;&#x430; &#x43F;&#x440;&#x438;&#x43D;&#x446;&#x438;&#x43F;&#x430; &#x43D;&#x430; &#x43D;&#x430;&#x439;-&#x43C;&#x430;&#x43B;&#x43A;&#x430; &#x438;&#x437;&#x43D;&#x435;&#x43D;&#x430;&#x434;&#x430;. &#x422;&#x43E;&#x432;&#x430; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x432;&#x430;, &#x447;&#x435; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435;&#x442;&#x43E; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x442;&#x440;&#x44F;&#x431;&#x432;&#x430; &#x434;&#x430; &#x435; &#x438;&#x43D;&#x442;&#x443;&#x438;&#x442;&#x438;&#x432;&#x43D;&#x43E; &#x438; &#x442;&#x43E;&#x439; &#x434;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x438; &#x442;&#x430;&#x43A;&#x430;, &#x43A;&#x430;&#x43A;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x441;&#x442;&#x44A;&#x442; &#x431;&#x438; &#x43E;&#x447;&#x430;&#x43A;&#x432;&#x430;&#x43B;.\nRuby &#x435; &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x43D;&#x43E;-&#x43E;&#x440;&#x438;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x430;&#x43D;: &#x432;&#x441;&#x435;&#x43A;&#x438; &#x442;&#x438;&#x43F; &#x434;&#x430;&#x43D;&#x43D;&#x438; &#x435; &#x43E;&#x431;&#x435;&#x43A;&#x442;, &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;, &#x447;&#x438;&#x441;&#x43B;&#x430;, &#x431;&#x443;&#x43B;&#x435;&#x432;&#x438; &#x441;&#x442;&#x43E;&#x439;&#x43D;&#x43E;&#x441;&#x442;&#x438;, &#x43A;&#x43E;&#x438;&#x442;&#x43E; &#x432; &#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x434;&#x440;&#x443;&#x433;&#x438; &#x435;&#x437;&#x438;&#x446;&#x438; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x442; &#x43A;&#x430;&#x442;&#x43E; &#x43F;&#x440;&#x438;&#x43C;&#x438;&#x442;&#x438;&#x432;&#x438;, &#x430; &#x43D;&#x435; &#x43A;&#x430;&#x442;&#x43E; &#x440;&#x435;&#x430;&#x43B;&#x43D;&#x438; &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x438;.\n\n&#x41D;&#x44F;&#x43A;&#x43E;&#x438; &#x43E;&#x442; &#x43D;&#x430;&#x439;-&#x432;&#x430;&#x436;&#x43D;&#x438;&#x442;&#x435; &#x445;&#x430;&#x440;&#x430;&#x43A;&#x442;&#x435;&#x440;&#x438;&#x441;&#x442;&#x438;&#x43A;&#x438; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x441;&#x430;: \n&#x434;&#x438;&#x43C;&#x438;&#x447;&#x43D;&#x43E; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x43D;&#x435; &#x43D;&#x430; &#x442;&#x438;&#x43F;&#x430; &#x434;&#x430;&#x43D;&#x43D;&#x438;&#x442;&#x435;\n&#x43C;&#x43E;&#x434;&#x443;&#x43B;&#x438; - &#x201C;&#x432;&#x44A;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442; &#x435;&#x434;&#x438;&#x43D; &#x43C;&#x43E;&#x434;&#x443;&#x43B; &#x434;&#x430; &#x441;&#x435; &#x432;&#x433;&#x440;&#x430;&#x436;&#x434;&#x430; &#x432; &#x43C;&#x43D;&#x43E;&#x436;&#x435;&#x441;&#x442;&#x432;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;, &#x43A;&#x430;&#x442;&#x43E; &#x442;&#x430;&#x43A;&#x430; &#x441;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x438;&#x433;&#x430; &#x43C;&#x43D;&#x43E;&#x436;&#x435;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43E; &#x43D;&#x430;&#x441;&#x43B;&#x435;&#x434;&#x44F;&#x432;&#x430;&#x43D;&#x435;&#x201D;\n&#x43E;&#x442;&#x432;&#x43E;&#x440;&#x435;&#x43D;&#x438; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435; - &#x201C;&#x43A;&#x44A;&#x43C; &#x432;&#x441;&#x435;&#x43A;&#x438; &#x43A;&#x43B;&#x430;&#x441; &#x43C;&#x43E;&#x433;&#x430;&#x442; &#x434;&#x430; &#x441;&#x435; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44F;&#x442; &#x43D;&#x43E;&#x432;&#x438; &#x430;&#x442;&#x440;&#x438;&#x431;&#x443;&#x442;&#x438; &#x438; &#x43C;&#x435;&#x442;&#x43E;&#x434;&#x438; &#x43F;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x435; &#x43D;&#x430; &#x438;&#x437;&#x43F;&#x44A;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x430;&#x442;&#x430;&#x201D;\n&#x431;&#x43B;&#x43E;&#x43A;&#x43E;&#x432;&#x435;\n&#x430;&#x43D;&#x43E;&#x43D;&#x438;&#x43C;&#x43D;&#x438; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438;\n&#x432;&#x441;&#x44F;&#x43A;&#x430; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x432;&#x440;&#x44A;&#x449;&#x430; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x442;&#x430;&#x442;\n&#x432;&#x441;&#x438;&#x447;&#x43A;&#x43E; &#x435; &#x438;&#x437;&#x43F;&#x44A;&#x43B;&#x43D;&#x438;&#x43C; &#x43A;&#x43E;&#x434; - &#x201C;&#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E; &#x438; &#x442;&#x435;&#x43B;&#x430;&#x442;&#x430; &#x43D;&#x430; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;&#x442;&#x435; &#x432; &#x43A;&#x43E;&#x439;&#x442;&#x43E; &#x43C;&#x43E;&#x436;&#x435; &#x438;&#x43C;&#x430; &#x446;&#x438;&#x43A;&#x43B;&#x438;, &#x443;&#x441;&#x43B;&#x43E;&#x432;&#x43D;&#x438; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x438; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x201D;\n&#x438;&#x437;&#x447;&#x438;&#x441;&#x442;&#x435;&#x43D; &#x441;&#x438;&#x43D;&#x442;&#x430;&#x43A;&#x441;&#x438;&#x441; - &#x201C;&#x43D;&#x435; &#x435; &#x437;&#x430;&#x434;&#x44A;&#x43B;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E;, &#x434;&#x430; &#x441;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44F;&#x442; &#x441;&#x43A;&#x43E;&#x431;&#x438;, &#x442;&#x43E;&#x447;&#x43A;&#x430; &#x438; &#x437;&#x430;&#x43F;&#x435;&#x442;&#x430;&#x44F; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x201D;\n&#x43C;&#x435;&#x442;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x440;&#x430;&#x43D;&#x435;\n&#xA0;\n\n &#x421;&#x442;&#x440;&#x435;&#x43C;&#x435;&#x436;&#x44A;&#x442; &#x43D;&#x430; Ruby &#x435; &#x434;&#x430; &#x441;&#x43B;&#x435;&#x434;&#x432;&#x430; &#x43F;&#x440;&#x438;&#x43D;&#x446;&#x438;&#x43F;&#x430; &#x43D;&#x430; &#x43D;&#x430;&#x439;-&#x43C;&#x430;&#x43B;&#x43A;&#x430; &#x438;&#x437;&#x43D;&#x435;&#x43D;&#x430;&#x434;&#x430;. &#x422;&#x43E;&#x432;&#x430; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x432;&#x430;, &#x447;&#x435; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435;&#x442;&#x43E; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x442;&#x440;&#x44F;&#x431;&#x432;&#x430; &#x434;&#x430; &#x435; &#x438;&#x43D;&#x442;&#x443;&#x438;&#x442;&#x438;&#x432;&#x43D;&#x43E; &#x438; &#x442;&#x43E;&#x439; &#x434;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x438; &#x442;&#x430;&#x43A;&#x430;, &#x43A;&#x430;&#x43A;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x441;&#x442;&#x44A;&#x442; &#x431;&#x438; &#x43E;&#x447;&#x430;&#x43A;&#x432;&#x430;&#x43B;.\nRuby &#x435; &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x43D;&#x43E;-&#x43E;&#x440;&#x438;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x430;&#x43D;: &#x432;&#x441;&#x435;&#x43A;&#x438; &#x442;&#x438;&#x43F; &#x434;&#x430;&#x43D;&#x43D;&#x438; &#x435; &#x43E;&#x431;&#x435;&#x43A;&#x442;, &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;, &#x447;&#x438;&#x441;&#x43B;&#x430;, &#x431;&#x443;&#x43B;&#x435;&#x432;&#x438; &#x441;&#x442;&#x43E;&#x439;&#x43D;&#x43E;&#x441;&#x442;&#x438;, &#x43A;&#x43E;&#x438;&#x442;&#x43E; &#x432; &#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x434;&#x440;&#x443;&#x433;&#x438; &#x435;&#x437;&#x438;&#x446;&#x438; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x442; &#x43A;&#x430;&#x442;&#x43E; &#x43F;&#x440;&#x438;&#x43C;&#x438;&#x442;&#x438;&#x432;&#x438;, &#x430; &#x43D;&#x435; &#x43A;&#x430;&#x442;&#x43E; &#x440;&#x435;&#x430;&#x43B;&#x43D;&#x438; &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x438;.\n\n&#x41D;&#x44F;&#x43A;&#x43E;&#x438; &#x43E;&#x442; &#x43D;&#x430;&#x439;-&#x432;&#x430;&#x436;&#x43D;&#x438;&#x442;&#x435; &#x445;&#x430;&#x440;&#x430;&#x43A;&#x442;&#x435;&#x440;&#x438;&#x441;&#x442;&#x438;&#x43A;&#x438; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x441;&#x430;: \n&#x434;&#x438;&#x43C;&#x438;&#x447;&#x43D;&#x43E; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x43D;&#x435; &#x43D;&#x430; &#x442;&#x438;&#x43F;&#x430; &#x434;&#x430;&#x43D;&#x43D;&#x438;&#x442;&#x435;\n&#x43C;&#x43E;&#x434;&#x443;&#x43B;&#x438; - &#x201C;&#x432;&#x44A;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442; &#x435;&#x434;&#x438;&#x43D; &#x43C;&#x43E;&#x434;&#x443;&#x43B; &#x434;&#x430; &#x441;&#x435; &#x432;&#x433;&#x440;&#x430;&#x436;&#x434;&#x430; &#x432; &#x43C;&#x43D;&#x43E;&#x436;&#x435;&#x441;&#x442;&#x432;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;, &#x43A;&#x430;&#x442;&#x43E; &#x442;&#x430;&#x43A;&#x430; &#x441;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x438;&#x433;&#x430; &#x43C;&#x43D;&#x43E;&#x436;&#x435;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43E; &#x43D;&#x430;&#x441;&#x43B;&#x435;&#x434;&#x44F;&#x432;&#x430;&#x43D;&#x435;&#x201D;\n&#x43E;&#x442;&#x432;&#x43E;&#x440;&#x435;&#x43D;&#x438; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435; - &#x201C;&#x43A;&#x44A;&#x43C; &#x432;&#x441;&#x435;&#x43A;&#x438; &#x43A;&#x43B;&#x430;&#x441; &#x43C;&#x43E;&#x433;&#x430;&#x442; &#x434;&#x430; &#x441;&#x435; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44F;&#x442; &#x43D;&#x43E;&#x432;&#x438; &#x430;&#x442;&#x440;&#x438;&#x431;&#x443;&#x442;&#x438; &#x438; &#x43C;&#x435;&#x442;&#x43E;&#x434;&#x438; &#x43F;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x435; &#x43D;&#x430; &#x438;&#x437;&#x43F;&#x44A;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x430;&#x442;&#x430;&#x201D;\n&#x431;&#x43B;&#x43E;&#x43A;&#x43E;&#x432;&#x435;\n&#x430;&#x43D;&#x43E;&#x43D;&#x438;&#x43C;&#x43D;&#x438; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438;\n&#x432;&#x441;&#x44F;&#x43A;&#x430; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x432;&#x440;&#x44A;&#x449;&#x430; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x442;&#x430;&#x442;\n&#x432;&#x441;&#x438;&#x447;&#x43A;&#x43E; &#x435; &#x438;&#x437;&#x43F;&#x44A;&#x43B;&#x43D;&#x438;&#x43C; &#x43A;&#x43E;&#x434; - &#x201C;&#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E; &#x438; &#x442;&#x435;&#x43B;&#x430;&#x442;&#x430; &#x43D;&#x430; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;&#x442;&#x435; &#x432; &#x43A;&#x43E;&#x439;&#x442;&#x43E; &#x43C;&#x43E;&#x436;&#x435; &#x438;&#x43C;&#x430; &#x446;&#x438;&#x43A;&#x43B;&#x438;, &#x443;&#x441;&#x43B;&#x43E;&#x432;&#x43D;&#x438; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x438; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x201D;\n&#x438;&#x437;&#x447;&#x438;&#x441;&#x442;&#x435;&#x43D; &#x441;&#x438;&#x43D;&#x442;&#x430;&#x43A;&#x441;&#x438;&#x441; - &#x201C;&#x43D;&#x435; &#x435; &#x437;&#x430;&#x434;&#x44A;&#x43B;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E;, &#x434;&#x430; &#x441;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44F;&#x442; &#x441;&#x43A;&#x43E;&#x431;&#x438;, &#x442;&#x43E;&#x447;&#x43A;&#x430; &#x438; &#x437;&#x430;&#x43F;&#x435;&#x442;&#x430;&#x44F; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x201D;\n&#x43C;&#x435;&#x442;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x440;&#x430;&#x43D;&#x435;\n&#xA0;\n\n &#x421;&#x442;&#x440;&#x435;&#x43C;&#x435;&#x436;&#x44A;&#x442; &#x43D;&#x430; Ruby &#x435; &#x434;&#x430; &#x441;&#x43B;&#x435;&#x434;&#x432;&#x430; &#x43F;&#x440;&#x438;&#x43D;&#x446;&#x438;&#x43F;&#x430; &#x43D;&#x430; &#x43D;&#x430;&#x439;-&#x43C;&#x430;&#x43B;&#x43A;&#x430; &#x438;&#x437;&#x43D;&#x435;&#x43D;&#x430;&#x434;&#x430;. &#x422;&#x43E;&#x432;&#x430; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x432;&#x430;, &#x447;&#x435; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435;&#x442;&#x43E; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x442;&#x440;&#x44F;&#x431;&#x432;&#x430; &#x434;&#x430; &#x435; &#x438;&#x43D;&#x442;&#x443;&#x438;&#x442;&#x438;&#x432;&#x43D;&#x43E; &#x438; &#x442;&#x43E;&#x439; &#x434;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x438; &#x442;&#x430;&#x43A;&#x430;, &#x43A;&#x430;&#x43A;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x441;&#x442;&#x44A;&#x442; &#x431;&#x438; &#x43E;&#x447;&#x430;&#x43A;&#x432;&#x430;&#x43B;.\nRuby &#x435; &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x43D;&#x43E;-&#x43E;&#x440;&#x438;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x430;&#x43D;: &#x432;&#x441;&#x435;&#x43A;&#x438; &#x442;&#x438;&#x43F; &#x434;&#x430;&#x43D;&#x43D;&#x438; &#x435; &#x43E;&#x431;&#x435;&#x43A;&#x442;, &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;, &#x447;&#x438;&#x441;&#x43B;&#x430;, &#x431;&#x443;&#x43B;&#x435;&#x432;&#x438; &#x441;&#x442;&#x43E;&#x439;&#x43D;&#x43E;&#x441;&#x442;&#x438;, &#x43A;&#x43E;&#x438;&#x442;&#x43E; &#x432; &#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x434;&#x440;&#x443;&#x433;&#x438; &#x435;&#x437;&#x438;&#x446;&#x438; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x442; &#x43A;&#x430;&#x442;&#x43E; &#x43F;&#x440;&#x438;&#x43C;&#x438;&#x442;&#x438;&#x432;&#x438;, &#x430; &#x43D;&#x435; &#x43A;&#x430;&#x442;&#x43E; &#x440;&#x435;&#x430;&#x43B;&#x43D;&#x438; &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x438;.\n\n&#x41D;&#x44F;&#x43A;&#x43E;&#x438; &#x43E;&#x442; &#x43D;&#x430;&#x439;-&#x432;&#x430;&#x436;&#x43D;&#x438;&#x442;&#x435; &#x445;&#x430;&#x440;&#x430;&#x43A;&#x442;&#x435;&#x440;&#x438;&#x441;&#x442;&#x438;&#x43A;&#x438; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x441;&#x430;: \n&#x434;&#x438;&#x43C;&#x438;&#x447;&#x43D;&#x43E; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x43D;&#x435; &#x43D;&#x430; &#x442;&#x438;&#x43F;&#x430; &#x434;&#x430;&#x43D;&#x43D;&#x438;&#x442;&#x435;\n&#x43C;&#x43E;&#x434;&#x443;&#x43B;&#x438; - &#x201C;&#x432;&#x44A;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442; &#x435;&#x434;&#x438;&#x43D; &#x43C;&#x43E;&#x434;&#x443;&#x43B; &#x434;&#x430; &#x441;&#x435; &#x432;&#x433;&#x440;&#x430;&#x436;&#x434;&#x430; &#x432; &#x43C;&#x43D;&#x43E;&#x436;&#x435;&#x441;&#x442;&#x432;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;, &#x43A;&#x430;&#x442;&#x43E; &#x442;&#x430;&#x43A;&#x430; &#x441;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x438;&#x433;&#x430; &#x43C;&#x43D;&#x43E;&#x436;&#x435;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43E; &#x43D;&#x430;&#x441;&#x43B;&#x435;&#x434;&#x44F;&#x432;&#x430;&#x43D;&#x435;&#x201D;\n&#x43E;&#x442;&#x432;&#x43E;&#x440;&#x435;&#x43D;&#x438; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435; - &#x201C;&#x43A;&#x44A;&#x43C; &#x432;&#x441;&#x435;&#x43A;&#x438; &#x43A;&#x43B;&#x430;&#x441; &#x43C;&#x43E;&#x433;&#x430;&#x442; &#x434;&#x430; &#x441;&#x435; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44F;&#x442; &#x43D;&#x43E;&#x432;&#x438; &#x430;&#x442;&#x440;&#x438;&#x431;&#x443;&#x442;&#x438; &#x438; &#x43C;&#x435;&#x442;&#x43E;&#x434;&#x438; &#x43F;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x435; &#x43D;&#x430; &#x438;&#x437;&#x43F;&#x44A;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x430;&#x442;&#x430;&#x201D;\n&#x431;&#x43B;&#x43E;&#x43A;&#x43E;&#x432;&#x435;\n&#x430;&#x43D;&#x43E;&#x43D;&#x438;&#x43C;&#x43D;&#x438; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438;\n&#x432;&#x441;&#x44F;&#x43A;&#x430; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x432;&#x440;&#x44A;&#x449;&#x430; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x442;&#x430;&#x442;\n&#x432;&#x441;&#x438;&#x447;&#x43A;&#x43E; &#x435; &#x438;&#x437;&#x43F;&#x44A;&#x43B;&#x43D;&#x438;&#x43C; &#x43A;&#x43E;&#x434; - &#x201C;&#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E; &#x438; &#x442;&#x435;&#x43B;&#x430;&#x442;&#x430; &#x43D;&#x430; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;&#x442;&#x435; &#x432; &#x43A;&#x43E;&#x439;&#x442;&#x43E; &#x43C;&#x43E;&#x436;&#x435; &#x438;&#x43C;&#x430; &#x446;&#x438;&#x43A;&#x43B;&#x438;, &#x443;&#x441;&#x43B;&#x43E;&#x432;&#x43D;&#x438; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x438; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x201D;\n&#x438;&#x437;&#x447;&#x438;&#x441;&#x442;&#x435;&#x43D; &#x441;&#x438;&#x43D;&#x442;&#x430;&#x43A;&#x441;&#x438;&#x441; - &#x201C;&#x43D;&#x435; &#x435; &#x437;&#x430;&#x434;&#x44A;&#x43B;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E;, &#x434;&#x430; &#x441;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44F;&#x442; &#x441;&#x43A;&#x43E;&#x431;&#x438;, &#x442;&#x43E;&#x447;&#x43A;&#x430; &#x438; &#x437;&#x430;&#x43F;&#x435;&#x442;&#x430;&#x44F; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x201D;\n&#x43C;&#x435;&#x442;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x440;&#x430;&#x43D;&#x435;\n&#xA0;\n\n &#x421;&#x442;&#x440;&#x435;&#x43C;&#x435;&#x436;&#x44A;&#x442; &#x43D;&#x430; Ruby &#x435; &#x434;&#x430; &#x441;&#x43B;&#x435;&#x434;&#x432;&#x430; &#x43F;&#x440;&#x438;&#x43D;&#x446;&#x438;&#x43F;&#x430; &#x43D;&#x430; &#x43D;&#x430;&#x439;-&#x43C;&#x430;&#x43B;&#x43A;&#x430; &#x438;&#x437;&#x43D;&#x435;&#x43D;&#x430;&#x434;&#x430;. &#x422;&#x43E;&#x432;&#x430; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x432;&#x430;, &#x447;&#x435; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435;&#x442;&#x43E; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x442;&#x440;&#x44F;&#x431;&#x432;&#x430; &#x434;&#x430; &#x435; &#x438;&#x43D;&#x442;&#x443;&#x438;&#x442;&#x438;&#x432;&#x43D;&#x43E; &#x438; &#x442;&#x43E;&#x439; &#x434;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x438; &#x442;&#x430;&#x43A;&#x430;, &#x43A;&#x430;&#x43A;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x441;&#x442;&#x44A;&#x442; &#x431;&#x438; &#x43E;&#x447;&#x430;&#x43A;&#x432;&#x430;&#x43B;.\nRuby &#x435; &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x43D;&#x43E;-&#x43E;&#x440;&#x438;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x430;&#x43D;: &#x432;&#x441;&#x435;&#x43A;&#x438; &#x442;&#x438;&#x43F; &#x434;&#x430;&#x43D;&#x43D;&#x438; &#x435; &#x43E;&#x431;&#x435;&#x43A;&#x442;, &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;, &#x447;&#x438;&#x441;&#x43B;&#x430;, &#x431;&#x443;&#x43B;&#x435;&#x432;&#x438; &#x441;&#x442;&#x43E;&#x439;&#x43D;&#x43E;&#x441;&#x442;&#x438;, &#x43A;&#x43E;&#x438;&#x442;&#x43E; &#x432; &#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x434;&#x440;&#x443;&#x433;&#x438; &#x435;&#x437;&#x438;&#x446;&#x438; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x442; &#x43A;&#x430;&#x442;&#x43E; &#x43F;&#x440;&#x438;&#x43C;&#x438;&#x442;&#x438;&#x432;&#x438;, &#x430; &#x43D;&#x435; &#x43A;&#x430;&#x442;&#x43E; &#x440;&#x435;&#x430;&#x43B;&#x43D;&#x438; &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x438;.\n\n&#x41D;&#x44F;&#x43A;&#x43E;&#x438; &#x43E;&#x442; &#x43D;&#x430;&#x439;-&#x432;&#x430;&#x436;&#x43D;&#x438;&#x442;&#x435; &#x445;&#x430;&#x440;&#x430;&#x43A;&#x442;&#x435;&#x440;&#x438;&#x441;&#x442;&#x438;&#x43A;&#x438; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x441;&#x430;: \n&#x434;&#x438;&#x43C;&#x438;&#x447;&#x43D;&#x43E; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x43D;&#x435; &#x43D;&#x430; &#x442;&#x438;&#x43F;&#x430; &#x434;&#x430;&#x43D;&#x43D;&#x438;&#x442;&#x435;\n&#x43C;&#x43E;&#x434;&#x443;&#x43B;&#x438; - &#x201C;&#x432;&#x44A;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442; &#x435;&#x434;&#x438;&#x43D; &#x43C;&#x43E;&#x434;&#x443;&#x43B; &#x434;&#x430; &#x441;&#x435; &#x432;&#x433;&#x440;&#x430;&#x436;&#x434;&#x430; &#x432; &#x43C;&#x43D;&#x43E;&#x436;&#x435;&#x441;&#x442;&#x432;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;, &#x43A;&#x430;&#x442;&#x43E; &#x442;&#x430;&#x43A;&#x430; &#x441;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x438;&#x433;&#x430; &#x43C;&#x43D;&#x43E;&#x436;&#x435;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43E; &#x43D;&#x430;&#x441;&#x43B;&#x435;&#x434;&#x44F;&#x432;&#x430;&#x43D;&#x435;&#x201D;\n&#x43E;&#x442;&#x432;&#x43E;&#x440;&#x435;&#x43D;&#x438; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435; - &#x201C;&#x43A;&#x44A;&#x43C; &#x432;&#x441;&#x435;&#x43A;&#x438; &#x43A;&#x43B;&#x430;&#x441; &#x43C;&#x43E;&#x433;&#x430;&#x442; &#x434;&#x430; &#x441;&#x435; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44F;&#x442; &#x43D;&#x43E;&#x432;&#x438; &#x430;&#x442;&#x440;&#x438;&#x431;&#x443;&#x442;&#x438; &#x438; &#x43C;&#x435;&#x442;&#x43E;&#x434;&#x438; &#x43F;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x435; &#x43D;&#x430; &#x438;&#x437;&#x43F;&#x44A;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x430;&#x442;&#x430;&#x201D;\n&#x431;&#x43B;&#x43E;&#x43A;&#x43E;&#x432;&#x435;\n&#x430;&#x43D;&#x43E;&#x43D;&#x438;&#x43C;&#x43D;&#x438; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438;\n&#x432;&#x441;&#x44F;&#x43A;&#x430; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x432;&#x440;&#x44A;&#x449;&#x430; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x442;&#x430;&#x442;\n&#x432;&#x441;&#x438;&#x447;&#x43A;&#x43E; &#x435; &#x438;&#x437;&#x43F;&#x44A;&#x43B;&#x43D;&#x438;&#x43C; &#x43A;&#x43E;&#x434; - &#x201C;&#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E; &#x438; &#x442;&#x435;&#x43B;&#x430;&#x442;&#x430; &#x43D;&#x430; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;&#x442;&#x435; &#x432; &#x43A;&#x43E;&#x439;&#x442;&#x43E; &#x43C;&#x43E;&#x436;&#x435; &#x438;&#x43C;&#x430; &#x446;&#x438;&#x43A;&#x43B;&#x438;, &#x443;&#x441;&#x43B;&#x43E;&#x432;&#x43D;&#x438; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x438; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x201D;\n&#x438;&#x437;&#x447;&#x438;&#x441;&#x442;&#x435;&#x43D; &#x441;&#x438;&#x43D;&#x442;&#x430;&#x43A;&#x441;&#x438;&#x441; - &#x201C;&#x43D;&#x435; &#x435; &#x437;&#x430;&#x434;&#x44A;&#x43B;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E;, &#x434;&#x430; &#x441;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44F;&#x442; &#x441;&#x43A;&#x43E;&#x431;&#x438;, &#x442;&#x43E;&#x447;&#x43A;&#x430; &#x438; &#x437;&#x430;&#x43F;&#x435;&#x442;&#x430;&#x44F; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x201D;\n&#x43C;&#x435;&#x442;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x440;&#x430;&#x43D;&#x435;\n&#xA0;\n\n &#x421;&#x442;&#x440;&#x435;&#x43C;&#x435;&#x436;&#x44A;&#x442; &#x43D;&#x430; Ruby &#x435; &#x434;&#x430; &#x441;&#x43B;&#x435;&#x434;&#x432;&#x430; &#x43F;&#x440;&#x438;&#x43D;&#x446;&#x438;&#x43F;&#x430; &#x43D;&#x430; &#x43D;&#x430;&#x439;-&#x43C;&#x430;&#x43B;&#x43A;&#x430; &#x438;&#x437;&#x43D;&#x435;&#x43D;&#x430;&#x434;&#x430;. &#x422;&#x43E;&#x432;&#x430; &#x43E;&#x437;&#x43D;&#x430;&#x447;&#x430;&#x432;&#x430;, &#x447;&#x435; &#x43F;&#x43E;&#x432;&#x435;&#x434;&#x435;&#x43D;&#x438;&#x435;&#x442;&#x43E; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x442;&#x440;&#x44F;&#x431;&#x432;&#x430; &#x434;&#x430; &#x435; &#x438;&#x43D;&#x442;&#x443;&#x438;&#x442;&#x438;&#x432;&#x43D;&#x43E; &#x438; &#x442;&#x43E;&#x439; &#x434;&#x430; &#x440;&#x430;&#x431;&#x43E;&#x442;&#x438; &#x442;&#x430;&#x43A;&#x430;, &#x43A;&#x430;&#x43A;&#x442;&#x43E; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x441;&#x442;&#x44A;&#x442; &#x431;&#x438; &#x43E;&#x447;&#x430;&#x43A;&#x432;&#x430;&#x43B;.\nRuby &#x435; &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x43D;&#x43E;-&#x43E;&#x440;&#x438;&#x435;&#x43D;&#x442;&#x438;&#x440;&#x430;&#x43D;: &#x432;&#x441;&#x435;&#x43A;&#x438; &#x442;&#x438;&#x43F; &#x434;&#x430;&#x43D;&#x43D;&#x438; &#x435; &#x43E;&#x431;&#x435;&#x43A;&#x442;, &#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;, &#x447;&#x438;&#x441;&#x43B;&#x430;, &#x431;&#x443;&#x43B;&#x435;&#x432;&#x438; &#x441;&#x442;&#x43E;&#x439;&#x43D;&#x43E;&#x441;&#x442;&#x438;, &#x43A;&#x43E;&#x438;&#x442;&#x43E; &#x432; &#x43C;&#x43D;&#x43E;&#x433;&#x43E; &#x434;&#x440;&#x443;&#x433;&#x438; &#x435;&#x437;&#x438;&#x446;&#x438; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x442; &#x43A;&#x430;&#x442;&#x43E; &#x43F;&#x440;&#x438;&#x43C;&#x438;&#x442;&#x438;&#x432;&#x438;, &#x430; &#x43D;&#x435; &#x43A;&#x430;&#x442;&#x43E; &#x440;&#x435;&#x430;&#x43B;&#x43D;&#x438; &#x43E;&#x431;&#x435;&#x43A;&#x442;&#x438;.\n\n&#x41D;&#x44F;&#x43A;&#x43E;&#x438; &#x43E;&#x442; &#x43D;&#x430;&#x439;-&#x432;&#x430;&#x436;&#x43D;&#x438;&#x442;&#x435; &#x445;&#x430;&#x440;&#x430;&#x43A;&#x442;&#x435;&#x440;&#x438;&#x441;&#x442;&#x438;&#x43A;&#x438; &#x43D;&#x430; &#x435;&#x437;&#x438;&#x43A;&#x430; &#x441;&#x430;: \n&#x434;&#x438;&#x43C;&#x438;&#x447;&#x43D;&#x43E; &#x43E;&#x43F;&#x440;&#x435;&#x434;&#x435;&#x43B;&#x44F;&#x43D;&#x435; &#x43D;&#x430; &#x442;&#x438;&#x43F;&#x430; &#x434;&#x430;&#x43D;&#x43D;&#x438;&#x442;&#x435;\n&#x43C;&#x43E;&#x434;&#x443;&#x43B;&#x438; - &#x201C;&#x432;&#x44A;&#x437;&#x43C;&#x43E;&#x436;&#x43D;&#x43E;&#x441;&#x442; &#x435;&#x434;&#x438;&#x43D; &#x43C;&#x43E;&#x434;&#x443;&#x43B; &#x434;&#x430; &#x441;&#x435; &#x432;&#x433;&#x440;&#x430;&#x436;&#x434;&#x430; &#x432; &#x43C;&#x43D;&#x43E;&#x436;&#x435;&#x441;&#x442;&#x432;&#x43E; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;, &#x43A;&#x430;&#x442;&#x43E; &#x442;&#x430;&#x43A;&#x430; &#x441;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x438;&#x433;&#x430; &#x43C;&#x43D;&#x43E;&#x436;&#x435;&#x441;&#x442;&#x432;&#x435;&#x43D;&#x43E; &#x43D;&#x430;&#x441;&#x43B;&#x435;&#x434;&#x44F;&#x432;&#x430;&#x43D;&#x435;&#x201D;\n&#x43E;&#x442;&#x432;&#x43E;&#x440;&#x435;&#x43D;&#x438; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435; - &#x201C;&#x43A;&#x44A;&#x43C; &#x432;&#x441;&#x435;&#x43A;&#x438; &#x43A;&#x43B;&#x430;&#x441; &#x43C;&#x43E;&#x433;&#x430;&#x442; &#x434;&#x430; &#x441;&#x435; &#x434;&#x43E;&#x431;&#x430;&#x432;&#x44F;&#x442; &#x43D;&#x43E;&#x432;&#x438; &#x430;&#x442;&#x440;&#x438;&#x431;&#x443;&#x442;&#x438; &#x438; &#x43C;&#x435;&#x442;&#x43E;&#x434;&#x438; &#x43F;&#x43E; &#x432;&#x440;&#x435;&#x43C;&#x435; &#x43D;&#x430; &#x438;&#x437;&#x43F;&#x44A;&#x43B;&#x43D;&#x435;&#x43D;&#x438;&#x435; &#x43D;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x430;&#x442;&#x430;&#x201D;\n&#x431;&#x43B;&#x43E;&#x43A;&#x43E;&#x432;&#x435;\n&#x430;&#x43D;&#x43E;&#x43D;&#x438;&#x43C;&#x43D;&#x438; &#x444;&#x443;&#x43D;&#x43A;&#x446;&#x438;&#x438;\n&#x432;&#x441;&#x44F;&#x43A;&#x430; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x446;&#x438;&#x44F; &#x432;&#x440;&#x44A;&#x449;&#x430; &#x440;&#x435;&#x437;&#x443;&#x43B;&#x442;&#x430;&#x442;\n&#x432;&#x441;&#x438;&#x447;&#x43A;&#x43E; &#x435; &#x438;&#x437;&#x43F;&#x44A;&#x43B;&#x43D;&#x438;&#x43C; &#x43A;&#x43E;&#x434; - &#x201C;&#x432;&#x43A;&#x43B;&#x44E;&#x447;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E; &#x438; &#x442;&#x435;&#x43B;&#x430;&#x442;&#x430; &#x43D;&#x430; &#x43A;&#x43B;&#x430;&#x441;&#x43E;&#x432;&#x435;&#x442;&#x435; &#x432; &#x43A;&#x43E;&#x439;&#x442;&#x43E; &#x43C;&#x43E;&#x436;&#x435; &#x438;&#x43C;&#x430; &#x446;&#x438;&#x43A;&#x43B;&#x438;, &#x443;&#x441;&#x43B;&#x43E;&#x432;&#x43D;&#x438; &#x43E;&#x43F;&#x435;&#x440;&#x430;&#x442;&#x43E;&#x440;&#x438; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x201D;\n&#x438;&#x437;&#x447;&#x438;&#x441;&#x442;&#x435;&#x43D; &#x441;&#x438;&#x43D;&#x442;&#x430;&#x43A;&#x441;&#x438;&#x441; - &#x201C;&#x43D;&#x435; &#x435; &#x437;&#x430;&#x434;&#x44A;&#x43B;&#x436;&#x438;&#x442;&#x435;&#x43B;&#x43D;&#x43E;, &#x434;&#x430; &#x441;&#x435; &#x43F;&#x43E;&#x441;&#x442;&#x430;&#x432;&#x44F;&#x442; &#x441;&#x43A;&#x43E;&#x431;&#x438;, &#x442;&#x43E;&#x447;&#x43A;&#x430; &#x438; &#x437;&#x430;&#x43F;&#x435;&#x442;&#x430;&#x44F; &#x438; &#x434;&#x440;&#x443;&#x433;&#x438;&#x201D;\n&#x43C;&#x435;&#x442;&#x430; &#x43F;&#x440;&#x43E;&#x433;&#x440;&#x430;&#x43C;&#x438;&#x440;&#x430;&#x43D;&#x435;\n&#xA0;\n\n \n \n