SlideShare a Scribd company logo
1 of 31
Советы по написанию кода.
Именование, массивы, перечисления
О себе
   Воробьев Артем

   Разработчик игр в
   Softeq Development

    artyom.vorobyov
    arvorobyov
    artyom.vorobyov@softeq.com
О чем будем говорить:
        •   Документирование кода
        •   Советы по именованию
        •   Использование массивов и
            перечислений
1. Документирование кода

•   Написание специальных документов
•   Использование соглашений
•   Написание комментариев
•   Названия классов, переменных, методов и
    констант
•   Использование архитектурных схем
Использование соглашений
•   Гайдлайн – это требования, советы и
    рекомендации
•   Можно использовать гайдлайны известных
    разработчиков (Google, Apple и т.д.)
•   Соглашения могут касаться разных аспектов:
    •   Когда и как писать комментарии
    •   Как называть классы
    •   Как рисовать архитектурные схемы
    •   Как группировать код
Группировка строк кода (1)
Группировка строк кода (2)
Группировка строк кода (3)
Группировка строк кода (4)
Группировка методов
Написание комментариев
Пишем комментарии

•   К блокам кода для группировки
•   К интерфейсу классов и методов
•   К частям сложного алгоритма для
    пояснения хода вычислений
•   К неочевидным строкам кода (такие
    комментарии обычно указывают на плохой
    код)
Комментарии к интерфейсу (1)
Комментарии к интерфейсу (2)

             •   Здесь использована
                 нотация Javadoc
             •   Комментируем сам
                 класс, в общем
                 описывая что это
                 такое, для чего нужно
                 и как им пользоваться
             •   Комментируем public-
                 методы класса
Комментарии к интерфейсу (3)

•   Комментарии к интерфейсу тяжело писать
    только первые пару раз
•   Комментарии к интерфейсу лучше писать
    до того, как реализовывать этот
    интерфейс
•   Если вы не можете сформулировать
    комментарий, это может указывать на
    ошибку проектирования
2. Именование

•   Используем префиксы к именам классов
•   Группирующее слово пишем первым в
    имени класса
•   Группирующее слово пишем первым в
    имени переменной
Префиксы к именам классов
Группирующее слово в имени класса
Группирующее слово в имени
            переменной
•   Венгерская нотация
•   Плохое использование венгерской нотации:
    привязка исключительно к типу (dw –
    Double Word, i – Int, b – Byte и т.д.)
•   Хрошее использование венгерской нотации:
    привязка к контексту:
      int humanHeight;
      float humanWeight
      float animalWeight;
Архитектурные схемы (1)
Архитектурные схемы (2)
•   Рисуем на листиках или на доске
•   Фотографируем схемы с листика или доски
•   Храним фотографии как документацию к
    проекту
•   Схемы можно распечатать и делать на них
    пометки при дальнейшей работе
•   Используйте диаграммы классов из UML и
    OMT (Object Modelling Technique)
3. Использование массивов
Сворачивание данных в массив
•   Имеет смысл делать, если вы видите
    последовательные блоки
    кода, осуществляющие однотипные операции
    над разными объектами
•   Упрощает сопровождаемость кода
•   Позволяет масштабировать код – если
    объектов станет больше чем 3, это потребует
    всего-лишь увеличения массива
•   Может быть нецелесообразным в
    высокопроизводительном коде из-за
    дополнительных условных операторов
Пример: человек на поле
Сдвинуть человека на соседнюю клетку
То же, с помощью перечисления
Двигаем человека на соседнюю клетку
Макросы для перечислений
Цикл с макросами
Если нужно поменять порядок
        направлений
Спасибо! Вопросы?

       Воробьев Артем

       Разработчик игр в
       Softeq Development

       Skype: artyom.vorobyov
            обращайтесь!

More Related Content

Similar to Solit 2013, Советы по написанию кода: именование, массивы и перечисления, Воробьев Артем

Промышленная разработка ПО. Лекция 4. Особенности работы программиста. Ча…
Промышленная разработка ПО. Лекция 4. Особенности работы программиста.  Ча…Промышленная разработка ПО. Лекция 4. Особенности работы программиста.  Ча…
Промышленная разработка ПО. Лекция 4. Особенности работы программиста. Ча…Mikhail Payson
 
Практические аспекты разработки ПО #3
Практические аспекты разработки ПО #3Практические аспекты разработки ПО #3
Практические аспекты разработки ПО #3Denis Umnov
 
как стать хорошим веб технологом. нарек мкртчян. зал 4
как стать хорошим веб технологом. нарек мкртчян. зал 4как стать хорошим веб технологом. нарек мкртчян. зал 4
как стать хорошим веб технологом. нарек мкртчян. зал 4rit2011
 
CodeFest 2013. Бурмако Е. — Макросы в Скале
CodeFest 2013. Бурмако Е. — Макросы в СкалеCodeFest 2013. Бурмако Е. — Макросы в Скале
CodeFest 2013. Бурмако Е. — Макросы в СкалеCodeFest
 
Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...
Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...
Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...Alexey Neznanov
 
Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практикеDenis Tuchin
 
Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей. Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей. Levon Avakyan
 
C++ осень 2012 лекция 7
C++ осень 2012 лекция 7C++ осень 2012 лекция 7
C++ осень 2012 лекция 7Technopark
 
игровая логика, проблемы и решения
игровая логика, проблемы и решенияигровая логика, проблемы и решения
игровая логика, проблемы и решенияВладимир Кожаев
 
Aspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHPAspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHPAlexander Lisachenko
 
Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"Sergey Nemchinsky
 
Программистский подход в дизайне
Программистский подход в дизайнеПрограммистский подход в дизайне
Программистский подход в дизайнеПрофсоUX
 
разработка бизнес приложений (9)
разработка бизнес приложений (9)разработка бизнес приложений (9)
разработка бизнес приложений (9)Alexander Gornik
 
Компьютерная графика. Введение в Processing
Компьютерная графика. Введение в ProcessingКомпьютерная графика. Введение в Processing
Компьютерная графика. Введение в ProcessingTatiana Volkova
 
Никита Цуканов - "Avalonia UI Cross-platform Open Source UI Framework"
Никита Цуканов - "Avalonia UI Cross-platform Open Source UI Framework"Никита Цуканов - "Avalonia UI Cross-platform Open Source UI Framework"
Никита Цуканов - "Avalonia UI Cross-platform Open Source UI Framework"Elias Fofanov
 

Similar to Solit 2013, Советы по написанию кода: именование, массивы и перечисления, Воробьев Артем (20)

Промышленная разработка ПО. Лекция 4. Особенности работы программиста. Ча…
Промышленная разработка ПО. Лекция 4. Особенности работы программиста.  Ча…Промышленная разработка ПО. Лекция 4. Особенности работы программиста.  Ча…
Промышленная разработка ПО. Лекция 4. Особенности работы программиста. Ча…
 
Фишки и прелести TypeScript
Фишки и прелести TypeScriptФишки и прелести TypeScript
Фишки и прелести TypeScript
 
Практические аспекты разработки ПО #3
Практические аспекты разработки ПО #3Практические аспекты разработки ПО #3
Практические аспекты разработки ПО #3
 
как стать хорошим веб технологом. нарек мкртчян. зал 4
как стать хорошим веб технологом. нарек мкртчян. зал 4как стать хорошим веб технологом. нарек мкртчян. зал 4
как стать хорошим веб технологом. нарек мкртчян. зал 4
 
C# 3.0
C# 3.0C# 3.0
C# 3.0
 
CodeFest 2013. Бурмако Е. — Макросы в Скале
CodeFest 2013. Бурмако Е. — Макросы в СкалеCodeFest 2013. Бурмако Е. — Макросы в Скале
CodeFest 2013. Бурмако Е. — Макросы в Скале
 
Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...
Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...
Неотрефлексированный сдвиг парадигмы: от поколений языков программирования вы...
 
Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практике
 
DDD Workshop
DDD WorkshopDDD Workshop
DDD Workshop
 
Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей. Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей.
 
запахи кода
запахи кодазапахи кода
запахи кода
 
C++ осень 2012 лекция 7
C++ осень 2012 лекция 7C++ осень 2012 лекция 7
C++ осень 2012 лекция 7
 
игровая логика, проблемы и решения
игровая логика, проблемы и решенияигровая логика, проблемы и решения
игровая логика, проблемы и решения
 
Aspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHPAspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHP
 
Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"
 
Программистский подход в дизайне
Программистский подход в дизайнеПрограммистский подход в дизайне
Программистский подход в дизайне
 
разработка бизнес приложений (9)
разработка бизнес приложений (9)разработка бизнес приложений (9)
разработка бизнес приложений (9)
 
Компьютерная графика. Введение в Processing
Компьютерная графика. Введение в ProcessingКомпьютерная графика. Введение в Processing
Компьютерная графика. Введение в Processing
 
лекция №1
лекция №1лекция №1
лекция №1
 
Никита Цуканов - "Avalonia UI Cross-platform Open Source UI Framework"
Никита Цуканов - "Avalonia UI Cross-platform Open Source UI Framework"Никита Цуканов - "Avalonia UI Cross-platform Open Source UI Framework"
Никита Цуканов - "Avalonia UI Cross-platform Open Source UI Framework"
 

More from solit

Jazz team cooperation roadmap
Jazz team cooperation roadmapJazz team cooperation roadmap
Jazz team cooperation roadmapsolit
 
JazzTeam company presentation
JazzTeam company presentationJazzTeam company presentation
JazzTeam company presentationsolit
 
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко АнтонSolit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антонsolit
 
Solit 2014, Scrum guide 2013, Семенченко Антон
Solit 2014, Scrum guide 2013, Семенченко АнтонSolit 2014, Scrum guide 2013, Семенченко Антон
Solit 2014, Scrum guide 2013, Семенченко Антонsolit
 
Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...
Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...
Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...solit
 
Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...
Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...
Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...solit
 
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...solit
 
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...solit
 
Solit 2014, Cемантическое ядро сайта, Нагибович Юлия
Solit 2014, Cемантическое ядро сайта, Нагибович ЮлияSolit 2014, Cемантическое ядро сайта, Нагибович Юлия
Solit 2014, Cемантическое ядро сайта, Нагибович Юлияsolit
 
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...solit
 
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...solit
 
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко Антон
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко АнтонSolit 2014, Как эффективно организовать Автоматизацию, Семенченко Антон
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко Антонsolit
 
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsma
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter ReitsmaSolit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsma
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsmasolit
 
Solit 2014, Мифы и легенды SEO, Крылов Александр
Solit 2014, Мифы и легенды SEO, Крылов АлександрSolit 2014, Мифы и легенды SEO, Крылов Александр
Solit 2014, Мифы и легенды SEO, Крылов Александрsolit
 
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...solit
 
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...solit
 
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...solit
 
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...solit
 
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...solit
 
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...solit
 

More from solit (20)

Jazz team cooperation roadmap
Jazz team cooperation roadmapJazz team cooperation roadmap
Jazz team cooperation roadmap
 
JazzTeam company presentation
JazzTeam company presentationJazzTeam company presentation
JazzTeam company presentation
 
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко АнтонSolit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
Solit 2014, Agile ValueTeam, учимся понимать Scrum, Семенченко Антон
 
Solit 2014, Scrum guide 2013, Семенченко Антон
Solit 2014, Scrum guide 2013, Семенченко АнтонSolit 2014, Scrum guide 2013, Семенченко Антон
Solit 2014, Scrum guide 2013, Семенченко Антон
 
Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...
Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...
Solit 2014, Подготовка специалистов в сфере It на факультетe информационных т...
 
Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...
Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...
Solit 2014, Адраджэнне Памяти аб продках пачынаецца з дзеянняу нашчадкау, Уру...
 
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
Solit 2014, Централизованное управление тестами с помощью TestLink, Зубович В...
 
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
Solit 2014, Инструменты автоматизации тестирования мобильных приложений. Срав...
 
Solit 2014, Cемантическое ядро сайта, Нагибович Юлия
Solit 2014, Cемантическое ядро сайта, Нагибович ЮлияSolit 2014, Cемантическое ядро сайта, Нагибович Юлия
Solit 2014, Cемантическое ядро сайта, Нагибович Юлия
 
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...
Solit 2014, Геоанамальные зоны и сейсмоакустика. Субъективный взгляд. Миснико...
 
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...
Solit 2014, Обзор белоруского интернет потребителя и рекламодателя. Что хочет...
 
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко Антон
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко АнтонSolit 2014, Как эффективно организовать Автоматизацию, Семенченко Антон
Solit 2014, Как эффективно организовать Автоматизацию, Семенченко Антон
 
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsma
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter ReitsmaSolit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsma
Solit 2014, Freelance and Nearshoring from a Dutch Perspective, Peter Reitsma
 
Solit 2014, Мифы и легенды SEO, Крылов Александр
Solit 2014, Мифы и легенды SEO, Крылов АлександрSolit 2014, Мифы и легенды SEO, Крылов Александр
Solit 2014, Мифы и легенды SEO, Крылов Александр
 
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
Solit 2014, Измеряем производительность Webприложения на сторне клиента с пом...
 
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...
Solit 2014, Непрерывная интеграция сложного проекта. Кто все сломал?, Русаков...
 
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...
Solit 2014, Реактивный Javascript. Победа над асинхронностью и вложенностью, ...
 
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...
Solit 2014, 3 этапа развития аналитики вашего бизнеса. Как правильно определи...
 
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...
Solit 2014, Опыт участия в конкурсе по спортивному программированию Russian A...
 
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
Solit 2014, MapReduce и машинное обучение на hadoop и mahout, Слисенко Конста...
 

Solit 2013, Советы по написанию кода: именование, массивы и перечисления, Воробьев Артем