Search
Write a publication
Pull to refresh
1
0
Sergey Kaleev @skaleev

Пользователь

Send message

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

Level of difficultyEasy
Reading time17 min
Views2.6K

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

Цикл статей о проектировании, призван показать один из возможных путей, достижения успеха, через проектирование программного обеспечения с использованием UML (англ. Unified Modeling Language — унифицированный язык моделирования).

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

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

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

Читать далее

Диаграмма последовательности на практике в реальном кейсе

Level of difficultyEasy
Reading time7 min
Views3.5K

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

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

Читать далее

Детальный обзор полей Галуа

Level of difficultyMedium
Reading time15 min
Views16K

"Попросите Якоби или Гаусса публично высказать своё мнение — не о истинности, а о важности этих теорем. Позже, я надеюсь, найдутся люди, которым будет выгодно разобраться во всём этом хаосе."

Этими словами заканчивалось письмо Эвариста Галуа, написанное для своего друга Огюста Шевалье за два дня до его смерти от полученных на дуэли ран на 21 году жизни. Ни Якоби, ни Гаусс в его теоремах не разобрались, зато спустя 15 лет разобрался Жозеф Лиувилль и опубликовал работы Галуа, ставшие впоследствии фундаментом современной алгебры, известные сейчас как теория Галуа. В статье расскажу про одну из частей этой теории - поля Галуа, получившая настолько повсеместное применение в криптографии и избыточном кодировании, что Intel и AMD выпустили набор процессорных расширений для эффективной реализации операций над этими полями.

Заметка! Если вам довелось использовать/реализовывать поля Галуа, то большая часть статьи для вас скорее всего будет не интересна, но возможно в последних разделах будет что-то для вас новое.

Читать далее

Проектирование Информационных систем. Часть 7. Инжиниринг бизнес-процессов заказчика 7.1. Применение UML Activity

Level of difficultyMedium
Reading time15 min
Views1.7K

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

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

На текущем этапе проектирования воспользуемся Алгоритмизацией, еще одним приемом дисциплины «Системный Анализ».

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

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

1)    Экстраполяционная модель

Читать далее

Как создать свое профессиональное сообщество и начать проводить митапы. Часть 1 – до первого митапа

Level of difficultyEasy
Reading time4 min
Views1.3K

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

Ниже по тексту вы найдете наш опыт и организаторскую документацию. Будет минимум теории и максимум наших реальных методов действия. Обратите внимание: в этом тексте ссылками даны наши реальные внутренние организационные регламенты - смело копируйте их и пользуйтесь. Полный список ссылок на наши документы в конце статьи. Мы будем благодарны за упоминание о нас при копировании.

Читать далее

«Попал в Яндекс через опенсорс»: как коммиты в опенсорсные СУБД помогают развивать продукт и команду

Reading time8 min
Views5K

Привет, Хабр! На связи Андрей Бородин, в Yandex Cloud я руковожу направлением разработки СУБД с открытым исходным кодом — и я попал в Яндекс через опенсорс. Я уже немного рассказывал, что и зачем мы делаем в опенсорсных БД с точки зрения облачных сервисов, где мы развиваем PostgreSQL, Greenplum, Cloudberry, Valkey и другие решения.

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

На масштабах Яндекса возникают нетривиальные задачи, которые интересно решать. А когда мы делимся решениями с сообществом, то можем получить от них новый взгляд на проблему, и продолжить совместную разработку новой фичи в удобном формате: с кем‑то на условиях независимого сотрудничества, а кого‑то можем позвать в команду (как это было и со мной).

В общем, если придерживаться опенсорс‑философии, может возникнуть ситуация win‑win. Сегодня с коллегами Леонидом Борчуком @leborchuk и Дмитрием Сарафанниковым расскажу пару историй про то, как это бывает с опенсорсными СУБД.

Читать далее

О сколько нам открытий чудных готовит Python

Level of difficultyEasy
Reading time2 min
Views6.2K

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

Читать далее

Экспорт из Yandex Wiki в Markdown. Не стали дожидаться и сделали сами

Level of difficultyEasy
Reading time2 min
Views946

Всем привет! Меня зовут Катя, я развиваю Gramax, open source-платформу для управления технической документацией.

В нашем чате и у пользователей регулярно встает вопрос переезда в Gramax c других платформ. Переезд с Confluence и Notion мы сделали прямо в интерфейсе приложения, а с Yandex Wiki — отдельной утилитой. Нет, мы не поленились, просто заметили, что сообщество Yandex Wiki такое давно просит: пример №1 (367 голосов), пример №2 (874 голоса).

В этой статье расскажем, как воспользоваться утилитой и выгрузить всю свою документацию из Yandex Wiki в обычный Markdown.

Поехали!

Перенаправления в Angie: return, rewrite и примеры их применения

Level of difficultyEasy
Reading time6 min
Views1.3K

Angie предоставляет широкие возможности по перенаправлению запросов, которые востребованы в большинстве веб‑приложений. В этой статье мы разберём все основные методы перенаправлений: от простых до сложных. Начнём с общего принципа обработки директив в модуле rewrite.

Читать далее

Слишком много открытых файлов

Level of difficultyEasy
Reading time8 min
Views4.5K

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

Команда cargo test запускала выполнение всех тестов в репозитории, но спустя пару миллисекунд все тесты завершались сбоями из-за не очень знакомой мне ошибки:

Io(Os { code: 24, kind: Other, message: "Too many open files" })

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

Читать далее

«Базальт СПО» выпустила «Альт Сервер» 11.0 с контейнерами и компонентами

Level of difficultyMedium
Reading time4 min
Views1.4K

«Базальт СПО» выпустила серверную операционную систему на Одиннадцатой платформе (p11 Salvia). Основные изменения коснулись установки и настройки. Впервые в одном образе доступны две редакции — «Альт Сервер» и «Альт Домен». В новом приложении «Альт Компоненты» автоматизирована установка инструментов для различных способов использования сервера.

Обновлены все ключевые составляющие, в том числе Samba 4.20, добавлена контейнеризация. Переход на актуальную криптографическую библиотеку OpenSSL 3.3 усилил защищенность системы.

Читать далее

Кастомизация Django Admin с django-unfold

Level of difficultyEasy
Reading time3 min
Views2K

Привет, Хабр. Изучая безграничные просторы интернета интернета, заметил явное отсутствие обучающих статей на тему кастомизации админ-панели в /Django/, а уж поверьте. Её довольно старое для современных рамокстилизация — не приговор. И делается это буквально в пару кликов, без лишнего .css кода. На который как раз таки гайдов полно. Зачем засорять папку со статическими файлами лишним кодом, если можно сделать это в пару кликов.

Главное преимущества /Python/, заключается в том, то что пишется на других язык программирования в десять строк, можно написать на нашем любимом языке в две строчки. Поэтому варианты с самостоятельной кастомизацией, затрагивать не будем. Хотя данная библиотека, не ограничивает вас в написание своего кода для кастомизации. Всё написанное, лишь подключенная библиотека на /Python/ для /Django/.

Читать далее

Огромный гайд по настройке рабочего окружения: Linux, VScode, Python

Level of difficultyEasy
Reading time29 min
Views60K

Привет всем!

Как обычно это и бывает, я накопил критическую массу мыслей, и пора их как-то систематизировать, чтобы вы, мои замечательные читатели Хабра, могли что-то извлечь из моего опыта или поделиться своим :)

Я люблю и одновременно ненавижу статьи-обзоры в стиле «10 программ для {whatever}». Ненавижу — потому что их очень легко делать, вбил в гугл «программа для X», взял первые 10 ссылок, статья готова. Я называю такие статьи «лёгкий рейтинг». А люблю я их за то, что даже если 9 пунктов — чушь полная, то десятый, как правило, годный, я узнаю что-то новое, это что-то облегчает мне жизнь и позволяет мне быть более продуктивным.

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

Статья получилась ОГРОМНАЯ, и у меня был большой соблазн разбить её на сотню статей поменьше, чтобы в каждой ставить ссылки на свой телеграм-канал и получать гонорар за каждую по отдельности. Но я не буду. Пусть знания будут сгруппированы вместе. Welcome!

Читать далее

Настройка SSH для коммитов в репозиторий

Level of difficultyEasy
Reading time4 min
Views2.5K

Итак вам надо клонировать репозиторий с компанейского репозитория и git просит какие-то непонятные пароли.
Знакома ситуация?

В этой заметке я написал как настроить ssh ключи.

Читать далее

Вероятно, вам не нужен DI-фреймворк

Level of difficultyEasy
Reading time6 min
Views7.4K

Я считаю, что при работе с Go в контексте нашей отрасли внедрение зависимостей (dependency injection, DI) часто имеет плохую репутацию из-за DI-фреймворков. Но сама по себе DI как техника довольно полезна. Просто её объясняют слишком большим количеством ОО-жаргона, что приводит к ПТСР у тех, кто перешёл на Go, чтобы сбежать из культа банды четырёх.

Читать далее

Насколько быстр Intel 8080? Используем чипсет на FPGA чтоб проверить

Level of difficultyMedium
Reading time14 min
Views9.7K

Я люблю вызовы - например, написать код в условиях ограниченных ресурсов: медленный процессор, странный набор инструкций, крохи памяти. У меня уже было несколько проектов такого рода - я запускал тяжелую вычислительную задачу на процессорах, которые уже разменяли пол-века: Intel 4004, Intel 4040 и Intel 8008. Очевидно, что на очереди Intel 8080!

В этой статье я опишу детали проекта по созданию системной платы с чипсетом на основе FPGA, на которой будет запущен Intel 8080A-1 на частоте выше 3Мгц. А также расскажу о том, как писать программы для этого процессора на C, и в финале покажу результаты бенчмарков - Dhrystone и CoreMark.

Читать далее

Агентное кодирование. Инструция по созданию надёжного программного продукта (LLMDD)

Level of difficultyMedium
Reading time8 min
Views1.8K

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

Читать далее

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

Level of difficultyEasy
Reading time17 min
Views2.1K

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

Читать далее

Дайджест новостей о здоровье, медицине и биотехнологиях за прошедшую неделю

Level of difficultyEasy
Reading time7 min
Views1.1K

• Японская ходьба: преимущества этого фитнес-направления

• Американский стартап заявляет о «первом в истории» программном обеспечении для генетической оптимизации эмбрионов при ЭКО

• Брачные предпочтения человека, основанные на запахах, не гарантируют совместимость на уровне гамет

• Команда из Мельбурна продемонстрировала способ сделать ВИЧ видимым внутри белых кровяных клеток, что открывает путь к его полному выведению из организма

• Учёные раскрыли секрет продуктивности — и почему вам следует делать более длительные перерывы

Читать далее

Автополив домашних растений с помощью кибернетики

Level of difficultyEasy
Reading time5 min
Views3.4K

Добрый день, суть стать в создании устройства для автополива комнатных растений на базе SoC CH32v003 и распространенной платы на AliExpress для реализации изделия. Ниже привожу конечный результат изделия, все исходники и чертежи тут https://github.com/Levon24/ch32-auto-watering

Читать далее

Information

Rating
Does not participate
Location
Сургут, Тюменская обл. и Ханты-Мансийский АО, Россия
Date of birth
Registered
Activity