Парное программирование. Особое мнение.

31 авг. 2012 г. | | |

Принципы Эмерсона

30 авг. 2012 г. | | |



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

Лжец

29 авг. 2012 г. | | |

Всё же род деятельности сильно влияет на стиль жизни :)

Prefixr

27 авг. 2012 г. | | |

Ещё один замечательный плагин для Sublime Text 2 - Sublime Prefixr
Этот делает написание кросс-браузерного css в разы легче. Лёгким нажатием Ctrl+Alt+X следующий код
div { 
    transform: rotate(90deg); 
}
превращается в
div { 
    -webkit-transform: rotate(90deg);
    -moz-transform: rotate(90deg); 
    -o-transform: rotate(90deg); 
    -ms-transform: rotate(90deg); 
     transform: rotate(90deg); 
}
На сайте плагина можно найти ещё много полезностей для Sublime Text 2, например, Package Control и Sublime Tortoise.

IE6. Зачем?

17 авг. 2012 г. | | |

Нет, это не пост ненависти к IE6. Это пост удивления, чистого и неподдельного, возникающего каждый раз, когда я вижу в описании нового чудо-js-скрипта строчку типа "Cross-browser – supports Firefox №n+, Internet Explorer 6+, Google Chrome №n+, Apple Safari №n+, Opera №n+..." Какой IE6? Вы что, шутите? Что за некрофилия? Этому браузеру 27 августа будет 11 лет. Многие компании уже списали его со счетов: Google отказалась от поддержки в сервисах Google Docs, Google Sites, Google Apps, Youtube, 37signals в Basecamp, Highrise, Campfire и др. веб-сервисах, Wordpress, Вконтакте и другие, даже Microsoft в 2010 году (2 года назад!!!) уже сама активно начала рекомендовать пользователям отказаться от IE6, а в 2011 запустила обратный отсчет мгновений жизни ИЕ 6. И, несмотря на обилие других браузеров, несмотря на наличие новых версий того же Internet Explorer, до сих пор остается 6% (на июль 2012) регрессивного человечества, пользующегося мертвячиной.
И вот он вопрос: ради этих шести процентов пользователей, которые с большой вероятностью даже никогда не посетят ресурс, использующий новый прогрессивный js-скрипт из эры HTML5, стоит, надрываясь хаками с преподвыпертами, встраивать поддержку ИЕ 6 в свой скрипт? Или это делается ради фразы cross-browser? Ради чего это?

Obsolete

15 авг. 2012 г. | | |

В одном небольшом, но сложном проекте, в неком простом, но важном классе жил-был обычный, но востребованный метод. Шло время, старые баги закрывались, добавлялись новые фичи, и настал день, когда метод устарел. Однако несколько классов, написанных другим разработчиком,  использовали его для своих тёмных делишек. “Разберусь с этим потом,” - подумал создатель метода, - “есть много дел поважне, чем эта ерунда,” Может быть, и закончилась бы эта история хэппи эндом, если б не ошибки в данных, которые начали материализовываться самым загадочным образом. Вот тогда-то и вспомнил хозяин метода про свой должок...

Субботнее чтение

11 авг. 2012 г. | | |

Одна за другой попались две статьи о превращениях. В первой статье баг успешно превратился в фичу, во второй - наоборот. И, если баг хорошо вжился в новое амплуа, то фича, замеченная в столь неподобающем поведении, превратилась в пятно на репутации.
Первая (перевод). Непреднамеренная концепция или "одно маленькое упущение, случившееся 40 лет назад".
Вторая. ICollection<T> и массивы или "Why the hell some read-only collection implements the Add() method?"

Zen Conding

10 авг. 2012 г. | | |

Про то, что SublimeText 2 - мега крутая вещь, знает, наверно, каждый. Да, я тоже в восторге от этого редактора, незамедлительно включила его в свой арсенал разработчика и стала всячески обустраивать плагинами. И наткнулась на хвалебные песни о ZenCoding. Хм, что же это плагин? Сходим к проекту на github, почитаем реадми, проясним ситуацию:
This plugin will evetually replace current plugin: https://github.com/sublimator/ZenCoding
Как-то понятнее не стало. Один Zen Coding заменяется другим. И хабр как-то не сильно прояснил ситуацию: смесь невалидного html и css. Что ж это за.... магия?