Наши услуги

Мы предлагаем

serv2
Сайт визитка - лендинг
Одна шаблонная страница - когда надо сегодня
serv2
Сайт магазин с CRM
Главная страница, каталог товаров/услуг, личный кабинет продавца
serv2
Дизайн для своего сайта
Нарисуем вам новый дизайн
serv2
Доработка существующего сайта
Когда что-то сломалось
serv2
Дизайн печатной продукции
Визитки, баннеры, стикеры и прочее нецифровое, что можно будет потрогать :)
serv2
Не знаю как объяснить - посмотрите сами
И такое делаем :)

Почему мы?

Минимум взаимодействий
Минимум взаимодействий
Из материалов только ваша страница или сайт
Всегда на связи
Всегда на связи
Голосовые, текст, видео - как удобно :)
Бывает и дорого, но есть бесплатно
Бывает и дорого, но есть бесплатно
Качество не зависит от цены
Индивидуальный подход
Индивидуальный подход
Разумеется :)
business
Коротко

О нас

wow5
2015
работаем успешно с
wow3
5
Реализованных проектов

Это начало интересного текста обо мне

Чуть позже напишу тут интересный текст

Партнёров пока нет
Но, ты пиши если что :)

Наши работы

Работа 1
Работа 2

Ознакомьтесь с нашим сервисом и комфортным сотрудничеством

Тарифы

Сайтик фри
0
Точно такой лендинг
checkedВаши фото, контакты и тексты
checkedИмя сайта имя.dencompany.ru
checkedБез мелкого шрифта и камней
Лайт
от
5 000
₽/год
Когда сайт пробник понравился и надо расширяться
checkedСамостоятельное имя сайта
checkedИндивидуальные настройки
checkedCRM (личный кабинет продавца)
checkedБез мелкого шрифта и камней
Хочу всё
от
15 000
₽/мес
Когда налажен процесс или не очень, но надо много и не хочется вникать
checkedСамостоятельное имя сайта
checkedИндивидуальный дизайн
checkedCRM (личный кабинет продавца)
checkedПеренос товаров с текущего сайта
checkedБез мелкого шрифта и камней

Профессионалы своего дела

Наша команда

Фото
Fullstack ведущий программист
Денис

О нас говорят

Отзывы клиентов

Фото отзыв
Я — специалист по SMM
Linda
Дизайнер
Фото отзыв
Отзыв 1
Mark
Backend разработчик
Смотреть все

Все, что нужно знать о бизнесе

Блог

Читать блог
Фото блог
21
06.2026
5 основных инструментов для продвижения интернет-бизнеса
Я — специалист по SMM.
Фото блог
21
06.2026
5 основных инструментов для продвижения интернет-бизнеса
Раньше работала дома.
Фото блог
21
06.2026
5 основных инструментов для продвижения интернет-бизнеса
Я работала дома.

Все, что нужно знать о создании сайтов

Статьи

21.06.2026
Проектирование базы данных на Perl: объяснение для боксёра Представь, что ты выходишь на ринг. У тебя есть тренер, секунданты, спарринг-партнёры и расписание боёв. Если всё это записывать на салфетках — начнётся хаос. База данных — это твой идеальный блокнот, который никогда не теряется и помнит всё. А Perl — это твой универсальный язык, на котором ты отдаёшь команды этому блокноту. Зачем боксёру база данных? Ты ведёшь статистику: сколько ударов нанёс, сколько пропустил, какой вес перед боем, кто твой следующий противник. База данных хранит эти таблицы и позволяет быстро их найти. Perl помогает заполнять эти таблицы, искать в них и показывать результаты. Основные элементы: таблицы — это твои стойки В базе данных информация хранится в таблицах. Каждая таблица — как отдельная стойка в зале: Таблица «Боксёры» — имя, вес, возраст, рекорд. Таблица «Бои» — дата, противник, результат, количество раундов. Таблица «Тренировки» — дата, тип упражнения, продолжительность. Каждая строка в таблице — это один конкретный факт. Например, одна строка в таблице «Боксёры» — это ты. Вторая строка — твой спарринг-партнёр. Как Perl подключается к базе данных? Perl использует специальные модули — как перчатки для разных типов ударов. Самый популярный модуль — DBI (Database Independent Interface). Он работает с разными базами данных: MySQL, SQLite, PostgreSQL. Устанавливаешь модуль — как надеваешь перчатки перед боем. Подключаешься к базе — как выходишь на ринг. Отправляешь запрос — как наносишь удар. Получаешь результат — как смотришь на судейские записки. Пример: записываем победу Допустим, ты выиграл бой. Твой тренер (Perl) должен записать это в базу данных. Код будет выглядеть так: Подключение к базе: my $dbh = DBI->connect("DBI:mysql:boxing_db", "user", "password"); Вставка новой записи о бое: my $sql = "INSERT INTO fights (boxer_name, opponent, result, date) VALUES ('Вася', 'Петя', 'победа', '2026-06-21')"; $dbh->do($sql); Всё. Теперь эта победа навсегда в базе. Ты можешь в любой момент спросить: «Сколько раз я победил Петю?» — и Perl найдёт ответ за долю секунды. Важные правила для боксёра-программиста Не теряй данные — делай резервные копии базы, как разминку перед боем. Проверяй ввод — никогда не доверяй данным, которые приходят извне. Используй плейсхолдеры в Perl, чтобы защититься от «грязных ударов» (SQL-инъекций). Документируй — записывай, что делает каждый скрипт. Через месяц ты забудешь, зачем написал этот код, как забываешь старые комбинации. Заключение Проектирование базы данных на Perl — это как разработка стратегии на бой. Ты определяешь, какие данные важны (таблицы), как их собирать (скрипты на Perl) и как анализировать (запросы). Начни с малого: создай таблицу для своих тренировок, добавь туда пару записей, напиши скрипт, который покажет, сколько часов ты отработал на лапах за неделю. Это первый шаг к тому, чтобы твой зал стал цифровым, а твоя статистика — непобедимой.
20.06.2026
Реализация алгоритма на TypeScript для начинающих TypeScript — это строго типизированное расширение JavaScript, которое помогает писать более надёжный и предсказуемый код. Для джуниора понимание основ реализации алгоритмов на TypeScript — важный шаг к профессиональному росту. Рассмотрим простой, но показательный пример: алгоритм бинарного поиска. Что такое бинарный поиск Бинарный поиск — это эффективный алгоритм для поиска элемента в отсортированном массиве. Он работает по принципу «разделяй и властвуй»: на каждом шаге массив делится пополам, и алгоритм определяет, в какой половине может находиться искомый элемент. Реализация на TypeScript Для начала определим сигнатуру функции. Использование типов делает код самодокументируемым и защищает от ошибок. function binarySearch(arr: number[], target: number): number { let left: number = 0; let right: number = arr.length - 1; while (left <= right) { const mid: number = Math.floor((left + right) / 2); if (arr[mid] === target) { return mid; // элемент найден, возвращаем индекс } if (arr[mid] < target) { left = mid + 1; // ищем в правой половине } else { right = mid - 1; // ищем в левой половине } } return -1; // элемент не найден } Разбор ключевых моментов Типизация параметров: arr: number[] и target: number — это явное указание, что функция принимает массив чисел и число для поиска. Это помогает избежать случайной передачи строк или других типов. Тип возвращаемого значения: : number гарантирует, что функция всегда вернёт число (индекс или -1). Логика цикла: пока левая граница не превысила правую, мы сужаем область поиска. Это классическая реализация, которую должен знать каждый джун. Как проверить работу алгоритма Напишем простой тестовый пример: const sortedArray: number[] = [1, 3, 5, 7, 9, 11, 13]; const searchValue: number = 7; const result: number = binarySearch(sortedArray, searchValue); if (result !== -1) { console.log(`Элемент найден на индексе: ${result}`); } else { console.log('Элемент не найден'); } В этом коде мы явно объявляем типы переменных, что является хорошей практикой для TypeScript. Компилятор проверит, что sortedArray — это массив чисел, а searchValue — число. Почему это важно для джуна Безопасность типов: TypeScript ловит ошибки на этапе компиляции, а не во время выполнения. Это особенно ценно при работе с алгоритмами, где неправильный тип данных может привести к неожиданным результатам. Читаемость кода: Другие разработчики (и вы в будущем) сразу поймут, какие данные ожидает функция и что она возвращает. Поддержка IDE: Современные редакторы кода предлагают автодополнение и подсвечивают ошибки благодаря TypeScript, что ускоряет разработку. Советы для начинающих Всегда указывайте типы для параметров и возвращаемого значения функций. Используйте const для переменных, которые не переприсваиваются — это делает код более предсказуемым. Не бойтесь писать промежуточные типы: например, type Index = number; для улучшения читаемости. Практикуйтесь на простых алгоритмах: сортировка пузырьком, поиск, рекурсия. Постепенно усложняйте задачи. Освоив базовые принципы реализации алгоритмов на TypeScript, вы заложите прочный фундамент для решения более сложных задач. Помните: хороший код — это не только работающий код, но и понятный, безопасный и поддерживаемый код.
14.06.2026
Методология разработки на MUMPS в контексте веб-программирования MUMPS (Massachusetts General Hospital Utility Multi-Programming System) — это уникальный язык программирования и система управления базами данных, разработанный в 1960-х годах для медицинских информационных систем. Несмотря на свой возраст, MUMPS (современная реализация — Intersystems Caché и GT.M) продолжает использоваться в крупных корпоративных и государственных проектах, особенно в здравоохранении, финансах и логистике. В контексте разработки сайтов методология работы с MUMPS имеет ряд специфических особенностей, которые отличают её от традиционных стеков (LAMP, MEAN). Основные принципы методологии MUMPS Методология MUMPS базируется на трёх ключевых концепциях: многопользовательский доступ, встроенная база данных и минималистичный синтаксис. Для веб-разработки это означает, что серверная логика и хранение данных неразрывно связаны. 1. Бесшовная интеграция с базой данных В отличие от классических веб-приложений, где используется отдельный SQL-сервер, в MUMPS данные хранятся в глобальных массивах (global arrays), которые автоматически сохраняются на диск. Для разработки сайтов это даёт следующие преимущества: Минимальная задержка — нет необходимости в ORM или драйверах для подключения к БД. Атомарность операций — встроенные механизмы блокировок (LOCK) обеспечивают целостность данных при одновременном доступе сотен пользователей. Иерархическая структура — данные организуются в виде многомерных деревьев, что идеально подходит для вложенных сущностей (например, медицинские карты пациентов). 2. Серверный скриптинг для веба Для создания динамических веб-страниц в MUMPS используется технология CSP (Caché Server Pages) или M Web Server. Методология предполагает, что весь код выполняется на стороне сервера, а HTML генерируется непосредственно в рантайме. Основные правила: Разделение логики и представления — хотя код пишется в одном файле, рекомендуется выносить бизнес-логику в отдельные подпрограммы (routines). Использование тегов — в CSP-файлах используются специальные конструкции <script language="cache"> для вставки MUMPS-кода прямо в HTML. Управление сессиями — поскольку MUMPS изначально многопользовательский, управление состоянием пользователя (сессии) реализуется через глобальные переменные, что снижает нагрузку на оперативную память. 3. Обработка ошибок и отладка Методология разработки на MUMPS требует особого подхода к обработке исключений. В языке нет привычных try-catch блоков, вместо этого используется конструкция $ZTRAP (установка ловушки ошибок). Для веб-приложений это означает: Централизованный обработчик — все ошибки перенаправляются в единую точку, которая возвращает пользователю корректный HTTP-статус (например, 500) и логирует детали. Отладка через терминал — из-за отсутствия современных IDE разработчики часто используют встроенную консоль MUMPS для пошагового выполнения кода. Особенности разработки сайтов на MUMPS При создании веб-приложений на MUMPS важно учитывать специфику архитектуры. В отличие от PHP или Python, где веб-сервер (Apache, Nginx) обрабатывает запросы, в MUMPS часто используется собственный встроенный HTTP-сервер. Методология предполагает: Прямое взаимодействие с сокетами — для высоконагруженных проектов (например, портал для врачей) можно писать собственные обработчики HTTP-запросов на MUMPS. Минимизация HTML-шаблонов — из-за специфики синтаксиса (отсутствие многострочных строк до недавних версий) рекомендуется генерировать HTML через WRITE команды, а не через шаблонизаторы. Безопасность — необходимо вручную экранировать пользовательский ввод, так как встроенных функций для защиты от XSS или SQL-инъекций (в классическом понимании) нет. Вместо SQL используются глобальные массивы, что снижает риск инъекций, но требует контроля доступа к переменным. Заключение Методология разработки на MUMPS для веб-сайтов — это компромисс между производительностью и удобством. Она требует глубокого понимания внутреннего устройства языка, но позволяет создавать сверхнадёжные системы с минимальным потреблением ресурсов. Современные фреймворки, такие как Ensemble или HealthShare, частично решают проблемы шаблонизации и маршрутизации, однако основа остаётся прежней: работа с многомерными данными, серверный рендеринг и отсутствие лишних абстракций. Для разработчика, привыкшего к классическим стекам, MUMPS может показаться архаичным, но в нишевых областях (медицина, госсектор) эта методология остаётся востребованной и эффективной.
Открыть все статьи
bg_1
Остались вопросы? Задавайте их немедленно.
мы проконсультируем совершенно бесплатно