code style (in russian)
DESCRIPTION
TRANSCRIPT
![Page 1: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/1.jpg)
![Page 2: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/2.jpg)
Михаил Давыдов Разработчик JavaScript
Code Style
![Page 3: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/3.jpg)
В ролях - разработчик А - разработчик Б (новичек)
История про разработчиков
![Page 4: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/4.jpg)
4
Эта история вымышленная и к Яндексу не относится
![Page 5: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/5.jpg)
Жил-был один разработчик и писал вот так:
![Page 6: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/6.jpg)
6
function name(value) -tab->{ -tab->-tab->var a = 0, b = 42; -tab->-tab->if (value) return a -tab->}
Код разработчика А
![Page 7: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/7.jpg)
7
В проект пришел еще один и стал писать так:
![Page 8: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/8.jpg)
8
var name = function (value) { ....var a = 0, ........b = 42; ....if (value) { ........return a; ....} };
Код разработчика Б
![Page 9: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/9.jpg)
9
И общего Code Style у них не было…
![Page 10: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/10.jpg)
10
![Page 11: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/11.jpg)
11
var name = function (value) { ....var a = 0, ........b = 42; ....if (value) { ........return a; ....} };
Код разработчика Б
А: Что за говнокод?
![Page 12: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/12.jpg)
12
function name(value) -tab->{ -tab->-tab->var a = 0, b = 42; -tab->-tab->if (value) return a -tab->}
Код разработчика А
Б: У самого говнокод!
![Page 13: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/13.jpg)
13
var name = function (value) { ....var a = 0, ........b = 42; ....if (value) { ........return a; ....} };
Код разработчика Б
А: Почему так ф-ю написал?
![Page 14: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/14.jpg)
14
function name(value) -tab->{ -tab->-tab->var a = 0, b = 42; -tab->-tab->if (value) return a -tab->}
Код разработчика А
Б: А ты вообще табы используешь!
![Page 15: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/15.jpg)
15
var name = function (value) { ....var a = 0, ........b = 42; ....if (value) { ........return a; ....} };
Код разработчика Б
А: Зачем тут скобка?
![Page 16: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/16.jpg)
16
function name(value) -tab->{ -tab->-tab->var a = 0, b = 42; -tab->-tab->if (value) return a -tab->}
Код разработчика А
Б: Уайтсмитс? Ты из какой пещеры вылез?
![Page 17: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/17.jpg)
17
var name = function (value) { ....var a = 0, ........b = 42; ....if (value) { ........return a; ....} };
Код разработчика Б
А: Зачем тут точка с запятой?
![Page 18: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/18.jpg)
18
function name(value) -tab->{ -tab->-tab->var a = 0, b = 42; -tab->-tab->if (value) return a -tab->}
Код разработчика А
Б: А ты зачем перенос не поставил?
![Page 19: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/19.jpg)
19
var name = function (value) { ....var a = 0, ........b = 42; ....if (value) { ........return a; ....} };
Код разработчика Б
А: RTFM or GTFO!
![Page 20: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/20.jpg)
20
function name(value) -tab->{ -tab->-tab->var a = 0, b = 42; -tab->-tab->if (value) return a -tab->}
Код разработчика А
Б: А в бубен?
![Page 21: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/21.jpg)
21
![Page 22: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/22.jpg)
22
Нужна договоренность в стиле кода
![Page 23: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/23.jpg)
23
Организационный профит Code Style
• Это закон – Должна быть отдельная страница о которой все знают – Страницу просто найти
• Закон разрешает конфликты – Не знание закона не освобождает от ответственности
• Решает большинство проблем • Эту страницу нужно дать прочитать перед началом работы
![Page 24: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/24.jpg)
24
Если не понятно, то нужно дать понять причину ввода такого Code Style
![Page 25: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/25.jpg)
Применение CS
Для быстрого восприятия кода
Для предотвращения ошибок в коде
Для быстрого написания кода
![Page 26: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/26.jpg)
26
Каждый из следующих примеров зависит от восприятия конкретного человека
![Page 27: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/27.jpg)
Обобщение элементов
![Page 28: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/28.jpg)
28
var name = function (value) { ....var a = 0, ........b = 42; ....if (value) { ........return a; ....} };
Обобщение соседних элементов
![Page 29: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/29.jpg)
29
var name = function (value) { ....var a = 0, ........b = 42; ....if (value) { ........return a; ....} };
Обобщение соседних элементов
Перенос строки разрывает обобщение
![Page 30: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/30.jpg)
30
.b-form { font-family: Arial; font-size: 2em; padding: 0 10px; min-height: 100px; }
Обобщение соседних элементов Перенос строки разделяет разные типы CSS ствойств и обобщает соседние элементы
![Page 31: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/31.jpg)
Вертикаль – список
![Page 32: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/32.jpg)
32
var name = function (value) { ....var a = 0, ........b = 42; ....if (value) { ........return a; ....} };
Вертикаль – список
var - список переменных
![Page 33: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/33.jpg)
33
var name = function (value) { ..var a = 0 ...., b = 42 ...., c = 42 ...., d = 42 ....; };
Вертикаль – список Coma-first style – его цель уменьшить число ошибок.
![Page 34: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/34.jpg)
34
var name = function (value) { ..var a = 0 ...., b = 42 ....c = 42 ...., d = 42 ....; };
Вертикаль – список Отсутствие запятых легко заметить
![Page 35: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/35.jpg)
35
var a = ..{ b: 2 .., c: 3 .., d: 4 ..} ..;
Вертикаль – список Coma-first style для литералов Object
https://gist.github.com/357981
![Page 36: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/36.jpg)
36
ALL code is ugly. Yours, mine, everyone's. Code Is Ugly. Just face it.
![Page 37: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/37.jpg)
37
.b-form { -webkit-transition: color; -moz-transition: color; -ms-transition: color; -o-transition: color; transition: color; }
Вертикаль – список
Выравнивание по свойству
![Page 38: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/38.jpg)
38
.b-form { -webkit-transition: color; -moz-transition: color; -ms-transition: color; -o-transition: color; transition: color; }
Вертикаль – список Выравнивание по значению Так проще прочитать
![Page 39: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/39.jpg)
39
<ol class="b-list"> ....<li class="b-item">Abc</li> ....<li class="b-item">Abc</li> ....<li class="b-item">Abc</li> </ol>
Вертикаль – список
![Page 40: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/40.jpg)
40
jQuery('.clickable') .....filter('a') .....click(handler) .....end() .....show('slow') ....;
Вертикаль – список Вызов функций по цепочке – список
![Page 41: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/41.jpg)
41
if (typeof a !== "undefined" && typeof b !== "undefined" && typeof c === "string") { // your stuff }
Вертикаль – список Несколько условий – список
![Page 42: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/42.jpg)
Единообразие
![Page 43: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/43.jpg)
43
var name = function (value) { ....var a = 0, ........b = 42; ....if (value) { ........return a; ....} };
Единообразие
Похожий код быстрее воспринять
![Page 44: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/44.jpg)
44
// Этот пробел обязательный function A(value) { } // Этот пробел для единообразия var A = function (value) { };
Единообразие
Похожий код быстрее воспринять
![Page 45: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/45.jpg)
Разрядка
![Page 46: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/46.jpg)
46
var name = function (value) { ....var a = 0, ........b = 42; ....if (value) { ........return a; ....} };
Разрядка БуряМглоюНебоКроет vs Буря мглою небо кроет
![Page 47: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/47.jpg)
47
for ( var i = 0 ; i < 100 ; i++ ){ } for (var i = 0; i < 100; i++){ }
Разрядка, но без фанатизма Буря Мглою Небо Кроет vs Буря мглою небо кроет
![Page 48: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/48.jpg)
48
Сильно разряженный код сложно воспринять
![Page 49: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/49.jpg)
49
<div class="b-header"></div>
Однако не везде она работает В HTML перед и после равно пробел как правило не ставят
![Page 50: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/50.jpg)
Начало - конец
![Page 51: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/51.jpg)
51
var name = function (value) { ....var a = 0, ........b = 42; if (value) { ....return a; } };
Начало блока "видит" конец блока Код представляет из себя "параграфы текста"
![Page 52: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/52.jpg)
52
var name = function (value) { ....var a = 0, ........b = 42; ....if (value) { ........return a; ....} };
Начало блока "видит" конец блока Код представляет из себя "параграфы текста"
![Page 53: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/53.jpg)
53
<div class="b-header"> ....<div class="b-item">Abc</div> ....<div class="b-item">Abc</div> ....<div class="b-item">Abc</div> </div>
Начало блока "видит" конец блока
![Page 54: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/54.jpg)
54
<div class="b-header"> ....<div class="b-item"> ........Abc ....</div> ....<div class="b-item"> ........Abc ....</div> </div>
Начало блока "видит" конец блока Не везде это применимо: много писать, мельтешение, баги с пробелами
![Page 55: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/55.jpg)
Предотвращение ошибок
![Page 56: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/56.jpg)
56
<div class="b-header"> ....<div class="b-item"> ........Abc ....</div> ....<div class="b-item"> ........Abc ....</div> </div>
Лишние пробелы Переносы и пробел = +2 лишних пробельных символа
![Page 57: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/57.jpg)
57
Лишние пробелы Переносы и пробел = +2 лишних пробельных символа
var item = $('.b-item')[0]; if (item.innerHTML = "Abc") { // Недостижим }
![Page 58: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/58.jpg)
Точка с запятой в FE
![Page 59: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/59.jpg)
59
var name = function (value) { ....var a = 0, ........b = 42; ....if (value) { ........return a; ....} }
Точка с запятой в Function Expression
![Page 60: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/60.jpg)
60
cat **/*.js > all.js!
![Page 61: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/61.jpg)
61
var name = function (value) { }var name2 = function (value) { }
Точка с запятой в Function Expression SyntaxError: missing ; before statement
![Page 62: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/62.jpg)
62
var name = function (value) { ....var a = 0, ........b = 42; ....if (value) { ........return a; ....} };
Точка с запятой в Function Expression
![Page 63: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/63.jpg)
Скобки у циклов
![Page 64: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/64.jpg)
64
var name = function (value) { ....var a = 0, ........b = 42; ....if (value) ........return a; };
Скобки у циклов и условий Лень писать скобки
![Page 65: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/65.jpg)
65
var name = function (value) { ....var a = 0, ........b = 42; ....if (value) ........a = 42; ........return a; };
Скобки у циклов и условий Редкая логическая ошибка
![Page 66: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/66.jpg)
66
var name = function (value) { ....var a = 0, ........b = 42; ....if (value) { ........a = 42; ........return a; ....} };
Скобки у циклов и условий
![Page 67: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/67.jpg)
67
var name = function (value) { ....var a = 0, ........b = 42; ....if (value) return a; };
Скобки у циклов и условий Много скобок создает много шума
![Page 68: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/68.jpg)
Auto semicolon insertion
![Page 69: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/69.jpg)
69
var name = function (value) { ....var a = 0, ........b = 42; ....if (value) { ........return ............{pewpew: a}; ....} };
Auto semicolon insertion
![Page 70: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/70.jpg)
70
var name = function (value) { ....var a = 0, ........b = 42; ....if (value) { ........return; ............{pewpew: a}; ....} };
Auto semicolon insertion После return будет поставлена ;
http://es5.github.com/#x7.9
![Page 71: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/71.jpg)
Последнее свойство перекрывает предшествующее
Свойства с префиксами в CSS
![Page 72: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/72.jpg)
72
.b-form { box-shadow: 0 0 400px 200px #000; -webkit-box-shadow: 0 0 400px 200px #000; }
Свойства с префиксами в CSS
![Page 73: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/73.jpg)
73
Свойства с префиксами в CSS
![Page 74: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/74.jpg)
74
.b-form { -webkit-box-shadow: 0 0 400px 200px #000; box-shadow: 0 0 400px 200px #000; }
Свойства с префиксами в CSS Последним должен идти свойство без префикса
http://pepelsbey.net/pres/pre-fixes/
![Page 75: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/75.jpg)
75
Свойства с префиксами в CSS
![Page 76: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/76.jpg)
76
Еще несколько слов…
• Документирование неявного кода – Код должен быть максимально самодокументируемым
• Написание примеров использования – Чтобы не рыться в коде
• Сокращение длины строки – Чтобы не вертеть головой и не скролить
• Уменьшение уровней вложенности – Быстрее читать код
• Единообразие в модулях и именах • Автоматизированная проверка кода ♥
– IDE – Pre Commit Hook
![Page 77: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/77.jpg)
77
Код должен выглядеть так как будто его пишет один человек
![Page 78: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/78.jpg)
78
А как в Яндексе?
![Page 79: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/79.jpg)
79
Как мы делаем в Яндексе
• Love & Peace • У каждого проекта свой Code Style
– Страница в Вики – Или CONTRIBUTE.md файл в корне проекта
• Есть стиль по умолчанию – Страница в Вики со стилей по языкам – Не обязательный – на случай если лень
• Стараемся использовать общепринятый – Так проще новым разработчикам – Привычней читать сторонний код
• Code Review – Зависит от размера проекта – Как правило новички проходят обязательно
![Page 80: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/80.jpg)
80
Заключение
• Соглашение Code Style - Must have! • Нужно знать меру
– Разрядка пробелами – Фигурные скобки
• Все правила имеют на то причину
![Page 81: Code Style (in russian)](https://reader033.vdocuments.mx/reader033/viewer/2022051209/5486dd7cb47959e20c8b5375/html5/thumbnails/81.jpg)
81