понедельник, 28 февраля 2011 г.

DDD

Закончился вебинар о DDD, который проводил учебный центр Люксофт и уважаемый Максим Юнусов.
Впечатления противоречивые, но в целом мне понравилось. К тому же я понял несколько важных вещей.
Во-первых нельзя пускать на такие мероприятия простых (особенно начинающих) разработчиков. Им становится скучно и они задают вполне логичный вопрос: "А как мне вся эта научная фигня поможет к пятнице нупырить тонну кода". Но несмотря на то что мне (как начинающему) тоже показалось, что было слишком много теории, и маловато примеров. Так вот несмотря на это, мы товарищей, спрашивающих дурацкое, презираем. Потому что, когда начинающий разработчик приходит посоветоваться к архитектору (как к старшему товарищу по оружию) с вопросом "как лучше бы тут сделать", то архитектор должен иметь в голове всю эту "заумь", чтобы выдать простой, логичный и непротиворечивый ответ. В целом ему не обязательно вываливать на голову бедолаге-новичку все принципы и ценности DDD, достаточно будет сказать "вот тут так лучше потому что"... Вообщем, вы поняли.

Так же понятно почему DDD хорошо взаимодействует с Agile. DDD рассматривает модель/архитектуру/дизайн проекта как общее поле знаний, а не некое закрытое знание доступное только избранным (архитекторам, ПМ-ам, тимлидам, я не знаю). Т.е. одинаковая модель существует у всех участников команды в головах. А аджайлисты любят, когда что-то в команде существует в головах и во всех головах оно одинаковое. Это дает им кроссфункциональность членов команды и все такое.
Однако все это хорошо работает если перед тем, как внедрить всем в голову модель вашего проекта и всем сказать - "вы теперь тоже разарбатываете архитектуру (причем для всех)", перед этим внедрить всем в голову "модель использования DDD". Сначала команде и заказчикам придется объяснить все про DDD, эти общие словари, принципы, ценности и прочее и только тогда про модель непосредственно самого проекта. Собственно, проблема внедрения любых методологий. И DDD в этом смысле не самая простая для понимания. Для восприятия я бы сказал. (И это явно влияет на популярность DDD). Мало понять что-то надо это еще и принять, применить к себе, чтобы пользоваться этим.

Ну, и на закуску интересное наблюдение про 1С. По сути 1С это:
а) предметный язык,
б) платформа принудительно заставляет пользоваться общим языком (UL), изначально сформированным экспертами;
в) понятен экспертам.
За то, что 1С прилично адаптирован к DDD говорит тот факт, что в реальности существует множество "программистов 1С", которые появились из бухгалтеров (т.н. "доменных экспертов"), по принципу "я посмотрел, там все было просто и я решил почему бы самому не стать программистом".
Зацените синтаксис:
Процедура КнопкаВыполнитьНажатие(Кнопка)
   
ДокументРеализация = Документы.РеализацияТоваров.СоздатьДокумент();
   
// ... еще какой-то код ...
   
Если ДокументРеализация.Проведен() Тогда
       
Сообщить("Документ проведен!");
    КонецЕсли;
КонецПроцедуры
Все интуитивно понятно, не так ли?
Это безусловно не идет на пользу "программированию 1С", в качестве общей дисциплины программирования, так как бывшие бухгалтера не хотят ничего знать ни о рефакторинге, ни о моделях, ни о вообще базовых алгоритмах (отсюда и мемы про криворуких 1С-ников, и тонны страшнейшего кода), но с другой стороны ярко иллюстрирует что 1С - full DDD ready.
Конечно, в нем есть и "не ready" моменты. Например, отсутствие толковых инструментов тестирования. С другой стороны такие инструменты можно воспринимать как артефакт универсальных языков, в котором предметный язык нуждается в гораздо меньшей степени, что опять же доказывают толпы программирующих бухгалтеров (оно же у них как-то работает все).

Итак, вебинар удался, еще раз спасибо Максиму.

воскресенье, 27 февраля 2011 г.

Should I work for free?

Не так давно Джессика Хисч (американский дизайнер и иллюстратор) выложила забавную схему под названием "Should I work for free?" Или, если по нашему - "Стоит ли работать бесплатно?"
К собственному и вашему развлечению я перевел ее и, вот, представляю вашему вниманию:

суббота, 26 февраля 2011 г.

Крылатые афоризмы

В 80-х годах прошлого века академик В. М. Глушков, один из отечественных основоположников теории автоматизированных систем управления (АСУ), предложил следующую классификацию этапов создания АСУ, точность определения которой пока никому не удалось превзойти.
Хотя данная классификация наиболее полно отвечала подходам «эпохи развитого социализма», она не потеряла актуальности и сегодня.

Каждая система проходит при создании пять стадий:
  • шумиха
  • неразбериха
  • поиск виновных (собственно, рабочий процесс)
  • наказание невиновных
  • награждение непричастных.
Публикация на infostart

Как стать героем

Макс Дорофеев выложил отличную ссылку на статью Якова Сироткина "Как стать героем".
В ней про все, про баги, про злое начальство и капризных клиентов, про Microsoft и Apple и, конечно, о программировании.
Не могу не подписаться под словами Макса: Это просто нелья не пропиарить!

вторник, 22 февраля 2011 г.

1С:Профессионал

1С:Профессионал. Знание основных механизмов и возможностей платформы 1С:Предприятия 8
Тест: СДАН

Ура! Куплю себе мороженку!

пятница, 18 февраля 2011 г.

Открытие!

Вот этот самый Gaperton's blog, который я упоминал в предыдущем посте и который я зацепил из какой-то рассылки, оказался просто кладезью вселенской охуенности.
Я пробежался вниз по постам и на каждом сделал пометку "надо бы себе перепостить". Поэтому вместо того, чтобы превращать свой уютненький в ретранслятор я вам скажу - идите и подпишитесь сами, если кто еще этого не сделал. Идите, идите. Нечего тут мне...

Проектирование по вытягивающему принципу

Прекрасная статья из Gaperton's blog:
Сегодня в беседе с коллегой рассказал про то, как работает архитектор, и осознал, что ни разу ни где об этом не писал.

Кто читал старые книги по программированию помнит термины "программирование сверху вниз", "программирование снизу вверх", и, самое невероятное - "от центра к краям". Удивительная особенность этих терминов в том, что они просты и понятны, но ни один нормальный человек, примеряя объяснения на себя, понимает, что так работать не может. Это модели понятные, но к реальности никак не относящиеся. Так же, как и «легенда агилистов о ватерфоле».

Что имеет место в реальности - это две стратегии при работе над архитектурой. Вы их сразу узнаете при объяснении. Назовем их "push" и "pull".

Продолжение...

P.S.: Люблю такие "архитектурные изыскания" до дрожи.

вторник, 15 февраля 2011 г.

1С:Профессионал, 1С:Специалист

Сделаю для себя закладочку на списки экзаменов.

Phantom of the Floppera

Народ жжот как может. Чижик-пыжик на флоповоде сущая ерунда по сравнению с этим. Токката и фуга ре минор Баха сыгранная на дисководах!

четверг, 10 февраля 2011 г.

SecurityLab

От SecurityLab пора отписываться. Кажется, что они взяли нового человека сочиняющего заголовки к публикациям. Вот свежий выпуск:
Топ-менеджер Google признался в организации волнений в Египте
Школы предостерегли от Windows
Американские власти хотят контролировать новые доменные зоны
До желтых заголовков осталось совсем чуть-чуть.

пятница, 4 февраля 2011 г.

Хоть покупай!

Все продукты Atlassian по 10$ для стартапов.
Хоть бери, да покупай!

Кто еще не был в Третьяковке?

Благодаря проекту Google Art Project теперь это возможно сделать не выходя из дома!

P.S.: Слава роботам!
P.P.S.: Жужл зохватит мир!

четверг, 3 февраля 2011 г.

Корпоративный инструментальный пакет

Кое-какие общие мысли о производительности и начало о КИП на сайте Вячеслава Гилёва:

вторник, 1 февраля 2011 г.

Qt - qDelphi?

На сайте F1-Delphi (в заголовке которого написано, что "В основу сайта, в первую очередь, положена необходимая информация для программирования на Delphi и Pascal...") опубликована книга QT 4: программирование GUI на С++
Ничего не обычного, просто хороший ман по C++ и Qt. Забавно, что на сайте Delphi. =)

P.S.: Несмотря ни на что, я продолжаю считать Qt достойной заменой Delphi, если вас не пугает переход с Pascal на C++.

AgilePechaKucha

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