Стандарт разработки приложений на языке Java




НазваниеСтандарт разработки приложений на языке Java
страница1/12
Дата публикации06.09.2013
Размер1.32 Mb.
ТипДокументы
odtdocs.ru > Информатика > Документы
  1   2   3   4   5   6   7   8   9   ...   12

FLEISS Frameworks

Стандарт разработки приложений на языке Java

www.fleissframeworks.org

FLEISS Frameworks. Стандарт разработки приложений на языке Java.

Copyright © 2013 год, FLEISS Frameworks Project.

Версия документа: 0.02

Дата публикации: 6 июля 2013 года.

Авторы: Жанат С. Скокбаев, <приглашаются к сотрудничеству>

Участники: <приглашаются к сотрудничеству>




Лицензионная политика:




Данный документ распространяется на условиях Лицензии свободной документации GNU (GNU FDL), Версия 1.3.
http://www.gnu.org/licenses/fdl-1.3.html

Предоставляется разрешение копировать, распространять и/или изменять этот документ на определениях и условиях Лицензии свободной документации GNU версии 1.3 или более поздней версии, опубликованной Фондом свободного программного обеспечения; без Постоянных разделов, без Текстов лицевой обложки, и без Текстов задней обложки. Копию лицензии смотрите, пожалуйста, в разделе «GNU Free Documentation License». Её перевод представлен в разделе «Лицензия свободной документации GNU».




Все оригинальные разработки, модели, рисунки и диаграммы, а также примеры программного кода, представленные в документе, распространяются только на условиях Стандартной общественной лицензии GNU (GNU GPL), Версия 3.
http://www.gnu.org/licenses/gpl-3.0.html
Подробнее, пожалуйста, смотрите документ «Лицензионная политика проекта FLEISS Frameworks».
http://www.fleissframeworks.org/licensing/




Благодарности:




Документ создан с использованием семейства свободных шрифтов Liberation Fonts.
Liberation Fonts © 2008 год, Red Hat, Inc. Распространяются на условиях Стандартной общественной лицензии GNU (GNU GPL),
Версия 2.
https://fedorahosted.org/liberation-fonts/




При создании рисунков и диаграмм использовались пиктограммы из
графической темы Oxygen Icon Theme. www.oxygen-icons.org
Oxygen Icon Theme © 2005 год, Давид Виньони (David Vignoni). Распространяется на условиях Малой стандартной общественной лицензии GNU (GNU LGPL), Версия 3.
http://www.oxygen-icons.org/?page_id=4








Содержание

История документа 10

Введение 11

Почему важны стандарты? 11

Аудитория 12

Сопутствующая документация 13

Условные обозначения 13

Часть I. Общие соглашения 15

Глава 1. Общие правила 16

Правило 1.1. Стиль наименований и оформления 16

Правило 1.2. Стиль программирования 16

Правило 1.3. Названия шаблонов 17

Правило 1.4. Самодокументированный код 17

Часть II. Соглашения о наименованиях 18

^ Глава 2. Общие правила наименования 19

Правило 2.1. Буквы, цифры и нижнее подчёркивание 19

Правило 2.2. Английский алфавит 20

Правило 2.3. Английские слова 20

Правило 2.4. Терминология предметной области 20

Правило 2.5. Первая буква 20

Правило 2.6. Содержательное и короткое 20

Правило 2.7. Будьте разумны с сокращениями и аббревиатурами 21

Правило 2.8. Не сокращайте имена без надобности 21

Правило 2.9. Предпочитайте постоянство 22

Правило 2.10. Верблюжий стиль 22

Правило 2.11. Аббревиатура в верблюжьем стиле 22

Правило 2.12. Явное отличие 23

Правило 2.13. Число названия 23

Правило 2.14. Взаимнообратные имена 23

^ Глава 3. Специальные правила наименования 25

Правило 3.1. Названия пакетов 25

Правило 3.2. Названия типов 26

Правило 3.3. Названия переменных 26

Правило 3.4. Названия констант 26

Правило 3.5. Имена констант в группе 27

Правило 3.6. Названия методов 27

Правило 3.7. Называйте методы после того, как станет ясно, что они должны делать 28

Правило 3.8. Названия закрытых переменных 28

Правило 3.9. Названия локальных переменных 28

Правило 3.10. Длина названий переменных 29

Правило 3.11. Не включайте название типа в название метода объекта 29

Правило 3.12. Методы get/set 30

Правило 3.13. Префикс is для логических переменных и методов 32

Правило 3.14. Не используйте негативные логические значения 32

Правило 3.15. Указание на обработку данных 33

Правило 3.16. Указание на поиск данных 33

Правило 3.17. Указание на инициализацию объекта 34

Правило 3.18. Постфиксы для объектов JFC (AWT, Swing, Java2D) 34

Правило 3.19. Префикс n для переменных количества 34

Правило 3.20. Постфикс No для идентификатора объекта 35

Правило 3.21. Названия итераторов 35

Правило 3.22. Названия классов исключений 36

Правило 3.23. Название реализации по умолчанию 36

Часть III. Файлы 37

^ Глава 4. Правила наименования файлов 38

Правило 4.1. Расширение файлов исходных кодов Java 38

Правило 4.2. Имена файлов исходных кодов классов и интерфейсов 38

^ Глава 5. Правила оформления файлов 40

Правило 5.1. Правая граница текста файла 40

Правило 5.2. Не используйте специальные символы форматирования 40

Правило 5.3. Прозрачность переносов 41

Часть IV. Операторы 42

^ Глава 6. Пакеты и импорт 43

Правило 6.1. Первой инструкцией должна быть package 43

Правило 6.2. Порядок следования инструкций импорта 43

Правило 6.3. Классы и интерфейсы должны каждый импортироваться по отдельности 44

^ Глава 7. Классы и интерфейсы 47

Правило. 7.1. Порядок следования объявлений класса (интерфейса) 47

Глава 8. Методы 50

Правило 8.1. Порядок объявления метода 50

Правило 8.2. Порядок объявления метода main 51

^ Глава 9. Типы 52

Правило 9.1. Преобразование типов всегда должно быть явным 52

Правило 9.2. Оператор массива всегда должен быть у типа, а не переменной 52

^ Глава 10. Переменные 54

Правило 10.1. Порядок объявления переменных 54

Правило 10.2. Порядок инициализации переменных 55

Правило 10.3. Область видимости переменных 56

Правило 10.4. Переменные никогда не должны иметь двойного значения 56

Правило 10.5. Переменные объекта никогда не должны объявляться открытыми 56

Правило 10.6. Порядок объявления массивов 57

Правило 10.7. Время жизни переменных 58

^ Глава 11. Циклы 59

Правило 11.1. Чёткая конструкция цикла for 59

Правило 11.2. Переменные цикла 60

Правило 11.3. Старайтесь избегать циклов do-while 61

Правило 11.4. Старайтесь организовывать циклы без break и continue 61

^ Глава 12. Оператор switch 62

Правило 12.1. Указывайте инструкцию break для каждой метки case 62

Правило 12.2. Всегда создавайте метку default 63

Глава 13. Условные переходы 64

Правило 13.1. Избегайте длинных и сложных условных конструкций 64

Правило 13.2. Ключевое условие должно быть первым 64

Правило 13.3. Каждое условие должно указываться на отдельной строке 65

Правило 13.4. Условие не должно содержать вычислений 66

^ Глава 14. Другие операторы 68

Правило 14.1. Не применяйте магические числа 68

Правило 14.2. Типы с плавающей запятой всегда должны указываться с десятичным разрядом 69

Правило 14.3. Типы с плавающей запятой всегда должны указываться в полной нотации 69

Правило 14.4. Вызов статических методов всегда через класс 70

Часть V. Оформление кода и документации 71

^ Глава 15. Общие правила оформления кода 72

Правило 15.1. Размер отступа 72

Правило 15.2. Основная разметка программного кода 73

Правило 15.3. Разметка классов и интерфейсов 73

Правило 15.4. Разметка методов 74

Правило 15.5. Разметка условных конструкций if-else и else-if 74

Правило 15.6. Разметка цикла for 74

Правило 15.7. Разметка цикла for-each 75

Правило 15.8. Разметка цикла while 75

Правило 15.9. Разметка цикла do-while 75

Правило 15.10. Разметка управляющей структуры switch 76

Правило 15.11. Разметка конструкции try-catch-finally 76

Правило 15.12. Конструкции if-else, for и while всегда должны ограничиваться фигурными скобками 77

Правило 15.13. Разметка пустых блоков 77

Правило 15.14. Разметка пробелами 78

Правило 15.15. Разметка пустыми строками 78

Правило 15.16. Объявления должны выравниваться по левому краю 80

Правило 15.17. Элементы программного кода могут быть выравнены для удобства чтения 80

^ Глава 16. Комментарии 82

Правило 16.1. Плохой код должен переписываться, а не избыточно комментироваться 82

Правило 16.2. Язык программных комментариев 82

Правило 16.3. Разметка однострочных комментариев 83

Правило 16.4. Разметка многострочных комментариев 83

Правило 16.5. Отступ комментариев 84

Правило 16.6. Обязательное комментирование анонимных классов и коллекций 84

Правило 16.7. Комментарии и документация Javadoc 85

^ Глава 17. Документация Javadoc 86

Правило 17.1. Обязательность комментариев Javadoc 86

Правило 17.2. Разметка комментариев Javadoc 87

Правило 17.3. Теги Javadoc 88

Правило 17.4. Не полагайтесь на наследование комментариев Javadoc 94

^ Глава 18. Шаблоны проектирования 95

Правило 18.1. Применяйте шаблоны для решения задачи 95

Правило 18.2. Тег @pattern для шаблона проектирования 95

Правило 18.3. Шаблон Singleton должен содержать метод getInstance 96

Правило 18.4. Метод new шаблона Factory 96

Правило 18.5. Шаблон Typesafe Enum для типов перечислений 97

Часть VI. Безопасность 99

^ Глава 19. Общие правила безопасности 100

Правило 19.1. Семь коварных царств 100

1. Контроль и отображение входных данных 100

2. Неправильное использование API 101

3. Средства защиты 101

4. Координация времени и состояния 101

5. Исключительные ситуации 101

6. Качество программного кода 101

7. Инкапсуляция 102

*. Программное окружение 102

Правило 19.2. Не доверяйте секреты программному коду 102

Правило 19.3. Применяйте защитное программирование 103

^ Глава 20. Безопасность доступа 104

Правило 20.1. Следуйте принципу минимума привилегий 104

Правило 20.2. Окончательная история (final story) 104

Правило 20.3. Не полагайтесь на доступ уровня пакета 105

Правило 20.4. Никогда не используйте внутренние классы 105

Правило 20.5. Избегайте привилегированного режима для программного кода 106

^ Глава 21. Безопасность классов и объектов 107

Правило 21.1. Управляйте инициализацией объекта класса 107

Правило 21.2. Управляйте инициализацией класса 108

Правило 21.3. Управляйте функцией клонирования 109

Правило 21.4. Не сравнивайте классы по имени 111

Правило 21.5. Управляйте изменяемостью классов 112

Правило 21.6. Никогда не возвращайте изменяемые объекты внешнему коду 112

Правило 21.7. Никогда не используйте внешние объекты напрямую 112

Правило 21.8. Не используйте статические переменные для сохранения важной информации 113

^ Глава 22. Безопасность сериализации и десериализации 114

Правило 22.1. Управляйте сериализацией объектов 114

Правило 22.2. Управляйте десериализацией объектов 115

Приложение А. Лицензия
GNU FDL, Версия 1.3 117

GNU Free Documentation License 117

Лицензия свободной документации GNU 125

Библиография 136

Рисунки

Таблицы

Таблица. Теги документации Javadoc по порядку следования. 88


^ История документа

Дата

Версия

Описание

17.07.2010

0.01

Первая публикация документа.

06.07.2013

0.02

Уточнена информация об авторах документа; исправлены различные ошибки и неточности.

Введение

Стандарт Проекта FLEISS Frameworks для разработки приложений на языке Java определяет правила наименования, оформления кода и приложений, написанных на языке программирования Java.

Введение включает следующие разделы:

  • Почему важны стандарты?;

  • Аудитория;

  • Сопутствующая документация;

  • Условные обозначения.

Почему важны стандарты?

Основная цель стандартизации - способствовать накоплению знаний о лучших практиках и способах применения технологий, таким образом удерживая от общих ошибок и заблуждений, фактически, посредством некоторого принуждения, потому что из всех возможных способов стандарт оставляет некоторое подмножество прошедших проверку опытом, и потому забирает часть свободы выбора. Выбрать ошибочный путь - это тоже свобода, только теперь она остаётся у тех, кто не желает следовать стандарту. Цена этой свободы - повторить путь ошибок и заблуждений, чтобы в его конце проверить, действительно ли лучший способ применения технологии совпадает со стандартным. Если окажется, что это не так, то у вас есть серьёзная возможность улучшить стандарт. По крайней мере, попытаться это сделать.

Вторая по значимости цель стандартизации - унифицировать применение технологий, устранить разнобой и разночтения их возможностей, и так обеспечить совместимость между результатами труда разных людей и организаций. Здесь также присутствует некоторое ограничение свободы, потому что база стандарта - люди и организации, поделившиеся своим опытом, - ограничена по определению. Хорошая новость в том, что оптимальные способы применения некоторой технологии весьма немногочисленны и имеют свойство повторяться. Стандарт - конечный итог процесса стандартизации, - не есть некое среднее значение от предложений всех участников, но те немногие проверенные способы, выкристаллизованные из бесконечного числа вариантов и комбинаций. Они становятся основой, надежным фундаментом для эффективного обмена опытом использования технологии. Они позволяют избегать изучения малозначащих особенностей каждой отдельной системы, освобождают от пустой траты времени и усилий на поиск соответствий между разными системами, но дают бесценную возможность с первого взгляда увидеть новый опыт, новое знание.

Язык программирования Java стал новым этапом развития технологий разработки программных систем. Он вобрал в себя лучшие достижения, накопленные в этой области, и достиг новых, определивших направления развития методов разработки программного обеспечения на многие годы вперёд. Сегодня Java не просто язык программирования, но платформа разработки программного обеспечения, являющаяся эталонной для корпоративных приложений.

Сильнейшая сторона платформы Java - ориентированность на методологию разработки и компонентное программирование, или, как его ещё называют, разработка, ориентированная на библиотеки (library-oriented development). Java создала надёжную, прозрачную, технологически мощную и гибкую основу для повторного использования программного кода в виде программных библиотек и компонентов. Платформа Java создала новые стандарты качества, надёжности и скорости разработки программного обеспечения, добилась высоких показателей эффективности и производительности программных систем, ввела новые методы и подходы создания корпоративных приложений. Ключевым средством для этого стали строгие стандарты и соглашения (standards and conventions), введённые как в самом языке, так и созданные в среде ведущих разработчиков.

Проект FLEISS надеется, что данное Руководство будет надёжным и удобным средством разработки приложений на платформе Java для всех своих участников.

Аудитория

Целевой аудиторией Руководства рассматриваются следующие лица:

  • Программисты и разработчики, применяющие фреймворки семейства FLEISS Frameworks в своих проектах;

  • Все участники Проекта FLEISS Framework, либо планирующие такое участие;

  • Системные и баз данных администраторы, управляющие вычислительными системами, в которых использованы или предполагаются к использованию разработки Проекта FLEISS Frameworks;

  • Исполнительные руководители организаций, рассматривающих возможность использования либо уже применяющих разработки Проекта FLEISS;

  • Широкая общественность без каких-либо ограничений и исключений.

^ Сопутствующая документация

Дополнительную информацию по вопросам, изложенным в Руководстве, содержат следующие документы Проекта FLEISS Frameworks:

  • В руководстве Концепции проекта FLEISS Frameworks представлены общие концепции и положения Проекта;

  • Руководство по безопасности содержит положения политики безопасности Проекта;

  • Руководство по инструментальной политике представляет перечень программных языков, инструментов, продуктов и стандартов, применяемых в Проекте.

^ Условные обозначения

В Руководстве используются следующие условные обозначения:

Обозначение

Значение

полужирный шрифт

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

курсив

Курсив используется для выделения какого-либо понятия или названия в тексте.

моноширинный шрифт

Моноширинный шрифт используется для выделения программного кода в тексте и примерах; адресов URL; сообщений, отображаемых на экране монитора; текста, вводимого в программу.

очень важно

Шрифт с подчёркиванием применяется для выделения особо важных сообщений.

[1]

Номер в квадратных скобках, расположенный в тексте, указывает на индекс публикации в разделе «Библиография».

{ ... }

В примерах троеточие в теле программного блока указывает, что малосущественная для понимания примера часть программного кода была опущена.




Графический символ для примера, соответствующего правилам стандарта.




Графический символ для примера, не противоречащего, но и не рекомендуемого правилами стандарта.




Графический символ для примера, противоречащего правилам стандарта.

Часть I. Общие соглашения

В этой части Руководства представлены общие соглашения, применяемые при разработке программ на языке Java. Она включает следующие главы:

  • ^ Глава 1. Общие правила.

  1   2   3   4   5   6   7   8   9   ...   12

Добавить документ в свой блог или на сайт

Похожие:

Учебное пособие Москва 2008
По для объектно-ориентированного программирования и разработки приложений на языке Java

Лабораторная работа №4 по курсу «тфкп» на тему: «Типы данных, переменные,...
Изучить типы данных, правила объявления переменных, констант и массивов в языке Java. Научиться создавать программы на языке Java,...

Лабораторная работа №4 по курсу «тфкп» на тему: «Типы данных, переменные,...
Изучить типы данных, правила объявления переменных, констант и массивов в языке Java. Научиться создавать программы на языке Java,...

Лабораторная работа №4 по курсу «тфкп» на тему: «Типы данных, переменные,...
Изучить типы данных, правила объявления переменных, констант и массивов в языке Java. Научиться создавать программы на языке Java,...

Предпосылки использования хранимых процедур на языке Java
Обзор, разработка и использование хранимых процедур, написанных на языке Java в субд oracle

Лабораторная работа №3 по курсу «тфя» на тему: «Разработка веб-приложений...
...

Лабораторная работа №3 по курсу «тфя» на тему: «Разработка веб-приложений...
...

Лабораторная работа №4 по курсу «тфя» на тему: «Разработка веб-приложений с помощью Java»
Убедиться, что все правильно сконфигурировано с помощью команд java -version, javac -version

Application server configuration Установка сервера приложений
В качестве сервера приложений используется Glassfish, дистрибутив доступен по адресу: https://glassfish dev java net/public/downloadsindex...

Доклад затрагивает тему одного из подходов разработки веб-приложений...
Один из подходов разработки веб-приложений на базе технологий Ruby On Rails и mozilla

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
odtdocs.ru
Главная страница