Наши услуги

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

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 разработчик
Смотреть все

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

Блог

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

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

Статьи

03.09.2026
Оптимизация кода на VB.NET для начинающих Оптимизация кода — это не только ускорение работы программы, но и улучшение её читаемости, поддержки и надёжности. Для новичка в VB.NET важно понять базовые принципы, которые помогут писать эффективный код с самого начала. В этой статье мы разберём простые, но действенные приёмы, которые вы сможете применить сразу. 1. Используйте Option Strict и Option Explicit Первое, что стоит сделать в любом новом проекте — включить строгие проверки типов. В начале файла кода или в настройках проекта укажите: Option Strict On — запрещает неявные преобразования типов, которые могут замедлять выполнение и вызывать ошибки. Option Explicit On — требует обязательного объявления переменных. Это исключает опечатки в именах и делает код понятнее. Эти две строки заставят компилятор работать строже, но именно это помогает избежать скрытых проблем на раннем этапе. 2. Выбирайте правильные типы данных Для новичка типичная ошибка — использовать Integer или Long везде, где нужно число. Однако для дробных значений лучше подходит Double или Decimal. Если вы храните большие объёмы данных в памяти, тип Decimal работает медленнее, чем Double, но точнее. Для целых чисел всегда выбирайте самый маленький подходящий тип: Byte, Short, Integer. Это экономит память и ускоряет операции с массивами. 3. Избегайте конкатенации строк в циклах Сборка строк через оператор & внутри цикла — это самая частая причина медленной работы. Каждая операция создаёт новую строку в памяти, что очень затратно. Вместо этого используйте StringBuilder: Плохо: result = result & item внутри цикла. Хорошо: создайте Dim sb As New StringBuilder(), затем sb.Append(item) в цикле, а после цикла получите результат через sb.ToString(). Это ускорит код в десятки раз, если элементов много. 4. Работа с массивами и списками Для новичка важно понимать разницу между массивом фиксированной длины и динамическим списком List(Of T). Если вы часто добавляете или удаляете элементы, используйте List(Of T). Если количество элементов известно заранее и не меняется — используйте обычный массив. При обращении к элементам всегда используйте For Each вместо For i = 0 To ..., если вам не нужен индекс. Это делает код чище и часто быстрее. 5. Убирайте повторяющиеся вычисления Если вы вычисляете одно и то же значение несколько раз, сохраните его в переменную. Например, вместо вызова функции Math.Sqrt(x) в каждой итерации цикла, вычислите его один раз до цикла. Это особенно важно для сложных вычислений или обращений к базам данных. 6. Используйте структуры вместо классов для мелких объектов Если у вас есть небольшие объекты, которые содержат только пару полей (например, координаты точки), объявите их как Structure, а не как Class. Структуры хранятся в стеке, а не в куче, что снижает нагрузку на сборщик мусора и ускоряет работу. Однако помните: структуры не должны быть изменяемыми, если вы не уверены в их использовании. 7. Обработка исключений без потери производительности Исключения (Exception) — это дорогостоящая операция. Не используйте их для управления логикой программы. Например, не проверяйте наличие ключа в словаре через Try...Catch. Вместо этого используйте метод ContainsKey или TryGetValue. Исключения должны быть только для действительно исключительных ситуаций, таких как ошибки ввода-вывода. 8. Отложенная загрузка (Lazy Loading) Если у вас есть свойство, которое создаёт тяжёлый объект, но используется не всегда, примените Lazy(Of T). Это позволит создать объект только тогда, когда он действительно понадобится. Это не ускоряет выполнение каждой операции, но экономит память и время запуска программы. 9. Профилируйте свой код Не оптимизируйте вслепую. Сначала запустите профилировщик Visual Studio (меню Analyze → Performance Profiler), чтобы найти узкие места. Часто оказывается, что проблема не в том, где вы думали, а в обращении к базе данных или в ожидании ввода-вывода. Оптимизируйте только те участки, которые действительно замедляют работу. 10. Практический пример для новичка Представьте, что вам нужно посчитать сумму квадратов чисел от 1 до 10000. Плохой вариант — использовать конкатенацию строк или дробный тип. Хороший вариант: Объявите переменную Dim total As Long = 0. Запустите цикл For i As Integer = 1 To 10000. Внутри цикла добавьте total += i * i. Этот код будет работать мгновенно, потому что вы используете целочисленную арифметику и простой цикл без лишних операций. Заключение Оптимизация — это навык, который приходит с практикой. Начните с этих простых правил: включите строгие проверки, выбирайте правильные типы данных, избегайте конкатенации строк в циклах и не злоупотребляйте исключениями. Постепенно вы научитесь чувствовать, где код может работать лучше. Помните, что главная цель — писать понятный и поддерживаемый код, а скорость придёт следом за правильными привычками. Всегда измеряйте результат до и после изменений, чтобы убедиться, что ваша оптимизация действительно полезна. Следуя этим советам, вы сделаете свои программы на VB.NET быстрее и надёжнее уже сегодня.
28.08.2026
Проектирование базы данных на Python для новичков Представьте, что вы решили вести список своих книг. Сначала вы просто записываете названия в тетрадь. Потом добавляете авторов, даты прочтения, оценки. Через год тетрадь превращается в хаос, а найти нужную книгу становится невозможно. База данных — это та же тетрадь, но умная, организованная и способная мгновенно отвечать на вопросы. В этой статье мы разберем, как спроектировать базу данных с помощью Python, даже если вы никогда раньше не сталкивались с программированием. Что такое база данных простыми словами База данных (БД) — это структурированное хранилище информации. Вместо хаотичных записей данные организованы в таблицы, как в Excel. Каждая таблица описывает один тип объектов: книги, читатели, заказы. Строки таблицы — это отдельные записи, а столбцы — свойства этих записей. Например, таблица «Книги» может иметь столбцы: название, автор, год издания, жанр. Python — это язык программирования, который позволяет создавать и управлять базами данных. Он прост для изучения, но при этом достаточно мощный для решения серьезных задач. Для работы с БД в Python существует встроенный модуль sqlite3, который не требует установки дополнительных программ. Это идеальный выбор для начинающих. Шаг 1. Определяем структуру данных Прежде чем писать код, нужно ответить на вопрос: какую информацию мы хотим хранить и какие вопросы будем задавать к базе? Допустим, мы создаем базу данных для домашней библиотеки. Нам нужно хранить: Название книги Автора Год издания Жанр Оценку (от 1 до 10) Прочитана ли книга Эти данные образуют одну таблицу. Но что если один автор написал несколько книг? Или одна книга может относиться к нескольким жанрам? Тогда нужно разбивать данные на несколько таблиц и связывать их между собой. Этот процесс называется нормализацией. Для простоты начнем с одной таблицы, а затем усложним структуру. Шаг 2. Создаем базу данных в Python Для работы с базой данных нам понадобится всего несколько строк кода. Вот минимальный пример создания базы данных и таблицы: import sqlite3 conn = sqlite3.connect('library.db') cursor = conn.cursor() cursor.execute(''' CREATE TABLE IF NOT EXISTS books ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, author TEXT NOT NULL, year INTEGER, genre TEXT, rating INTEGER, read_status BOOLEAN ) ''') conn.commit() conn.close() Разберем этот код по строкам. sqlite3.connect создает файл базы данных (если его нет) и подключается к нему. cursor — это объект, через который мы отправляем команды базе. Внутри CREATE TABLE мы описываем структуру таблицы: каждое поле имеет имя и тип данных. INTEGER PRIMARY KEY AUTOINCREMENT означает, что каждая запись получит уникальный номер автоматически. TEXT — это текст, INTEGER — целое число, BOOLEAN — логическое значение (да/нет). Шаг 3. Добавляем данные Теперь, когда таблица создана, мы можем вносить в нее записи. Для этого используется команда INSERT: cursor.execute(''' INSERT INTO books (title, author, year, genre, rating, read_status) VALUES ('Мастер и Маргарита', 'Михаил Булгаков', 1967, 'Роман', 10, True) ''') conn.commit() Обратите внимание: мы не указываем поле id — оно заполнится автоматически. Значения вставляются в том же порядке, что и перечислены поля. Если вы хотите добавить несколько книг сразу, можно использовать цикл или метод executemany, который принимает список кортежей. Шаг 4. Читаем данные из базы Самый частый запрос — получить все данные из таблицы. Для этого используется команда SELECT: cursor.execute('SELECT * FROM books') rows = cursor.fetchall() for row in rows: print(row) Каждая строка будет представлена в виде кортежа (tuple) — упорядоченного набора значений. Например: (1, 'Мастер и Маргарита', 'Михаил Булгаков', 1967, 'Роман', 10, 1). Здесь True превратилось в 1, потому что база данных хранит логические значения как 0 и 1. Можно фильтровать данные. Например, найти все книги с оценкой выше 8: cursor.execute('SELECT title, author FROM books WHERE rating > 8') rows = cursor.fetchall() Оператор WHERE позволяет задавать условия отбора. Это одно из главных преимуществ базы данных перед обычным файлом. Шаг 5. Обновляем и удаляем записи Иногда нужно изменить данные. Например, вы перечитали книгу и хотите поставить новую оценку. Для этого используется команда UPDATE: cursor.execute(''' UPDATE books SET rating = 9 WHERE title = 'Мастер и Маргарита' ''') conn.commit() Удаление происходит через команду DELETE: cursor.execute("DELETE FROM books WHERE title = 'Ненужная книга'") conn.commit() Важно помнить: если не указать условие WHERE, команда применится ко всем записям. Это может привести к потере всех данных, поэтому будьте внимательны. Шаг 6. Связываем таблицы В реальных проектах данные редко помещаются в одну таблицу. Вернемся к примеру с библиотекой. Если мы хотим хранить информацию об авторах отдельно (например, их биографию), логично создать вторую таблицу: CREATE TABLE authors ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, birth_year INTEGER ) Теперь в таблице books вместо поля author мы будем хранить author_id — номер автора из таблицы authors. Это называется внешним кл
24.08.2026
Выбор хостинга для разработки игр: практическое руководство на конец августа 2026 года Конец августа — время, когда инди-разработчики готовятся к осенним игровым фестивалям и релизам. Выбор хостинга в этот период критичен: летний всплеск онлайн-событий спал, но нагрузка на серверы традиционно растёт к сентябрю. В этой статье разберём, как выбрать платформу под конкретные задачи разработки игр, учитывая текущий сезон и тренды 2026 года. Специфика хостинга для игровых проектов В отличие от обычного веб-сайта, игровой сервер требует особого подхода. Ваш проект — это не просто статика, а постоянный обмен данными в реальном времени. Ключевые параметры, на которые стоит обратить внимание: Низкий пинг (латентность) — критичен для шутеров, MOBA и файтингов. Задержка более 50 мс делает игру некомфортной. Выделенные ресурсы CPU — игровая логика, физика и ИИ нагружают процессор сильнее, чем обычный PHP-сайт. Пропускная способность канала — если у вас 1000 одновременных игроков, каждый передаёт по 10 КБ/с, итого нужно минимум 10 МБ/с стабильного аплинка. Защита от DDoS — соревновательные игры часто становятся целью атак. В 2026 году это стандарт, а не опция. Типы хостинга: что выбрать под задачу Виртуальный хостинг (Shared) — не для игр Категорически не подходит для размещения игровых серверов. Ограничения по CPU и памяти, «соседи» по серверу, которые могут съесть все ресурсы. Единственное применение — лендинг игры или форум сообщества на начальном этапе. Виртуальный выделенный сервер (VPS/VDS) Оптимальный выбор для инди-проектов и небольших студий. Вы получаете гарантированную долю ресурсов. Для разработки игр в 2026 году рекомендую конфигурацию от 4 vCPU и 8 ГБ RAM. Обратите внимание на тип диска — NVMe обязателен, так как игровые миры генерируются динамически и требуют быстрого чтения/записи. Выделенный сервер (Dedicated) Для крупных релизов или MMO-проектов. Полный контроль над железом, возможность установки специализированного ПО и тонкой настройки ядра. В конце августа 2026 года цены на выделенные серверы с AMD EPYC 4-го поколения стали доступнее, но всё равно это в 3-5 раз дороже VPS. Облачные платформы (AWS, GCP, Azure) Идеальны для игр с пиковыми нагрузками. Вы платите за фактическое потребление. Если ваш проект — это кооперативная игра, где вечером собирается 500 человек, а днём — 20, облако спасёт от переплат. Однако сложность настройки и непредсказуемый счёт за трафик могут стать проблемой для новичков. Практические советы на конец августа 2026 Учитывая, что лето заканчивается, а осенью стартуют крупные игровые выставки (TGS, Gamescom уже прошёл, но впереди осенние конференции), рекомендую следующий план действий: Проведите стресс-тест сейчас. Не ждите релиза. Запустите нагрузочное тестирование вашего сервера в конце августа, когда нагрузка на дата-центры минимальна (школьники и студенты готовятся к учебному году, активность падает). Это даст базовые цифры. Выбирайте локацию ближе к аудитории. Если ваша игра нацелена на Европу, берите хостинг во Франкфурте или Амстердаме. Для России и СНГ — Москва или Санкт-Петербург. В конце лета 2026 года появились новые тарифы в Новосибирске и Екатеринбурге с хорошей связностью с Азией. Проверьте политику возврата средств. Многие провайдеры дают 30 дней гарантии. Начните с минимального тарифа, разверните сервер, погоняйте его неделю. Если что-то не так — верните деньги до начала сентября, когда цены начнут расти из-за сезонного спроса. Обратите внимание на панель управления. Для игровых серверов удобнее всего Pterodactyl или Pelican (форк). Убедитесь, что хостинг предоставляет доступ к этим панелям, а не только к cPanel, которая для игр бесполезна. Критерии выбора конкретного провайдера При сравнении тарифов в конце августа 2026 года обращайте внимание на следующие детали: Скорость аплинка. Многие хостинги указывают входящий канал 1 Гбит/с, но исходящий ограничивают 100 Мбит/с. Для игрового сервера важен именно исходящий трафик. Анти-DDoS фильтрация. Уточните, на каком уровне она работает — L3/L4 или L7. Для игр критична защита от UDP-флуда. Автоматические бэкапы. Игровой мир — это ценные данные игроков. Проверьте, как часто создаются снапшоты и можно ли восстановиться на любой момент времени. Техподдержка 24/7. В конце лета многие провайдеры сокращают штат. Убедитесь, что в выходные дни (суббота-воскресенье) вам смогут помочь, а не только в будни с 9 до 18. Бюджет и сезонные скидки Конец августа 2026 года — удачное время для покупки. Многие хостинги проводят акции «Back to School» и «End of Summer». Типичные предложения: скидка 20-30% на первые 3 месяца или удвоение ресурсов при оплате за год. Не гонитесь за самыми дешёвыми вариантами — экономия 5 долларов в месяц обернётся лагами и потерей игроков. Оптимальный бюджет для инди-игры на VPS: 15-25 долларов в месяц. Для серьёзного проекта с сотнями игроков — от 50 долларов. Заключение Выбор хостинга для разработки игр — это инвестиция в репутацию вашего проекта. Начните с VPS на NVMe-дисках с защитой от DDoS и возможностью апгрейда до выделенного сервера без миграции данных. Проверьте провайдера на тестовом периоде именно сейчас, в конце августа, чтобы к сентябрьскому наплыву игроков у вас была стабильная и быстрая инфраструктура. Помните: хороший хостинг — это тот, о котором вы не вспоминаете в самый разгар игровой сессии, потому что всё работает безупречно.
Открыть все статьи
bg_1
Остались вопросы? Задавайте их немедленно.
мы проконсультируем совершенно бесплатно