Должен ли сгенерированный код быть читаемым человеком? - PullRequest
6 голосов
/ 15 сентября 2008

Я работаю над инструментом, который будет генерировать исходный код для интерфейса и пару классов, реализующих этот интерфейс. Мой вывод не особенно сложен, поэтому не составит труда привести вывод в соответствие с нашими обычными стандартами форматирования кода.

Но это заставило меня задуматься: насколько понятным человеку должен быть сгенерированный код? Когда следует приложить дополнительные усилия, чтобы убедиться, что сгенерированный код легко читается и понимается человеком?

В моем случае сгенерированные мной классы - это, по сути, просто контейнеры для некоторых данных, связанных с другой частью сборки, с методами для получения данных. Никто никогда не должен смотреть на код для самих классов, он просто должен вызывать различные методы получения, предоставляемые классами. Так что, вероятно, это не так уж важно, если код «чистый», хорошо отформатирован и легко читается человеком.

Однако что произойдет, если вы генерируете код, в котором содержится более чем небольшое количество простой логики?

Ответы [ 22 ]

0 голосов
/ 15 сентября 2008

Я думаю, что ответ: это зависит.

* Это зависит от того, нужно ли вам сконфигурировать и сохранить сгенерированный код как артефакт. Например, люди очень редко сохраняют или настраивают вывод объектного кода из c-компилятора, потому что они знают, что могут каждый раз воспроизводить его из исходного кода. Я думаю, что здесь может быть аналогичная аналогия. * Это зависит от того, нужно ли сертифицировать код по какому-либо стандарту, например, Мисра-С или DO178. * Это зависит от того, будет ли исходный код генерироваться с помощью вашего инструмента каждый раз, когда код компилируется, или он будет сохранен для включения в сборку позднее.

Лично, если все, что вы хотите сделать, это собрать код, скомпилировать его в исполняемый файл и затем выбросить промежуточный код, то я не вижу смысла делать его слишком красивым.

0 голосов
/ 15 сентября 2008

Я думаю, что стоит потратить дополнительное время на то, чтобы сделать его читаемым человеком, чтобы было легче отлаживать.

...