Pull to refresh
61
0
Романов Борис @ganouver

Архитектор

Send message

Мой любимый рецепт приготовления программных продуктов

Reading time 8 min
Views 2.7K

Есть много способов приготовить картошку. Вот тут написано больше 100 способов. Рецептов кофе существует множество. Лично я предпочитаю черный, без сахара. Кто-то любит с молоком, кто-то предпочитает холодный. Бессмысленно спорить, какой из них лучше.

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

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

Читать далее
Total votes 8: ↑8 and ↓0 +8
Comments 0

Очень краткое введение в SysML или «а куда кобылу запрягать?»

Reading time 5 min
Views 9K

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

Читать далее
Total votes 5: ↑5 and ↓0 +5
Comments 10

Codefreeze и непрерывная поставка

Reading time 4 min
Views 8.4K
image Пробки начинаются на перекрестках, когда транспортные потоки вступают в конфликт. Пока один поток движется, другой вынужден ждать. Что-то похожее происходит при выпуске очередного релиза программного продукта: чтобы выпустить продукт достойного качества, приходится останавливать разработку.

Программ без ошибок не бывает. Делая что-то полезное, мы невольно привносим в код то, что не собирались. Иногда неожиданности возникают на стыке, казалось бы, не связанных друг с другом изменений. Вот чудесный пример, как оптимизация драйвера мыши мешает обновлению адресной книги в Outlook. Поэтому всегда наступает такое время, когда команда сосредоточена исключительно на тестировании и исправлении ошибок. Добавление новых функций в это время запрещено.
Читать дальше →
Total votes 12: ↑10 and ↓2 +8
Comments 8

Управление привилегированными учетными записями

Reading time 5 min
Views 19K
Привилегированными называют учетные записи, которые дают доступ к системе с очень широкими полномочиями. Например, root в Unix или Administrator в Windows. Логин и пароль для домашнего роутера, с помощью которого делается настройка – это тоже привилегированная учетная запись. Коротко говоря, это такие учетные записи, используя которые можно сделать с системой или устройством (почти) все что угодно. Иногда их называют «ключами от королевства” (keys of the kingdom), ведь они дают возможность получить полный доступ к информации и параметрам работы системы. Используя привилегированный доступ можно сделать что-то полезное, а можно и вредное. Все, как обычно, зависит от того, кто делает и с какой целью.
Читать дальше →
Total votes 11: ↑9 and ↓2 +7
Comments 16

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

Reading time 6 min
Views 33K
Когда я писал статью об управлении проектами с помощью MS Project, меня не покидало устойчивое ощущение, что я пишу что-то неправильное. «Ну не может такого быть,» — думал я, «чтобы такие простые вещи так сложно делались в программе, являющейся одним из самых распространенных инструментов для управления проектами.» Я проверял себя, раз за разом оценивал актуальность своих потребностей, изучал другие программные решения. И все равно приходил к неутешительному выводу: *у меня, как руководителя проекта, существуют потребности, которые то ли забыты, то ли сознательно игнорируются разработчиками*. Несмотря на впечатляющий список возможностей современных систем управления проектами, есть задачи, которые я просто не могу решить без помощи вспомогательных средств в силу естественных ограничений человеческого мышления.

В этой статье я хочу описать некоторые важные, на мой взгляд, пробелы в функциональности и предложить возможные способы реализации.
Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Comments 23

Использование MS Project для управления проектами по разработке ПО

Reading time 10 min
Views 463K
Я хочу поделиться своим опытом использования MS Project для управления проектами по разработке программного обеспечения. Я уже лет 10 занимаюсь управлением проектами,
и в результате у меня родилась некоторая методология использования MS Project, которая позволяет получить от него немалую пользу и при этом меньше зависеть от его недостатков.
Читать дальше →
Total votes 23: ↑18 and ↓5 +13
Comments 38

Хочешь быть программистом — будь им!

Reading time 4 min
Views 51K
Данный пост навеян статьей "Я, пользователь!", которая вызвала много споров, и была весьма прохладно встречена сообществом. Обсуждение в комментариях показало, что мысль, которую Автор высказал довольно жестко и агрессивно, была воспринята как призыв вернуться к ветряным мельницам. Однако, на мой взгляд, проблема затронутая автором, гораздо глубже.
Сейчас я постараюсь объяснить, что я имею в виду.
Total votes 140: ↑114 and ↓26 +88
Comments 198

Test Driven Design — первый опыт внедрения

Reading time 5 min
Views 9.7K
Многочисленные статьи, посвященные TDD в общем и Unit-тестам в частности, как правило, оперируют довольно искусственными примерами. Например, давайте напишем функцию, которая складывает два числа и напишем для неё тест. Честно говоря, на таких примерах трудно оценить преимущества использования автоматизированных тестов.

Некоторое время назад мне подвернулся малюсенький проектик, который как будто специально создан для того, чтобы опробовать на нем методику проектирования, основанную на тестах. Результат применения поразил меня самого! Приглашаю под кат всех, кто еще сомневается в том, что нужно применять автоматизированные тесты в повседневной разработке.
Читать дальше →
Total votes 36: ↑32 and ↓4 +28
Comments 24

Полуавтоматическая конвертация лени в код

Reading time 7 min
Views 6.5K
Всем доброго дня. Сегодня я хочу поговорить об автоматической генерации кода C#. Например, свойства в классах, описывающих сущности предметной области, обычно описываются по совершенно одинаковой схеме. И мне элементарно лениво писать для каждого примитивного свойства одинаковые конструкции. Немного спасает применение сниппетов и активных шаблонов, но когда приходит нужда что-то поменять в этой схеме, то приходится перелопачивать кучу кода. Так почему бы это однообразие не генерировать автоматически в процессе сборки?
В какой-то момент кинетическая энергия творчества ненадолго пересилила потенциальную энергию лени, и результатом этого стала маленькая библиотечка для автоматической генерации некоторых исходных файлов программы на основе внешних данных. Приглашаю под кат всех ленивых (в хорошем смысле этого слова) разработчиков на C#.
Читать дальше →
Total votes 33: ↑29 and ↓4 +25
Comments 17

Как успевать не все или стартап в качестве тренинга по тайм-менеджменту

Reading time 6 min
Views 2K
Все началось в 2009 году. Я работал в крупной компании, занимающейся разработкой ПО. Наша команда занималась выполнением довольно большого проекта. Мои обязанности были довольно размыты. В то время как мой руководитель обеспечивал выполнение проекта с внешней стороны (он общался с дирекцией, менеджерами и т.п.), я занимался решением внутренних проблем проекта – проектировал, составлял планы, ставил задачи разработчикам, отслеживал направление работ и т.п. Незадолго до описываемых событий, в компании сменилось руководство, прошла весьма ощутимая реорганизация, курс развития компании в целом (и проекта в частности) изрядно сместился, по сравнению с первоначальным замыслом. И я не мог сказать, что новое направление развития меня устраивает.

Год шел к концу. Настоящее было предсказуемо и довольно уныло, предлагаемое новым руководством будущее выглядело туманно и не вызывало доверия. В это время один хороший товарищ предложил: «А давай сделаем что-то свое!».

Я не буду рассказывать о том, что мы сделали, как мы сделали и т.п. Я хочу рассказать, как изменился я, участвуя в стартапе. Через какие уроки прошел, чему мне удалось научиться. Надеюсь, набитые шишки и приобретенный опыт будет кому-нибудь полезен или, по крайней мере, интересен.
Читать дальше →
Total votes 44: ↑35 and ↓9 +26
Comments 26

Представление метаданных с помощью перечислений

Reading time 5 min
Views 1.8K
Что такое метаданные? Это некоторая описательная информация, которая используется алгоритмами программы. Например, это могут быть названия таблиц и полей базы данных, названия ключей реестра, в которых хранятся требуемые параметры, или названия свойств объектов, к которым обращается программа. Я хочу рассказать, как с помощью методов-расширений и атрибутов можно удобно использовать перечисления для представления метаданных.
Читать дальше →
Total votes 9: ↑7 and ↓2 +5
Comments 14

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity

Specialization

Project Manager, Software Architect
Git