0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<ul><li><a>Когнитивные искажения, о которых стоит помнить</a></li>
1
<ul><li><a>Когнитивные искажения, о которых стоит помнить</a></li>
2
<li><a>Инструменты автоматического тестирования безопасности QA</a></li>
2
<li><a>Инструменты автоматического тестирования безопасности QA</a></li>
3
<li><a>Еще раз про асинхронную машину состояний и где именно там аллокации</a></li>
3
<li><a>Еще раз про асинхронную машину состояний и где именно там аллокации</a></li>
4
<li><a>Trait-объекты и полиморфизм в Rust</a></li>
4
<li><a>Trait-объекты и полиморфизм в Rust</a></li>
5
<li><a>Создаем свою STL-совместимую реализацию std::allocator с лучшей производительностью</a></li>
5
<li><a>Создаем свою STL-совместимую реализацию std::allocator с лучшей производительностью</a></li>
6
<li><a>Тимлид, которого не любят</a></li>
6
<li><a>Тимлид, которого не любят</a></li>
7
<li><a>Обзор продуктивности разработчиков от McKinsey</a></li>
7
<li><a>Обзор продуктивности разработчиков от McKinsey</a></li>
8
<li><a>Краткий обзор TinyML</a></li>
8
<li><a>Краткий обзор TinyML</a></li>
9
<li><a>MERGE и её улучшение производительности с помощью work_mem</a></li>
9
<li><a>MERGE и её улучшение производительности с помощью work_mem</a></li>
10
<li><a>Как создать YouTube GIF Maker с использованием Next.js, Node и RabbitMQ</a></li>
10
<li><a>Как создать YouTube GIF Maker с использованием Next.js, Node и RabbitMQ</a></li>
11
<li><a>Микросервисы и RabbitMQ в Docker</a></li>
11
<li><a>Микросервисы и RabbitMQ в Docker</a></li>
12
<li><a>10 полезных команд Git</a></li>
12
<li><a>10 полезных команд Git</a></li>
13
<li><a>Краткий обзор развития лямбда-выражений в C++11, C++14, C++17 и C++20</a></li>
13
<li><a>Краткий обзор развития лямбда-выражений в C++11, C++14, C++17 и C++20</a></li>
14
<li><a>Обзор библиотеки Actix в Rust</a></li>
14
<li><a>Обзор библиотеки Actix в Rust</a></li>
15
<li><a>Обзор синтаксиса Tailwind CSS</a></li>
15
<li><a>Обзор синтаксиса Tailwind CSS</a></li>
16
<li><a>15 тенденций в области разработки программного обеспечения в 2024 году</a></li>
16
<li><a>15 тенденций в области разработки программного обеспечения в 2024 году</a></li>
17
</ul><h2>Когнитивные искажения, о которых стоит помнить</h2>
17
</ul><h2>Когнитивные искажения, о которых стоит помнить</h2>
18
<p>Из-за когнитивных искажений мы иногда принимаем иррациональные решения, а также выносим суждения на основе информации, которую мы обрабатываем. Фактически, когнитивные искажения - это запрограммированная ошибка в нашем мозге.</p>
18
<p>Из-за когнитивных искажений мы иногда принимаем иррациональные решения, а также выносим суждения на основе информации, которую мы обрабатываем. Фактически, когнитивные искажения - это запрограммированная ошибка в нашем мозге.</p>
19
<p>Также их можно представить как простые правила, которым следует мозг, чтобы обрабатывать поступающую информацию с минимальными затратами.</p>
19
<p>Также их можно представить как простые правила, которым следует мозг, чтобы обрабатывать поступающую информацию с минимальными затратами.</p>
20
<p>Когнитивных искажений существует большое множество, и о них полезно знать. В этой статье мы сделаем обзор 151 искажения, которым мы все часто бываем подвержены в своей повседневной жизни: как в личной, так и в профессиональной.</p>
20
<p>Когнитивных искажений существует большое множество, и о них полезно знать. В этой статье мы сделаем обзор 151 искажения, которым мы все часто бываем подвержены в своей повседневной жизни: как в личной, так и в профессиональной.</p>
21
<p><a>Читать далее</a></p>
21
<p><a>Читать далее</a></p>
22
<h2>Инструменты автоматического тестирования безопасности QA</h2>
22
<h2>Инструменты автоматического тестирования безопасности QA</h2>
23
<p>На тему автоматизации тестирования написано множество статей, посвященных различным инструментам QA в рамках процессов DevOps. В этой статье мы тоже будем говорить об автоматизации тестирования, но уже в контексте процессов DevSecOps.</p>
23
<p>На тему автоматизации тестирования написано множество статей, посвященных различным инструментам QA в рамках процессов DevOps. В этой статье мы тоже будем говорить об автоматизации тестирования, но уже в контексте процессов DevSecOps.</p>
24
<p>DevSecOps по своей сути является логичным дополнением выстроенных процессов DevOps. Так на рисунке ниже представлены те инструменты и методы, которые должны использоваться для того, чтобы разрабатываемое приложение содержало меньше багов и уязвимостей и в целом было более защищенным. </p>
24
<p>DevSecOps по своей сути является логичным дополнением выстроенных процессов DevOps. Так на рисунке ниже представлены те инструменты и методы, которые должны использоваться для того, чтобы разрабатываемое приложение содержало меньше багов и уязвимостей и в целом было более защищенным. </p>
25
<p><a>Читать далее</a></p>
25
<p><a>Читать далее</a></p>
26
<h2>Еще раз про асинхронную машину состояний и где именно там аллокации</h2>
26
<h2>Еще раз про асинхронную машину состояний и где именно там аллокации</h2>
27
<p>Несмотря на то, что про async/await уже было сказано много слов и записано множество докладов, тем не менее, в своей практике преподавания и наставничества, я часто сталкиваюсь с недопониманием устройства async/await даже у разработчиков уровня Middle+.</p>
27
<p>Несмотря на то, что про async/await уже было сказано много слов и записано множество докладов, тем не менее, в своей практике преподавания и наставничества, я часто сталкиваюсь с недопониманием устройства async/await даже у разработчиков уровня Middle+.</p>
28
<p>Как известно, при компиляции асинхронного метода компилятор преобразует код, разбивая его на отдельные шаги. Потом, во время выполнения каждый шаг прерывается асинхронной операцией. Когда она завершается, надо точно понимать, куда вернуть управление - в какой конкретно шаг. Поэтому все шаги нумеруются и компилятор очень строго следит за тем откуда куда можно перейти. В computer science такое решение называется <em>машиной состояний</em>. Еще, по-русски её называют <em>конечный автомат</em>. Далее, для краткости, я буду использовать сокращение SM (<em>state machine</em>).</p>
28
<p>Как известно, при компиляции асинхронного метода компилятор преобразует код, разбивая его на отдельные шаги. Потом, во время выполнения каждый шаг прерывается асинхронной операцией. Когда она завершается, надо точно понимать, куда вернуть управление - в какой конкретно шаг. Поэтому все шаги нумеруются и компилятор очень строго следит за тем откуда куда можно перейти. В computer science такое решение называется <em>машиной состояний</em>. Еще, по-русски её называют <em>конечный автомат</em>. Далее, для краткости, я буду использовать сокращение SM (<em>state machine</em>).</p>
29
<p>Итак, в данной статье мы подробно рассмотрим <em>машину состояний</em>, сгенерированную компилятором C# из асинхронного метода для понимания принципа работы асинхронности в C#.</p>
29
<p>Итак, в данной статье мы подробно рассмотрим <em>машину состояний</em>, сгенерированную компилятором C# из асинхронного метода для понимания принципа работы асинхронности в C#.</p>
30
<p><a>Читать далее</a></p>
30
<p><a>Читать далее</a></p>
31
<h2>Trait-объекты и полиморфизм в Rust</h2>
31
<h2>Trait-объекты и полиморфизм в Rust</h2>
32
<p>Полиморфизм - это принцип в программирование, который позволяет нам писать гибкий, масштабируемый и поддерживаемый код. В Rust, как и во многих других языках программирования, полиморфизм позволяет одному интерфейсу представлять множество реализаций.</p>
32
<p>Полиморфизм - это принцип в программирование, который позволяет нам писать гибкий, масштабируемый и поддерживаемый код. В Rust, как и во многих других языках программирования, полиморфизм позволяет одному интерфейсу представлять множество реализаций.</p>
33
<p>Один из способов, с помощью которого Rust достигает полиморфизма, - использование Trait-объектов.</p>
33
<p>Один из способов, с помощью которого Rust достигает полиморфизма, - использование Trait-объектов.</p>
34
<p><a>Читать далее</a></p>
34
<p><a>Читать далее</a></p>
35
<h2>Создаем свою STL-совместимую реализацию std::allocator с лучшей производительностью</h2>
35
<h2>Создаем свою STL-совместимую реализацию std::allocator с лучшей производительностью</h2>
36
<p>Реализация защиты от сбоев из-за фрагментации кучи и повышение скорости выполнения с помощью STL-альтернативы std::allocator, работающей с блоками памяти фиксированного размера.</p>
36
<p>Реализация защиты от сбоев из-за фрагментации кучи и повышение скорости выполнения с помощью STL-альтернативы std::allocator, работающей с блоками памяти фиксированного размера.</p>
37
<p>В этой статье описывается реализация STL-совместимого аллокатора, ориентированного на выделение и высвобождение блоков памяти фиксированного размера. Предложенный аллокатор предотвращает сбои, вызванные фрагментированной кучей, и обеспечивает стабильное время выполнения выделения/высвобождения памяти. Моей главной целью при создании stl_allocator было устранение ошибок памяти. Вдобавок использование STL-совместимого блочного аллокатора открывает возможность использования функций стандартной библиотеки шаблонов (STL) C++ в проектах, в которых иначе это было бы невозможно.</p>
37
<p>В этой статье описывается реализация STL-совместимого аллокатора, ориентированного на выделение и высвобождение блоков памяти фиксированного размера. Предложенный аллокатор предотвращает сбои, вызванные фрагментированной кучей, и обеспечивает стабильное время выполнения выделения/высвобождения памяти. Моей главной целью при создании stl_allocator было устранение ошибок памяти. Вдобавок использование STL-совместимого блочного аллокатора открывает возможность использования функций стандартной библиотеки шаблонов (STL) C++ в проектах, в которых иначе это было бы невозможно.</p>
38
<p><a>Читать далее</a></p>
38
<p><a>Читать далее</a></p>
39
<h2>Тимлид, которого не любят</h2>
39
<h2>Тимлид, которого не любят</h2>
40
<p>Есть у нас такая традиция - начальство не любить. А как быть, если начальство - ты сам? Хочется ж быть хорошим, всегда и для всех. Но получается так, увы, редко.</p>
40
<p>Есть у нас такая традиция - начальство не любить. А как быть, если начальство - ты сам? Хочется ж быть хорошим, всегда и для всех. Но получается так, увы, редко.</p>
41
<p>Как понять, что про вас думают сотрудники, как повлиять на эти мысли, что нужно делать, чтобы помимо оценок "не бесит" иногда проскакивали и "отличный руководитель!" давайте разберемся в статье.</p>
41
<p>Как понять, что про вас думают сотрудники, как повлиять на эти мысли, что нужно делать, чтобы помимо оценок "не бесит" иногда проскакивали и "отличный руководитель!" давайте разберемся в статье.</p>
42
<p><a>Читать далее</a></p>
42
<p><a>Читать далее</a></p>
43
<h2>Обзор продуктивности разработчиков от McKinsey</h2>
43
<h2>Обзор продуктивности разработчиков от McKinsey</h2>
44
<p>Не так давно компания McKinsey опубликовала <a>статью</a>, в которой утверждалось, что они могут измерить продуктивность разработчиков. Этот текст вызвал определённый резонанс, но я не видел, чтобы кто-то подробно комментировал содержание. Я решил, что это будет полезно сделать.</p>
44
<p>Не так давно компания McKinsey опубликовала <a>статью</a>, в которой утверждалось, что они могут измерить продуктивность разработчиков. Этот текст вызвал определённый резонанс, но я не видел, чтобы кто-то подробно комментировал содержание. Я решил, что это будет полезно сделать.</p>
45
<p>Я буду писать так, как будто авторы обратились ко мне за технической рецензией на свою статью. Можете считать это открытым письмом.</p>
45
<p>Я буду писать так, как будто авторы обратились ко мне за технической рецензией на свою статью. Можете считать это открытым письмом.</p>
46
<p><a>Читать далее</a></p>
46
<p><a>Читать далее</a></p>
47
<h2>Краткий обзор TinyML</h2>
47
<h2>Краткий обзор TinyML</h2>
48
<p>TinyML сам по себе означает внедрение ml в маломощные микроконтроллеры и встроенные системы. Это устройствам IoT выполнять задачи обработки данных и машинного обучения непосредственно на самом устройстве, минимизируя таким образом необходимость в постоянном подключении к интернету или внешним вычислительным ресурсам. Основная цель TinyML - сделать ии или простые модельки доступным для самых маленьких устройств</p>
48
<p>TinyML сам по себе означает внедрение ml в маломощные микроконтроллеры и встроенные системы. Это устройствам IoT выполнять задачи обработки данных и машинного обучения непосредственно на самом устройстве, минимизируя таким образом необходимость в постоянном подключении к интернету или внешним вычислительным ресурсам. Основная цель TinyML - сделать ии или простые модельки доступным для самых маленьких устройств</p>
49
<p><a>Читать далее</a></p>
49
<p><a>Читать далее</a></p>
50
<h2>MERGE и её улучшение производительности с помощью work_mem</h2>
50
<h2>MERGE и её улучшение производительности с помощью work_mem</h2>
51
<p>С выходом PostgreSQL 15 мы застали появление долгожданной команды MERGE, которая позволяет реализовывать эффективные способы синхронизации обновлений.</p>
51
<p>С выходом PostgreSQL 15 мы застали появление долгожданной команды MERGE, которая позволяет реализовывать эффективные способы синхронизации обновлений.</p>
52
<p>Суть MERGE заключается в ее универсальности: она позволяет объединить операции INSERT, UPDATE и DELETE в одном запросе, автоматически выбирая нужное действие в зависимости от того, существует ли соответствующая запись в целевой таблице.</p>
52
<p>Суть MERGE заключается в ее универсальности: она позволяет объединить операции INSERT, UPDATE и DELETE в одном запросе, автоматически выбирая нужное действие в зависимости от того, существует ли соответствующая запись в целевой таблице.</p>
53
<p>Вместо нескольких отдельных запросов INSERT, UPDATE, DELETE MERGE сокращает накладные расходы на сетевой трафик и уменьшает количество обращений к диску. MERGE облегчает реализацию шаблонов SCD и других сложных сценариев управления данными.</p>
53
<p>Вместо нескольких отдельных запросов INSERT, UPDATE, DELETE MERGE сокращает накладные расходы на сетевой трафик и уменьшает количество обращений к диску. MERGE облегчает реализацию шаблонов SCD и других сложных сценариев управления данными.</p>
54
<p><a>Читать далее</a></p>
54
<p><a>Читать далее</a></p>
55
<h2>Как создать YouTube GIF Maker с использованием Next.js, Node и RabbitMQ</h2>
55
<h2>Как создать YouTube GIF Maker с использованием Next.js, Node и RabbitMQ</h2>
56
<p>Идея приложения - дать пользователям возможность создавать GIF-файлы из видеороликов с YouTube. Для этого нужно просто указать ссылку на нужное видео, а также задать время начала и окончания GIF.</p>
56
<p>Идея приложения - дать пользователям возможность создавать GIF-файлы из видеороликов с YouTube. Для этого нужно просто указать ссылку на нужное видео, а также задать время начала и окончания GIF.</p>
57
<p>Функциональные возможности приложения:</p>
57
<p>Функциональные возможности приложения:</p>
58
<ul><li>Создание GIF из видео на YouTube с определённым временным диапазоном.</li>
58
<ul><li>Создание GIF из видео на YouTube с определённым временным диапазоном.</li>
59
<li>Предварительный просмотр результата перед выполнением фактической конвертации.</li>
59
<li>Предварительный просмотр результата перед выполнением фактической конвертации.</li>
60
</ul><p><a>Читать далее</a></p>
60
</ul><p><a>Читать далее</a></p>
61
<h2>Микросервисы и RabbitMQ в Docker</h2>
61
<h2>Микросервисы и RabbitMQ в Docker</h2>
62
<p>Микросервисная архитектура предполагает декомпозицию монолитного приложения на несколько полностью независимо развёртываемых и масштабируемых сервисов. За пределами этого базового определения, то, что представляет собой микросервис, может быть несколько субъективным. Хотя есть несколько проверенных в бою практик, принятых такими гигантами, как Netflix и Uber, которые всегда следует принимать во внимание. И я расскажу о некоторых из них. </p>
62
<p>Микросервисная архитектура предполагает декомпозицию монолитного приложения на несколько полностью независимо развёртываемых и масштабируемых сервисов. За пределами этого базового определения, то, что представляет собой микросервис, может быть несколько субъективным. Хотя есть несколько проверенных в бою практик, принятых такими гигантами, как Netflix и Uber, которые всегда следует принимать во внимание. И я расскажу о некоторых из них. </p>
63
<p><a>Читать далее</a></p>
63
<p><a>Читать далее</a></p>
64
<h2>10 полезных команд Git</h2>
64
<h2>10 полезных команд Git</h2>
65
<p>В этой статье мы рассмотрим набор команд, которые немного облегчат вам жизнь и повысят продуктивность.<a></a></p>
65
<p>В этой статье мы рассмотрим набор команд, которые немного облегчат вам жизнь и повысят продуктивность.<a></a></p>
66
<p>Прежде чем приступить к изучению команд, давайте познакомимся с несколькими важными терминами Git. Это поможет вам лучше понять команды и предотвратить путаницу в дальнейшем.</p>
66
<p>Прежде чем приступить к изучению команд, давайте познакомимся с несколькими важными терминами Git. Это поможет вам лучше понять команды и предотвратить путаницу в дальнейшем.</p>
67
<p><a>Читать далее</a></p>
67
<p><a>Читать далее</a></p>
68
<h2>Краткий обзор развития лямбда-выражений в C++11, C++14, C++17 и C++20</h2>
68
<h2>Краткий обзор развития лямбда-выражений в C++11, C++14, C++17 и C++20</h2>
69
<p>Сегодня рассмотрим лямбда-выражения в C++ и их эволюцию с момента появления в стандарте C++11 и до последних обновлений в C++20.</p>
69
<p>Сегодня рассмотрим лямбда-выражения в C++ и их эволюцию с момента появления в стандарте C++11 и до последних обновлений в C++20.</p>
70
<p>Лямбда-выражения в C++ - это анонимные функции, которые позволяют писать инлайн-выражения прямо там, где они используются. С их помощью можно легко определять функции обратного вызова, передавать их в функции высшего порядка или использовать для инициализации функциональных объектов.</p>
70
<p>Лямбда-выражения в C++ - это анонимные функции, которые позволяют писать инлайн-выражения прямо там, где они используются. С их помощью можно легко определять функции обратного вызова, передавать их в функции высшего порядка или использовать для инициализации функциональных объектов.</p>
71
<p><a>Читать далее</a></p>
71
<p><a>Читать далее</a></p>
72
<h2>Обзор библиотеки Actix в Rust</h2>
72
<h2>Обзор библиотеки Actix в Rust</h2>
73
<p>Actix появился на свет благодаря Николаю Киму, также известного в сообществе под ником fafhrd91. Николай создал экосистему, которая позволяет строить масштабируемые, надежные веб-приложения и микросервисы. Actix основан на модели акторов, концепции, которая была впервые предложена в 1973 году для симуляции активных компонентов в распределенных системах.</p>
73
<p>Actix появился на свет благодаря Николаю Киму, также известного в сообществе под ником fafhrd91. Николай создал экосистему, которая позволяет строить масштабируемые, надежные веб-приложения и микросервисы. Actix основан на модели акторов, концепции, которая была впервые предложена в 1973 году для симуляции активных компонентов в распределенных системах.</p>
74
<p><a>Читать далее</a></p>
74
<p><a>Читать далее</a></p>
75
<h2>Обзор синтаксиса Tailwind CSS</h2>
75
<h2>Обзор синтаксиса Tailwind CSS</h2>
76
<p>Tailwind CSS - это <em>utility-first</em> CSS фреймворк, который отличается от традиционных CSS фреймворков вроде Bootstrap или Foundation тем, что вместо предопределенных компонентов предлагает набор utility-классов, позволяющих стилизовать элементы прямо в HTML.</p>
76
<p>Tailwind CSS - это <em>utility-first</em> CSS фреймворк, который отличается от традиционных CSS фреймворков вроде Bootstrap или Foundation тем, что вместо предопределенных компонентов предлагает набор utility-классов, позволяющих стилизовать элементы прямо в HTML.</p>
77
<p>Utility-first подход заключается в использовании множества функциональных классов, каждый из которых отвечает за одно CSS свойство, к примеру паддинги, маржини и т.п.</p>
77
<p>Utility-first подход заключается в использовании множества функциональных классов, каждый из которых отвечает за одно CSS свойство, к примеру паддинги, маржини и т.п.</p>
78
<p>В этой статье рассмотрим синтаксис Tailwind CSS, в целом, он похож на дефолт CSS.</p>
78
<p>В этой статье рассмотрим синтаксис Tailwind CSS, в целом, он похож на дефолт CSS.</p>
79
<p><a>Читать далее</a></p>
79
<p><a>Читать далее</a></p>
80
<h2>15 тенденций в области разработки программного обеспечения в 2024 году</h2>
80
<h2>15 тенденций в области разработки программного обеспечения в 2024 году</h2>
81
<ul><li>Интеграция искусственного интеллекта и машинного обучения</li>
81
<ul><li>Интеграция искусственного интеллекта и машинного обучения</li>
82
<li>Блокчейн за пределами криптовалют</li>
82
<li>Блокчейн за пределами криптовалют</li>
83
<li>Микросервисы с множественными средами выполнения</li>
83
<li>Микросервисы с множественными средами выполнения</li>
84
<li>Кибербезопасность</li>
84
<li>Кибербезопасность</li>
85
<li>Дальнейшее внедрение VR и AR</li>
85
<li>Дальнейшее внедрение VR и AR</li>
86
<li>Устойчивая разработка программного обеспечения</li>
86
<li>Устойчивая разработка программного обеспечения</li>
87
<li>Внесерверная обработка данных (FaaS)</li>
87
<li>Внесерверная обработка данных (FaaS)</li>
88
<li>Расширение облачных вычислений</li>
88
<li>Расширение облачных вычислений</li>
89
<li>Всплеск периферийных вычислений</li>
89
<li>Всплеск периферийных вычислений</li>
90
<li>Квантовые вычисления: новый рубеж</li>
90
<li>Квантовые вычисления: новый рубеж</li>
91
<li>Python</li>
91
<li>Python</li>
92
<li>Рост числа пользователей языка Rust</li>
92
<li>Рост числа пользователей языка Rust</li>
93
<li>Рост числа low-code и no-code платформ</li>
93
<li>Рост числа low-code и no-code платформ</li>
94
<li>Рост числа прогрессивных веб-приложений (PWA)</li>
94
<li>Рост числа прогрессивных веб-приложений (PWA)</li>
95
<li>Разработка кросс-платформенных приложений</li>
95
<li>Разработка кросс-платформенных приложений</li>
96
</ul><p><a>Читать далее</a></p>
96
</ul><p><a>Читать далее</a></p>
97
<a></a>
97
<a></a>