В этой статье я расскажу о том, как правильно писать современные CMakeLists.txt
файлы для C++ библиотек. Идеи, используемые в ней, основаны на докладе Крейга Скотта (разработчик CMake) и докладе Роберта Шумахера (разработчик vcpkg) c CppCon 2019. Поскольку мне достаточно часто приходится разрабатывать С++ библиотеки, я создал для себя небольшой шаблон cpp-lib-template, который будет использоваться в этой статье в качестве примера.
Рубрика «library»
Руководство по CMake для разработчиков C++ библиотек
2022-08-17 в 17:41, admin, рубрики: c++, cmake, library, open source, shared library, Программирование, системы сборки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');
}
}
});
Холивара не избежать. Это уже доказала вот эта статья. Опять в интернете кто-то не прав, и я должен доказать почему. И я докажу.
Прокачиваем работу с событиями в Angular
2020-03-17 в 13:12, admin, рубрики: angular, Events, javascript, library, open source, optimization, performance, tutorial, TypeScript, Блог компании Tinkoff.ruДавным-давно я написал статью о работе с EventManager в Angular. В ней я рассказал, как можно сохранить привычный нам синтаксис подписок на события, при этом избежав лишних запусков проверки изменений на частых и чувствительных событиях.
Однако описанный мною метод громоздкий и сложный для восприятия. Пришло время переписать фильтрацию на декораторы.
Спокойствие спокойствию рознь
2019-06-22 в 16:43, admin, рубрики: dependency injection, framework, ioc контейнеры, iOS, library, open source, swift, разработка под iOSТри года назад, я написал статью о DI библиотеке для языка Swift. С того момента библиотека сильно измененилась и стала
лучшей в своем роде достойным конкурентом Swinject, превосходящяя его по многим показателям. Статья посвящена возможностям библиотеки, но и имеет теоретические рассуждения.И так кому интересны темы DI, DIP, IoC или кто делает выбор между Swinject и Swinject прошу подкат:Читать полностью »
Примеры C++ кода до и после Ranges
2019-06-17 в 15:07, admin, рубрики: c++, C++20, library, ranges, Блог компании OTUS. Онлайн-образование, ПрограммированиеСнова здравствуйте. Перевод следующего материала подготовлен специально для студентов курса «Разработчик C++», занятия по которому стартуют уже 27 июня.
Библиотека Ranges была принята в C++20 на совещании стандартного комитета в Сан-Диего в ноябре прошлого года. Библиотека предоставляет компоненты для обработки диапазонов значений, направленных на упрощение нашего кода. К сожалению, библиотека Ranges не очень хорошо документирована, из-за этого ее труднее понять тем, кто хотел бы ее освоить. Этот пост предназначен для ознакомления с примерами кода, написанного с использованием Ranges и без нее.Читать полностью »
What to think during NALSD interview
2019-01-15 в 13:15, admin, рубрики: design interview, distributed system, Google, interview, library, long story, nalsd, system design, work at google, Анализ и проектирование систем, Блог компании Google, высокая производительность, Карьера в IT-индустрии, распределенные системыThere are a lot of posts about what a typical coding interview at Google looks like. But, while not as widely described and discussed, there is also quite often a system design interview. For an SRE position it’s NALSD: non-abstract large system design. The key difference between SWE and SRE interviews consists in these two letters: NA.
So, what is the difference? How to be prepared for this interview? Let’s be non-abstract, and use an example. To be more non-abstract, let’s take something from the material world, such that you won’t be asked the exact same thing at the real interview (at least, not at the Google interview) :)
So, let’s design a public library system. For the paper books, like you have seen everywhere around. The whole text below was written all at once within around one hour, to roughly show you the areas that you should be able to cover / touch during the interview. Please excuse some disorder, that’s how I think (therefore I am).
Читать полностью »