среда, 14 декабря 2011 г.

Разминка за утренним кофе

Простой тест на логику, который легко можно пройти пока вы пьете свой утренний кофе, просто чтобы настроиться (30/30).

воскресенье, 11 декабря 2011 г.

Введение в ТРИЗ для программистов

Недавно лентой мне принесло прелюбопытнейшее видео: Введение в ТРИЗ для программистов. Это запись семинара, который проводился в СПбГУ, смотреть и скачивать можно совершенно бесплатно, правда, надо зарегистрироваться на сайте.

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

P.S.: Я понял кого он мне напоминает! Манерой изъясняться он очень похож на моего школьного преподавателя ОНТТ (Основы Научно-Технического Творчества, же!) У того тоже была привычка говорить что-то вроде: "да, вы еще ничего не знаете про ОНТТ, а уже спорите" и задавать задачи о том "кто больнее на ногу наступит - слон или женщина на шпильке" и выдавать собственный ответ за правильный несмотря на то, что формула P = dFn/dS ни для кого не секрет.

Но все-таки сам я собираюсь это видео досмотреть и вам советую.

пятница, 9 декабря 2011 г.

Зачем директору сервер?

Microsoft выложила админско-директорский разговорник.


P.S.: Спасибо, Валера.

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

Совершенный код

"...Если в жаpком бою испытал, что почем,- 
Значит, нужные книги ты в детстве читал!"
(В.Высоцкий)

Наконец-то я дочитал замечательную книгу Стива Макконела "Совершенный код".

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

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

Мне кажется, что самую большую пользу она может принести начинающему. Однако боюсь, что без некоторого опыта в разработке кое-какие моменты книги могут выглядеть спорно. Но, не сомневайтесь, Макконел знает о чем говорит. К тому же он сам достаточно убедителен в таких вещах.

Очень приятно то, в книге нет догматов. Автор в каждой главе советует "включать свою голову" и делать свой выбор в пользу того или иного способа сообразно ситуации. Например, нет категорического запрета использования "goto", а только внимательный анализ и выводы о том, что его использование приведет к проблемам и рекомендации избегать использования этого оператора. Но, как пишет сам Макконел, "если вы твердо уверены, что это единственный правильный способ"...

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

После того, как я прочел эту книгу, я больше не могу писать код как раньше. Мой код стал лучше и опрятнее.
И теперь моя жизнь разделилась на две части. "До" прочтения и "после".

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

А я желаю вам хорошего дня и хорошего кода.

четверг, 17 ноября 2011 г.

Вам, овертаймеры!

xxx: Здравствуй, милый!
yyy: дря
xxx: Уже первый час, а ты все на работе... Что-то случилось, зайка?
yyy: да б$%. Мозг уже свернул. Все что написал за выходные - не компилится и падает. Эксемели не валидируются, скрипты все с синтакс еррорами. Лайаут в жопе. А главное - ВСЕ ПРАВИЛЬНО.
yyy: Я же на выходных все отладил...
xxx: Любимый... Только не обижайся, ладно?
xxx: Возможно дело в том, что после того как ты отрубился под утро в понедельник... я взяла твой лаптоп и кое-где поменяла английские буквы "С" и "c" на русские "С" и "с"...
xxx: ПОТОМУ ЧТО НЕХУЙ РАБОТАТЬ ВЫХОДНЫМИ, ТРУДОГОЛИК ХЕРОВ
xxx: Так что приезжай домой, у нас сегодня котлетки...
yyy: Сссука бессердечная.
yyy: Выезжаю.

среда, 16 ноября 2011 г.

XDTO-пакеты. Неименованные типы

В продолжение к посту XDTO-пакеты, xml, xml schema несколько слов о неименованных типах.

Давайте посмотрим, что будет, если в конструкторе XDTO-пакета к свойству добавить определение типа и, в свою очередь, добавить туда еще свойств:

Как видите, свойства "Адрес" и "Телефон" сложного типа ("ОбъектXDTO"). А телефон еще и списковый тип (я задал "Максимальное количество" равное трем).

пятница, 11 ноября 2011 г.

XDTO-пакеты, xml, xml schema

«Гло́кая ку́здра ште́ко будлану́ла бо́кра и курдя́чит бокрёнка»
(первая ассоциация, пришедшая в голову
после прочтения "мана" о XDTO-пакетах)

Приветствую, многоуважаемый all!

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

С чего начинается?..

С чего начинаются XDTO-пакеты для неискушенного разработчика? Для меня они начались с вопроса: "А что это еще за хренотень в дереве метаданных?" И еще я знал, что это что-то про xml. Но мы начнем не с этого. А с объекта ФабрикаXDTO. Как можно догадаться из названия, это фабрика объектов (XDTO расшифровывается как XML Data Transfer Objects).

четверг, 10 ноября 2011 г.

DD/MM/YY vs MM/DD/YY

Stupid Americans! Now is 11/11/11, not 11/11/11

from lleo

среда, 9 ноября 2011 г.

вторник, 8 ноября 2011 г.

Человеку свойственно ошибаться, но чтобы провалить дело капитально, необходим компьютер.
Алан Купер says

воскресенье, 30 октября 2011 г.

Новое на доске

А еще у нас на доске обновление. Ребятам понравилась идея об "аватарках" разработчиков на тикетах. Доска стала "живее":

Вечер в офисе

Лето, конец рабочего дня. Все разошлись, в офисе непривычная тишина...


Kanban для управления проектами

Прошел замечательный тренинг "Kanban для управления проектами". Спасибо Николаю и проекту XPInjection, это был замечательно. За последние полгода это, пожалуй, был самый полезный тренинг. Он дал мне ответы на вопросы, которые меня действительно интересовали. Например, как "побороть" управление операционной деятельностью (вроде поддержки). Ни scrum, ни проектный подход для этого не подходит. Так, что зря ругают тренеров и "тренерский бизнес". Вообщем, тщательно выбирайте мероприятия, обогащайтесь знаниями и применяйте их на практике. И будет вам "щасьтье"!

Желаю вам хорошего дня и хорошего кода, а напоследок несколько фото:

пятница, 28 октября 2011 г.

Хороший код

xkcd радует:

Особенно смешно в свете того, что я сейчас дожевываю "Совершенный код" Макконела. =)

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

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

Недавно, наконец-то, пришли все сертификаты. Часть нашей замечательной команды:

Спасибо Александру за помощь (на фото слева). Впереди следующие рубежи. Нужен "1С:Специалист".

вторник, 20 сентября 2011 г.

Оперативная сводка

Всех приветствую! Я никуда не пропал, а долгое молчание объясняется очень просто - был в отпуске. К тому же сейчас много читаю и мало делаю, "восполняю пробелы". Так что, в ближайшее время особой активности тут не будет. Но следите за обновлениями.

пятница, 19 августа 2011 г.

Идеалисты против реалистов

В одном интересном кейсе в сообществе HappyPM говорится о том, что некие тестировщики не хотят заполнять отчетность и саботируют ее стандартным "я забыл". Топикстартер спрашивает что делать с такой "забывчивостью".
В ответ насоветовали множество способов разной степени эффективности. Вот, например, один из типичных "по духу" комментариев:
забывают - значит, в этом для них нет ценности (низко приоритетная задача). Такая себе, ествественная автоматическая оптимизация (не срочно, не важно => вообще не делаем). "Вам, менеджмерам, надо - вы и собирайте, а мне голову не морочьте".

А если и нагрузка у тестировщиков близка к 100%, то тем более на такие "мелочи" не находят времени.

Из моего опыта (касательно test case design/review): помогает peer review with checklist (шпаргалка - что именно должно быть заполнено): таким образом за тест кейс отвечают уже не один, а два человека, причем в 1ую очередь спрашивают с peer reviewer'a: почему поля и данные (четко указанные в чеклисте), пропущены.
Плюс ревьюеры могут потом рассказать, кто лучший и кто худший в этом процессе (сколько раз возвращали они тест кейсы на доделку) - и тут адресно можно помочь людям.

Проблема не в людях, а в системе.

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

Да, и все что можно собрать автоматически (дата создания, обновления, прохождения, и т.д.) - не надо перекладывать на людей, а возложите эти функции на инструмент.

Еще вариант: сделайте ретроспективу с тестировщиками - объясните зачем вам то, что вы требуете, и дайте им возможность предложить альтернативы, которые по их мнению будут работать.

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

Вопрос на сообразительность: как вы думаете, чей способ окажется эффективнее?
И вопрос на подумать: а вы уверены, что в вашей компании вас не считают "вьетнамцем"? =)

понедельник, 15 августа 2011 г.

Рекрутеры

Удивительно, до чего бывает полезна креативность в обыденной жизни.

воскресенье, 7 августа 2011 г.

Дизайн пользовательского интерфейса 2: Искусство мыть слона

Любопытные заметки о работе дизайнера и о том, что же такое хороший интерфейс. Зайдите на сайт и почитайте, можете найти для себя полезное. Во всяком случае меня она окончательно примирила с некоторыми нашими интерфейсами.

понедельник, 1 августа 2011 г.

Группа NT-PM101-27.07.2001


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

Уважаемая Людмила! Ребята!
Спасибо вам большое, с вами было приятно работать. Когда придет время подписывать с вами миллионные контракты на проект, я буду знать, что работаю с по-настоящему умным "стейкхолдером". =)

Пусть ваше BCWP превышает BCWS при стабильном ACWP.

суббота, 30 июля 2011 г.

Являются ли деньги хорошим мотиватором?

Являются ли деньги хорошим мотиватором?

На этот вопрос отвечает Дэн Пинк:

пятница, 29 июля 2011 г.

День сисадмина!

Друзья! Дорогие мои и любимые системные администраторы! От всей души поздравляю вас с этим праздником и желаю столько всего, что список был бы больше, чем своп от чикаки!
Не могу больше говорить, в горле щемит, с праздником!

четверг, 28 июля 2011 г.

Дилберт и кейсы по PMBoK

Мне кажется, что почти каждый стрип Дилберта это готовый кейс к разбору на нашем курсе по PMBoK.

Маcштабирование Agile/Lean разработки

Как обычно, хороший семинар будет проводить замечательный Luxoft traning center:
Семинар: Маcштабирование Agile/Lean разработки в рамках программы.

Увидимся там!

О настойчивом шевелении правильными местами

Воодушевляющее видео Александра Орлова о том, что "тот кто что-то делает, чего-то добивается":



P.S.: Алексей, думаю тебе понравится.

среда, 27 июля 2011 г.

Текущее

Нам потихоньку разжевывают PMBoK.
Из интересного попался PRINCE2 (ссылка из Википедии) и MSF (и эти туда же!). Очень интересно разработал ли свою методологию такой монстр, как Apple, но думаю, что как и все остальное у них - начинка скрыта от пользователя.

понедельник, 25 июля 2011 г.

Эволюция доски

Сегодня нам привезли новую доску, заказанную еще итерацию назад. Она еще больше нашей второй доски, но и проектов на ней больше:

Теперь на ней есть отдельная линейка для поддержки, которая работает скорее, как мини-доска "канбан" и место под дополнительную информацию, в частности предполагается burndown.
В остальном же ничего не поменялось, кроме того, что у нас уже ВСЕ проекты ведутся через общий бэклог и почти все сотрудники отдела разработки вовлечены в процесс.

среда, 20 июля 2011 г.

О чем спросить интервьюера?

Недавно на DOU я спрашивал о том, какие вопросы следует задавать на собеседовании интервьюеру.
Уважаемый Alex Eremeenkov дал ссылку на хороший список, который я полностью приведу здесь.

Death of an Metaphor - "Technical Debt"

Interesting subject was published in "Agile Alliance" community. Our foreign collegues discuss about methaphor "technical debt" and someone consider that methaphor outdated.
It seems like they have nothing to do. =)

понедельник, 18 июля 2011 г.

Вы еще думаете о рефакторинге?

Процесс создания программного обеспечения:

Спасибо Александру.

вторник, 12 июля 2011 г.

Клуб анонимных разработчиков

Не прошло и месяца с прошлой встречи, как тут уже и следующая - "Контроль качества кода: статистические анализаторы"
Тема интересная, атмосфера дружелюбная, пиво. Чего еще желать от жизни?  =)
Присоединяйтесь!

Планирование!

Наша замечательная команда на планировании:

Мизансцена: product owner за компьютером, разработчики вертят в руках колоды planing poker, доска с тикетами сгруппированными по сложности (на 0.5, 1 и 21 мало), все смотрят на вопрос в bug tracker, чтобы получше уяснить подробности и, черт-возьми, отэстимэйтить этот тикет!

воскресенье, 10 июля 2011 г.

Проверка целей и требований

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



Не пожалейте времени, не пожалеете!

среда, 6 июля 2011 г.

четверг, 30 июня 2011 г.

Процесс или результат?

Совсем недавно мы основательно препирались с шефом по поводу одной методологической мелочи. В ходе «горячей беседы» шеф спросил:
«...почему я должен потратить ДВА часа вместо часа?
что важнее – РЕЗУЛЬТАТ или ПРОЦЕСС?»
Казалось бы, ответ очевидный: конечно, результат! Кого волнует какой-то там процесс, если результат – вот он, перед тобой. Да и сам процесс, собственно, затевался именно ради результата, а не наоборот.

Но!

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

Есть мнение, что:
...качество продукта напрямую связано с качеством используемых для его создания процессов.
Так в десятой главе с сочным названием «Качество программного обеспечения» говорит нам SWEBOK. Во всяком случае все, кто согласен с этой формулировкой, ссылаются в первую очередь туда.
К тому же примерно о том говорят сверхпопулярные стандарты серии ISO 9000. Обратите внимание, что:
ISO 9000 – серия международных стандартов, описывающих требования к системе менеджмента качества организаций и предприятий.
Или как объясняется чуть ниже:
Важно понимать, что соответствие стандарту ISO 9001 не гарантирует высокое качество продукции. Термин «quality management» здесь было бы правильнее переводить как «управление добротностью». Соответствие требованиям и рекомендациям этих стандартов говорит о способности предприятия:
  • делать всё максимально возможное для достижения поставленных перед собой целей;
  • улучшать результативность своей деятельности.
То есть, по сути, стандарты ISO 9000 выдвигают требования не к качеству конечного продукта, а к качеству ПРОЦЕССА его создания. Просто и со вкусом. И вряд ли найдется человек, который ни разу в жизни не встречал надписи «ISO 9001», например. А какие настолько же популярные стандарты на конечный продукт вы знаете? Кроме, конечно же, того самого пресловутого ГОСТа, слава которого тянется из советских времен?

Программисты, конечно же, знают обо всем этом и не устают повторять окружающим (см. «Страсти по качеству», раздел «Не плюй в колодец ISO 9000...»). Но, увы, не все верят.
Мне повезло. У меня перед глазами есть живой пример. Две команды разработчиков, у одной из которых нет процесса вообще, а вторая как-то пытается налаживать процесс. И знаете, кажется, у второй дела идут получше.

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

А я желаю вам хорошего дня и хорошего кода.

среда, 29 июня 2011 г.

Mercurial, Git, Baazar!

Очередная встреча клуба «Клуба анонимных разработчиков» будет посвящена использованию распределенных VCS.
Нужно сходить.

вторник, 28 июня 2011 г.

Agile-club

Буквально в последний момент решился пойти на Agile-club.
Заходите к нам на огонек!

Отзыв о "лучших практиках"

Недавно ходил на семинар "Лучшие практики инженерии создания ПО".

Это, несомненно, было прекрасно! Мы отлично пообщались в неформальной обстановке, уровень организации и прочее было на высоте, как и на любых мероприятиях компании Luxoft. (Да, можете считать это рекламой или как хотите, но только за "Luxoft training center" им нужно поставить памятник. Сеять разумное-доброе-вечное своими силами или силами приглашенных специалистов - это много стоит. И не говорите мне ничего о  GL-club, товарищи, это смешно). Замечательный докладчик Любовь Монсар, уважаемый специалист ("комсомолка, спортсменка и просто красавица!") хорошо владеет темой, увлекательно рассказывает, "держит аудиторию". Во общем - буря восторгов, и "абажаний" всему событию и отдельным моментам и людям.

Теперь о том, что можно было бы сделать лучше. Сразу скажу, что это будет критический взгляд scrum-инфицированного специалиста. Очень узконаправленный.
Во-первых для любого человека, который успел обзавестись небольшим ворохом бэйджиков, визиток и рекламок с логотипами AgileUkraine, ScrumGuides и прочим-таким, все, что рассказывалось на семинаре не представляется новым. Потому что RUP - это история agile. Именно оттуда было взято все лучшее, обрезано по-краям и выдано массам фанатичных аджайлистов. И любой новоявленный аджаил-коуч (шмоуч ;-) на первом же собственном "ивенте" рассказывает: "Сначала был waterfall, который придумала армия США (следует краткий обзор), потом IBM придумала RUP (следует краткий обзор), ну а затем уже появился agile".
Тем не менее в графе "Оправданы ли были ваши ожидания от семинара" я поставил твердую пятерку. Да, нового не было, но и ожидал я именно такого общего обзора. Очень хотелось бы попасть на семинар с названием "Лучшие практики №2 - Углубление в RUP", в котором более подробно рассматривались бы процессы, документы и прочие артефакты методологии. Или даже "Лучшие практики №3 - Внедряем RUP", где больше внимания можно было бы уделить тому, что же именно нужно, чтобы начать использовать RUP. А-то у скрама, например, все просто - есть доска и желание и вы уже скрам.А как с RUP-ом быть? С чего начинать? Что делать?
Во-вторых, мне кажется, что в самом докладе стоило бы уделить больше внимания именно agile. (Может быть, целый слайд!) Поскольку сейчас в мире разработки много аджайлнутых на голову, следовало бы доступно разъяснить, что RUP не хуже и не лучше того же scrum, а предназначен для других задач, для более строгих и формальных проектов. Рассказать про медицину и авиастроение (превед Максу Дорофееву!), может даже и с примерами. А-то это как-то всплыло только в обсуждении и то несколько абстрактно. Ну, и, конечно тут же можно было бы органично упомянуть про OpenUP. Конечно, я не специалист, но кажется, что методология любопытная, не знаю уж насколько жизнеспособная.

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

СКД и отбор на форме

Часто бывает нужно программно сформировать отчет на основании готового макета СКД и вывести его куда-нибудь в поле табличного документа на форме. Еще бывает полезно отобразить на форме настройки отбора или другие настройки СКД.

четверг, 23 июня 2011 г.

Рак формы

Забавно прокомментировал Лебедев форму какого-то приложения на бизнес-линче:
Это — рак формы, обычное заболевание программистов.
Часто проходит после знакомства с современной операционкой от Эппл и чтения документа «Эппл хьюман интерфейс гайдлайнc»
Хорошо, что он наших форм не видел. =)

WordCloud: мы облачаем

Не удержался и поучаствовал в модном развлечении - WordCloud:

воскресенье, 19 июня 2011 г.

Вперед, товарищи!

Я рассказываю о преимуществах и перспективах scrum на второй ретроспективе.

Code review

Заметка: Статья о code review на хабре.
Кажется, нам есть чему поучиться.

четверг, 16 июня 2011 г.

Подзаголовок

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

среда, 15 июня 2011 г.

Технический долг или Право на выбор

Интересная статья о техническом долге и рефакторинге.
Комментарии тоже интересные.

вторник, 14 июня 2011 г.

Лучшие практики инженерии создания ПО

Учебный центр Luxoft проводит очередной интересный семинар - "Лучшие практики инженерии создания ПО".
Семинар является вводным в методологию RUP - Rational Unified Process.
Рассматриваются лучшие практики, используемые в проектах по разработке программного обеспечения.
Дается введение в итеративную разработку ПО как мощное средство снижения рисков проекта.
Про итеративную разработку мы и так в курсе, про практики интересно было бы послушать. Но самое главное, что будет рассматриваться RUP. Давно хотел познакомиться с этим зверем и даже читал про OpenUP, но все мельком и мимоходом. А тут такая возможность!

Присоединяйтесь!

среда, 8 июня 2011 г.

1C, ООП, DDD и дальше

Сегодня я хочу пригласить вас немного помечтать. А то что это мы все за код да за код. Давайте о жизни. Ну и о коде, конечно, тоже. Потому что какая жизнь у программиста без кода?

Вот недавно я прочел (если честно, еще дочитываю) очень увлекательную книжку с умным названием "Приемы объектно-ориентированного проектирования" за авторством знаменитой "Gang of Four". В книге идет речь о шаблонах проектирования. Кстати, рекомендую от всей души, если кто еще не читал. Сложно представить себе, что ООП можно изучать без таких простых и наглядных примеров использования, какие приводятся в этой книге. Честное слово, я бы ввел ее в школьную программу, может, и не в школьную, но в университетскую точно. А пытливому уму везде найдется польза и применение. Хоть 1С и не поддерживает ООП в полной мере, но и нашему брату, 1С-нику, крупицу истины из нее почерпнуть не грех.

А теперь давайте про 1С и ООП. Когда-то (до 19 октября 2005) Википедия про язык 1С утверждала, что:
Данный язык является интерпретируемым объектно-ориентированным языком высокого уровня.
(На самом деле это, конечно же, не так, но об этом позже.)
И добавляла, что:
Платформой предоставляется фиксированный набор базовых классов, на основании которых можно создавать любое количество порожденных классов, наследующих их свойства и методы. Разработчик имеет возможность определять собственные дополнительные процедуры и функции, а также свойства порожденных классов (с некоторыми ограничениями). Допускается только одна ступень наследования классов. Не допускается переопределение процедур, описанных в базовых классах.
Если кто не понял, поясню: есть класс "Документы", от него можно создавать дочерние классы, вроде "Приходная накладная" или "Закрытие месяца", эти классы в свою очередь позволяют создавать конкретные экземпляры классов (объекты) - конкретные документы (ага, с номером и датой), которыми и управляет пользователь в режиме "Предприятие".
Не вполне ООП, но достаточно близко. Тут и один уровень наследования классов и разница между классом и экземпляром. Ну а про статические методы я уже недавно писал. Как говорили древние, "для умного достаточно", но недостаточно для программиста, у которого душа просится в полет, а руки тянутся к клавиатуре. Голова в этом всем никак не участвует, поэтому продолжаем мечтать.

А вот если бы!.. А вот если бы 1С была как Axapta или C++, например. Уж там-то наверняка полноценно поддерживается ООП, можно и шаблонов навертеть, объектную модель отгрохать - закачаешься. Только вот беда, у C++ порог вхождения выше. С 1С все просто: открыл конфигуратор - и ты уж программист. Сначала форму печатную поправил, потом расчет суммы подкорректировал, и пошло-поехало (ботинками не кидайтесь, пожалуйста, сам так начинал и еще кучу народа знаю такого же). А открой проект на C++ (сиплю-сиплю, а ничего не выходит) - чего-то не там переставил, и все - не компилируется в лучшем случае. Сложно и дорого. Потому-то 1С так мил сердцу мелкого бизнесмена, что не нужны заоблачные бюджеты на разработку, да и типовых конфигураций пруд пруди. Ну и нам, 1С-никам, заодно тепло и сухо. Но объектов хочется.

И вот недавно сама 1С подкинула интересную мысль. Помните релиз 8.2.14? Там, где общие реквизиты вернули. Так вот, что такое общие реквизиты с точки зрения ООП? Не что иное, как обычные свойства класса "Документы". Класс документы-то всеми подклассами наследуется, и свойства, стало быть, тоже. А что если разрешить не один уровень наследования от документов, а несколько? Вот это было бы здорово. Захожу я в конфигуратор (1Сv9, конечно же!), добавляю в документы группу "Товарные документы". Сразу в эту группу документов реквизиты добавляю, типа "Контрагент", "Опустил", "Принял" и ТЧ "Товары" с такими реквизитами - "Номенклатура", "Количество", "Цена". И тут же в модуле группы документов пишу код, что, мол, если количество поменялось - сумму пересчитать, если сумма - цену. Ну, вы все эти процедуры обработки реквизитов и сами по сто раз писали, чего я рассказываю. А потом уже в группе документов "Товарные документы" создаю "Приходную накладную", "Расходную накладную", ну и все, что положено. И у них все эти реквизиты и ТЧ уже есть - унаследовались от товарных документов. Просто волшебство и сплошной "ахалай-махалай" получается. Конечно, кое-где добавляю особенностей для каждого класса, реквизитов специфичных, но каркас работает общий. Удобно, черт возьми. Надо разрядность цены в товарных документах поменять - р-р-р-раз! - и поменял одним махом. Реквизит-то один. И код по обработке один. Так, по мелочи, потом пройтись останется. Ну, естественно, кроме группы "Товарные документы" делаю группу "Кассовые документы" из общего корня - "Документы". Там свои особенности, но общего тоже много. И так далее, и так далее.
Про то, что похожие фокусы со справочниками и другими объектами работают, говорить не буду: сами спокойно дофантазируете, если хотите.
Тут же, кстати, и общие модули немного разгрузятся. Есть модуль группы документов, там и обработки для этой группы документов можно разместить. Например, всякие поиски цен, обработки подборов и прочее. Оно ж все, по логике, к товарным документам относится, верно ведь? Вот пусть в модуле группы "Товарные документы" и лежит, чтобы долго не искать.
И подсистемы тоже как-то оборачиваются в новом свете. Теперь те же документы объединяются в группы с иерархией намного лучше, чем это делали подсистемы. Вот есть группа "Кассовые документы", и все, что относится к кассе, находится в ней. И это обоснованно с точки зрения наследования и структуры кода. Хотя с отношением к нескольким подсистемам проблема получается, но, наверное, и тут какое-то решение есть.
Конечно, это еще не полноценное ООП, но хороший шаг вперед. Или назад?

Давайте посмотрим, что Википедия сейчас пишет про 1С:
Данный язык является предварительно компилируемым предметно-ориентированным языком высокого уровня.
Ключевое слово тут "икра" предметно-ориентированным. На самом деле это очень важно. Именно предметно-ориентированность позволяет быть языку 1С "заумью с человеческим лицом". Когда такие понятия, как "документ" или "проводка", встроены в само ядро платформы, то всякие надуманные абстракции вроде классов и подклассов тихо бледнеют и не отсвечивают. В нормальных "больших" языках программирования тоже хотят так уметь. Даже целое направление придумали - DDD (русская Википедия, извините, об этом еще не в курсе). Так не испортим ли мы 1С, если начнем туда тянуть все эти наследования? Не знаю. Если бы я был разработчиком платформы (во куда хватил! но мы ж тут помечтать договорились, да?), я бы по-тихому все-таки протащил бы такую доменную сущность, как группы документов, не особо афишируя, что оно все торчит из ООП. В принципе, в рамках доменной модели (не путать с объектной) понятие "группа документов" вполне интуитивно понятно, ценно и достаточно функционально. Так что катастрофы тут не предвидится. Катастрофа предвидится, когда мы заговорим о множественном наследовании, но тут могу заметить, что это:
...концепция, поддерживаемая частью объектно-ориентированных языков программирования...
Частью! Так что нам тут бояться нечего, тут еще сами апологеты ООП до конца не определились.
Ну а не хочется вам с этими новомодными "группами документов" разбираться да все конфигурации переписывать - пожалуйста. Не наследуйте от групп, наследуйте от "Документы". И для вас как будто и ничего не поменялось. Вот вам, кстати, обратная совместимость.
Да... Много еще чего можно хорошего намечтать...

Оставляю вас за этим занятием и хочу пожелать вам хорошего дня и хорошего кода.

P.S.: Сильно не ругайте, если кто чем недоволен, о грубых ляпах пишите - буду исправляться.

Публикация на Infostart

Пиши код, блеать!




P.S.: В каждой шутке есть доля шутки, а остальное чистая правда.
Однако, слишком сильно увлекаться методологиями это вредно.

вторник, 7 июня 2011 г.

Как отдыхать?

Известно, что для того, чтобы создавать "продуктивный высококачественный код" (см. Галеры) очень важно быть в тонусе. А чтобы быть в тонусе нужно хорошо отдыхать. Собственно, цикл вебинаров о том как правильно отдыхать:
Семинар будет состоять из 4 бесплатных вебинаров. Программа семинара:
13 июня – Почему возникает усталость и что такое отдых. Как узнать от чего ты устал и от чего ты хочешь отдохнуть на самом деле.
14 июня – Как определить, что будет являться отдыхом в вашем случае. Как найти способ отдохнуть.
15 июня – Оценка вариантов. Всякий ли отдых полезен?
16 июня – Как свести к минимуму возможные «отклонения от курса». Что делать с несбывшимися надеждами. Как на отдыхе помочь себе отдохнуть.
Мне кажется, должно быть интересно. Особенно нам, програмерам (ничего не делал и устал, ага).

Подробности в ЖЖ и на сайте.


суббота, 28 мая 2011 г.

Введение в SCRUM

Алексей Кривицкий выложил неплохую презентацию "Введения в scrum". Если вы рассказываете новой команде о scrum, может пригодиться.

пятница, 27 мая 2011 г.

Новые материалы по 1С УПП

Фарит Насипов выложил 14 часов видео:

  • Концепция УПП (стартовый модуль нового курса)
  • Achtung, 1С! (несколько видео-материалов о 'нелинейной' логике прикладных решений)
  • Полный (пять с половиной часов видео) разбор решения аттестационного задания на 1С:Специалист по УПП от человека, который еще три месяца назад принимал эти самые аттестации :)

Подробности можно посмотреть у него на сайте.

вторник, 24 мая 2011 г.

На рабочем месте

w_bf предложил старинную офисную забаву по фотографированию своего рабочего места. Вот и я присоединяюсь:

Ну, и конечно же, мое "второе место" у доски. =)

пятница, 20 мая 2011 г.

Вторая scrum доска

Помните, я показывал вам свою первую доску? С того времени она немого подросла, вот она:

Что изменилось? Во-первых она стала больше и исчезла колонка "Выполненно". Оказалось, что она не нужна, задачи после разработки переходят сразу в тестирование.
Во-вторых есть легенда по стикерам: желтые - обычные истории, синие - не девелоперские задачи. Например, чистое написание манов не связанное с текущим кодированием (маны-то мы и так по каждому вопросу пишем), администрирование или research. Еще есть красные, но на этом фото их нет (что хорошо). Красные - срочные, не запланированные, авральные вопросы, которые нужно быстро решать и выпускать внеочередной bug-fix.
В третьих теперь задачи на доске действительно располагаются по-приоритету (и, кстати, то, чего вы не видите это реальный приоритет, установленный настоящим product owner-ом и сложность установленная planing poker-ом).
В четвертых есть календарик на итерацию с отметками сколько дней отработано, сколько еще осталось. Это зародыш burndown. Пока мы не эстимэйтим задачи в часах и у нас еще нет разделения на user story и tasks, так что толком burndown и не построить, но все еще впереди. А пока хватает и календарика.
Ну и удобный стикер прямо на самой доске с информацией о том во сколько проходит ежедневный daily scrum. =) Теперь никто не сможет сказать, что он не знал когда и где у нас scrum. Ответ перед глазами - у доски в 9:30.

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

Инстанцирование

xxx: хочу класс ватрушки
yyy: может, объект?
xxx: нет
xxx: класс и наделать кучу объектов
xxx: а деструктор уже готов ...

(c) bash.org.ru

четверг, 14 апреля 2011 г.

Сортировка массива на картах

Не можешь объяснить - покажи это в танце.
Народная мудрость.

Не получается в танце - объясни на пальцах. Или на картах.
Еще одна не менее народная мудрость.

В продолжение к предыдущему посту о сортировке в танце там же на youtube-е нашлось не менее забавное видео о quick sort, правда уже на картах:


Кстати, остальные способы сортировки смотрите на канале Shishberg.

P.S.: Я утомился ждать пока он пузырьком отсортирует. Не даром один из самых медленных алгоритмов.

Сортировка массива в танце

Не можешь объяснить - покажи это в танце.
Народная мудрость.
Очень наглядное танцевальное пособие по простым алгоритмам сортировки. Сортировка выбором, вставкой, сортировка Шелла и, конечно же, пузырек:


Жаль, что нет быстрой сортировки, но наверное это было бы сложно. С другой стороны - следите за каналом, может будет?..

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

Школа ИТ рекрутера

Практически одновременно с забавным видео о тестировщиках в ленту принесло рекламу о "школе ИТ рекрутера":

Это программа повышения квалификации ИТ рекрутеров, нацеленная, прежде всего, на повышение эффективности их работы в компании.

В ее основу легли наши наиболее эффективные практики по "взращиванию" ИТ рекрутеров, а также опыт подбора ИТ специалистов Проектными Менеджерами ИТ-компаний.

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

Кто такие тестировщики?

Уважаемый w_bf выложил забавное видео о тестировщиках.



P.S.: Я обещал себе не высказываться публично о тестировщиках, потому никак комментировать не буду, но видео и комментарии в блоге w_bf наводят на мысль о том, что следует сесть и написать большой пост о сабже, чем "феерически расставить точки".

среда, 30 марта 2011 г.

Совещание

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

Продолжение в блоге автора. "Слон в колесе - Совещание".

вторник, 29 марта 2011 г.

IT-People PechaKucha

Скоро очередная ПечаКуча: "IT-People PechaKucha".
Кто еще не зарегистрировался?

среда, 23 марта 2011 г.

Правильная терминология

Я: Со скидками картина удручающая... =(
Сам модуль сильно сложный, плюс он еще и "немного доработан" кривыми руками.

Шеф: да. я вчера тоже пару часов потратил

Я: Низкий уровень изоляции кода модуля скидок.

Шеф: каким умным словом ты заменил слово "бардак"

вторник, 22 марта 2011 г.

Безопасность публичных сервисов

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

Например, известный сервис upload.com.ua предоставляет замечательную возможность посмотреть список последних загруженных файлов. Совершенно официальная возможность. Конечно, при загрузке файла можно установить пароль на скачивание, но чаще всего этой возможностью пренебрегают. Теперь вы можете наслаждаться гигабайтами частных фотографий с домашних вечеринок (в хорошем качестве!), если они вообще кому-нибудь могут быть интересны. Рефераты, макеты на утверждение заказчику, бизнес-планы, опять какие-то рефераты, фильмы, музыка... Поинтересуйтесь чем вообще обмениваются люди.

Я, например, нашел совершенно не запакованный dt-файл от 1С. Для тех, кто не в теме - поясню. Это полная база данных со всей коммерческой информацией предприятия. К счастью база, которая попалась мне, была какой-то технологической и в ней толком не учитывалось ничего кроме материалов и каких-то основных средств. Знаете, всякие столы, стулья, канцелярские папки. Опять-таки беспечность администратора позволила мне войти в базу не совершая никаких противоправных действий под пользователем с пустым паролем. Т.е. стоит проявить немного любопытства и можно получить совершенно неожиданную информацию.

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

P.S.: Статья написана в образовательных целях, не преследует нанесения какого-либо ущерба и не призывает ни к каким противоправным действиям. Ну вы поняли.

воскресенье, 20 марта 2011 г.

Jet Set Willy and etc.

Недавно я писал о фильме Micro Men. Действительно забавное кино. В одном из эпизодов фильма показывают игры для платформы ZX Spectrum. Я с радостью отметил, что играл во все игры, кадры из которых показывали. Но чаще всего на экране появлялась Jet Set Willy, да и Клайв из всех игр упоминает именно эту. Культовая игра, что и говорить.
Если честно, то мне она совсем не нравилась, я предпочитал R-Type, NOMAD, Dizzy (и еще целый список). Но все же, не могу не напомнить фанатам о замечательном сайте worldofspectrum.org, где вы можете скачать или даже поиграть на Java-эмуляторе в эту забавную бродилку (управление: O, P, Space).

четверг, 17 марта 2011 г.

воскресенье, 13 марта 2011 г.

Подмена рабочего стола

В 1С версии 8.2, в режиме управляемого приложения, есть такая замечательная штука, как "Рабочий стол". На мой взгляд это прекрасная идея - предоставить разработчику возможность расположить самые необходимые функции и важную информацию прямо под носом у пользователя и раз и навсегда избавиться от вопросов вроде "А как мне найти тут?.." И, думаю, что не ошибусь, если скажу что многие расстраивались от того, что нельзя сразу открыть произвольную форму при переходе на вкладку подсистемы. Возможно, я чего-то не знаю, но события "ПриПереключенииПодсистемы" в платформе нет. А гугл на такие вопросы отвечает совсем не обнадеживающей ссылкой на форум 1С, где Максим Радченко сурово отвечает - нет и не будет! Разработчики плачут, колются, но продолжают жрать кактусы.
Но, что нам форум 1С, если мы и сами с усами.

Когда мне понадобилось несколько рабочих столов по подсистемам, я решил так: добавлю на рабочий стол одну форму, сделаю у нее закладок по количеству подсистем и на каждой закладке нарисую все, что мне нужно. А отображение стандартных закладок подсистем можно будет и вовсе отключить.
Сначала все было в порядке. Но, с увеличением количества элементов появились проблемы. Во-первых оно начало прилично тормозить. Во-вторых в дереве элементов и в модуле формы стало сложно ориентироваться. Не связанные по сути элементы для разных подсистем валились в "одну кучу". И еще напрягало то, что нужно соблюдать уникальность имен в пределах формы. Вместо того, чтобы на разных вкладках сделать две диаграммы с именем "Диаграмма" у каждой, приходилось писать что-то вроде "ДиаграммаОстатки" и "ДиаграммаВзаиморасчеты". Когда у меня стали появляться монстры, вроде "ГруппаПанелейСозданияДокументовОстатковНижняя" (...ОрденоноснаяКрасногоЗнамениИмениБорисаНуралиева ;-) я решил - хватит. Нужно было разносить разные рабочие столы на разные формы.

Тогда я применил простое решение и сейчас поделюсь им с вами. Суть способа проста. Я сделал несколько общих форм, по количеству необходимых мне рабочих столов. При создании формы на сервере я добавляю в форму панель с кнопками, которых ровно столько, сколько этих самых общих форм, и при нажатии на соответствующую кнопку открываю нужную форму (которая при создании опять добавляет себе эту панель).
В итоге, чтобы добавить новый рабочий стол, мне нужно сделать несколько простых действий:
1. Создать общую форму с именем "РабочийСтолНужноеИмя" (где вместо "НужноеИмя" можно подставить все, что угодно).
2. Поставить у этой формы заголовок "НужноеИмя" и отключить автозаголовок. (Это важный шаг, я по заголовку определяю текущую форму. Не совсем удачное решение, но работает).
3. Добавить форме событие "ПриСозданииНаСервере" и прописать там такой код:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    РабочийСтол.ПриСозданииНаСервере(ЭтаФорма);
КонецПроцедуры
4. И добавить в модуль формы процедуру:
&НаКлиенте
Процедура РабочийСтолПереключить(Команда)
   
РабочийСтол.РабочийСтолПереключить(ЭтаФорма,Команда);
КонецПроцедуры
(не удивляйтесь, "РабочийСтол" это у меня так называется общий модуль)
5. Все. Ну, и панель действий формы я отключаю или перемещаю вниз, оно так симпатичнее выглядит.

Одну из этих форм вы добавляете в рабочую область рабочего стола, установив в настройках ширину "Одна колонка". И вуаля - все работает.

Можете скачать и посмотреть сами. В принципе, это базовый шаблон, который можно еще наворотить, например, добавить на кнопки картинок. А можно оставить так.

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

А я хочу пожелать вам хорошего дня и хорошего вам кода. Спасибо за внимание.

Публикация на infostart.ru...

пятница, 11 марта 2011 г.

...

Принцип тропинки. Шаманград.

По ссылке от ЛЛео нашел интересную статью о "тропинках".
По принципу тропинки, людей можно разделить на две неравные (и в общем относительные) группы. Первые хотят по протоптанным и расчищенным тропинкам, либо эксплуатируя результаты трудов других, либо пытаясь малыми усилиями обогнать первопроходцев и отобрать у них, если не всю, то кусок успеха. Вторые сами протаптывают себе тропинки, ищут свой путь. Кому-то удается найти свою золотую жилу, кому-то везет меньше и они ничего не находят.
Еще о тропинках и Шаманграде на сайте shamangrad.net...

четверг, 10 марта 2011 г.

Just for fun

Прочел недавно книгу Линуса Торвальдса "Just for fun".Отличное доставляющее чтиво для настоящих олдфагов.
Что бы ни говорили, а детство  настоящего тру-программера должно начинаться с Клайва Синклера.

P.S.: И кстати, в статье о Клайве есть интересная ссылка на фильм "Micro Men". Нужно будет посмотреть.

вторник, 8 марта 2011 г.

Точка Фейнмана

Оказывается, что в числе пи есть позиция, называемая точкой Фейнмана.
Википедия пишет, что:
Точка Фейнмана — последовательность из шести девяток, начинающаяся с 762 цифры числа пи.
Как я уже говорил - читайте Фейнмана, он клевый.

понедельник, 7 марта 2011 г.

Каким образом возникают [экономические] модели?

Любопытная публикация на infostart и соответствующая статья об экономических моделях.
Достаточно любопытно, хотя и не слишком подробно, мне кажется.

У этого есть название!

Группа Agile-Ukraine напоминает о комиксе:

вторник, 1 марта 2011 г.

rlinkf

В рабочем порядке перенес мой маленький скрипт-редиректор rlinkf на другую платформу.
Ссылка (благодаря ему же) прежняя: http://zfilin.org.ua/link/rlinkf

P.S.: На всякий случай напоминаю зачем он нужен. Это небольшой скрипт, позволяющий иметь у себя на хостинге базу коротких ссылок, которые редиректят пользователя куда вам вздумается.

Should I work for free? (по следам переводчика)

В продолжение поста о схеме "Стоит ли работать бесплатно?".
Недавно нашел еще один перевод этой же схемы на сайте allprosto.com:
 

В некотором смысле он более удачный, но не во всем. Во общем, смотрите сами.

понедельник, 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. Презентации-презентациями, но поболтать и потусоваться с участниками было намного круче. Кстати, встретил там одного старого товарища, которого не видел очень давно.
Слайды и фото можете посмотреть на странице с отчетом или прямо здесь:

четверг, 27 января 2011 г.

Видеоуроки по jQuery

Один мой замечательный товарищ пишет толковые видеоуроки по jQuery.

Урок первый.

Остальные вы можете посмотреть у него на сайте: http://ragnar.org.ua/

вторник, 25 января 2011 г.

Обсуждения через блоги

Не могу не поддержать Ивана Сагалаева и Романа Ворушина в том, что макроблоггинг выглядит привлекательнее микроблоггинга.
Например, для меня очень важным фактором является то, что готовя пост-ответ в свой блог есть возможность подумать, сосредоточиться, согласовать его со своим "внутренним пространством", провести какие-то дополнительные исследования, если этого требует тема.
Еще, это банально удобнее. Так как у себя в блоге есть все нужные инструменты, подсветки синтаксиса или возможность вставлять объекты, вроде картинок или флеш. Что не всегда разрешено в комментариях в чужом блоге. Когда пишешь ответ у себя, это больше похоже на то, будто ты удобно расположился в собственном кабинете и не куда не торопясь отвечаешь коллеге. А не как бывает - прибежал на почту, "вам телеграмма! отвечать будете?" Все толкаются, орут, свои телеграммы шлют, а тут еще ответ думай.

среда, 19 января 2011 г.

Матрица профессиональной квалификации

Заполнил анкету и добавил ссылку в список профилей ().
Года три назад я уже заполнял такую анкету и большинство ответов было в колонке "n2 (Уровень 1)".
Прогресс очевиден.

Адрес для желающих: http://programmer-matrix.ru/

Языки программирования такие разные

Забавная табличка о том, как выглядят разные языки программирования для поклонников других языков.


P.S.: Ага! Значит я не единственный, кому кажется, что Ruby это какая-то невнятная хреновина.

P.P.S.: Поскольку картинка древний баян, то информация о PHP несколько не актуальна. Он прилично подрос. Хотя, все-равно "короткие штаны". =)

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

Сделайте свой Android энергоэффективным в любой ситуации

Поскольку я теперь счастливый обладатель смартфона с Android-ом, меня (как и многих других) беспокоит проблема аккумулятора. Не секрет, что смартфоны не только предоставляют миллион мобильных возможностей, но и очень быстро съедают батарею (привет счастливым обладателям телефонов HTC ;-)
Для борьбы с быстрым разрядом аккумулятора есть хорошее приложение CPU tuner. На блоге «Linux Tipps & More» я нашел статью с описанием настроек приложения «Make your Android power efficient in any situation (for free!)» и перевел ее для вас.

Сделайте свой Android энергоэффективным в любой ситуации

В этой статье я расскажу вам, как использовать CPU tuner – бесплатное приложение с открытым исходным кодом для Android. Все, что вам потребуется, это root-доступ и немного времени. Вы можете посмотреть подборку связанных постов (см. раздел «related posts»), посвященных управлению и повышению эффективности электропитания в Linux. Конечно, эту проблему должны были решить:
а) разработчики Linux;
б) разработчики Android;
в) производитель вашего телефона.

Но поскольку они этого не сделали...

Урбосный подкаст №4

Не могу не поделиться подкастом, который записал замечательный Витальский.
Дело было так. Как-то вечером я сидел и мучал Qt, как вдруг внезапно в аську постучался Витальский. Он напал на меня с вопросами, а потом записал очередной подкаст для своего проекта "Урбос". В нем будет немного об "эффекте присутствия", об идеологии лиги роботов и о трансгуманизме.

Вот он:


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

четверг, 13 января 2011 г.

Agile PechaKucha

27-го января Тим будет проводить Agile PechaKucha.
Присоединяйтесь!