Skip to content
Aleksandr Kuchuk edited this page Aug 3, 2016 · 4 revisions

Введение

Часто сталкиваюсь с работами, где люди пришедшие на Java тянут свои привычки. Но и в Java есть правила, которым надо следовать. Большую часть времени мы читаем код, а не пишем, поэтому следование некоторым простым правилам - обязательно.

Попробую собрать все советы по написанию кода здесь.

Наименование переменных.

Есть переменные локальные, в scope метода, например, а есть в области видимости класса или статические. Так вот. Если переменная - это переменная класса или вообще статическая переменная, то обязательно, чтобы переменная имела название такое, которое отображает то, зачем она нужна.

Никаких

private int a = 1;

быть не должно!

Но, если мы с данной переменной или ссылкой работаем в пределах метода или цикла, то есть смысл называть укорочено. Нет никакого смысла писать что-то типа:

for(int indexOfElementInArray = 0; indexOfElementInArray < array.len; indexOfElementInArray++)
//some logic

Наоборот - это вносит путаницу и хаос. Гораздо лучше написать что-то типа

for(int index = 0; index < array.len; index++)
//some logic

или вообще заменить index на i.

Задумывайтесь о названии переменных! - это если не половина, но треть обеспечения будущей поддержки кода.

Также мы не пишем переменные с большой буквы, с большой буквы вы называете только классы.

Также, локальные переменные желательно писать ближе к месту их использования. Т.е не надо объявлять переменную в начале метода, а где-то в конце только с ней начинать работать - можно объявить ее прямо там, где вы начали с ней работать. Согласитесь, что если мы в начале метода объявим весь список переменных с которыми нам придется столкнуться - это только запутает нас.

Локальные переменные в методах вообще часто имеет смысл объявлять как final.

Названия переменных пишем в camel case style, что значит от вас ждут что-то типа:

private int maxSize = 10;
private Object objectClassInPackage;

Если используем константы, то записываем их в верхнем регистре.

public static final int MAX_VALUE = 64;
private static final String name = "NAME_1";

Это общее правило.

Наименование методов.

Методы называем в camleCase нотации, при этом имя метода должно отображать то, что он делает и возвращает. Недопустимо использование чего-то вроде:

//подчеркивание лишнее - плохо
public void send_request() {}
//начинается с большой буквы - плохо
public void SendRequest() {}
//название метода не отображает его суть - плохо
public void methodOne() {}

Так как название совершенно бесполезно и в дальнейшем обязательно возникнут трудности с поддержкой такого кода.

Хорошим вариантом будет, например:

public boolean sendRequest() {}