Archive for ноября, 2011

Почему я люблю и ненавижу JavaScript

ноября 29, 2011  |  Published in ClientSide, JavaScript

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

1. Мне очень не нравится зависимость JavaScript от окружения. Это не есть недостатком самого языка, но есть большим недостатком технологии. Вместо того, чтобы писать код, программист вынужден бороздить просторы интернета в поисках документации о различиях браузеров и решении возникающих из этого проблем. Часто разработчики пишут код под какой-то один браузер (javascript движок), например под FireFox, а затем тестируют и допиливают его для работы в остальных браузерах. К счастью имеюттся различные фреймворки вроде jQuery, которые решают многие проблемы с кроссбраузерностью.
Read the rest of this entry »

Святой Грааль разработки ПО

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

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

Многие люди заболевают перфекционизмом — зацикленностью на поиске святого Грааля в чем-либо чем они занимаются. Пока пациенты ищут святой Грааль другие — менее подвержены воздействию перфекционизма разработчики пишут код и зарабатывают деньги.

Можно бесконечно долго сидеть и изобретать совершенную архитектуру или несколько часов придумывать идеальное название для метода или функции, но вам платят не за пустые размышления и не за глупо потраченное время, а за результат.Всегда необходимо видеть реальную причину. Вы пишите код не для того, чтобы прокачаться, стать программистом 80 уровня и получить артефакт «клавиатура дракона», но потому, что вы зарабатываете деньги. Клиентам вообще наплевать как и что там будет работать внутри, главное их требование — правильная работа бизнес-конвейера.

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

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

Выходя из утверждения работа = деньги можно прийти к выводу, что чем больше денег ты зарабатываешь тем лучше, однако это не всегда так. Кому-то важнее деньги, а кому-то комфорт. Каждый выбирает свое. Лично я заинтересован в работе над интересными проектами в дружной атмосфере, но это не значит, что я готов работать за копейки. Каждому труду есть цена и каждый человек за свой труд должен получать адекватный проделанной работе кусок пирога. Много денег не бывает и много никто не заплатит, разве что дурак какой-то. Работодатель должен платить в соответствии с производительностью рабочего. Чем лучше ты программист — тем больше у тебя производительность и тем больше ты получаешь. Арифметика простая, хороший программист — это такой, который больше зарабатывает, а не тот, который следует всем практикам Мартина Фаулера, покрывает код на 200% спеками и тестами и находит время поддерживать несколько open-source проектов.

Желание стать совершенным программистом в край глупо. Правильное желание — иметь отличную в плане коллектива и проектов работу с достойной твоего вклада оплатой.

Если тебя не тошнит от работы и ты чувствуешь, что получаешь ровно столько, сколько заслуживаешь, поздравляю! Ты нашел золотой Грааль!

— Мое субъективное мнение.

Query-Chain Object Pattern в Ruby

ноября 25, 2011  |  Published in Ruby

Предупреждение: На самом деле я не знаю, как в действительности называюется этот паттерн, но название Query-Chain Object Pattern мне кажется очень подходящим.

Я был очень рад увидеть в ActiveRecord 3.0 такое значительное изменение, как добавление класса ActiveRecord::Relation. Этот класс, точнее его объекты, занимаются тем, что «накапливают» запросы в виде вызова методов и на их основе генерируют SQL-запрос к БД.

Post.where(:id => 3).class
#=> ActiveRecord::Relation

Post.where(:id => 3).order('id desc').class
#=> ActiveRecord::Relation

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

Эта статья не о работе с ActiveRecord, но о паттерне Query Chain.

Описание Query Chain:

При определенных запросах к некоторому объекту A объект A возвращает не запрашиваемые результаты, а query-chain объект B в котором записываются запросы, которые позже выполняются вместе и изменяют состояние объекта A, или который изменяет состояние объекта A сразу при каждом запросе (здесь запрос — просто вызов метода).

Самый простой пример реализации Query Chain паттерна:
Read the rest of this entry »

Tags: ,

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

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

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

Tags: ,

Интервью с Дмитрием aka wyldrodney о SimpleReality CRM и не только

ноября 19, 2011  |  Published in Интервью

Сегодня в виртуальной студии RubyDev гость — Дмитрий aka wyldrodney. Дмитрий — администратор и разработчик на платформе Ruby on Rails и сегодня мы поговорим о разрабатываемой им CRM системе.

 

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

Привет! Знаешь, сейчас эра Интернета, всё что мы делаем для сети, отражается в первую очередь на сети, и потому мало кому будет действительно интересно кто я. Но друзья зовут по имени — Дима, хотя обычно предпочитаю ник wyldrodney :)

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

Последний год я трачу, наверное, 90% свободного времени на свои проекты. Первый из них уже закончен, он ней я и расскажу.

Read the rest of this entry »

Tags: ,

SASS / SCSS в Rails

ноября 3, 2011  |  Published in ClientSide, CSS и верстка, Ruby on Rails, Ruby on Rails 3, View

sass cssВот и дошли мои руки, ноги и сознание до изучения такой штуковины, как SASS / SCSS.

SASS — это синтаксический сахар для CSS. Аббревиатура SASS расшифровывается как Syntactically Awesome StyleSheets.

SCSS — это новое название SASS начиная с 3й версии и расшифровывается как Sassy CSS. Основное отличие SCSS — это улучшенная поддержка CSS3 и то, что в SCSS можно писать на каноническом CSS (можно сказать, что SCSS является надмножеством CSS).

SCSS позволяет писать стили вашего приложения с использованием очень мощных расширений стандартных возможностей CSS: возможности использовать переменные в стилях, подмешивания примесей, удобный синтаксис объявления стилей вложенных элементов и т.д. Все это мы рассмотрим в нашей статье, но не просто рассмотрим, а рассмотрим на примере использования в приложении на Rails.

Я уже писал на RubyDev об использовании языка HAML в Rails и с тех пор я стал его активно использовать вместо стандартного ERB. В этой статье я расскажу об SASS / SCSS. SASS / SCSS является проектом созданным под вдохновением от HAML, кроме того, чаще всего SCSS и HAML используются вместе. Эту статью о SASS / SCSS и статью о HAML можете считать предисловием к грядущим статьям по Compass и AssetsPipeline в Rails 3.1. Конкретно в данной статье рассматривается использование SASS / SCSS в приложении на Rails 3.0.9.
Read the rest of this entry »

Tags: , , ,