en
Feedback
Senior C++ Developer

Senior C++ Developer

Open in Telegram

Π˜Π·ΡƒΡ‡Π°Π΅ΠΌ C++. По вопросам сотрудничСства: @adv_and_pr РКН: https://www.gosuslugi.ru/snet/676e9a1e4e740947beca35ba

Show more

πŸ“ˆ Analytical overview of Telegram channel Senior C++ Developer

Channel Senior C++ Developer (@seniorcpp) in the Russian language segment is an active participant. Currently, the community unites 11 638 subscribers, ranking 10 383 in the Technologies & Applications category and 55 311 in the Russia region.

πŸ“Š Audience metrics and dynamics

Since its creation on Π½Π΅Π²Ρ–Π΄ΠΎΠΌΠΎ, the project has demonstrated rapid growth, gathering an audience of 11 638 subscribers.

According to the latest data from 03 September, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -70 over the last 30 days and by -5 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 9.96%. Within the first 24 hours after publication, content typically collects 4.51% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 1 159 views. Within the first day, a publication typically gains 525 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 0.
  • Thematic interests: Content is focused on key topics such as c++, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, git, true.

πŸ“ Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
β€œΠ˜Π·ΡƒΡ‡Π°Π΅ΠΌ C++. По вопросам сотрудничСства: @adv_and_pr РКН: https://www.gosuslugi.ru/snet/676e9a1e4e740947beca35ba”

Thanks to the high frequency of updates (latest data received on 04 September, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

11 638
Subscribers
-524 hours
-177 days
-7030 days
Posts Archive
You Ain't Gonna Need It (YAGNI) You Ain't Gonna Need It (Π’Π°ΠΌ это Π½Π΅ понадобится) - это ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ поощряСт простоту ΠΈ ΠΈΠ·Π±Π΅Π³Π°Π΅Ρ‚ Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΈ. ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ YAGNI ΠΏΠΎΠ±ΡƒΠΆΠ΄Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, Π° Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, Π½ΠΎ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅ Π½ΡƒΠΆΠ½Π°. Π’ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ аспСкты примСнСния ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° YAGNI: - Минимализм: ΠŸΠΈΡˆΠΈΡ‚Π΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ объСм ΠΊΠΎΠ΄Π°, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для выполнСния нСпосрСдствСнных Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ. - Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ спСкулятивной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ: НС Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° основС спСкулятивных Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ. - Π Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³: ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΈΠ»ΠΈ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΌ ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ для обслуТивания. - Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, управляСмая тСстами: ΠŸΠΈΡˆΠΈΡ‚Π΅ тСсты для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π° Π½Π΅ ΠΎΠ±ΡˆΠΈΡ€Π½ΠΎΠ³ΠΎ тСстирования гипотСтичСских Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй. ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π΅ Π² ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΈ гибкости, Π° Π² принятии обоснованных Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, основанных Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… трСбованиях.

#вопросы_с_собСсСдований ΠŸΠΎΡ‡Π΅ΠΌΡƒ рСкомСндуСтся Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Singleton? Singleton Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ класс ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ экзСмпляр ΠΈ обСспСчиваСт Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ доступа ΠΊ Π½Π΅ΠΌΡƒ. Однако ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Singleton часто ΠΊΡ€ΠΈΡ‚ΠΈΠΊΡƒΡŽΡ‚ ΠΈ Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ нСскольким ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ: 1. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠ΅ состояниС: Singleton вносит глобальноС состояниС Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ тСсной связи ΠΌΠ΅ΠΆΠ΄Ρƒ классами ΠΈ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚ΡŒ рассуТдСния ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ систСмы. 2. Π‘ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ зависимостСй: Singleton скрываСт зависимости, затрудняя ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ рассуТдСния ΠΎ взаимодСйствии ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ систСмы. 3. БлоТности тСстирования: Singleton ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΠ»ΠΎΠΆΠ½ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ тСстированиС. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ полагаСтся Π½Π° глобальноС состояниС, становится Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ зависимостям ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ тСсты Π±ΠΎΠ»Π΅Π΅ Ρ…Ρ€ΡƒΠΏΠΊΠΈΠΌΠΈ. 4. Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²: ЭкзСмпляры Singleton ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². Если нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Singleton, это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ повСдСнию. А Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ обСспСчСниС бСзопасности ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² добавляСт слоТности ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

❓Что Ρ‚Π°ΠΊΠΎΠ΅ машина состояний Π² Qt, ΠΈ ΠΊΠ°ΠΊ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ? Π£Π·Π½Π°ΠΉΡ‚Π΅ 16 мая Π² 20:00 Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ ΡƒΡ€ΠΎΠΊΠ΅ Β«StateMachine Π² Qt: Ρ‡Ρ‚ΠΎ это
❓Что Ρ‚Π°ΠΊΠΎΠ΅ машина состояний Π² Qt, ΠΈ ΠΊΠ°ΠΊ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ? Π£Π·Π½Π°ΠΉΡ‚Π΅ 16 мая Π² 20:00 Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ ΡƒΡ€ΠΎΠΊΠ΅ Β«StateMachine Π² Qt: Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ ΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΒ». πŸ“’πŸ“’ На этом занятии ΠΌΡ‹ рассмотрим ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ состояний, ΠΊΠ°ΠΊ ΠΎΠ½Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² Qt, ΠΈ ΠΊΠ°ΠΊ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. Π’Π΅Π±ΠΈΠ½Π°Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π‘++, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌ ПО, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ΅ ПО Π½Π° Qt. πŸŸ Π—Π°Π½ΡΡ‚ΠΈΠ΅ ΠΏΡ€ΠΈΡƒΡ€ΠΎΡ‡Π΅Π½ΠΎ ΠΊ запуску ΠΎΠ½Π»Π°ΠΉΠ½-курса Β«Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ПО Π½Π° Qt ΠΈ ОБ Аврора» Π² OTUS. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Ρ€Π°Π·Π½Ρ‹Π΅ способы ΠΎΠΏΠ»Π°Ρ‚Ρ‹ курса. πŸ‘‰ Для участия Π² Π²Π΅Π±ΠΈΠ½Π°Ρ€Π΅ ΠΏΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π²ΡΡ‚ΡƒΠΏΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ тСст: https://otus.pw/Ic2U/ Нативная интСграция. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π΅ www.otus.ru

execution policy для ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Execution policy Π² C++ - это Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²ΠΎ, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π² стандартС языка C++17. Π­Ρ‚ΠΎ ΠΌ
execution policy для ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Execution policy Π² C++ - это Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²ΠΎ, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π² стандартС языка C++17. Π­Ρ‚ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π² стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅: ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Ρ€ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° execution policy: - seq: выполняСт Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. - par: выполняСт Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ всС доступныС ядра процСссора. - par_unseq: выполняСт Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСупорядочСнноС исполнСниС. Execution policy ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ с ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ Π² стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ std::for_each, std::transform, std::reduce ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ. НапримСр, ΠΊΠΎΠ΄ Π²Ρ‹ΡˆΠ΅ выполняСт Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ std::for_each ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ.

KISS (Keep it Simple, Stupid) Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ программирования ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ использованиС Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ простых ΠΈ понятных Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.
KISS (Keep it Simple, Stupid) Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ программирования ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ использованиС Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ простых ΠΈ понятных Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Π’ Π‘++ этот ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… областях, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², написаниС ΠΊΠΎΠ΄Π° ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½ классов. ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π²Π°ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ простыС ΠΈ понятныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ программистами. ΠŸΡ€ΠΈ написании ΠΊΠΎΠ΄Π° Π²Π°ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ простыС ΠΈ понятныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ. НапримСр, вмСсто написания ΠΎΠ΄Π½ΠΎΠΉ слоТной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая выполняСт мноТСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ нСсколько простых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ. ΠŸΡ€ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ классов Π²Π°ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ простыС ΠΈ понятныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ. НапримСр, вмСсто создания ΠΎΠ΄Π½ΠΎΠ³ΠΎ слоТного класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСт мноТСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ нСсколько простых классов, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… выполняСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ. *На ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ прСдставлСн класс, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ KISS

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ с C++ Π½Π° Go? ΠŸΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚Π΅ πŸ—“ 15 мая Π² 20:00 мск Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ, Π³Π΄Π΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ слайсы ΠΈ массивы простым языком
Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ с C++ Π½Π° Go? ΠŸΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚Π΅ πŸ—“ 15 мая Π² 20:00 мск Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ, Π³Π΄Π΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ слайсы ΠΈ массивы простым языком Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…. По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с C++, Golang Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ простым синтаксисом, Π±ΠΎΠ»Π΅Π΅ бСзопасным ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ встроСнной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования. Он Ρ‚Π°ΠΊΠΆΠ΅ обСспСчиваСт Π±ΠΎΠ»Π΅Π΅ Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΈ запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ‡Ρ‚ΠΎ ускоряСт процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π­Ρ‚ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ бСзопасныС ΠΈ эффСктивныС прилоТСния с мСньшим количСством ошибок. На занятии Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅: – Как устроСны массивы ΠΈ слайсы Π²Π½ΡƒΡ‚Ρ€ΠΈ – КакиС ошибки Ρ‡Π°Ρ‰Π΅ всСго Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ программисты ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π½ΠΈΠΌΠΈ – Как ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ эти знания Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ πŸ‘¨β€πŸ’» ЗанятиС ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Ρ‚ Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Π‘Π°Π»ΡƒΠ½, Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π² Ozon ΠΈ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒ OTUS. πŸ‘‰ Π Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ для участия β€” https://otus.pw/xDxT/ Π’Π΅Π±ΠΈΠ½Π°Ρ€ ΠΏΡ€ΠΈΡƒΡ€ΠΎΡ‡Π΅Π½ ΠΊ старту ΠΎΠ½Π»Π°ΠΉΠ½-курса Β«Golang Developer. ProfessionalΒ» Π² OTUS. ΠšΡƒΡ€Ρ доступСн Π² рассрочку. Π Π΅ΠΊΠ»Π°ΠΌΠ°. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Ρ€Π΅ΠΊΠ»Π°ΠΌΠΎΠ΄Π°Ρ‚Π΅Π»Π΅ Π½Π° сайтС www.otus.ru.

#вопросы_с_собСсСдований ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π±Π°Π·ΠΎΠ²ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ std::shared_ptr. std::shared_ptr - ΡƒΠΌΠ½Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Ρ€Π°
#вопросы_с_собСсСдований ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π±Π°Π·ΠΎΠ²ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ std::shared_ptr. std::shared_ptr - ΡƒΠΌΠ½Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими shared_ptr. Когда послСдний shared_ptr уничтоТаСтся, ΠΎΠ½ автоматичСски удаляСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

πŸš€ Π‘ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠΉ cΠ°ΠΉΡ‚ знакомств Tinder Π² прямом эфирС! πŸ“Œ System Design interview β€” особСнная сСкция собСсСдований Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎ
πŸš€ Π‘ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠΉ cΠ°ΠΉΡ‚ знакомств Tinder Π² прямом эфирС! πŸ“Œ System Design interview β€” особСнная сСкция собСсСдований Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π³Π΄Π΅ провСряСтся Π·Π½Π°Π½ΠΈΠ΅ плюсов ΠΈ минусов Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, ΡƒΠΌΠ΅Π½ΠΈΠ΅ ΡƒΡ‚ΠΎΡ‡Π½ΡΡ‚ΡŒ трСбования, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ слоТныС распрСдСлСнныС систСмы. πŸ—“ 13 мая Π² 18:00 ΠΏΠΎ МБК ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ бСсплатный ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ сайта знакомств Tinder Π² прямом эфирС! Π§Π΅ΠΌΡƒ Π²Ρ‹ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ:   - ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π°Π½Π°Π»ΠΈΠ· Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ;   - ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° систСму;   - ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сайт знакомств Tinder;   - ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ собСсСдования. ➑️ РСгистрация Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ

Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ thread_local Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ thread_local позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ своё Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΊΠ°ΠΆ
Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ thread_local Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ thread_local позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ своё Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Ρ‹. Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ копию этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ Π² ситуациях, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°, Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ x с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ спСцификатора thread_local. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создали Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ increment(), которая ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ x ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΅Π³ΠΎ Π½Π° экран. Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main() ΠΌΡ‹ создали Π΄Π²Π° ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ increment(). ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ копию ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ x, поэтому ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ increment() Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ своя копия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ x. ПослС выполнСния ΠΎΠ±ΠΎΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΌΡ‹ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° join().

kernel-level ΠΈ user-level ΠΏΠΎΡ‚ΠΎΠΊΠΈ User-level ΠΏΠΎΡ‚ΠΎΠΊΠΈ User-level ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΠΏΡ€
+1
kernel-level ΠΈ user-level ΠΏΠΎΡ‚ΠΎΠΊΠΈ User-level ΠΏΠΎΡ‚ΠΎΠΊΠΈ User-level ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ пространствС. Они Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ ядра ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ Π±Π΅Π· Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Π’Π°ΠΊΠΆΠ΅, user-level ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΡŽ создания ΠΈ уничтоТСния, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… быстрСС ΠΈ Π±ΠΎΠ»Π΅Π΅ эффСктивными, Ρ‡Π΅ΠΌ kernel-level ΠΏΠΎΡ‚ΠΎΠΊΠΈ. Однако, ΠΎΠ½ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ ядра, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ рСсурсами, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Ρ‚.Π΄. *ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° прСдставлСн Π½Π° 1 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ. Kernel-level ΠΏΠΎΡ‚ΠΎΠΊΠΈ Kernel-level ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Они ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ рСсурсами, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Ρ‚.Π΄. Однако, созданиС ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ kernel-level ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ ядра, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ Π·Π°Ρ‚Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌΠΈ, Ρ‡Π΅ΠΌ user-level ΠΏΠΎΡ‚ΠΎΠΊΠΈ. *ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° прСдставлСн Π½Π° 2 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ.

Valgrind Valgrind - это Π½Π°Π±ΠΎΡ€ инструмСнтов для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ профилирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, написанного Π½Π° языкС C/C++.
+1
Valgrind Valgrind - это Π½Π°Π±ΠΎΡ€ инструмСнтов для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ профилирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, написанного Π½Π° языкС C/C++. Valgrind ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ ошибки Π² использовании памяти, ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ памяти, ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, позволяя ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Valgrind состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… инструмСнтов, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π΅ΡˆΠ°Π΅Ρ‚ свою Π·Π°Π΄Π°Ρ‡Ρƒ. НапримСр, Memcheck ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ ошибки памяти, Callgrind ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Cachegrind Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ использованиС кэша процСссора. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ выдСляСм ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΠΎΠ΄ 10 цСлочислСнных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ записываСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ячСйку с индСксом 10, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ/записи Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ памяти. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ освобоТдаСм Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ free. Однако, ошибка Π½Π΅ обнаруТиваСтся ΠΏΡ€ΠΈ компиляции ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΎ Valgrind ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Π΅Π΅ ΠΏΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

#вопросы_с_собСсСдований Как Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹? ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² C++ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ осущСствлСна ΠΏΡƒΡ‚Π΅ΠΌ написания тСстовых случаСв, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ называСтся "тСстированиС Ρ‡Π΅Ρ€Π½ΠΎΠ³ΠΎ ящика" ΠΈ позволяСт Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π½Π΅ раскрывая ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.

SIMD (Single Instruction Multiple Data) Π­Ρ‚ΠΎ тСхнология, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π½Π°Π΄ нСскольк
SIMD (Single Instruction Multiple Data) Π­Ρ‚ΠΎ тСхнология, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π½Π°Π΄ нСсколькими Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ соврСмСнных процСссорах SIMD-инструкции Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ для ускорСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹ΠΌΠΈ опСрациями. Π’ C++ SIMD-инструкции доступны Ρ‡Π΅Ρ€Π΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ immintrin.h Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ функция addVectors ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° Ρ‚Ρ€ΠΈ массива a, b ΠΈ c, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТит 8 элСмСнтов Ρ‚ΠΈΠΏΠ° float. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ _mm256_loadu_ps происходит Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² Π² рСгистры, Π·Π°Ρ‚Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ _mm256_add_ps происходит ΠΈΡ… ΠΏΠΎΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠ΅ слоТСниС. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ сохраняСтся Π² Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ _mm256_storeu_ps

RPC (Remote Procedure Call) Π­Ρ‚ΠΎ тСхнология мСТпроцСссного взаимодСйствия, которая позволяСт Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊ
RPC (Remote Procedure Call) Π­Ρ‚ΠΎ тСхнология мСТпроцСссного взаимодСйствия, которая позволяСт Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, ΠΊΠ°ΠΊ Ссли Π±Ρ‹ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. БущСствуСт нСсколько Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для RPC Π² C++, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ: - Apache Thrift - gRPC - ONC/RPC - XML-RPC++ КаТдая ΠΈΠ· этих Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ свои особСнности ΠΈ примСняСтся Π² Ρ€Π°Π·Π½Ρ‹Ρ… случаях. НапримСр, Apache Thrift ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для создания кросс-языковых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π° gRPC - для создания ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΈ быстрых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° основС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° HTTP/2. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠ΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ gRPC для Π²Ρ‹Π·ΠΎΠ²Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ SayHello Π½Π° сСрвСрС. Он создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ GreeterClient, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ gRPC для установлСния связи с ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌ сСрвСром ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° SayHello. Π—Π°Ρ‚Π΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ сСрвСра ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΅Π³ΠΎ Π½Π° экран.

ext_aggregate Π’ стандартС C++17 появилась новая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ‚Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² - ext_aggregate. Данная Ρ„ΡƒΠ½
ext_aggregate Π’ стандартС C++17 появилась новая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ‚Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² - ext_aggregate. Данная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ списки ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Person с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· ext_aggregate. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ присваиваСтся ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π Π°Π½Π΅Π΅ Π² C++ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π³Ρ€Π΅Π³Π°Ρ‚Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² использовались Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ позволяли ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² структурС. ext_aggregate позволяСт ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² любом порядкС, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΌ.

Coroutine ΠšΠΎΡ€ΡƒΡ‚ΠΈΠ½Ρ‹ - это Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π² языкС Π‘++, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ Π΅Π³ΠΎ
Coroutine ΠšΠΎΡ€ΡƒΡ‚ΠΈΠ½Ρ‹ - это Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π² языкС Π‘++, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΡ€ΠΈΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ Π΅Π³ΠΎ с Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ мСста ΠΏΠΎΠ·ΠΆΠ΅. Π­Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² асинхронном ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ° выполнСния. ΠšΠΎΡ€ΡƒΡ‚ΠΈΠ½Ρ‹ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² язык Π² стандартС C++20. Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ дСмонстрируСт созданиС Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° чисСл Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ с использованиСм ΠΊΠΎΡ€ΡƒΡ‚ΠΈΠ½. Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ fib происходит вычислСниС чисСл Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ, ΠΏΡ€ΠΈ этом Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ приостанавливаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова co_yield, ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main происходит использованиС Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠ΅Ρ€Π²Ρ‹Ρ… 10 чисСл Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ Π½Π° экран.

Как программист, Ρ‚Ρ‹ знаСшь, Ρ‡Ρ‚ΠΎ для постоянного развития Π½ΡƒΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π² курсС послСдних Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΉ ΠΈ Π½ΠΎΠ²Π΅ΠΉΡˆΠΈΡ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. Но ΠΊΠ°ΠΊ Π½Π°ΠΉΡ‚ΠΈ врСмя для этого Π² ΠΌΠΈΡ€Π΅, Π³Π΄Π΅ всСгда ΠΊΠ°Ρ€ΠΌΠ°Π½Ρ‹ Π·Π°Π±ΠΈΡ‚Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ? Π’ΠΎΡ‚ Π³Π΄Π΅ XOR ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ! Π­Ρ‚ΠΎ Π½Π΅ просто ΠΊΠ°Π½Π°Π», это сообщСство людСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ Ρ‚Π²ΠΎΠΈ интСрСсы ΠΈ страсти Π² ΠΌΠΈΡ€Π΅ программирования. Π—Π΄Π΅ΡΡŒ Ρ‚Ρ‹ найдСшь свСТиС новости ΠΈΠ· индустрии, совСты ΠΈ Ρ‚Ρ€ΡŽΠΊΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ, ΠΌΠ΅ΠΌΡ‹. НС упускай Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ программистами, ΡƒΠ·Π½Π°Π²Π°Ρ‚ΡŒ ΠΎ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΈ продвиТСниях Π² сфСрС программирования, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты для своСй ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Ρ‹. ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ бСсплатно ΠΈ всСгда Π² Ρ‚Π²ΠΎΠ΅ΠΌ распоряТСнии. ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡΡ @xor_journal ΠΈ Π½Π΅ упусти возмоТности для постоянного роста ΠΈ развития!

#вопросы_с_собСсСдований Как ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ C Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° C++? Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½Π° языкС Π‘ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° C++,
+1
#вопросы_с_собСсСдований Как ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ C Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° C++? Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½Π° языкС Π‘ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° C++, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ extern "C". Π­Ρ‚ΠΎ позволяСт компилятору C++ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ синтаксис Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π° языкС Π‘, Π° программисту Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, исходники ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ частично написаны Π½Π° Π‘++, Π° частично Π½Π° Π‘.

#вопросы_с_собСсСдований Бколько Ρ€Π°Π· Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ этот Ρ†ΠΈΠΊΠ»? ΠŸΠΎΡΡΠ½ΠΈΡ‚Π΅ свой ΠΎΡ‚Π²Π΅Ρ‚. Если Π±Ρ‹ Π²Ρ‹ сказали 300, Π²Ρ‹ Π±Ρ‹Π»ΠΈ Π±Ρ‹ ΠΏΡ€Π°
#вопросы_с_собСсСдований Бколько Ρ€Π°Π· Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ этот Ρ†ΠΈΠΊΠ»? ΠŸΠΎΡΡΠ½ΠΈΡ‚Π΅ свой ΠΎΡ‚Π²Π΅Ρ‚. Если Π±Ρ‹ Π²Ρ‹ сказали 300, Π²Ρ‹ Π±Ρ‹Π»ΠΈ Π±Ρ‹ ΠΏΡ€Π°Π²Ρ‹, Ссли Π±Ρ‹ i Π±Ρ‹Π»ΠΎ объявлСно ΠΊΠ°ΠΊ int. Однако, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ i Π±Ρ‹Π»ΠΎ объявлСно ΠΊΠ°ΠΊ unsigned char, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ этот ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ бСсконСчному Ρ†ΠΈΠΊΠ»Ρƒ. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ: Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 2 * half_limit Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΎ Π² int (ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ прСобразования C++) ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 300. Однако, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ i - это Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ символ, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ пСрСсчитан Π² 8-Π±ΠΈΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅, достигнув 255, пСрСполнится (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ вСрнСтся ΠΊ 0), ΠΈ Ρ†ΠΈΠΊΠ», Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒΡΡ Π²Π΅Ρ‡Π½ΠΎ.

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ CUDA CUDA extension позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ NVIDIA CUDA Π² C++ ΠΊΠΎΠ΄Π΅. Оно прСдоставляСт Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈΠ· Π·Π°Π³ΠΎΠ»ΠΎΠ²
Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ CUDA CUDA extension позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ NVIDIA CUDA Π² C++ ΠΊΠΎΠ΄Π΅. Оно прСдоставляСт Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈΠ· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² для компиляции. ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° использования Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ CUDA: - Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования мощностСй графичСского процСссора (GPU) для ускорСния вычислСний; - ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ синтаксис ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ CUDA Π² C++ ΠΊΠΎΠ΄Π΅; - ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм (Windows, Linux, macOS). Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ объявляСм ядро (kernel) add, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ складываСт Π΄Π²Π° числа ΠΈ записываСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ c. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ выдСляСм ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π° устройствС (GPU) для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ dev_c, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ядро add, ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ c Π½Π° хостС (CPU) ΠΈ освобоТдаСм ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π½Π° устройствС.