Дмитрий Сергеевич (axshavan) wrote,
Дмитрий Сергеевич
axshavan

Category:

Стиль кодинга

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

Вот мои предпочтения:
1) { и } на отдельных строчках. Экран у меня большой, экономить строчки не надо. А когда фигурные скобки расположены ровно одна над другой, сразу видно, где что начинается и где что заканчивается. А когда в параметрах у if, например, какое-нибудь огромное условие, то найти взглядом открывающуюся фигурную скобку, расположенную где-нибудь в жопе после закрывающейся круглой для меня не так-то просто. Само собой, { и } должны быть одна над другой, раз уж на отдельных строчках.
2) табуляция в виде табуляции длиной 4 символа. Все хорошо видно, где какой блок. Больше - смысла нет, 3 - как-то не по-программерски, 2 - очень мало. Почему в виде табуляции - чтоб меньше раз нажимать на delete при удалении строчек и чтоб, если мне, например, захочется табуляцию длиной 5 символов, не мучаться с этим.
3) большое длинное условие предпочитаю разбивать на несколько строчек, чтоб все влезало в экран.
4) не пишу пробелы ни перед, ни после круглых скобочек при вызове функций и передаче в функцию аргументов.
5) то же самое для квадратных скобочек при обращении к элементам массива. У меня подсвечивается синтаксис, и мне видно все прекрасно без лишних пробелов.
6) зато знак равенства и слева, и справа обрамляю пробелами, и точно так же поступаю со всеми плюсами, минусами, больше-меньше и =>.
7) редко пользуюсь двойными кавычками, чаще одинарными. Если мне надо отобразить переменную посреди строки, то, даже в случае двойных кавычек, обрываю строку, конкатетирую переменную и к ней продолжение строки. Получается что-то вроде echo 'val = '.$val.', val2 = '.$val2;
8) не использую сокращенный вариант записи блока. То есть даже если мне надо написать что-то вроде if...return, то я все равно этот return обрамлю фигурными скобочками и займу четыре строки вместо одной.

И то, что я люто ненавижу:
1) табуляцию в виде двух пробелов. Старший разработчик редактирует всё в плагине для фара с подстветкой синтексиса, ему нравится именно табуляция в виде двух пробелов, и он заставляет всех писать именно так. Два пробела - это мало, по-моему.
2) { на той же строке, что и то, к чему эта фигурная скобка относится. Без дополнительной тренировки я не могу (и не хочу) сразу разглядеть её, что заметно усложняет чтение чудого кода. Старший разработчик пишет именно так.
3) Конструкция условие?да:нет отвратительна. Иногда ее можно использовать посреди строки для вывода, например, склоняемого обращения вместо "дорогой(ая)". Но писать ее там, где можно написать нормально if, по-моему, это ужасно! Поди разберись, что там имелось в виду. Старший разработчик употребляет ?: очень часто.
4) Сокращенную запись блоков, но не люто ненавижу, а просто недолюбливаю.
5) Несоблюдение отступов. Если это код функции класса, то он должен отстоять минимум на две табуляции (хотя бы на четыре пробела) от начала строки, а не как получится! А этим большое количество кода грешит, особенно в тех местах, где много и часто вносились какие-то исправления. Ненавижу!
6) Недолюбливаю пробелы до и после круглых и квадратных кавычек. Ну, как, в принципе, все, что не соответствует моим предпочтениям.

И отдельное замечение про табуляцию двумя пробелами. В коде многие строчки отстоят друг от друга, образуя эдакие идеалогические блоки, озаглавленные комментариями. Это очень и очень правильно. Но увы, часто лишняя строка добавляется только в начало такого блока, а конец его заканчивается там, где встречается закрывающаяся фигурная скобка (что, в принципе, логично). Только вот учитывая то, что два пробела - это очень мало, то сложно определить, на какое конкретно расстояние этот блок отстоит от начала строки. Вкупе с экономией строк прятанием открывающейся фигурной скобки куда-то в жопу, для меня всё это выглядит очень странным, нелогичным и неправильным аж до безобразия.
Tags: web, работа
Subscribe

  • Post a new comment

    Error

    Comments allowed for friends only

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 8 comments