Self в Ruby

сентября 8, 2012  |  Published in Ruby, Расширения, Уголок философа

Честно сказать, достали меня уже вопросом о том, что такое self. Особено странно, что некоторые люди начинают работать с Ruby on Rails не разобравшись с самим языком Ruby. Ну как так можно? А?! Если лень читать книгу на 600 страниц — есть статьи на RubyDev, они не полностью корректные так как я писал их достаточно давно, но в общем достаточно годные, как мне кажется. Если нет желания прочитать краткие статьи, которые я пытался написать более чем понятным новичку языком, то, я думаю, что программирование — это не ваше. Ну да ладно. Напишу отдельную статью о self, хотя то, что такое self много где упоминалось в статьях на RubyDev.

self — это ссылка на текущий объект.

У каждого метода должен быть приемник — на то он и метод, а не функция, а если приемник не указан, то подразумевается, что приемником является self.

Read the rest of this entry »

Tags: , , ,

Революционная формула борьбы с ленью. 100% гарантия!

ноября 19, 2011  |  Published in Уголок философа

Нет более закаленных в разговорах о лени людей чем сами лентяи. Одни любят оскорблять себя — Боже мой, какой я ленивый, неудачливый мудак. Другие, предпочитают рассказывать об этом как о некой форме наркомании — Ничего не могу с собой поделать, прыгаю туда-сюда из Вконтакта в Ютьюб, из Гугл+ в Одноклассники из видео с чихающей пандой к фирменному посту в ЖЖ от Сергея Доли или Темы Лебедева. Третьи абсолютно смирились с ленью, их абсолютно устраивает то, что они обречены на ничтожное существование или у них имеется папа с толстым кожаным кошельком, который всегда готов финансово помочь своему любимому чаду.
Read the rest of this entry »

Tags: ,

Термоядерное вооружение на службе добру

августа 10, 2011  |  Published in Уголок философа

Вы можете поймать муху палочками для еды?
Вы можете простоять в позе журавля трое суток?
А отжаться стоя на мизинцах?

Правдивый ответ: не могу! А вот великие учителя, далее по тексту мы будем называть их гуру, — могут.

Вполне закономерный вопрос: Зачем мне ловить муху палочками?

В ответе гуру на ваш вопрос будет говориться о совершенствовании души и тела, о бесконечном светлом стремлении к совершенству, о величестве духа человека ловящего мух палочками для еды, об очищении кармы и т.д., но толком ответа не даст, а ответ таков: ловить палочками для еды мух необходимо только для того, чтобы стать гуру, зачем — это уже другой вопрос.
Read the rest of this entry »

Tags: ,

Чужой vs Свой код

июля 23, 2011  |  Published in Уголок философа

Сегодня общаясь с другом Максимом получил по средством ушей информацию о том, что сейчас стало модным использовать собственные решения, вместо уже готовых, особенно это касается разработки систем авторизации, аутентификации. Другими словами, вместо Devise и Cancan становится модным создавать собственные решения.

Рассмотрим все плюсы и минусы использования чужих и своих решений.

Плюсы решений сторонних разработчиков:

- Значительная экономия времени на разработку.

- Вы получаете уже протестированное и проверенное решение.

- Вы получаете поддержку со стороны сообщества разработчиков по вопросу использования решения. У того же Devise есть собственное сообщество, где можно решить все проблемы, задать вопросы.

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

- Собственное решение является более органичным относительно приложения.

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

Минусы сторонних решений:

- На пользователей сторонних решений накладываются некоторые ограничения.

- Сторонее решение невсегда хорошо вписывается в архитектуру приложения.

- Очень часто требуется очень сильно дописывать строронее решение.

- Требуется время на изучение стороннего решения.

Минусы собственных решений:

- Необходимо относительно значительное время на разработку, тестирование, исправления и рефакторинг собственного решения.
Честно говоря, мне больше нравится вариант, когда собственные решения комбинируются со сторонними. Например, мне не придет идея писать свой фреймворк, однако мне пришла идея писать свою CMS на Rails и скорее всего в ней будет использоваться собственное решение для авторизации и аутентификации, однако много чего будет взято со стороны: JQuery, возможно Apotomo  и т.д.

Очень интересно мнение читателей по поводу использования своего решения или стороннего.

Tags:

Уголок философа: Принципы и Адаптация

мая 12, 2011  |  Published in Уголок философа

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

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

Неленивый человек будет поступать иначе, он будет изучать каждую ситуацию и выбирать для нее наиболее правильное решение. Такое поведение, когда человек поддается ситуации называется адаптацией.

Когда реакцию на любую ситуацию человек не обдумывает, а поступает по шаблону, то часто может оказаться, что он противопоставляет себя. Быть принципиальным — означает находиться в напряжении, принимать не всегда лучшие решения и подвергаться риску. Read the rest of this entry »

Tags:

Уголок философа: Долой перфекционизм

мая 10, 2011  |  Published in Development Processes, Уголок философа

Уголок философа — новая рубрика в которуюя буду помещать некоторые свои или понравившиеся чужие мысли. Статьи в этой рубрике не всегда будут соответствовать тематике блога, но я надеюсь, что они все-же будут интересны моим читателям, да и блог от них хуже не станет.

 
Дорога возникает под шагами идущего, а совершенствование — это бесконечный процесс движения вперед. Я сам перфекционист и люблю очень долго затягивать с чем нибудь, люблю долго что-то планировать, в своих фантазиях оттачивать это что-то до совершенства. Время идет, а это что-то остается на уровне идеи…

Недавно начал читать книгу «Человеческое, слишком человеческое» авторства Фридриха Ницше — очень познавательное чтиво, хотя написано очень тяжело из-за чего приходится по несколько раз перечитывать одно предложение. Там была выдвинута идея того, что, нет хорошего и плохого, и плохое не может породить хорошего. Мы можем лишь сравнить два примера и сказать какой из них лучше. Грубо говоря, нет ничего отрицательного — все лишь градиент положительного.

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

Итерационный подход — замечательный подход. Вы не делаете все и сразу, и выпускаете релиз через 5 лет,да еще и с кучей багов. Вы разбиваете весь процесс на кучу версий, а каждую версию на кучу более мелких итераций. Теперь, вы сфокусированы конкретно на выпуске продукта, который выйдет максимально быстро, будет содержать минимальное количество ошибок, которые можно перектыть патчем, либо в выпуске следущей версии.
Read the rest of this entry »

Tags: