четверг, 31 октября 2013 г.

О сервис ориентированных архитектурах

Ниже следует мое понимание сервис-ориентированных архитектур. Откуда они берутся и как их стоит проектировать.

Начнем издалека. Допустим, у нас есть желание заиметь интернет-магазин. Предприниматель Вася заказал программисту Пете сделать ему сайт, где бы он мог торговать своими товарами. Петя, не долго думая, выбрал свой любимый LAMP (Linux/Apache/MySQL/PHP) и через месяц выдал архив с кодом и инструкцию по установке.

суббота, 26 октября 2013 г.

пятница, 25 октября 2013 г.

Случайное подкрепление, дрессировка, азартные игры и танго

Прочитал я сегодня вот этот пост в ФБ и задумался. О том, что заставляет людей снова и снова ходить на милонги, если они не получают от этого удовольствия, а, напротив, часто мучаются?

Ответ нашелся почти сразу. Дрессировщики животных знают, как важно случайное подкрепление в их деле. Случайное подкрепление это, когда собачку хвалят в начале за каждое успешное действие, а затем только иногда, редко и совсем непонятно когда похвалят, а когда - нет. Тогда она уже очень старается все делать правильно и расторопно, так как может хоть на этот раз ее похвалят. И работает это очень хорошо. Животные запоминают, что надо делать надолго и очень стараются.

Последовательность

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

Люди любят быть последовательными. Очень любят. С последовательностью ассоциированы такие положительно окрашенные вещи, как честность, постоянство, надежность. А с непоследовательностью ассоциированы такие отрицательные штуки, как непостоянство, неуверенность, отсутствие собственного мнения.

среда, 23 октября 2013 г.

Любительское танго

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

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

Продолжение разговора про Spring IoC Framework

В первой статье я задекларировал, что есть три подхода к написанию приложений в Java, если рассматривать разработку с позиции DI:
  • писать, не используя DI — код более простой и понятный, но менее гибкий;
  • писать код, используя DI, и дополнительно писать Java код, который связывает компоненты;
  • писать код, используя DI, и связывать компоненты с помощью конфугарационных файлов в XML.
Для меня интересным является то, что все три подхода можно использовать в одном приложении. Можно к примеру в мелких модулях, которые возможно протестировать целиком, не применять DI, более крупные компоненты собрать с помощью Java-кода, а там, где уместно дать пользователю возможность выбирать из нескольких альтернативных реализаций использовать конфигурационный файл и Spring IoC.

Чтобы лучше понимать взаимоотношения и выбирать оптимальное соотношение между Spring IoC Framework и Java кодом, я часто рассматриваю Spring IoC не как "фреймворк", который инициализирует мое приложение и вызывает нужные методы, а как примитивный, динамический, интерпретируемый язык программирования предназначенный для того, чтобы скриптовать инициализацию Java приложений. Нам нужно скриптование в этом месте при инициализации — используем IoC. Не нужно скриптование — не усложняем наше приложение без необходимости.

вторник, 22 октября 2013 г.

Каждая новая версия должна приносить больше прибыли, иначе зачем мы ее внедряли?

Заголовок статьи может показаться самоочевидным. Но вот однажды я встретил прямо буквальное применение это принципа.

Я консультировал по CI (Continuous Integration) вопросам одну компанию, что занималась показом рекламных баннеров в интернет. Там довольно много интересных задач. Пока браузер не спеша загружает страницу надо понять, что это за пользователь, где он обычно бывает, какие товары и услуги недавно искал, оценить сколько стоит, выставить на аукцион, продать, показать баннер. Или наоборот покупать пользователей на аукционе. В общем я не вникал во все это очень подробно - задача стояла другая.

А задача у меня была в оптимизации развертывания свежего кода в продакшен. Путь от написания кода до использования его в продакшен был у них очень быстрым. Код мог быть написанным, протестированным и начать работать в самые короткие сроки. Чтобы не облажаться они научились отводить небольшой поток пользователей на новую версию приложений, тогда как основная масса пользователей работала по-старому (да, все мы знаем про rolling-updates). Это позволяло тестировать приложение на реальных случаях и на настоящей нагрузке, откатывать изменения, если что-то пошло не так, или наоборот распространять это по всему кластеру.

Что интересно, это что когда они тестировали свои алгоритмы, то смотрели, сколько дохода приносит новый код, то есть проверка увеличения доходности (или снижения издержек) тоже была одним из тестов! Больше я нигде этого не видел. Хотя работал во многих проектах, где это можно было бы успешно внедрить. Да каждый крупный онлайн магазин мог бы таким образом проверять насколько хороший код они подготовили. Но не делают. То ли не видят смысла то ли считают, что забот по организации подобной инфраструктуры слишком много и они не будут оправданны.

IoC Spring Framework

Поговорим о IoC Spring Framework. Дело в том, что меня совсем не радует его использование во всех Java проектах, в которых я имел честь участвовать.

Начнем с того, что сам по себе инструмент не плох. Но вот его использование - это зачастую ужас. Чтобы что-то правильно использовать надо хорошо понимать для чего эта штука создана и где она помогает и где мешает. Хочу попытаться это сформулировать.

понедельник, 21 октября 2013 г.

Число Данбара

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

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

четверг, 17 октября 2013 г.

Шоу для всех

Эта статья была опубликована так же в танго газете «Эль Маяк».

Фестивальная милонга подходит к своей кульминации — выступление маэстро. Вот заканчивается очередная танда и люди кидаются занимать места поближе к центру зала. Толпа набивается довольно плотно. Даже непонятно, как будут выходить выступающие. Те кто не успели к заветным передним местам пристраиваются сзади. Посмотреть хотя бы на то, как между неплотно сомкнувшихся плечей мелькнет туфелька партнерши или спина партнера. Немногие остаются сидеть на местах. Кому-то неинтересно, а для кого-то просто нет смыста смотреть в чужие спины. Организаторы, оценив размеры оставленного пространства просят сделать круг чуть больше. Все стоят. Тогда кто-нибудь пробегает и немного расширяет пространство буквально надавливая на выстроившихся людей. Пара протискивается сквозь толпу. Шоу начинается. Знакомо?

Уровень танцевания и уровень удовлетворенности танцеванием

Замечали ли вы когда-нибудь, что танго сообщество в Москве, мягко говоря, не очень здоровое? Не здороваются люди, разбиваются на группы, танцуют с избранными, уходят, не станцевав или потанцевав мало. Вот например как написано здесь: http://caterina-ka.livejournal.com/35042.html

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

понедельник, 14 октября 2013 г.

Про танго обучение

Недавно я прочитал одну статью про обучения йоге (кому интересно могут ознакомиться). А так же постоянно читаю замечательные посты про танго от Ольги Тавруевой в Фейсбуке и не менее замечательные комментарии к ним. И это побудило меня сформулировать то, чем я очень недоволен в современном состоянии обучения танго.