Archive for the ‘Код и программистское’ Category

В пользу RoR.

Вторник, Август 10th, 2010

За прошлую неделю набрасал для себя небольшую программку для ведения дел. Уж очень много у меня мест было, где я хранил разные списки, что делать по дому, по проекту над которым работаю, долгосрочные бизнес планы и т.п.

И вот решил свести это все в простенькой web системе. Ну и где-то за дня 1.5 суммарно сделал то, что мне было нужно. Причем вышло даже пристойней чем я ожидал.

Что мне очень понравилось, что если бы мне второй раз понадобилось написать такую программу (с нуля), то заняло бы сейчас это у меня наверное пару часов, а третий раз уже в минут 20 вложился бы.

И это достаточно впечатлительно, как мне кажется, достаточно мало платформу дают такой коэффициент ужатия.

Ну, правда, то что мне было нужно (добавить, удалить, изменить задачу, показать список задач и т.п.) ну ооочень хорошо ложиться в идеологию RoR.

Ну и плюс потихоньку читаю Ruby Pickaxe книжку и впечатлен некоторыми возможностями/гибкостью Ruby. Чем-то мне Ruby напоминает по гибкости Perl, но когда я разбирался с ним, я был еще чертовски молод и плохо понимал его прелести.

Каскадные зависимости.

Вторник, Август 3rd, 2010

Сейчас мне нужно опробовать продукт X, он распространяется в исходниках. Почитал, как его компилить, покрутил настройки, поставил cygwin (так как готовый make file именно для него), начал компилировать — не может найти каких-то header файлов. Ладно.. смотрим, что за header файлы. Оказывается ему нужен OpenLDAP. Скачиваю OpenLDAP, пытаюсь снова скомпилить, снова не находит (правда других файлов). Покопался, оказывается в OpenLDAP некоторые .h файлы генерируются в момент компиляции. Ладно, начинаю читать про OpenLDAP и обнаруживаю, что он зависит еще от пару продуктов, некоторые их которых тоже в сорцах распространяются.

Терпеть не могу каскадных зависимостей. Да и не каскадные я тоже не очень то жалую 🙂

P.S. А никто случайно OpenLDAP под Windows из вас не собирал?

Что мне НЕ нравится в Ruby.

Пятница, Июль 9th, 2010

Продолжаю копаться в Ruby. Сейчас правда, что приятно уже по оплачиваемому проекту.

И есть пару вещей, которые меня активно раздражают.

а) Функции можно вызывать без скобок.

То есть func() и func сработают одинаково. Все было бы ничего, но вот когда вызов пишут без скобок, то приходится каждый раз смотреть — это у нас переменная с таким названием или вызов функции без скобок.

Честно говоря, экономия на двух байтах (открывающая и закрывающая скобка) не так велика, а вот напряг конкретный.

б) Не понравились Symbols.

Может я конечно их не до конца понимаю. Но честно говоря, как по мне легкий перебор вводить отдельное понятие для константных строк.

в) Черезмерная любовь к возвращению объектов.

Это болезнь всех скриптовых языков. Когда появляются констукции типа [A::b().c()].d { |x| x+x }.e
Согласен, такая форма читается проще, чем тоже самое развернутое на целую страницу с переносами
строк.

Однако, когда весь язык заточен под это, то люди частенько увлекаются этой возможность и код становится таки хуже читаем, чем при разбиении на несколько строк.

г) Convention over Configuration (это уже насчет Rails)

Идея в том, что по default’у нужно очень мало кода для делания стандартных действий (а-ля взять html template, впихнуть в него переменные и выплюнуть его). И только если что-то нужно делать нестандартное, то тогда нужно вносить изменения.

Нельзя сказать, что это плохо. В целом это конечно хорошо.

Однако у этой методики большой недостаток, что такой код легко писать, но сложно читать/понимать.
Условно говоря, сгенерировать HelloWorld c кучей возможностей можно одной строкой (rails HelloWolrd).
Но в результате мы получаем директорию с 280Kb нагенерированного content’а. Плюс еще несколько метров кода который лежит под ними в виде rails, rake и т.п.

Одна моя особенность состоит в том, что я предпочитаю понимать, что происходит и как оно работает. А тут хорошее понимает внутренностей этого hello world (включая те самые gem’ы которые он использует) может занять достаточно больше время.

Игрушка, плюс вопрос к залу.

Вторник, Июнь 29th, 2010

Пока я бездельничал (искал стартапы) мне пришла в голову идея простенькой игрушки на подобии монополии. Ничего супер-пуперского, денег на ней я зарабатывать не собираюсь, просто думаю для баловства (и продолжения разбирательства с Ruby On Rails) с ней покопаться.

Внимание вопрос. Есть ли среди вас люди, которые хотят убить некоторое количество своего времени на не коммерческую игру. Особенно хотелось бы видеть дизайнера, но само собой умелые программистские руки тоже бы не помешали.

Так, на всякий пожарный (программисты точно зададут этот вопрос). Вероятней всего список вовлеченных технологий будет достаточно короток — RoR и AJAX.