Best Practice Flashcards

1
Q

Какие принципы хорошего программирования бывают?

A

KISS, SOLID, DRY, YAGNI

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

Принцип KISS

A

KISS («Keep it simple, stupid») — принцип проектирования.

Принцип KISS утверждает, что большинство систем работают лучше всего, если они остаются простыми, а не усложняются.

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

Принцип DRY

A

Don’t repeat yourself (DRY; с англ. — «не повторяйся») — это принцип разработки программного обеспечения, нацеленный на снижение повторения информации различного рода, особенно в системах со множеством слоёв абстрагирования.

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

Принцип YAGNI

A

YAGNI («You aren’t gonna need it»; с англ. — «Вам это не понадобится») — процесс и принцип, при котором декларируется отказ от избыточной функциональности, — то есть отказ добавления функциональности, в которой нет непосредственной надобности.

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

Принцип SOLID

A

SOLID - про классы

S - Single responsibility — принцип единственной ответственности. Каждый класс выполняет только те цели, для которых он был задуман.

O - Open-closed — принцип открытости / закрытости. Класс должен быть открыт для расширения и закрыт для модификации.

L - Liskov substitution — принцип подстановки Барбары Лисков. Объект дочернего класса должен уметь полностью заменять объект родительского класса.
Если есть функция, которая умеет работать с родительским классом. Мы в эту функцию можем передать объект дочернего класса и она должна работать.

I - Interface segregation — принцип разделения интерфейса. Лучше много мелких абстрактных классов, чем один большой.

D - Dependency inversion — принцип инверсии зависимостей. Должны быть зависимости на классах, а не классы на зависимостях.

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

Какие паттерны программирования есть?

A

Основные паттерны делятся на 3 группы:
порождающие, поведенческие, структурные

Подробнее
https://refactoring.guru/ru/design-patterns/decorator/python/example#lang-features

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

Conflict managment

Как разрешать конфликты

A

Пойти к старшему\обратиться к 3му

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

SDLC

A

Agile, SCRUM, Waterfall …

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