Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hometasks #1

Open
piskovoy-dmitrij opened this issue Nov 2, 2016 · 16 comments
Open

Hometasks #1

piskovoy-dmitrij opened this issue Nov 2, 2016 · 16 comments

Comments

@piskovoy-dmitrij
Copy link

Hometask 0

  • Уважно прочитати і усвідомити README в корні репозиторію
  • Форкнути репозиторій. У форкнутому репозиторії в каталозі homeworks створити каталог для домашніх завдань. Всередині створити каталог Homework 0 і додати в нього файл README.md з будь-яким вмістом. Зробити пул реквест в основний репозиторій.
  • Обов'язково пройти туторіал Try GitHub. Створувати файли через інтерфейс гітхаба - неправильно. Та і доданий цей функціонал місяці чотири тому. Все повинно робитися на вашому комп'ютері і заливатись в репозиторій за допомогою пушів.
@piskovoy-dmitrij
Copy link
Author

Продублюю :)
"Ім'я папки має бути створене за шаблоном типу name.surname_githubUsername"
У кого ім'я папки чи файл не відповідають вимогам реквести відхиляються і треба переробити.

@piskovoy-dmitrij
Copy link
Author

piskovoy-dmitrij commented Nov 3, 2016

Напоминаю также для всех.
Правильно оформленные пул реквесты с заданием домашней работы ждем до конца дня 06.11.16
К след занятию нужно просмотреть видео и почитать по теме №1 из папки "sessions".
Ссылка на видео есть в ридми.

@piskovoy-dmitrij
Copy link
Author

piskovoy-dmitrij commented Nov 10, 2016

Hometask 1

Взять любую предметную область из реальной жизни и сделать ее описание (объекты, связи, т.д). Т.е расписать предметную область так, как вы видите ее при автоматизации и дальнейшего описание в коде программы.
Для домашнего задания не нужно использовать какие-то компьютерные языки, хватит украинского, русского или английского :) Можно использовать маркдаун.
Окончание приема работ 13.11.16 23:59 (но не забывайте подключать здравый смысл)

@darkwoolf10
Copy link

darkwoolf10 commented Nov 12, 2016

в 'Hometask 1' в последних скобках написано не "подключать", а "подлючать".

ZaliznyakD added a commit to ZaliznyakD/ruby-rails-course that referenced this issue Nov 12, 2016
piskovoy-dmitrij pushed a commit that referenced this issue Nov 13, 2016
Mnilko pushed a commit that referenced this issue Nov 13, 2016
@piskovoy-dmitrij
Copy link
Author

Hometask 2

Взять предметную область (либо с предыдущей домашней работы либо новую) на ваше усмотрение. Расписать эту предметную область. Для одной или несколько частей работы указать какой паттерн соответсвует этой части описания.
Окончание приема работ 20.11.16 22:59 :)

@Mnilko
Copy link
Contributor

Mnilko commented Nov 24, 2016

Hometask 3
Взять один из паттернов своей предметной области. Реализовать паттерн при помощи классов, можно использовать наследование, миксины или динамическое расширение классов/инстансов. Попробуйте использовать инициалайзеры, акссесоры, методы класса. Как минимум 3 класса с 4-5 методами. После описания классов должен быть пример их использования, например инициализация объекта и вызов определенных функций.
P.S. Не стесняемся пользоваться https://github.com/bbatsov/ruby-style-guide и здравым смыслом.

@Mnilko
Copy link
Contributor

Mnilko commented Dec 2, 2016

Hometask 4
Прочитать документацию для Hahs, Array и Set. http://ruby-doc.org/core-2.3.3/
Выбрать 5-6 методов, которые покажуться вам интересными и сделать с ними примеры.

@Mnilko
Copy link
Contributor

Mnilko commented Dec 9, 2016

Hometask 5
Взять 3-е домашнее задания и переделать наследования при помощи include и extend. Если нет наследования, то нужно придумать модули, которые могут быть полезны вашим текущим классам.

@shcherb
Copy link

shcherb commented Dec 14, 2016

Hometask 6

  1. В своей последней работе, добавить обработчик исключения NoMethodError.
    В обработчике создать метод для класса или для экземпляра класса в зависимости от того, применительно к чему вызовался несуществующий метод.
  2. Создать собственный подклас StandardError и обработчик для этого исключения.

@shcherb shcherb closed this as completed Dec 14, 2016
@Mnilko Mnilko reopened this Dec 18, 2016
@shcherb
Copy link

shcherb commented Dec 26, 2016

Ребята, я думал, что последняя домашка не сложная. Однако почему-то никто не посмотрел в сторону использования методов 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

@shcherb
Copy link

shcherb commented Jan 4, 2017

По поводу домашней работы. Разбираем пример #9
https://github.com/MastersAcademy/ruby-rails-course/blob/master/Sessions/6%20-%20Functional%20Ruby/examples/9.rb
Берем json либо из примера, либо придумываем аналогичный. Парсим его, динамически создаем или структуры с набором переменных и методов доступа к ним, или классы с методами. В работе пробуем приминить proc или lambda.

@Mnilko
Copy link
Contributor

Mnilko commented Jan 10, 2017

С прошедшими праздниками!!! На завтра посмотрите лекции по темам Rack и REST. На занятии расскажем про следующую домашку и ответим на вопросы.

@Mnilko
Copy link
Contributor

Mnilko commented Jan 15, 2017

На завтра изучить темы ActiveRecord и Serialization. подготовить вопросы по теме и проектам, которые вы выбрали.

@Mnilko
Copy link
Contributor

Mnilko commented Jan 16, 2017

Hometask 8

  1. Create Sinatra app. https://github.com/sinatra/sinatra
  2. Add ActiveRecord ORM.
  3. Use raw json or Sinatra::JSON. (Use ActiveModelSerializer or Jbuilder.)
  4. Create User and Post models. Add migrations.
  5. User can create and edit posts. Select user and then create and edit posts.
  6. Get endpoints should respond to json and html.
  7. Run application on Heroku.

Good Luck.
May the Force be with you.

@Mnilko
Copy link
Contributor

Mnilko commented Jan 25, 2017

Hometask 8.1

  1. Rename endpoint by Rails Convention. http://guides.rubyonrails.org/layouts_and_rendering.html
  2. Use RSpec for tests.

Performance and Tests.

@skoddowl
Copy link
Contributor

skoddowl commented Jan 31, 2017

Hometask 9.0

  1. Переписать 8ю домашку на Rails.
  2. Добавить авторизацию (без использования гемов, написать самому).

@shuforov shuforov mentioned this issue Apr 19, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants