Привет, меня зовут Владимир Кустиков, я — архитектор решений в e-Legion. И сегодня я хотел бы рассказать вам про микросервисы.
Рубрика «проектирование систем» - 2
Микросервисы. Не всё то золото, что хайп
2021-09-24 в 14:38, admin, рубрики: Анализ и проектирование систем, Блог компании e-Legion, Микросервисная архитектура, микросервисы, монолит, Проектирование и рефакторинг, проектирование системПуть разработчика
2020-08-04 в 7:49, admin, рубрики: Блог компании Lamoda, Карьера в IT-индустрии, проектирование систем, софт-скилы, управление разработкойПривет! Меня зовут Алексей Скоробогатый. В 2015 году я пришел в Lamoda на позицию разработчика. Сейчас я системный архитектор e-commerce платформы и по совместительству Technical Lead команды CORE. В этой статье хочу поделиться инсайтами, которые получил за эти 5 лет — в формате takeaways, с историями, мемами и ссылками на литературу.
Буду рад любой дискуссии в комментариях под статьей: вопросы, мнения, опровержения!
Читать полностью »
ООП: Кто взял Измаил? Вопрос принадлежности методов объекту
2020-07-19 в 7:04, admin, рубрики: Анализ и проектирование систем, ооп, ООП головного мозга, Программирование, Проектирование и рефакторинг, проектирование систем, процедурное программирование, процесс разработкиДанная статья посвящена разбору вопроса о том, какому именно объекту ООП должен принадлежать метод, осуществляющий взаимодейстие между несколькими сущностями.
Это распространённая тема для холиваров. Например:
Не используйте ООП. Никогда. Это ошибка.
На эту тему есть много материалов, к примеру: www.youtube.com/watch?v=QM1iUe6IofM
Если ООП все еще кажется вам хорошей идеей, то решите простую задачку.
Есть три объекта: кошка, кормушка и человек. Вам необходимо написать метод, который бы позволял человеку покормить кошку, воспользовавшись кормушкой.
Вопрос: методом какого класса будет являться метод.покормить()?
Просьба привести аргументированный ответ, в соответствии с иерархией классов, и другими лучшими практиками ООП.
Теперь сравните это с функциональной реализацией: у вас есть функция покормитьКошку() принимающая в качестве аргумента ссылку на кошку и кормушку.
Цитата из холивара
Как ответить на данный вопрос?
Читать полностью »
Имитация Сложности — Антиномия Простого и Сложного
2020-03-23 в 19:47, admin, рубрики: Анализ и проектирование систем, архитектура приложений, практика программирования, Программирование, проектирование, Проектирование и рефакторинг, проектирование систем, Промышленное программирование, размышления, сложность, философия программированияПрограммисты много говорят про сложность решений. Мы можем часами размышлять о правильных шаблонах, красивых абстракциях и цепочках зависимостей. Однако, давайте поговорим открыто, всегда ли сложность обусловлена решаемой проблемой? Не оказываемся ли мы в плену наших стереотипов и убеждений?
Что не так с валидацией данных и при чем тут принцип подстановки Лисков?
2019-11-17 в 20:43, admin, рубрики: Анализ и проектирование систем, объектно-ориентированный дизайн, ооп, Программирование, Проектирование и рефакторинг, проектирование системЕсли вы иногда задаете себе вопрос: «а всё ли хорошо мне в этот метод приходит?» и выбираете между «а вдруг пронесет» и «лучше на всякий случай проверить», то добро пожаловать под кат… Читать полностью »
Как я проектирую СКС
2019-09-05 в 9:27, admin, рубрики: администрирование сетей, Анализ и проектирование систем, проектирование систем, Сетевые технологии, сети, системное администрированиеЭта статья родилась в ответ на статью «Идеальная локальная сеть». Я не согласен с большинством тезисов автора, и хочу в этой статье не только их опровергнуть, но и выдвинуть свои тезисы, которые потом буду защищать в комментариях. Далее я расскажу о нескольких принципах, которых я придерживаюсь при проектировании локальной сети любого предприятия.
Первый принцип это — надежность. Ненадежная сеть всегда выйдет дороже за счет стоимости ее обслуживания, убытков при простое и убытков от постороннего вмешательства. Исходя из этого принципа всегда проектирую основную сеть только проводной, и при необходимости, дополнительную беспроводную (гостевая сеть или сеть для мобильных терминалов). Почему беспроводная сеть менее надежная? У любой беспроводной сети есть ряд проблем безопасности, стабильности и совместимости. Слишком много рисков для серьезной компании. Читать полностью »
История одного монолита
2019-08-21 в 5:11, admin, рубрики: Блог компании 2ГИС, Геоинформационные сервисы, Программирование, Проектирование и рефакторинг, проектирование систем, разработка приложенийЧасть первая, в которой читатель познакомится с краткой историей появления внутренних продуктов 2ГИС и эволюцией системы доставки данных от нескольких скриптов до полноценного приложения.
Сегодня я расскажу вам историю, которая началась 9 лет назад в компании ДубльГИС.
Читать полностью »
Данные по-прежнему важнее
2019-07-10 в 8:22, admin, рубрики: Алгоритмы, Анализ и проектирование систем, данные, Программирование, Проектирование и рефакторинг, проектирование систем, СУБДВот цитата из Линуса Торвальдса за 2006 год:
Я огромный сторонник разработки кода вокруг данных, а не наоборот, и я думаю, что это одна из причин, по которой git был довольно успешным… По сути, я утверждаю, что разница между плохим программистом и хорошим заключается в том, считает ли он более важным свой код или свои структуры данных. Плохие программисты беспокоятся о коде. Хорошие программисты беспокоятся о структурах данных и их взаимоотношениях.
Что очень похоже на «правило представления» Эрика Реймонда от 2003 года:
Сверните знания в данные, чтобы логика программы стала глупой и надёжной.
Здесь просто резюме идей, подобных мысли Роба Пайка от 1989 года:
Доминируют данные. Если вы выбрали правильные структуры данных и всё хорошо организовали, то алгоритмы почти всегда будут самоочевидными. Структуры данных, а не алгоритмы, играют центральную роль в программировании.
Многорукий бог дедлайна или Широкое Использование Возможностей Аналитика
2019-06-20 в 13:11, admin, рубрики: Анализ и проектирование систем, аналитик, бизнес-анализ, внедрение ис, проектирование систем, развитие, системный анализНи для кого не секрет, что аналитики — одна из самых свободно и многогранно трактуемых профессий. И, несмотря на наличие аж двух профессиональных стандартов, каждая компания индивидуально очерчивает круг задач, возлагаемых на специалиста, занимающего эту должность. В своей статье я хочу поделиться личным опытом и рассказать, какие роли способен совмещать аналитик на протяжении рядового проекта, какие задачи закрывать, а также куда развиваться, если основная проектная занятость становится совсем скучной.
Надеюсь, мой рассказ поможет вам с удивлением обнаружить, какими бывают ваши собратья по разуму, а также подсветит возможные точки роста и развития.
Дисклеймер
Всё, о чём дальше будет идти речь – сугубо личный опыт во вполне определённом виде деятельности, заключающемся в разработке и внедрении заказных решений на базе конкретной системы со своей платформой и своим языком программирования.
Более того, эта деятельность дополнительно ограничена предметной спецификой внедряемой системы, а также внутренними технологиями вендора, выступающими в роли локальных стандартов.
Ну и в качестве вишенки на торте – деятельность эта осуществляется на благо кровавого энтерпрайза. И когда я говорю о кровавом энтерпрайзе, я подразумеваю проекты в очень крупных компаниях – практически весь нефтегаз, крупнейшие банки, промышленники, ритейл и т.д.
Соответственно, аналитик, о котором пойдёт речь в статье – это человек, существующий внутри всей вышеозначенной парадигмы. Более того, это вполне реальный и живой человек, каким бы сферическим конём в вакууме он вам ни казался по ходу чтения.
Как маленькая программа превратила маленькую контору в федеральную компанию с прибылью 100+ млн.руб-месяц
2019-06-09 в 13:06, admin, рубрики: asterisk, Анализ и проектирование систем, бизнес-модели, ит системы и технологии, проектирование систем, разработка приложенийВ конце декабря 2008 года меня пригласили в одну из служб такси г.Перми с целью автоматизации существующих бизнес-процессов. В целом передо мной были поставлены три фундаментальные задачи:
- Разработать программный комплекс для call центра с мобильным приложением для водителей такси и автоматизировать внутренние бизнес-процессы.
- Сделать все надо было в максимально сжатые сроки.
- Иметь собственное, а не купленное у сторонних разработчиков, программное обеспечение, которое в дальнейшем по мере развития бизнеса можно было самостоятельно масштабировать под постоянно меняющиеся условия рынка.
На тот момент я не понимал, как устроен этот рынок и его нюансы, но тем не менее очевидными для меня были две вещи. Call центр необходимо строить на базе программной АТС asterisk с открытым исходных кодом. Обмен информацией между call центром и мобильным приложением по сути является клиент-серверным решением со всеми соответствующими паттернами проектирования архитектуры будущего проекта и его программирования.
После предварительной оценки поставленных задач, сроков выполнения и затрат на реализацию проекта, согласовав все необходимые вопросы с владельцем службы такси, в январе 2009 года я приступил к работе.