Open piskovoy-dmitrij opened 7 years ago
Продублюю :) "Ім'я папки має бути створене за шаблоном типу name.surname_githubUsername" У кого ім'я папки чи файл не відповідають вимогам реквести відхиляються і треба переробити.
Напоминаю также для всех. Правильно оформленные пул реквесты с заданием домашней работы ждем до конца дня 06.11.16 К след занятию нужно просмотреть видео и почитать по теме №1 из папки "sessions". Ссылка на видео есть в ридми.
Hometask 1
Взять любую предметную область из реальной жизни и сделать ее описание (объекты, связи, т.д). Т.е расписать предметную область так, как вы видите ее при автоматизации и дальнейшего описание в коде программы. Для домашнего задания не нужно использовать какие-то компьютерные языки, хватит украинского, русского или английского :) Можно использовать маркдаун. Окончание приема работ 13.11.16 23:59 (но не забывайте подключать здравый смысл)
в 'Hometask 1' в последних скобках написано не "подключать", а "подлючать".
Hometask 2
Взять предметную область (либо с предыдущей домашней работы либо новую) на ваше усмотрение. Расписать эту предметную область. Для одной или несколько частей работы указать какой паттерн соответсвует этой части описания. Окончание приема работ 20.11.16 22:59 :)
Hometask 3 Взять один из паттернов своей предметной области. Реализовать паттерн при помощи классов, можно использовать наследование, миксины или динамическое расширение классов/инстансов. Попробуйте использовать инициалайзеры, акссесоры, методы класса. Как минимум 3 класса с 4-5 методами. После описания классов должен быть пример их использования, например инициализация объекта и вызов определенных функций. P.S. Не стесняемся пользоваться https://github.com/bbatsov/ruby-style-guide и здравым смыслом.
Hometask 4 Прочитать документацию для Hahs, Array и Set. http://ruby-doc.org/core-2.3.3/ Выбрать 5-6 методов, которые покажуться вам интересными и сделать с ними примеры.
Hometask 5 Взять 3-е домашнее задания и переделать наследования при помощи include и extend. Если нет наследования, то нужно придумать модули, которые могут быть полезны вашим текущим классам.
Hometask 6
Ребята, я думал, что последняя домашка не сложная. Однако почему-то никто не посмотрел в сторону использования методов instance_eval, class_eval, define_method, define_singleton_method. Предлагаю ознакомиться с кодом ниже, сможете ли разобраться что для чего и как работает? Используйте irb, выполняйте пошагово, но должно быть понимание работы кода. ``
class MyClass
end
def handler_no_method(err)
err.receiver.instance_eval do
define_singleton_method(err.name) do
puts("It's instance method #{err.name} for object #{err.receiver}")
end
end
end
# create two instance of MyClass
a = MyClass.new
b = MyClass.new
# example 1 - define method only instance a
begin
a.method1
rescue NoMethodError => err
handler_no_method(err)
retry
end
begin
b.method1
rescue NoMethodError => err
puts("other instances of MyClass doesn't have the method #{err.spell_checker.method_name}")
end
# example2 - define class method for MyClass
begin
MyClass.method2
rescue NoMethodError => err
handler_no_method(err)
retry
end
# example3 - define method for all instances of MyClass
begin
a.method2
rescue NoMethodError => err
# we should use "send" method because "define_method" is private method
err.receiver.class.send(:define_method, err.name) do
puts("New method")
end
retry
end
b.method2
По поводу домашней работы. Разбираем пример #9 https://github.com/MastersAcademy/ruby-rails-course/blob/master/Sessions/6%20-%20Functional%20Ruby/examples/9.rb Берем json либо из примера, либо придумываем аналогичный. Парсим его, динамически создаем или структуры с набором переменных и методов доступа к ним, или классы с методами. В работе пробуем приминить proc или lambda.
С прошедшими праздниками!!! На завтра посмотрите лекции по темам Rack и REST. На занятии расскажем про следующую домашку и ответим на вопросы.
На завтра изучить темы ActiveRecord и Serialization. подготовить вопросы по теме и проектам, которые вы выбрали.
Hometask 8
Good Luck. May the Force be with you.
Hometask 8.1
Performance and Tests.
Hometask 9.0
Hometask 0