Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для vvm28
771 / 539 / 67
Регистрация: 22.12.2013
Сообщений: 2,497
Записей в блоге: 26

Где найти рекомендации по стилю написания кода?

22.03.2016, 12:09. Показов 1176. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Существует ли литература с общими рекомендациями по стилю написания кода на языке Java?
Интересуют общие рекомендации, а не стиль принятый на вооружение отдельно взятой компанией.
Больше интересует не стиль оформления(египетские или не египетские скобки, это вообще не интересует), а рекомендации по именованию методов, классов, переменных.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.03.2016, 12:09
Ответы с готовыми решениями:

Спрашиваю совет по стилю написания кода
#include <vector> #include <string> class Errors { private: size_t i; //Глобальный счетчик циклов. std::string...

Что можно отнести к хорошему стилю написания программ?
Помимо расположения операторных скобок относительно друг друга.

Где найти грамотные уроки и рекомендации
Доброго времени суток. Народ, хелп. Пытаюсь изучить cms wordpress, ищу инфу в сети. Создалось впечатление, что люди которые выкладывают...

12
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
22.03.2016, 12:11
vvm28, как насчет гугла?
http://ru-java.livejournal.com/610367.html
https://habrahabr.ru/post/112042/
0
 Аватар для vvm28
771 / 539 / 67
Регистрация: 22.12.2013
Сообщений: 2,497
Записей в блоге: 26
22.03.2016, 12:45  [ТС]
Спасибо. На Хабре интересная статья.
Однако, египетские скобки мне, да и многим другим скорее всего, не очень нравятся в рекомендации.
Еще нашел:
http://www.oracle.com/technetw... 36057.html
Последняя редакция этого документа была сделана 20 апреля 1999

Проводились ли серьезные исследования по скорости восприятию кода, в зависимости от стиля его оформления?

Еще хотелось бы посмотреть на достаточно большой фрагмент кода,
в хорошем стилистическом оформлении. Что бы не просто так взглянуть, а максимально быстро понять,
что в нем происходит. Ну и сразу сказать : "Да это хороший пример!!! Настоящий шедевр."
Оформлен не по всем догмам и канонам, но читается хорошо.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
22.03.2016, 12:48
Цитата Сообщение от vvm28 Посмотреть сообщение
днако, египетские скобки мне, да и многим другим скорее всего, не очень нравятся в рекомендации.
это очень субъективно
Цитата Сообщение от vvm28 Посмотреть сообщение
Еще хотелось бы посмотреть на достаточно большой фрагмент кода,
в хорошем стилистическом оформлении. Что бы не просто так взглянуть, а максимально быстро понять,
что в нем происходит. Ну и сразу сказать : "Да это хороший пример!!! Настоящий шедевр."
Оформлен не по всем догмам и канонам, но читается хорошо.
а это еще более субъектино
0
 Аватар для vvm28
771 / 539 / 67
Регистрация: 22.12.2013
Сообщений: 2,497
Записей в блоге: 26
22.03.2016, 13:18  [ТС]
Вам может показаться, что это достаточно праздные вопросы, но это не так.

Добавлено через 25 минут
По поводу египетских скобок. Сравните:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class MyClass {
    public static final int SOME_CONSTANT = 80;
    public int publicVoid1;
    public int publicVoid2;
    private int privateVoid3;
    private int privateVoid4;
    private int mPrivate;
    protected int mProtected;
}
 
public class MyClass 
        {
            public static final int SOME_CONSTANT = 90;
            public int publicVoid1;
            public int publicVoid2;
            private int privateVoid3;
            private int privateVoid4;
            private int mPrivate;
            protected int mProtected;
        }
Какой год вам будет легче воспринимать, в том случае если его будет много?
Попробуйте сделать большой класс и несколько вложенных блоков кода в этом классе.
Далее в объявлениях переменных :
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public class MyClass {
    public static final int SOME_CONSTANT = 80;
 
    public int publicVoid1;
    public int publicVoid2;
 
    private int privateVoid3;
    private int privateVoid4;
    private int mPrivate;
 
    protected int mProtected1;
    protected int mProtected1;
}
Оставляем пустую строку между public, private, protected.
Уже становится воспринимать такой код легче.

Но это еще достаточно абстрактная "стилизация" кода.
У нас переменные не отражают своей сути.
И потом это стилизация по открытости, закрытости переменных.
Если мы полностью будем писать имена publicIntVoid1;
То у нас имена переменных получатся длинными и не удобочитаемыми.

public int pubVoid1; // возможно уже какие-то улучшения.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
22.03.2016, 13:23
Цитата Сообщение от vvm28 Посмотреть сообщение
Какой год вам будет легче воспринимать, в том случае если его будет много?
потому я и сказал - это субъективно
лично у меня поднимается волна раздражения когда я вижу скобки с новой строки и для меня крайне важно что бы код форматировался по конвенциям от оракла

Java
1
2
3
public Ololo 
{
}
это вселенский кошмар если код на джаве, пусть так форматируют c# и 1с-ники
0
 Аватар для vvm28
771 / 539 / 67
Регистрация: 22.12.2013
Сообщений: 2,497
Записей в блоге: 26
22.03.2016, 13:34  [ТС]
"Какой год вам будет легче воспринимать, в том случае если его будет много?"
Не надо смешивать год и длину года в строке кода.
Вы что , хотите меня запутать?
Год издания тоже важен. Из старых публикаций можно почерпнуть много нового для себя.
Но стандарты и наше восприятие быстро меняются.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
22.03.2016, 13:36
какой "год"?
ты цитируешь себя и себе же отвечаешь, все в порядке?
0
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
22.03.2016, 13:39
Цитата Сообщение от vvm28 Посмотреть сообщение
Какой год вам будет легче воспринимать, в том случае если его будет много?
Я когда только открыл первую книгу по java методы писал так:

Java
1
2
3
4
5
6
7
8
9
10
public class MyClass 
        {
            public static final int SOME_CONSTANT = 90;
            public int publicVoid1;
            public int publicVoid2;
            private int privateVoid3;
            private int privateVoid4;
            private int mPrivate;
            protected int mProtected;
        }
Чуть позже, почитав о рекомендациях по оформлению кода, стал писать так, "как все".
Java
1
2
3
4
5
6
7
8
9
public class MyClass {
    public static final int SOME_CONSTANT = 80;
    public int publicVoid1;
    public int publicVoid2;
    private int privateVoid3;
    private int privateVoid4;
    private int mPrivate;
    protected int mProtected;
}
На данный момент, скопировав код в варианте 1 к себе в IDE первым делом делаю автоформатирование приводя код к варианту 2.

Мой ответ на ваш вопрос: Легче воспринимать тот формат к которому привык. А если учесть что в таком виде практически любой код на java, то к первому варианту лучше не привыкать... Хоть он и кажется более удобным.
0
 Аватар для vvm28
771 / 539 / 67
Регистрация: 22.12.2013
Сообщений: 2,497
Записей в блоге: 26
22.03.2016, 14:00  [ТС]
Намного легче воспринимать такое форматирование:
Java
1
2
3
public Ololo 
{
}
чем:
Java
1
2
public Ololo {
}
Это скорее всего дело привычки. Как оценить объективно?
Написать два кода совершенно разных классов по содержанию.

Классы пусть пишет другой человек. Это должен сделать другой человек. Не вы.
Заранее вам не должен быть известен результат,
и вы не должны знать, что эти классы делают.
Пусть эти классы будут на одну страницу текста.
Код должен содержать несколько вложенных блоков.
Код должен быть по сложности , как бы это сказать "равносожен", то есть по сложности они должны быть
равнозначными. Дать эти два класса посмотреть в течении трех, четырех минут учащимся.
Один из кодов будет стилизован с помощью египетских скобок.
Другой код, с "параллельными" скобками.

Какой код учащиеся поняли быстрее, тот код и выиграл. Вернее не код выиграл, а та стилизация будет более выигрышной.

Добавлено через 12 минут
Паблито, не надо подтасовывать.
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
22.03.2016, 14:01
Цитата Сообщение от vvm28 Посмотреть сообщение
Намного легче воспринимать такое форматирование:
нанадо обобщать. Я, например терпеть немогу такое форматирование.

Цитата Сообщение от vvm28 Посмотреть сообщение
Код должен содержать несколько вложенных блоков.
это уже будет скорее всего плохой код.

Стиллистика кода меняется от фирмы к фирме. Обсуждать что лучше нет смысла.
0
 Аватар для vvm28
771 / 539 / 67
Регистрация: 22.12.2013
Сообщений: 2,497
Записей в блоге: 26
22.03.2016, 14:27  [ТС]
Цитата Сообщение от KEKCoGEN Посмотреть сообщение
это уже будет скорее всего плохой код.
Вопрос не в том, хороший код или плохой, в данном конкретном случае.
А в том, как написать код, который будет восприниматься лучше, читабельный код.
Пусть этот код воспринимается компьютером одинаково, но для более быстрого понимания,
например, для обучения, для туториалов, такой код будет легче читать.
Пусть этот код буден даже разный, а не одинаковый, для двух этих классов.
Для этого я и предложил написать два разных кода.

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

Именование еще, скорее всего, зависит от уровня абстракции этой переменной.
В более абстрактном классе - более абстрактное имя, в менее обобщенном классе - менее обобщенное
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
22.03.2016, 14:31
Цитата Сообщение от vvm28 Посмотреть сообщение
А в том, как написать код, который будет восприниматься лучше, читабельный код.
когда я говорил "плохой код", я имел в виду именно его читабельность.

Писать модификаторы доступа в именах переменных тоже лишнее как по мне. В любой IDE сразу видно что эта за переменная, какого типа и.т.д. Это помогало раньше когда в блокнотах код писали. Сейчас уже 2016 и в блокнотах код не пишут.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.03.2016, 14:31
Помогаю со студенческими работами здесь

Передача стилю элемента свойства из кода
Добрый день, есть элемент класса ListViewItem с заданным стилем в отдельном словаре ресурсов. Я могу передать ему любые Attached Property в...

Где найти прогу для написания дистриба?..
Где найти в нете и скачать?.. Желательно и хелп к ней на русском...

Где найти саму программу после написания в xcode?
Всем привет! Я написал простенькую программу (ака ХВ) протестировал ее в симуляторе, все хорошо Но как мне теперь ее закинуть на мой...

Где найти толковый пример написания службы для работы с БД на русском?
Добавляем ссылки: How to write a simple Web service by using Visual Basic .NET or Visual Basic 2005

Рекомендации по улучшению кода
class Loader { public DataSet _data = null; public int _streamRecordCount = 0; public...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru