Наши услуги

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

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

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

Блог

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

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

Статьи

13.10.2026
Scheme в 2026 году: тихий тренд, который снова набирает силу Пока все обсуждают новые версии JavaScript-фреймворков и очередные ИИ-инструменты, в мире программирования происходит нечто более интересное. Scheme — один из старейших диалектов языка Lisp — возвращается в поле зрения разработчиков. Это не хайп и не мода, а устойчивый технологический тренд, который набирает обороты уже несколько лет. И если вам кажется, что Scheme — это что-то из учебников 1980-х, вы удивитесь, насколько современным может быть этот язык. Что такое Scheme, если объяснять бабушке Представьте, что вы учите внука печь пирог. Есть два подхода. Первый: вы даёте ему готовый набор продуктов и пошаговую инструкцию — шаг 1, шаг 2, шаг 3. Второй: вы объясняете сам принцип — что такое тесто, как оно поднимается, почему важен порядок. Scheme — это второй подход. Бабушке можно сказать так: Scheme — это язык, в котором всё строится из маленьких кирпичиков, и каждый кирпичик можно переставлять, комбинировать и даже создавать свои собственные кирпичики. В отличие от многих современных языков, где программисту выдают готовый «набор для выпечки», Scheme даёт чистые ингредиенты и правила, по которым из них можно собрать что угодно — от калькулятора до искусственного интеллекта. Главная идея проста: код — это данные, а данные — это код. Это звучит абстрактно, но именно эта особенность делает Scheme невероятно гибким. Почему Scheme снова в тренде в 2026 году За последние годы произошло несколько событий, которые вернули Scheme в центр внимания: Расцвет функционального программирования. Идеи, которые Scheme проповедовал с 1975 года, теперь стали мейнстримом в Rust, Kotlin, Swift и даже Python. Инструменты для обучения. Книги вроде «Structure and Interpretation of Computer Programs» снова переиздаются, а онлайн-курсы на базе Scheme собирают тысячи студентов. Языки-наследники. Racket, Guile, Chicken Scheme и Chez Scheme активно развиваются и используются в реальных проектах — от научных исследований до встраиваемых систем. Простота как роскошь. В эпоху переусложнённых фреймворков Scheme предлагает минимализм: весь язык можно выучить за неделю. Где Scheme применяется на практике Многие ошибочно думают, что Scheme — это чисто академический язык. На самом деле он давно работает в продакшене: GNU Guile — официальный язык расширений для GNU-проектов, включая GIMP и систему сборки Guix. Racket — используется в образовании и для создания предметно-ориентированных языков. Chez Scheme — один из самых быстрых компиляторов Scheme, применяется в Cisco и других компаниях. Embedded-системы — TinyScheme и подобные реализации работают на микроконтроллерах. ИИ и обработка данных — Scheme остаётся удобным инструментом для символьных вычислений. Практические советы для старта этой осенью Середина октября — идеальное время, чтобы начать изучать Scheme. Летний отдых позади, дни становятся короче, а вечера длиннее — самое время для спокойного погружения в новый язык без спешки. С чего начать Установите Racket — это самый дружелюбный вариант для новичков, с отличной документацией и средой разработки DrRacket. Прочитайте первые главы SICP или более современную «How to Design Programs». Начните с простых задач: вычисления, работа со списками, рекурсия. Не гонитесь за скоростью — Scheme учит думать, а не печатать. Осенний режим занятий Поскольку темнеет рано, попробуйте заниматься утром или днём, пока естественного света больше — это помогает концентрации. Выделите 30–40 минут в день, лучше регулярно, чем по три часа раз в неделю. Заведите бумажный блокнот: Scheme отлично «думается» ручкой на бумаге, особенно когда разбираете рекурсию. И не пытайтесь сразу писать большие программы. Начните с функций вроде map, filter и reduce — их понимание откроет дверь в функциональное мышление. Что почитать и посмотреть «Structure and Interpretation of Computer Programs» — Харольд Абельсон и Джеральд Сассман. «The Little Schemer» — лёгкое и игривое введение. Курс «Programming Languages» от Университета Вашингтона (доступен онлайн). Официальная документация Racket и Guile. Почему это важно именно сейчас В 2026 году разработчики устали от сложности. Фреймворки растут быстрее, чем мы успеваем их изучать. ИИ-ассистенты генерируют код, но не объясняют его суть. В этом контексте Scheme — это якорь простоты. Он напоминает, что программирование — это прежде всего мышление, а не заучивание API. Бабушке можно сказать так: Scheme — это как умение готовить с нуля, а не разогревать полуфабрикаты. Дольше, но полезнее и вкуснее. И однажды освоив это, вы уже никогда не будете бояться никакой кухни. Попробуйте. Один вечер, один пример, одна функция — и вы поймёте, почему этот старый язык снова стал трендом.
10.10.2026
Awk для сеньора: оптимизация запросов к базе данных без ORM Когда речь заходит об оптимизации запросов к базе данных, взгляд сеньора обычно устремляется к планам выполнения, индексам и статистике. Но есть инструмент, который незаслуженно остаётся в тени при решении задач ETL, аудита и анализа логов — awk. Это не замена SQL, а мощный слой предобработки и постобработки, способный снять нагрузку с БД ещё до того, как запрос попадёт на сервер. Почему awk актуален в эпоху ORM Современный стек часто строится вокруг ORM: ActiveRecord, Hibernate, SQLAlchemy. Удобство оборачивается генерацией неоптимальных запросов, N+1-проблемами и лишними round-trip'ами. Сеньор понимает: не каждый анализ требует БД. Иногда данные уже лежат в CSV-выгрузке, логе репликации или дампе, и гонять их через PostgreSQL ради агрегации — это сжигать IOPS впустую. Awk обрабатывает поток построчно, держит в памяти только нужное состояние и работает со скоростью, близкой к grep. На гигабайтных выгрузках это даёт выигрыш в десятки раз по сравнению с загрузкой в промежуточную таблицу. Базовый шаблон обработки выгрузки Типичный сценарий: есть CSV с миллионами строк, нужно посчитать метрики по группам без единого запроса к БД. awk -F',' 'NR>1 {sum[$3]+=$5; cnt[$3]++} END {for(k in sum) print k, sum[k]/cnt[k]}' dump.csv Разберём, что здесь важно для сеньора: NR>1 — пропуск заголовка без внешних утилит. sum[$3]+=$5 — хеш-таблица в памяти вместо временной таблицы в БД. END — агрегация выполняется один раз, а не на каждой строке. Такой подход снимает нагрузку с СУБД полностью: сортировка, группировка и join происходят на стороне клиента. Соединение двух источников: awk как in-memory join Классическая задача — обогатить факты измерениями. Если измерение маленькое (справочник стран, тарифов, статусов), его можно загрузить в память и выполнить join без обращения к БД. awk -F',' 'NR==FNR {dim[$1]=$2; next} {print $0, dim[$1]}' dims.csv facts.csv Условие NR==FNR — идиома, которую сеньор обязан знать наизусть: она отличает первый файл от последующих. Это дешевле, чем JOIN в БД, если справочник помещается в RAM и не требует транзакционной согласованности. Оптимизация самого SQL через предварительный фильтр Awk полезен не только как замена агрегации, но и как генератор компактного входного множества. Вместо запроса с огромным IN (...) из сотен тысяч идентификаторов, который ломает планировщик, можно собрать список ключей и передать его через VALUES или временную таблицу. Отфильтровать нужные ID из лога через awk. Записать результат в файл или stdin. Загрузить через COPY в PostgreSQL или LOAD DATA в MySQL. Выполнить join с основной таблицей по индексированному ключу. Такой pipeline превращает неоптимальный запрос с seq scan в индексный доступ. Планировщик получает точную статистику по временной таблице и строит корректный план. Продвинутые приёмы для сеньора Контроль памяти через ограничение хеша Хеш-таблицы в awk растут неограниченно. На датасетах с высокой кардинальностью это приводит к OOM. Решение — предварительная сортировка и потоковая агрегация: sort -t',' -k3,3 dump.csv | awk -F',' '{if($3!=prev){print prev,sum; sum=0; prev=$3} sum+=$5}' Сортировка внешняя, память O(1) по числу групп. Цена — дополнительный проход, но на больших объёмах это выгоднее, чем swap. Использование нескольких проходов вместо сложного состояния Сеньор предпочитает два простых прохода одному запутанному. Awk позволяет читать файл повторно, храня промежуточные результаты в отдельные файлы — это упрощает отладку и снижает риск ошибок в логике. Интеграция с psql и mysql через pipe Комбинация awk и клиента БД даёт гибкость: awk формирует запросы пачками, клиент выполняет их, результат снова проходит через awk для постобработки. Это классический Unix-подход, который в руках сеньора превращается в надёжный ETL-конвейер без тяжёлых фреймворков. Когда awk не подходит Инструмент не универсален. Отказывайтесь от него, если: Нужна транзакционная согласованность и MVCC. Данные не помещаются на диск клиента. Требуется сложная аналитика с оконными функциями. Логика уже реализована в БД и оптимизирована планировщиком. Awk — это скальпель, а не молоток. Его сила в точном применении там, где БД избыточна. Итог Оптимизация запросов к базе данных начинается не с EXPLAIN, а с вопроса: должен ли этот запрос вообще идти в БД. Awk позволяет сеньору перенести часть работы на клиент, снизить нагрузку на сервер и получить результат быстрее, чем любой ORM. Владение awk — это маркер зрелости инженера, понимающего, что лучший запрос к базе данных — тот, который не нужно выполнять.
06.10.2026
SCSS для мидл-разработчика: от синтаксиса до архитектуры SCSS (Sassy CSS) — это один из двух синтаксисов препроцессора Sass, полностью совместимый с обычным CSS. Для разработчика уровня middle недостаточно знать вложенность и переменные: важно понимать компиляцию, организацию кода, работу с миксинами, функциями и модульной архитектурой. Эта статья поможет систематизировать знания и закрыть пробелы, которые часто всплывают на код-ревью и технических интервью. Чем SCSS отличается от Sass и Less Многие путают SCSS и Sass, считая их синонимами, но это разные синтаксисы одного препроцессора. Sass использует отступы вместо фигурных скобок и не требует точек с запятой, тогда как SCSS — это надмножество CSS: любой валидный CSS-файл является валидным SCSS-файлом. Именно поэтому SCSS стал де-факто стандартом в современных проектах. Отличия от Less принципиальнее: Sass реализован на Ruby (и Dart Sass для современной компиляции), имеет более мощную систему функций и модулей, а также строгую типизацию значений. Less ближе к CSS по поведению переменных и не предоставляет такой гибкости в работе с коллекциями и миксинами. Базовый синтаксис, который должен быть доведён до автоматизма Переменные и область видимости Переменные объявляются через $ и имеют лексическую область видимости. Внутри блока переменная, объявленная заново, не перезаписывает внешнюю, если не использовать флаг !global. Локальные переменные видны только внутри блока, где объявлены. Глобальные переменные объявляются на верхнем уровне файла. !default позволяет задать значение по умолчанию, которое можно переопределить до импорта. Вложенность и селектор родителя Вложенность — главная причина проблем с производительностью CSS у начинающих. Мидл-разработчик должен осознанно ограничивать глубину вложенности тремя уровнями и использовать амперсанд & для генерации составных селекторов. Избегайте вложенности ради краткости — она увеличивает специфичность. Применяйте & для псевдоклассов, псевдоэлементов и модификаторов БЭМ. Помните, что & подставляет весь составной селектор, а не только последний элемент. Партиалы, импорт и модули Файлы с префиксом _ называются партиалами и не компилируются в отдельные CSS. Исторически использовался @import, но он устарел: сегодня применяется @use и @forward, которые изолируют пространства имён и предотвращают дублирование кода. @use подключает модуль с собственным неймспейсом. @forward реэкспортирует члены модуля для внешнего использования. @import оставлен для обратной совместимости, но в новых проектах не применяется. Миксины, функции и плейсхолдеры Миксины Миксин — это блок стилей, который можно переиспользовать через @include. В отличие от плейсхолдеров, миксины копируют код в каждое место вызова, поэтому злоупотребление ими раздувает CSS. Миксины стоит применять для параметризуемых конструкций: медиазапросов, генерации сеток, вендорных префиксов. Если стили не принимают аргументов и не зависят от контекста — лучше использовать плейсхолдер %name и @extend. Функции Встроенные функции Sass (map-get, nth, lighten, mix) покрывают большинство задач. Начиная с Dart Sass многие цветовые функции помечены как устаревшие — им на смену пришли модульные аналоги, например color.adjust и color.scale. Пользовательские функции объявляются через @function и обязательно возвращают значение через @return. Их удобно использовать для вычислений на основе карт конфигурации. Плейсхолдеры и @extend Плейсхолдеры не попадают в итоговый CSS, если не были расширены. @extend объединяет селекторы в один список, что уменьшает размер файла, но может непредсказуемо влиять на каскад. Используйте их точечно — например, для базовых классов кнопок или типографики. Структура проекта и архитектура Классический подход — паттерн 7-1: семь директорий (abstracts, base, components, layout, pages, themes, vendors) и один корневой файл main.scss. Такая структура предсказуема для команды и упрощает онбординг новых разработчиков. Abstracts — переменные, миксины, функции, плейсхолдеры. Base — сброс стилей, типографика, базовые теги. Components — независимые UI-блоки: кнопки, карточки, формы. Layout — каркас страницы: хедер, футер, сайдбар, сетка. Pages — стили, специфичные для конкретных страниц. Themes — цветовые схемы и темы оформления. Vendors — сторонние библиотеки и их переопределения. Для мидла важно не просто знать структуру, а уметь обосновать её выбор: где заканчивается компонент и начинается лейаут, как избежать циклических зависимостей между партиалами, почему @use предпочтительнее глобальных переменных. Типичные ошибки и как их избежать Глубокая вложенность — приводит к раздутой специфичности и конфликтам. Использование @import — дублирует CSS и замедляет сборку. Миксины вместо плейсхолдеров — лишний объём итогового файла. Глобальные переменные без !default — усложняют переопределение в темах. Игнорирование source maps — затрудняет отладку в браузере. Отдельно стоит упомянуть производительность: современные
Открыть все статьи
bg_1
Остались вопросы? Задавайте их немедленно.
мы проконсультируем совершенно бесплатно