-
Notifications
You must be signed in to change notification settings - Fork 3
Code style
Часто сталкиваюсь с работами, где люди пришедшие на 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() {}