Всем привет! Меня зовут Алексей Майшев, я работаю Go-инженером в Авито. В этой статье рассказываю, как мы с командой независимых разработчиков 9 месяцев проектировали и разрабатывали кэш-библиотеку следующего поколения для Go — otter.
Рубрика «library»
Как спроектировать кэш-библиотеку нового поколения и не умереть?
2025-09-04 в 13:16, admin, рубрики: cache, github, Go, golang, library, ristretto, библиотеки для go, кэш-библиотекаДрузья! В данной статье мы бы хотели рассказать про кроссплатформенную коллекцию утилитных C++ компонентов CUtils.
CUtils — это довольно полезный инструмент при разработке кроссплатформенного программного обеспечения на языке программирования C++.
В первой версии этой коллекции содержатся компоненты, которые были необходимы в разработке игрового движка Case Engine, такие как SystemConfiguration, INIParser, Notification и т. д.
Установка библиотеки
Вы можете скачать репозиторий уже с собранными файлами под Windows, а можете самостоятельно собрать библиотеку из исходников.
1. скачайте официальный репозиторий коллекции с GitHub -
Логирование FreeRTOS через Virtual Com Port
2024-11-03 в 19:47, admin, рубрики: arm-none-eabi, freertos, gcc, library, logging, multithreading, qemu, stm32, stm32cubemxВведение
Встроенные системы на базе микроконтроллеров STM32 широко применяются в различных областях — от бытовой электроники до промышленного оборудования и IoT-устройств. Одной из ключевых задач при разработке таких систем является отладка и мониторинг работы приложений. Эффективное логирование существенно облегчает эти процессы, позволяя разработчикам быстро выявлять и устранять ошибки, а также анализировать поведение системы в реальном времени.
Mapping объектов с помощью MapStruct
2024-08-28 в 17:13, admin, рубрики: android, clean architecture, kotlin, library, mappingsВ огромном приложении Android с Clean Architecture много рутинной работы, связанной с отображением объектов между различными слоями. Хорошим решением будет автоматизация этого процесса.
В этой статье рассматривается опыт использования библиотеки MapStruct, которая помогает mapp-ить объекты.
Библиотека очень гибка в настройке. И позволяет минимизировать написание шаблонного кода.
Вот пример того, как реализовать gradle зависимости в вашем проекте.
plugins {
kotlin("kapt") version "1.9.22"
}
dependencies {
implementation("org.mapstruct:mapstruct:1.6.0")
kapt("org.mapstruct:mapstruct-processor:1.6.0")
}
Руководство по CMake для разработчиков C++ библиотек
2022-08-17 в 17:41, admin, рубрики: c++, cmake, library, open source, shared library, Программирование, системы сборкиВ этой статье я расскажу о том, как правильно писать современные CMakeLists.txt файлы для C++ библиотек. Идеи, используемые в ней, основаны на докладе Крейга Скотта (разработчик CMake) и докладе Роберта Шумахера (разработчик vcpkg) c CppCon 2019. Поскольку мне достаточно часто приходится разрабатывать С++ библиотеки, я создал для себя небольшой шаблон cpp-lib-template, который будет использоваться в этой статье в качестве примера.
Taiga UI: год в Open Source
2022-02-04 в 8:58, admin, рубрики: angular, Cypress, firebase, github, library, open source, opensourse, taiga, taiga ui, TypeScript, Блог компании Tinkoff, Разработка веб-сайтовTaiga UI — это огромная библиотека компонентов на Angular. Мы в Тинькофф разрабатывали ее внутри пару лет, прежде чем выпустили вторую, мажорную версию на публику. С тех пор прошел год, и я хочу подвести итоги и обозначить планы на 2022 год.

Как нам в Open Source
Разукрашиваем вывод в консоли: теория и практика
2021-05-23 в 10:00, admin, рубрики: color, encoding, library, python, terminal, vds, vps, Блог компании Маклауд, Научно-популярное, Программирование, Совершенный код
Консоль привлекает многих своей минималистичностью и эстетикой, но даже в ней иногда хочется выделить определённый фрагмент, чтобы показать его роль или значимость. Например, отметить зелёным текстом сообщение об успешном выполнении операции или обозначить длинный текст ошибки курсивом. О том, как это делать, а также о реализации на питоне — читайте далее.
Путешествие в unmanaged code: туда и обратно
2021-02-20 в 6:17, admin, рубрики: .net, C#, dllimport, library, unmanaged code, Разработка под Linux, разработка под windowsВысокоуровневые языки программирования популярны, но существуют области, в которых придется использовать неуправляемые реализации библиотек. Это могут быть вызов специфических функций ОС, низкоуровневый доступ к устройствам, необходимость быстродействия в алгоритмах и другие. Под катом я расскажу, с чем можно столкнуться во время путешествия в unmanaged code и что стоит взять с собой.

SafetyNet Attestation — описание и реализация проверки на PHP
2021-02-11 в 16:50, admin, рубрики: android, api, composer, Google API, Google Play, googleplay, library, php, SAFe, safety, Блог компании FunCorp, мобильная разработка, Разработка под android
В эту тему пришлось детально погрузиться во время работы над обеспечением стандартных механизмов верификации устройств для разных мобильных платформ. Задача сводилась к разработке полноценной реализацию проверки JWS-токенов по протоколу SafetyNet на серверной стороне.
Vuex – решаем старый спор новыми методами
2020-06-06 в 12:23, admin, рубрики: javascript, library, plugin, vue, vuejs, vuejs2, vuex, vuex-map, web-разработка, Программирование, Разработка веб-сайтовВо Vuex есть одна популярная практика — не использовать mapState и mapMutations. Вообще. Вместо это мы сразу же при создании нового значения в store делаем для него геттер, а для каждой мутации – экшен.
Что-то наподобие:
export default new Vuex.Store({
state: {
// 1
count: 0
},
getters: {
// 1
count: (state) => state.count
},
mutations: {
// 2
increment(state) {
state.count++;
}
},
actions: {
// 2
increment({ commit }) {
commit('increment');
}
}
});
Холивара не избежать. Это уже доказала вот эта статья. Опять в интернете кто-то не прав, и я должен доказать почему. И я докажу.
