Понятие хорошего кода очень детально рассматривается в книге Роберта Мартина «Чистый код». Что он из себя представляет, как его писать и прочее. Но можно свести все к нескольким принципам.
Основополагающий принцип гласит: хороший код легко читать. Это самое главное! Если новый человек читает код и понимает, что в нем написано — это хороший код. Более того, чем ниже требуется уровень программиста для понимания, тем код лучше. Т.е. если то, что вы написали, может понять только гениальный разработчик, то такой код назвать хорошим сложно. Если написанное может понять любой джун — значит код действительно прекрасен.
Как этого добиться? По правилу Парето: 20% усилий приводят к 80% результата. В первую очередь вопросы к наименованиям, поскольку наименования — это самое важное, что есть в коде. Имена классов, пекеджей, модулей, методов, переменных и пр. Все что есть в коде, должно быть правильно проименовано. Самое страшное, что может быть в коде — это обман. Когда переменная (или метод, класс) выполняет не то, что говорится в названии. Мало того, что вы не даете правильной информации, так еще и сбиваете с толку.
Слышал такое мнение, что хороший код выполняется быстро. Нет. Перформанс и все остальное, относящееся к нефункциональным требованиям, не имеет отношения к хорошему коду. Хороший код тот, который программисты смогут поддерживать. Если вам для каких-то целей, например, чтобы обеспечить нужный перформанс, приходится выкручивать код, все равно постарайтесь, чтобы он был максимально понятен. Он должен быть с объяснениями: почему вы использовали такой алгоритм, почему это делается вот так, что, где и т.д. Да, возможно вам понадобится написать много комментариев. Но зато человек, который будет читать этот код, будет вам максимально благодарен.