Я задал этот вопрос на Stackoverflow, и перед тем, как его освистали, я получил полезное предложение от Петера Торока, что это может быть лучшее место для его публикации.
Я программирую на Java в течение нескольких лет. Я часто обсуждал дизайнерские решения с коллегами на основе того, что составляет «хороший стиль». Действительно, существует множество вопросов / ответов StackOverflow, которые обсуждают дизайн на основе того, является ли что-то «хорошим стилем».
Но что делает «хороший стиль»? Как и многие вещи, я знаю это, когда вижу это ... но я хотел иметь лучшую идею, чем просто моя совесть, говоря, что этот дизайн не кажется правильным.
Что вы думаете о том, чтобы создать хороший, хорошо разработанный код?
(Я признаю, что это несколько субъективно, поскольку «хороший стиль» будет зависеть от поставленной задачи). (Кроме того, я должен добавить, что меня не интересуют командные стили - например, «мы используем отступы от 2 пробелов вместо 4» ... и меня не интересуют соглашения по коду Java.)
Изменить: спасибо за все хорошие ответы / комментарии до сих пор. Я особенно заинтересован в ответах, которые помогли бы систематизировать те вещи, которые заставляют совесть программиста (и, возможно, желудок) взломать?
источник
Ответы:
Несколько кратких замечаний:
источник
Добавление в список Райана:
xFactoryFactory
класс, вы делаете это неправильно :-)Я остановлюсь там.
источник
HammerFactoryFactoryFactory
класса? ;-)Оценивая ответы других, я подумал, что было бы справедливо поделиться некоторыми вещами, о которых я думаю, когда пытаюсь написать хороший код:
что нужно знать об этом классе / методе / переменной? т.е. где должны жить эти знания?
как этот код может повлиять на память / производительность моего приложения? (Я признаю, что «преждевременная оптимизация - это корень всего зла»; поэтому я не предлагаю тратить много времени на оптимизацию, а скорее на сознание при первоначальном написании моего кода.)
ясно (из кода и структур кода), что это делает? (Я стараюсь следовать принципу: «Старайся не дать людям понять, старайся сделать так, чтобы люди не могли понять неправильно».)
источник
Прочитайте класс String и ArrayList, чтобы найти отличные примеры правильного программирования на Java. Но они очень лаконичны, почти в стиле C, что не обязательно лучше для поддерживаемого кода с минимальным количеством документов Java. Обычная практика в моем магазине - отсутствие комментариев, поэтому я стараюсь комментировать по коду, используя подробные имена переменных camelCase и чрезмерное использование новых строк, чтобы отделить одну точку зрения от другой. Я до сих пор спорю, используя вкладки, чтобы отделить переменные от их значений. Вкладки могут улучшить читаемость, IMO, но только тогда, когда они сделаны минимально, и это очень субъективно. Я считаю, что это действительно об аудитории. Там нет лучшего ответа здесь.
источник