?

Log in

No account? Create an account
записки рисованного
 
[Most Recent Entries] [Calendar View] [Friends View]

Monday, October 2nd, 2006

Time Event
11:17p
Читая "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

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

<< Previous Day 2006/10/02
[Calendar]
Next Day >>
multik   About LiveJournal.com