golang
Создаём репозиторий в Go через менеджер транзакций

Всем привет! Я Илья Сергунин, веб-разработчик из продуктовой команды Авито. Мы пишем на Go сервис для выкупа мобильных телефонов, про MLP которого уже писали в блоге. В качестве примеров я буду использовать всем знакомый интернет-магазин, чтобы показать, как создать репозиторий через менеджер транзакций. Важное замечание: в Go нужно явно прописывать обработку каждой ошибки. В некоторых примерах я скрываю эту часть кода, чтобы они легче читались.Для чего нам нужен менеджер транзакцийПаттерн Rep…

  • среда, 17 мая 2023 г. в 00:01:44
golang
Русские шашки: представление доски с помощью двух uint64

Серия статей про создание AI для игры в русские шашки:Русские шашки: эффективная генерация ходов в GolangРусские шашки: представление доски с помощью двух uint64ВведениеПри разработке игр, особенно таких настольных игр, как шашки, представление доски является важнейшим компонентом производительности игры. Доска - это, по сути, состояние игры: на ней хранится вся информация о положении фигур, о том, чей сейчас ход, и другие важные данные игры. Эффективность представления доски влияет на скорост…

  • среда, 17 мая 2023 г. в 00:01:41
golang
[По полочкам] Кэширование

Всем привет! Меня зовут Илья Денисов, я занимаюсь backend разработкой уже более пяти лет и сейчас пишу на языке go. Сегодня я предлагаю вам поговорить о кэшировании. Постараюсь рассказать о базовых концепциях, а также затронуть ряд особенностей, неочевидных на первый взгляд.Что такое кэширование?Кэширование – это способ хранения данных как можно ближе к месту их использования. Как правило, для этого используется быстродействующая память (RAM).Для чего нужно кэширование?Кэширование появилось да…

  • среда, 17 мая 2023 г. в 00:01:37
golang
Приходите на Samokat.tech Meetup про Golang-разработку

Когда: 18 мая (четверг), 18:00 – 20:15 МСК/СПБФормат: онлайн-трансляция Задать вопросы спикерам и узнать больше о докладах можно в Telegram-канале.Регистрация на митап тутПослушаем спикеров из Samokat.tech, Авито и Тинькофф. Поговорим об особенностях использования Go в разработке и перехода на него с других языков. Только конкретные примеры из практики и личный опыт спикеров.В программе — как эффективно работать с памятью и CPU на Go, как в интеграционных тестах с помощью Go-testcontainers пол…

  • среда, 17 мая 2023 г. в 00:01:35
javascript
Крошечный рецепт приготовления react-dnd

Появилась однажды задача - сделать область для загрузки файлов, с помощью drag-and-drop.Была выбрана библиотека react-dnd, по причине её простоты, минималистичности и низкого порога входа.Фича реализуется с помощью это либы и двух кастомных компонентов:DndContainer - компонент обёртка, для того, чтобы прокидывать вниз контекст для работы react-dndDropTarget - компонент для непосредственной реализации drag-and-drop функционалаИтак, рецепт!react-dndДокументация: react-dnd.Примеры использования: …

  • среда, 17 мая 2023 г. в 00:01:30
javascript
Загрузчик файлов для React

ПредисловиеОригинальная продуктовая задача, помимо непосредственной загрузки файлов и dnd, включала в себя ещё 2 больших куска логики:Динамическая галерея для отображения загружаемых и загруженных файлов с их статусами.Резолв конфликтов дубликатов имён файлов при загрузке. Т.е. надо было при загрузке файлов дать пользователю возможность выбрать один из возможных сценариев загрузки:переименовать загружемые файлы;переименовать уже загруженные файлы;остановить загрузку.Реализация функционала резо…

  • среда, 17 мая 2023 г. в 00:01:28
javascript
Я хотел улучшить React

ПриветЯ давно пишу код, а React использую более пяти лет.За это время у меня возникло несколько идей о том, как можно было бы улучшить React.К реализации этих идей я приступил около трех лет назад. Сначала проверил концепцию, потом решил оформить всё в виде библиотеки.А о том, что из этого вышло, я бы хотел рассказать в этой статье.Чем хорош ReactВо-первых, это подход React в объединении Javascript и HTML в одном коде. У остальных это получилось не так хорошо.Например, для некоторых фреймворко…

  • среда, 17 мая 2023 г. в 00:01:26
javascript
Пишем свой хук для отслеживания изменений в LocalStorage

В рамках своей работы, я не раз сталкивался с проблемой, что нужно отслеживать изменение в LocalStorage в совершенно независимых компонентах. Были попытки отслеживания изменений через "window.addEventListener", но и тут меня ждала неудача, так как в этом случае отслеживание будет происходить только в другой вкладке браузера и тем самым я дошел до создания своего хука, назвал его - useLocalStorageEffect. Далее уже будем говорить о нем.Какие проблемы решает хук useLocalStorage…

  • среда, 17 мая 2023 г. в 00:01:23
javascript
Как я написал удобную оболочку над электронным дневником

Статья о том, как я в 15 лет облегчил работу с электронным дневником, представленным правительством Кировской области в 2022 году.Что получилось сделать и как это было реализовано.ПредысторияДолгое время во всех школах моей области использовался устаревший АИАС АВЕРС. В 2022 году сообщили, что все школы переходят на новый электронный дневник. Я надеялся, что представят нечто вроде дневник.ру с приложением, уведомлениями, мобильной адаптацией и удобными фичами, а на деле мы получили устаревший …

  • среда, 17 мая 2023 г. в 00:01:21