kiltum (kiltum) wrote,
kiltum
kiltum

Читая "Programming Ruby", всё больше убеждаюсь, что это однозначно один из тех языков, которые я давно искал. Это ... это как после Windows и Linux сесть за OS X. Поначалу ничего не понятно и всё не так и не там, но через некоторое время ... Через некоторое время я обнаружил, что язык, хоть и позволяет над собой издеваться как угодно, но НЕ МЕШАЕТ писать.

Самая прикольная вещь - в нем любая (абсолютно любая) фигня это объект. Полноправный.

К примеру, подобный подход позволяет создавать штуки типа массивов с разнотипными членами типа a = [1, "coool", 3.14]. А обычная циферка может быть как и просто циферкой, так и обычным классом.

Если к ней подойти утилитарно, то 2+3 дадут в сумме ожидаемую 5, 2.to_s даст нам строку "2", а ниже приведенный код продемонстрирует все вместе:

> 3.to_s.to_i.times do puts "wow!".object_id end
23370640
23370620
23370600
=> 3

Обалдеть, да? ;) Взяли цифру, потом преобразовали в строку, потом в число, а потом с эти числом запустили цикл, в котором проверили, что каждая строка (пусть она одна и та же) - это полноценный объект ...

Сказать, что я балдею - это ничего не сказать.

P.S. А еще я впервые столкнулся с работающей (а не декларируемой, как в той же Java) реализацией MVC. В Ruby on Rails ...
P.P.S MVC - Model View Controller
P.P.P.S Но и это всё фигня. В нем можно повторить код, вызвавший эксепшн. Типа (псевдокод)

begin
file.create("dir/file")
rescue DirNotFound
dir create("dir")
rescue FileExist
rmfile ("dir/file")
rescue Denided
chmod ("dir",777)
if file.not_opened || ненадоело.true? retry
end

То есть пытаемся создать файл, если не получается, потому что каталога нет - создаем, если уже есть - удаляем старый, если не хватает прав - меняем и ПОВТОРЯЕМ. И не надо где-то там анализировать коды возврата и заново вызывать какие-то функции, вызывавшие траблу - он сам всё сделает ... Ну а если "ниасилил", то тогда отдаемся выше. Как это облегчает написание кода, может оценить каждый кто был вынужден вставлять в программы "защиту от дурака" или ловить тупые и тривиальные ошибки ...
Tags: ruby
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 7 comments