Type Driven Development на практике

Разработка через типы (Type-Driven Development, TDD) — это методология программирования, при которой вы начинаете с написания определений типов, которые служат точной спецификацией вашей программы. Вместо того чтобы сначала писать код, а потом добавлять тесты или типы, вы используете компилятор как интерактивного ассистента, который направляет вас к созданию программы, удовлетворяющей заданным типам. Idris — это чистый функциональный язык программирования, созданный Эдвином Брэди, который идеально подходит для этого подхода благодаря поддержке зависимых типов. Но попробуем использовать его идеи на практике вне Idris. Попробуем сравнить такие метрики как 1. Время проектирования (момент, после которого разработчик может больше не соприкасаться с предметной областью, а руководствоваться только ТЗ) 2. Время до выкатки на прод 3. Частота ошибок на проде (и как следствие, ущерб бизнесу и затраты на сопровождение)

https://habr.com/ru/articles/919268/

#проектирование

Type Driven Development на практике

Разработка через типы (Type-Driven Development, TDD) — это методология программирования, при которой вы начинаете с написания определений типов, которые служат точной спецификацией вашей программы....

Хабр

Галопом по архитектуре. Часть 2. Архитектура с нуля

В прошлой части мы разобрали: 1. Что техническая реализация заметно влияет на успехи бизнеса, хоть и не очень критично; 2. Что из всех аспектов технической реализации наибольший вклад в успех вносит именно архитектура; 3. Что самое важное свойство архитектуры - максимальная независимость команд друг от друга; 4. Что это свойство вытекает напрямую из двух фундаментальных характеристик программного обеспечения: coupling и cohesion, где coupling - характеристика связи двух точек системы/кодовой базы; а cohesion - характеристика того, насколько плотно упакованы такие связи в компоненты. С этим багажом заканчиваем с теорией и переходим к практике. Теперь, когда мы знаем, что хорошо, а что плохо, необходимо понять, как этого добиться. Тут надо задать два вопроса с совершенно разными ответами: 1. Как не допустить появления связанной архитектуры и сразу сделать хорошо? 2. Как исправить уже связанную архитектуру? В этой части постараюсь развернуто ответить именно на первый, оставив второй на десерт.

https://habr.com/ru/articles/919368/

#архитектура #проектирование #разработка #рефакторинг

Галопом по архитектуре. Часть 2. Архитектура с нуля

В прошлой части мы разобрали: что техническая реализация заметно влияет на успехи бизнеса, хоть и не очень критично; что из всех аспектов технической реализации наибольший вклад в успех вносит именно...

Хабр

Функциональное и объектно-ориентированное проектирование

В современном обучении программированию, как правило, основное внимание уделяется парадигме объектно-ориентированного программирования (OOP) и вытекающей из неё методологии объектно-ориентированного проектирования (OOD). Определённый ренессанс в наше время испытывает парадигма функционального программирования, но практически никогда в связке с ней не рассматривается функциональное проектирование. Попытаемся осветить наше видение этих вопросов.

https://habr.com/ru/articles/919190/

#проектирование #функциональное_проектирование #сверхувниз #снизувверх #ООП #декомпозиция #синтез #архитектура #функции

Функциональное и объектно-ориентированное проектирование

Движение вверх и вниз В современном обучении программированию, как правило, основное внимание уделяется парадигме объектно-ориентированного программирования (OOP) и вытекающей из неё методологии...

Хабр

Инжиниринг полного цикла: как реализовать горно-обогатительные проекты в 6 раз быстрее

Разбираем технологии, которые помогают трансформировать отрасль. Привет, Хабр! С вами Дмитрий Лохов, генеральный директор TAPP Group. В прошлой статье мы говорили об импортозамещении в горно‑обогатительной отрасли . Сегодня — о более фундаментальном подходе. Горно‑обогатительная отрасль стоит на пороге революции: если раньше строительство ГОКа занимало 5–7 лет, то сегодня некоторые проекты реализуются за год. Как это возможно? Ответ — в отказе от устаревших подходов, где геологи, проектировщики и строители работают изолированно. Многолетний опыт и экспертиза TAPP Group доказали: интеграция всех этапов в единый цикл сокращает сроки с 3–5 лет до 6–12 месяцев. Эта статья будет интересна:

https://habr.com/ru/companies/tapp_group/articles/918806/

#Инжиниринг #Импортозамещение #Промышленность #Обогатительная_отрасль #фабрики_и_заводы #проектирование

Инжиниринг полного цикла: как реализовать горно-обогатительные проекты в 6 раз быстрее

Разбираем технологии, которые помогают трансформировать отрасль. Привет, Хабр! С вами Дмитрий Лохов, генеральный директор TAPP Group. В прошлой статье мы говорили об импортозамещении...

Хабр

Наше расследование: ищем отечественные микросхемы в «отечественных» счетчиках электроэнергии. Часть 5

После публикации наших статей многих интересует, а есть ли официальная реакция органов власти на представленную информацию. Напомним, что в якобы разработанных в России микросхемах Flash памяти от компании АО "ДжиЭс нанотех" мы нашли кристаллы от иностранных микросхем от компании WinBond, в микросхемах микроконтроллеров и АЦП от компании ООО "Интегральные Телематические Решения" мы нашли кристаллы от иностранных микросхем компании Vango. Кристаллы от Vango также оказались в микросхемах интерфейса RS-485 от АО "ДжиЭс нанотех". Конечно же эта информация не могла пройти мимо основного регулятора и Министерство промышленности и торговли инициировало проверки . Чем закончилась одна из них мы и расскажем...

https://habr.com/ru/articles/916048/

#микросхемы #проектирование

Наше расследование: ищем отечественные микросхемы в «отечественных» счетчиках электроэнергии. Часть 5

После публикации наших статей ( 1 , 2 , 3 , 4 ) многих интересует, а есть ли официальная реакция органов власти на представленную информацию. Напомним, что в якобы разработанных в России микросхемах...

Хабр

Наше расследование: ищем отечественные микросхемы в «отечественных» счетчиках электроэнергии. Часть 5

После публикации наших статей многих интересует, а есть ли официальная реакция органов власти на представленную информацию. Напомним, что в якобы разработанных в России микросхемах Flash памяти от компании АО "ДжиЭс нанотех" мы нашли кристаллы от иностранных микросхем от компании WinBond, в микросхемах микроконтроллеров и АЦП от компании ООО "Интегральные Телематические Решения" мы нашли кристаллы от иностранных микросхем компании Vango. Кристаллы от Vango также оказались в микросхемах интерфейса RS-485 от АО "ДжиЭс нанотех". Конечно же эта информация не могла пройти мимо основного регулятора и Министерство промышленности и торговли инициировало проверки . Чем закончилась одна из них мы и расскажем...

https://habr.com/ru/articles/916048/

#микросхемы #проектирование

Наше расследование: ищем отечественные микросхемы в «отечественных» счетчиках электроэнергии. Часть 5

После публикации наших статей ( 1 , 2 , 3 , 4 ) многих интересует, а есть ли официальная реакция органов власти на представленную информацию. Напомним, что в якобы разработанных в России микросхемах...

Хабр

Проектирование Информационных систем. Часть 7. Инжиниринг бизнес-процессов 7.2. Применение BPMN. Ресурсоемкость

Один из популярных инструментов BPMN (Business Process Model and Notation) — стандарт графического моделирования бизнес-процессов, разработанный Object Management Group (OMG). Он широко используется для визуализации, анализа и оптимизации процессов внутри организаций. Но в отличие от прочих нотаций, BPMN может использоваться совместно со специальным BPM-движком (engine), встроенным в различные ИТ-платформы. То есть бизнес-процессы, описанные с помощью BPMN, не просто визуализируются, а управляют логикой выполнения в реальных ИТ-системах, превращая нотацию в исполняемый код , который интерпретируется движком, При этом продвигая процессы в соответствии с описанной в диаграммах бизнес-логикой, BPMN-движок следит за выполнением шагов, направляет задачи сотрудникам, вызывает API сервисов, генерирует события, фиксирует в Базе Данных (далее – БД) результат и тому подобное. Помимо того, такой инструмент выполняет мониторинг и логирование каждого запущенного экземпляра процесса и фиксирует прогресс и актуальные состояния в БД.

https://habr.com/ru/articles/916942/

#проектирование_систем #проектирование_по #проектирование #анализ_и_проектирование_систем #системный_анализ #промышленная_автоматизация #bpmn #ресурсное_планирование #предварительные_оценки #оценка_трудозатрат

Проектирование Информационных систем. Часть 7. Инжиниринг бизнес-процессов 7.2. Применение BPMN. Ресурсоемкость

Содержание курса ВВЕДЕНИЕ Введение в процесс формирования требований Инфраструктура (ландшафт) для организации проектной деятельности Управление целями заинтересованных лиц Формализация потребностей...

Хабр

Как спроектировать сложный цифровой продукт: метод КРИ — Карта реализации историй

Что, если пользовательские истории не работают? Что, если заказчик не понимает, чего он хочет, а команда тонет в предположениях? Андрей Шапиро @xraizor — дизайнер интерфейсов и соавтор фреймворка проектирования социотехнических систем — рассказывает о «Карте реализации историй» (КРИ) — практическом методе проектирования, который помогает вытащить смысл из хаоса, превратить знания в структуру и наконец-то начать делать сложные продукты осознанно.

https://habr.com/ru/articles/917176/

#проектирование #проектирование_интерфейсов #проектирование_систем #управление_проектами #управление_продуктом #управление_разработкой #ux #ui

Как спроектировать сложный цифровой продукт: метод КРИ — Карта реализации историй

Что, если пользовательские истории не работают? Что, если заказчик не понимает, чего он хочет, а команда тонет в предположениях? Андрей Шапиро  @xraizor — дизайнер интерфейсов и соавтор...

Хабр

Диаграмма классов (англ. Class diagram)

Каждая программа начинается с идеи, однако путь от идеи до готового продукта достаточно долог. На этом пути будут поджидать множество сложных вопросов, от решения которых зависит успех. Неверные ответы могут значительно усложнить проект, а правильные сделать эту дорогу легкой. Цикл статей о проектировании, призван показать один из возможных путей, достижения успеха, через проектирование программного обеспечения с использованием UML (англ. Unified Modeling Language — унифицированный язык моделирования). В качестве сквозного примера, для всего цикла статей, будет идея создать библиотеку электронных книг для обучения и научной работы. Проектируемая программа не только позволит читать книги, но и делать их конспекты, цитируя и добавляя собственные комментарии. ------------- Текущая статья завершает цикл статей по теме проектирования. Ниже описывается, пожалуй, самый трудный этап. Переход от абстрактных рассуждений к конкретной реализации в виде исходного кода. Сложность заключается, в необходимости иметь значительные знания по теории программирования и опыта разработки программного обеспечения, и эти два пункта тесно связаны между собой. Теоретические основы описывают, как и почему необходимо применять тот или иной приём проектирования, а практические навыки позволяют принимать правильные решения, снижая количество допущенных ошибок. Настоящая статья описывает последовательность действий и разъясняет, почему были приняты те или иные решения. Однако, к сожалению, формат статьи не может вместить всё разнообразие вариантов и подходов к проектированию, и поэтому не является инструкцией. Она скорее послужит небольшим примером, для того чтобы самому попробовать разобраться в этой теме.

https://habr.com/ru/articles/907820/

#проектирование #проектирование_систем #проектирование_по #проектирование_и_рефакторинг

Диаграмма классов (англ. Class diagram)

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

Хабр

Проектирование Информационных систем. Часть 6. Выявление функции системы. 6.1. Теория систем

Когда основные потребности пользователей собраны и согласованы со всеми участниками, мы можем приступить к определению ключевых функций разрабатываемой системы, и уже на основании их провести первую, приблизительную оценку ресурсоемкости проекта, направленного на реализацию целевого продукта. В результате этого оценивания уже можно “поиграть” показателями: время, ресурсы, качество (содержание) и приступить к подбору наиболее подходящего их сочетания. Так же, выявленные объемы и зависимости функциональности позволят делить будущий продукт на модули, подсистемы, контуры и прочие части, обеспечивая поэтапное воплощение, распределение ресурсов и ответственности, снижая риски провала благодаря дроблению. Для решения подобных задач нам очень пригодится умение эффективно определять Границы проекта и управлять ими.

https://habr.com/ru/articles/915546/

#проектирование_систем #проектирование_по #проектирование #анализ #анализ_и_проектирование_систем #системный_анализ #системный_аналитик #инженерия_требований #промышленная_автоматизация #системотехника

Проектирование Информационных систем. Часть 6. Выявление функции системы. 6.1. Теория систем

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

Хабр