Писатель Дмитрий Глуховский* как-то предложил водителю автобуса из Саратова свой вариант карьерного плана в ИТ. Моя карьера сложилась почти по этому плану. Только я учил Java.
Рубрика «backend» - 11
Учишь русский, учишь Java, едешь в Россию работать, или Как я «зашёл в ИТ» 10 лет назад
2024-06-10 в 8:05, admin, рубрики: backend, java, карьера ИТ-специалиста, карьера программиста, смена профессииБэкэнд для начинающих или типовые ошибки бэкэндера
2024-05-14 в 11:39, admin, рубрики: backend, конкурентность, согласованность, транзакцииВсем привет! Я Олег, fullstack‑разработчик в компании Тензор, тимлид небольшой команды.
Одна из моих обязанностей в роли тимлида — code review. За годы работы многое повидал и выделил для себя типовые ошибки, с которыми сталкиваются начинающие backend‑разработчики. Сегодня расскажу о некоторых из них.
О чем пойдет речь
Разберем типовые ошибки, которые допускаются при работе с SQL‑базами данных в рамках сервиса с высокой нагрузкой и конкурентными запросами.
В качестве БД возьмем PostgreSQL, в примерах кода будет использоваться как SQL-запросы, так и «некий ORM чем‑то напоминающий Sequelize» (все совпадения случайны).Читать полностью »
Dependency Injection контейнеры .NET, допускающие полиморфное поведение
2024-01-02 в 9:00, admin, рубрики: backend, class, csharp, di, dotnet, implementation, inheritance, interface, polymorphism, ruvds_статьи
Иногда случается так, что при разработке приложения на платформе .NET с внедрением зависимостей и сервисами от контейнера требуется поддержка полиморфного поведения.
Когда, например, у интерфейса есть несколько реализаций, и их нужно грамотно расфасовать по правильным конструкторам так, чтобы всё из коробки работало.
Однако стандартный DI контейнер платформы долгое время не давал этой возможности.
В рамках этой статьи я решил напомнить альтернативы для решения этой задачи на тот случай, если вы ещё не успели переехать на .NET 8 или работаете в каком-нибудь Иннотехе, где в наличии только зеркало NuGet-пакетов, выпущенных до начала 2022 года.Читать полностью »
Неравный бой — Tinkoff эквайринг. Рекуррентные платежи
2023-07-02 в 3:45, admin, рубрики: acquireing, api, backend, Node, node.js, tinkoff, TypeScript, платежная система, платежные системы, платежный шлюз, тинькофф, тинькофф банкДанная статья будет разбита на несколько частей.
Часть 1 - Вступление
Часть 2 - Делаем клиент на TypeScript для Tinkoff эквайринг
Часть 3 - Работа с картами МИР и иными картами поддерживающими 3DS V2
Предистория
В рамках разработки нашего SaaS решения для автоматизации процессов кар-шерингов и авто-ренталов CarSense, перед нами стояла задача реализации системы рекуррентных платежей (Добавление карт пользователями для дальнейшего безакцептного списания).
Атомики в Go: особенности внутренней реализации
2023-06-30 в 15:10, admin, рубрики: assembly, atomic, atomics, backend, concurrency, Go, golang, MutexАтомики в Go - это один из методов синхронизации горутин. Они находятся в пакете стандартной библиотеки sync/atomic. Некоторые статьи сравнивают atomics с mutex, так как это примитивы синхронизации низкого уровня. Они предоставляют бенчмарки и сравнения по скорости, например Go: How to Reduce Lock Contention with the Atomic Package.
Как мы автоматизировали тестирование OpenStack с помощью Rally и Tempest
2023-04-26 в 12:42, admin, рубрики: backend, ci/cd, gitlab, octavia, openstack, rally, selectel, tempest, Блог компании Selectel, разработка, Разработка веб-сайтов, тестирование, Тестирование IT-систем, Тестирование веб-сервисов
Всем привет, меня зовут Валентина! Уже около пяти лет я работаю в тестировании, из них более трех занимаюсь прожаркой OpenStack с помощью Tempest и Rally. Заметила, что в сети не так много информации об этих фреймворках. Пора это исправить.
В этой статье я расскажу, как мы в Selectel тестировали Octavia с помощью Tempest и Rally, с какими трудностями столкнулись, как преодолевали их и что в итоге получилось. Если интересно, добро пожаловать под кат!
Читать полностью »
Оптимизация бэкенда приложения с примерами на Symfony. Часть 1
2023-04-16 в 9:56, admin, рубрики: backend, N+1, php, sql, symfony, индексы, Клиентская оптимизация, оптимизация, Разработка веб-сайтовВсех приветствую! Я планирую создать цикл статей, демонстрирующий распространенные ошибки, влияющие на производительность приложения со стороны бэкенда, а также методы их поиска и устранения. Для этого, я написал приложение, в котором специально допустил различные ошибки, чтобы по порядку найти и исправить их.
В текущей статье, рассмотрим темы - n+1, пагинация и индексы. Приятного чтения!
Описание приложения
Сказ о том как pet-project превратился в небольшой пассивный доход (часть 2)
2023-03-07 в 14:15, admin, рубрики: backend, DNS, Go, pet-project, vpn, wireguard, балансировка нагрузки, Программирование, Сетевые технологииDNS Балансировка
Предыдущая часть закончилась неудачной балансировкой, которая не решает практически никаких проблем. В комментариях кто‑то спросил, почему я не использовал балансировку на уровне DNS. Так вот, я ее использовал. Оказалось, что c помощью DNS записей можно организовать балансировку Round Robin. Для этого в конфигурации Wireguard всего лишь нужно использовать доменное имя вместо IP адреса. Теперь конфигурация Wireguard будет выглядеть вот так:
[Interface]
PrivateKey = <client_private_key>
Address = <cient_address_on_server>/32
DNS = 8.8.8.8, 1.1.1.1
[Peer]
PublicKey = <server_private_key>Читать полностью »
Сказ о том как pet-project превратился в небольшой пассивный доход (часть 1)
2023-02-25 в 9:21, admin, рубрики: backend, Go, golang, nginx, pet-project, vpn, wireguard, балансировка нагрузки, ПрограммированиеВ какой-то момент написанного кода становится слишком много для того, чтобы просто на него забить.
Предыстория
Я backend разработчик с опытом около 3-х лет, пишу в основном на Golang. Проработал в нескольких крупных российских компаниях. Сейчас я параллельно со своей работой пытаюсь сделать удобный, дешевый VPN сервис с высокой пропускной способностью. В этой статье я хочу просто рассказать про жизненный цикл своего проекта. Возможно кому-то будет просто интересно почитать, а кто-то может почерпнуть что-то новое для себя.
Жарим TOAST в PostgreSQL
2023-01-12 в 13:33, admin, рубрики: backend, blob, highload, json, large data, open source, postgresql, sql, toast, Блог компании Postgres Professional, хранение данных, хранилища данныхУ нас не подгорит!

В этой статье мы разберем, как PostgreSQL хранит большие (длинные) значения колонок, рассмотрим некоторые связанные с этим особенности и проблемы СУБД и предложим способы решения этих проблем. Посчитаем байтики и залезем в потроха СУБД. Будет интересно!
