среда, 30 января 2019 г.

Просмотр получающегося результата при верстке в Visual Studio Code

Сегодня пробегая мимо, Саша показал как в Visual Studio Code смотреть что получается в процессе верстки. Я сильно сомневаюсь, что я буду этим заниматься регулярно, а склероз ведь не дремлет, да и вдруг кому еще пригодится. В общем, велком.

воскресенье, 20 января 2019 г.

PlanUML в Visual Studio Code. Диаграммы классов


В предыдущей статье инструкция что устанавливать и как начать работать. Сегодня поговорим про нотацию используемую в PlantUML для построения диаграмм классов. Напоминаю, что диаграмма классов (англ. Static Structure diagram) это структурная диаграмма нотации UML, демонстрирующая общую структуру иерархии классов системы, их кооперацию, атрибуты (поля), методы, интерфейсы и взаимосвязи между ними. Широко применяется не только для документирования и визуализации, но также для конструирования посредством прямого или обратного проектирования.
Итак, начинаем.

PlanUML в Visual Studio Code

В Visual Studio 2017 с удивлением обнаружил отсутствие проектов для моделирования (UML). Нет, можно запустить 2015, но держать две студии как-то не комильфо, да и при параллельном изменении диаграмм появляется проблема с потерей изменений того, кто сохранил не последним.
Озадачившись вопросом что можно использовать для построения UML диаграмм, наткнулся на PlanUML. Что это такое? Да много чего. Нотация, парсер и куча плагинов к наиболее распространенным средам разработки. Существенным достоинством данного подхода является хранение диаграмм в виде plan-text. Т.е. файл с моделью, это просто текстовый файл, при изменении файла несколькими людьми в параллели, даже если в результате коммитов он разъедется, всегда можно будет посмотреть кто и какие изменения внес и смержить их руками. Не все, к сожалению радужно. Применить PlantUML для хоть немного серьезной ArchiMate диаграммы (да, он и это умеет) не получилось. То ли я не владею дао, то ли в случаях, когда расположение элементов играет существенную роль, его применять не получится. Но не суть, мы сегодня про UML. Поэтому, устанавливаем и начинаем работать с PlantUml. Поехали.

суббота, 19 января 2019 г.

Цитата дня


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

 -- T. Hoare

P.s. Да, Quick Sort был разработан сэром Чарльзом Энтони Ричард Хоар (Charles Antony Richard Hoare или Tony Hoare или C.A.R. Hoare) в 1960 году, вот только с ходу не смог найти, он в это время еще жил в Советском Союзе или уже вернулся в Великобританию.

вторник, 15 января 2019 г.

Максимально ограничивайте область Generic-а и не используйте в перегрузках методов

Вчера исправлял баг, проявил он себя весьма интересно. Но продемонстрировать его можно на достаточно простом примере:

static void Main(string[] args)
{
    Print(new[] { 1, 2, 3 });
    Console.ReadKey();
}

static void Print<T>(T t)
{
    Console.WriteLine(t);
}

static void Print<T>(IEnumerable<T> t)
{
    foreach (var item in t)
    {
        Console.WriteLine(item);
    }
}

воскресенье, 13 января 2019 г.

Что не так с качеством?

Я не очень понимаю, в какой момент произошел слом в массовом сознании, но я его наблюдаю регулярно и систематически.
Но то что слом произошел, причем совсем недавно, и не только в России, это факт. Как вам вот такие два определения качества:
1. ИСО 8402—86: Качество — совокупность свойств и характеристик продукции или услуги, которые придают им способность удовлетворять обусловленные или предполагаемые потребности потребителя.
2. ГОСТ Р ИСО 9000-2015: Качество — степень соответствия совокупности присущих характеристик объекта требованиям.
Видите разницу, под катом мои мысли на эту тему.

пятница, 11 января 2019 г.

Стандартизируй-делай-контролируй-воздействуй


Несколько лет назад я уже писал про цикл Деминга, он же PDCA. Но т.к. улучшать хаос не получится, перед тем как его запустить, придется воспользоваться другим циклом, циклом SDCA. В котором вместо планируй будет стандартизируй. Этот цикл, как и цикл PDCA входит в систему Кайдзен, про которую мы еще отдельно поговорим. Сегодня же предлагаю обсудить стандартизацию и сам цикл SDCA.

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

Цитата дня


Лучший аргумент против демократии пятиминутная беседа со средним избирателем.
 -- Уинстон Черчилль

Под катом немного про другую известную цитату Черчилля, да и про демократию тоже немного.

воскресенье, 6 января 2019 г.

Синтаксический сахар yield return

На stackoverflow задали вопрос про yield return. Ну и т.к. пример для понимания что это за зверь написал, то пусть он и в этом блоге полежит. Под катом два примера, как реализовать класс реализующий IEnumerable или IEnumerable классически и при помощи yield return. Для тех кто не в курсе, foreach и методы Linq работают с классами реализующими эти интерфейсы.

пятница, 4 января 2019 г.

Мнение о книге "Новая цель"

Если вы читали "Цель" и вам понравилось, то... Сложно сказать. Как производственный роман - супер. Даже есть любовная линия, и заканчивается все в лучших традициях русских народных сказок. Иными словами, как литературному произведению - зачет. Собственно это было сразу понятно по тому, как изменился стиль книги Цель-2, которую Голдратт писал без Джеффа Кокса.
Теперь к полезности. Основные идеи книги:
1. Включайте голову, т.к. даже самые логичные методы, как бы хорошо они не работали у других, без понимания что вы делаете и зачем, к ожидаемому результату не приведут.
2. Перед тем как внедрять изменения необходимо стабилизировать систему, выявить ограничение (привет ТОС) и в первую очередь направить все усилия на работу с ограничением или с тем, что окажет влияние на всю систему.
3. Шесть сигма и бережливое производство при правильном применении круто, но как оно работает мы вам не расскажем, приходите на курсы и мы вам расскажем что там по чем и даже выдадим зеленый или черный пояс.
4. Дерево текущей реальности и дерево будущей реальности это полезный инструмент которым надо пользоваться (в отличии от первых двух целей, здесь методика не рассматривается, так, упоминается общая идея и что с этим деревом надо работать).
5. Разбалансированные системы это круто и только так можно обеспечить стабильность производства.
6. Закупки тоже надо привязывать к барабану (надо подумать, что это может быть в приложении к программированию).
Читать ли книгу? Да. И как развлекательное чтение, и как затравку для чтения более серьезных вещей по ТОС или того же Деминга. Лучше или хуже эта книга для начала по сравнению с оригинальной Целью? Сложно сказать, с точки зрения практических приемов лучше Цель. Если время позволяет, то читать Цель, Цель-2, Новая цель.

Цитата дня

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

P.s.