Как стать автором
Обновить
25
0
Митя Камаев @mitya_k

SuperPuper Backend Developer

Отправить сообщение

Kysely.js типизированный sql builder

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров4.7K

Kysely.js – это библиотека, позволяющая писать типизированные SQL запросы. Библиотека делает работу с SQL в вашем проекте более безопасной, избавляя от таких ошибок как опечатки в названиях колонок или таблиц и неправильное использование SQL операторов в коде (код не скомпилируется). Ко всему прочему она делает работу с SQL более удобной, предоставляя при написании запросов автодополнения для таблиц, колонок, алиасов и других сущностей. Kysely имеет незначительный слой абстракции над SQL для того чтобы можно было пользоваться всей мощью SQL и при этом не изучать множество дополнительных сущностей. Библиотека поддерживает MySQL, PostgreSQL, SQLite, PlanetScale, D3, SurrealDB и другие.

Теперь погрузимся в наш кисель ?.

Читать далее

Делаем import/require ясными и красивыми

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров6.6K

Довольно часто в проектах встречается использование относительных import/require. Если это маленький проект, и подключается модуль из текущей папки, то это приемлемо, но при разрастании проекта и глубины вложенности папочной структуры без слез смотреть на это нельзя:

Читать далее

Генератор коротких CSS классов и id

Время на прочтение8 мин
Количество просмотров6.1K

Одним днем возникла необходимость добавить в проект генерацию коротких css классов и id элементов в html верстке. Основные причины были следующие:

* Усложнить жизнь парсерам и блокировщикам рекламы (они зачастую на имена классов опираются).

* Уменьшить размер html страниц

* И чтобы все было как у Google, шутка ?

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

Читать далее

Почему интеграционная БД это отстой

Время на прочтение7 мин
Количество просмотров13K

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

Не надо писать никакие контракты и схемы для интеграций сервисов между собой через API, а каждый может читать/писать из одной БД.

Не надо думать о синхронизации данных, если данные в БД записались значит консистентность достигнута.

Не надо снимать бэкапы с нескольких хранилищ, если можно снимать с одной единственной БД.

Читать далее

Docker Swarm для самых маленьких

Время на прочтение13 мин
Количество просмотров167K

Данная статья посвящена настройке и работе с Docker Swarm.

Swarm это стандартный оркестратор для docker контейнеров, доступный из «коробки», если у вас установлен сам docker.

Что нам потребуется для освоения:

Читать далее

Почему разработчики любят Bulma?

Время на прочтение3 мин
Количество просмотров10K

5 причин для того чтобы использовать Bulma в вашем следующем проекте.

Bulma это open-source, адаптивный и легковесный CSS фреймворк базирующийся на flexbox сетке. Этот новый фреймворк уже завоевал сердца многих разработчиков.

Итак, в этой статье, я расскажу о пяти причинах, почему разработчики любят Bulma.

Читать далее

Бинарный протокол для JavaScript

Время на прочтение6 мин
Количество просмотров9.3K

Нативная поддержка JSON одно из преимуществ разработки full-stack JavaScript приложений. JSON является простым, не требующим схемы и человекочитаемым - качества особенно ценимые на ранней стадии разработки, когда ваша модель данных подвержена частым изменениям. Однако за все надо платить, а именно размером и скоростью обработки данных.

JSON будучи текстовым форматом кодирует все значения как UTF-8, что приводит к увеличению размера данных при работе с нетекстовыми данными. Отсутствие схемы означает, что мы должны кодировать нашу структуру данных (ключи объекта) вместе с самими данными. Мы также делаем дополнительную работу при обработке данных, поскольку нам необходимо преобразовать бинарные данные в их текстовое представление до превращения в JSON и соответственно наоборот в случае декодирования.

Читать далее

Используем sequence в MySQL

Время на прочтение5 мин
Количество просмотров14K

Хочу рассказать о том, как создать сквозной монотонно возрастающий  целочисленный id в MySQL (это называется sequence в других БД). Зачем это нужно? Например, у нас есть два вида задач для сотрудников в системе, у каждого типа задач есть свой набор атрибутов и свой жизненный цикл (набор статусов). Для того чтобы не городить огород в коде приложения для корректного чтения разных сущностей из БД и не плодить колонки с NULL проще всего разнести сущности по разным таблицам.

Читать далее

Будущее Web это HTML через WebSockets

Время на прочтение12 мин
Количество просмотров13K

Будущее веб архитектуры  программного обеспечения уже обретает формы и на этот раз server-side рендеринг (опять). Но есть кое-что новое,  а именно передача HTML по WebSocket.

Подход с использованием SPA(Single Page Appllication) и JSON API привел к тому, что многие команды разработки погрязли в бесконечных спорах о структуре данных и ошибках синхронизации между этими двумя слоями. Это увеличивает стоимость разработки, замедляет релизный цикл и сокращает время, которое можно было бы потратить на инновации.

Читать далее

Как работать с ошибками бизнес-логики через HTTP

Время на прочтение6 мин
Количество просмотров26K

Почти все разработчики так или иначе постоянно работают с api по http, клиентские разработчики работают с api backend своего сайта или приложения, а бэкендеры "дергают" бэкенды других сервисов, как внутренних, так и внешних. И мне кажется, одна из самых главных вещей в хорошем API это формат передачи ошибок. Ведь если это сделано плохо/неудобно, то разработчик, использующий это API, скорее всего не обработает ошибки, а клиенты будут пользоваться молчаливо ломающимся продуктом.

За 7 лет я как поддерживал множество legacy API, так и разрабатывал c нуля. И я поработал, наверное, с большинством стратегий по возвращению ошибок, но каждая из них создавала дискомфорт в той или иной мере. В последнее время я нащупал оптимальный вариант, о котором и хочу рассказать, но с начала расскажу о двух наиболее популярных вариантах.

Читать далее

Ack лучше grep

Время на прочтение3 мин
Количество просмотров15K

Хочу рассказать об одной утилите для поиска, которая очень сильно упрощает жизнь. Когда я попадаю на сервер и мне надо что-то поискать я первым делом проверяю установлен ли ack. Эта утилита является прекрасной заменой grep, а также в какой-то мере find и wc. Почему не grep? Ack имеет более приятные настройки из коробки, более человеко-читаемые опции, perl регулярки и систему конфигов. Если вы любите(приходится) искать через терминал, то вам однозначно стоит ее попробовать.

Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность

Специализация

Backend Developer
Lead
От 400 000 ₽
Node.js
TypeScript
MySQL
PostgreSQL
Docker
Nginx
RabbitMQ
Linux
High-loaded systems
Designing application architecture