понедельник, 7 февраля 2011 г.

Вопросы на интервью для Ruby on Rails программиста

Нашел пост некого индийского rails программиста, который постит вопросы с интервью. Хоть там и не написано, откуда он их взял и реально ли их кто-то у него (или он сам) спрашивает, но выглядят они более менее вменяемо (upd: по мне, так чушь полная) - http://railsbuilder.blogspot.com/2009/04/ruby-on-rails-interview-questions.html

Ну и что бы самому узнать что-то новое, решил его перевести ну и добавить что-нибудь от себя:

1. Почему Ruby on Rails?

В использовании ruby on rails есть много плюсов:

  1. DRY(don't repeat yourself) Principal
  2. Convention over Configuration
  3. Gems and Plugins
  4. Scaffolding
  5. Pure OOP Concept
  6. REST Support
  7. Rack support
  8. Action Mailer
  9. RPC support
  10. Rexml Support (посмотреть тесты производительности других xml бибилотеки можно тут. Как видно, rexml далеко не крут.)
  11. etc...

2. В чем разница между Symbol и String.

У автора написано как-то мало. Подробней можно почитать тут - http://rubydev.ru/2011/01/ruby_symbols

3. Что такое request.xhr?

С помощью request.xhr можно проверить, action вызван с комощью аякса или нет . Всегда возвращает тип Boolean.

 def name
# Is this an XmlHttpRequest request?
if (request.xhr?)
render :text => @name.to_s
else
# No? Then render an action.
render :action => 'view_attribute', :attr => @name
end
end

4. Что можно определить в моделях?

Например:

  1. Validations (validates_presence_of, numeracility_of, format_of etc.)
  2. Relationships (has_one, has_many, HABTM etc.)
  3. Callbacks (before_save, after_save, before_create etc.)
  4. Какие-нибудь настройки плагинов
  5. Чистые SQL запросы, без AR.

5. Что такое ORM в Rails?

ORM расшифровывается как Object-relationship mapping. Это значит, что рубишный класс - это обертка для таблицы с БД, а поля класса - обертка для полей в этой таблице. После объяснен

6. Какие типы ассоциаций поддерживают модели?

Когда у вас в проекте более, чем одна модель, вам надо создавать связи между ними. Делается это с помощью ассоциаций. AR поддерживает 3 типа ассоциаций:

  • one-to-one
  • one-to-many
  • many-to-many

Делается это с помощью has_one, has_many, belongs_to, and has_and_belongs_to_many. Подробней - http://edgeguides.rubyonrails.org/association_basics.html

После первого беглого просмотра поста этого индуса мне показалось, что там бдут крутые вопросы ("ну 50 штук же, как они могут быть унылые", подумал я). Но они оказались мега унылые. Я не знаю, зачем я написал эти 6 вопросов тут. Оставлю их, на случай, если они вдруг кому-то плкажутся нормальными и информативными.


1 комментарий:

  1. Индусы, такие индусы! Видел несколько индусских блогов по рельсам и почти все они бесконечно бесполезны. Там в основнам статьи на 5 строк и не о чем. Единственный индийский rails - программист, которого я уважаю это Satish Talim. Все или почти все плюса rails можно встретить и в других фреймворках. Rack support - "Поддержка Rack", каким таким ... rails поддерживает rack? Rails работает над Rack! Кроме того, все веб фреймворки на Ruby работают на базе Rack...

    Соглашусь с вами, интервью отстой, но и с него есть польза - теперь люди будут снать, что нужно избигать индийских rails блогов =)

    ОтветитьУдалить