Чистый код: создание, анализ и рефакторинг презентация

Содержание

Слайд 2

2/21

2/21

Слайд 3

3/21

3/21

Слайд 4

Какой код называют “чистым”? Код приятно читать Удобно и возможно

Какой код называют “чистым”?

Код приятно читать
Удобно и возможно сопровождать
Код не содержит

дублирования
Содержит простые абстракции
Прямолинеен и компактен

4/21

Слайд 5

Содержательные имена Не надо так: int d; //прошедшее время Лучше так: int daysSinceCreation; int fileAgeInDays; 5/21

Содержательные имена

Не надо так: int d; //прошедшее время
Лучше так:
int daysSinceCreation;
int fileAgeInDays;

5/21

Слайд 6

Пример. Что делает эта функция? public List getThem() { List

Пример. Что делает эта функция?

public List getThem()
{
List list1

= new List();
foreach (int[] x in theList)
if (x[0] == 4)
list1.Add(x);
return list1;
}

6/21

Слайд 7

Улучшение 1. public List getFlaggedCells() { List flaggedCells = new

Улучшение 1.

public List getFlaggedCells()
{
List flaggedCells = new List();

foreach (int[] cell in gameBoard)
if (cell[STATUS_VALUE] == FLAGGED)
flaggedCells.Add(cell);
return flaggedCells;
}

7/21

Слайд 8

Улучшение 2. public List getFlaggedCells() { List flaggedCells = new

Улучшение 2.

public List getFlaggedCells()
{
List flaggedCells = new List();

foreach (Cell cell in gameBoard)
if (cell.isFlagged())
flaggedCells.Add(cell);
return flaggedCells;
}

8/21

Слайд 9

Имена классов Существительные и их комбинации Customer, WikiPage, Account, AddressParser, … 9/21

Имена классов

Существительные и их комбинации
Customer, WikiPage, Account, AddressParser, …

9/21

Слайд 10

Имена методов Глаголы или глагольные словосочетания PostPayment, DeletePage, Save, … 10/21

Имена методов

Глаголы или глагольные словосочетания
PostPayment, DeletePage, Save, …

10/21

Слайд 11

Функции Компактность (примерно 20 строк) Функция должна выполнять одну операцию

Функции

Компактность (примерно 20 строк)
Функция должна выполнять одну операцию и ничего другого
Один

уровень абстракции на функцию
Чтение кода сверху вниз

11/21

Слайд 12

Разделение команд и запросов if (set(“username”, “unclebob”)) if (AttributeExists("username")) { SetAttribute("username", "unclebob"); ... } 12/21

Разделение команд и запросов

if (set(“username”, “unclebob”)) if (AttributeExists("username"))
{
SetAttribute("username", "unclebob");
...
}

12/21

Слайд 13

Форматирование кода 13/21

Форматирование кода

13/21

Слайд 14

Объекты и структуры данных. Процедурный код. 14/21

Объекты и структуры данных. Процедурный код.

14/21

Слайд 15

Объекты и структуры данных. Объектно-ориентированный код. 15/21

Объекты и структуры данных. Объектно-ориентированный код.

15/21

Слайд 16

Обработка ошибок 16/21

Обработка ошибок

16/21

Слайд 17

SOLID S – SRP – Принцип единой отвественности O –

SOLID

S – SRP – Принцип единой отвественности
O – OSP – Принцип

открытости/закрытости
L – LSP – Принцип подстановки Барбары Лисков
I – ISP – Принцип разделения интерфейса
D – DIP – Принцип инверсии зависимостей

17/21

Слайд 18

KISS Keep it short and simple (keep it simple, stupid) 18/21

KISS

Keep it short and simple (keep it simple, stupid)

18/21

Слайд 19

DRY Don’t repeat youserlf Антоним: WET – Write Everything Twice 19/21

DRY

Don’t repeat youserlf
Антоним: WET – Write Everything Twice

19/21

Слайд 20

YAGNI You ain’t gonna need it 20/21

YAGNI

You ain’t gonna need it

20/21

Имя файла: Чистый-код:-создание,-анализ-и-рефакторинг.pptx
Количество просмотров: 30
Количество скачиваний: 0