Senior Flashcards

1
Q

1.Як ви розумієте SOLID?

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

2.Як розробити систему плагінів на С++?

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

3.Що таке RPC? Які бібліотеки знаєте?

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

4.На що звертати увагу під час проведення code review?

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

5.Які є проблеми під час написання кросплатформенного коду? На що звертати увагу?

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

6.Що робити, якщо код працює повільно?

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

7.Які є способи та методологія вимірювання швидкодії коду? Як можна усунути/зменшити вплив замірів на швидкодію?

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

8.Що таке SFINAE? Для чого використовується?

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

9.Що таке метапрограмування? За допомогою чого реалізується на С++?

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

10.Як використовувати variadic templates?

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

11.Як тестувати закриті методи?

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

12.Як рахувати покриття тестами? Чи потрібно це робити?

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

13.Що таке cache miss і як це виявити?

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

14.Що таке SIMD-інструкції? Які є необхідні умови та способи їх використання?

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

15.Що таке покриття коду і як забезпечується?

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

16.Опишіть принципи lock-free структур даних і свій досвід роботи з ними.

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

17.Розкажіть про побудову білд-системи.

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

18.Як працювати з білд-системами: Make, CMake.

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

19.Як інтегрувати third-party в проєкт?

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

20.Що таке бар’єри пам’яті?

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

21.Розкажіть про роботу з сирими вказівниками та ручне управління пам’яттю.

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

22.Що таке статичний аналізатор коду? Які знаєте?

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

23.Що таке динамічний аналізатор коду? Які знаєте?

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

24.Проєкт повільно збирається. Як можна прискорити?

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

25.Розкажіть про використання realloc в контейнерах.

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

26.Як працюють темплейти?

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

27.Розкажіть про спеціалізацію темплейтів.

A

””

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

28.Як працює RTTI?

A

””

29
Q

29.Чи можна використовувати exception в конструкторі/деструкторі?

A

””

30
Q

30.Що таке rvalue та lvalue?

A

””

31
Q

31.В чому особливості контейнерів std::set, std::map, std::unordered_map, std::hash?

A

””

32
Q

32.Що таке placement new? Для чого використовують? Як зробити placement delete?

A

””

33
Q

33.Як розміщується в пам’яті клас з множинним успадкуванням та віртуальними функціями?

A

””

34
Q

34.Як працюють точки зупинки?

A

””

35
Q

35.Що таке вразливості? Який механізм їхньої роботи?

A

””

36
Q

36.Як написати власний std::shared_ptr?

A

””

37
Q

37.Що таке curiously recurring template pattern?

A

””

38
Q

38.Опишіть призначення та принцип роботи std::shared_ptr, std::unique_ptr та std::weak_ptr.

A

””

39
Q

39.Яке призначення та відмінності використання std::variant та std::any?

A

””

40
Q

40.Які покращення отримав std::search з С++17?

A

””

41
Q

41.Що таке copy elision і коли стає можливим? Які є особливості для різних стандартів?

A

””

42
Q

42.Що таке Return Value Optimization?

A

””

43
Q

43.Поясніть принципи SOLID.

A

””

44
Q

44.Поясніть принципи KISS.

A

””

45
Q

45.Поясніть принципи YAGNI.

A

””

46
Q

46.Які є підходи до оптимізації коду?

A

””

47
Q

47.На що варто звертати увагу під час code review?

A

””

48
Q

48.Які є патерни проєктування? Чому не радять використовувати Singleton?

A

””

49
Q

49.Що таке статичний поліморфізм?

A

””

50
Q

50.Коли std::vector може використовувати std::move?

A

””

51
Q

51.Розкажіть про свій улюблений алгоритм пошуку.

A

””

52
Q

52.Що таке lock-free та wait-free алгоритми? У чому їхні відмінності та способи реалізації?

A

””

53
Q

53.Опишіть призначення execution policy для паралельних алгоритмів.

A

””

54
Q

54.Розкажіть про побудову API, розрахованих на багатопотокове використання.

A

””

55
Q

55.У чому різниця між kernel-level та user-level потоками?

A

””

56
Q

56.Що таке coroutine?

A

””

57
Q

57.Що робить специфікатор thread_local?

A

””

58
Q

58.Як реалізувати синхронізацію в задачі producer-consumer?

A

””

59
Q

59.Як синхронізуватися між різними процесами?

A

””

60
Q

60.Розкажіть про налаштування процесу менеджменту гілок репозиторію.

A

””

61
Q

61.Розкажіть про стратегію бренчування.

A

””

62
Q

62.Напишіть базову реалізацію std::shared_ptr.

A

””

63
Q

63.Реалізуйте алгоритм сортування.

A

””

64
Q

64.Реалізуйте алгоритм хешування.

A

””

65
Q

65.Реалізуйте shared_ptr з розширенням для weak_ptr.

A

””

66
Q

66.Реалізуйте найпростіший producer-consumer, використовуючи умовні змінні.

A

””

67
Q

67.Опишіть якомога детальніше, що відбувається в системі, коли застосунок робить мережевий запит.

A

””

68
Q

68.Детально описати дизайн програмного компонента, наприклад, системи голосування — врахувати при цьому високе навантаження і зробити його розширюваним і відмовостійким.

A

””