Нет, это не нормально 1 . По крайней мере, это не нормально для хороших программистов. Вероятно, это нормально для тех, кто учится программировать.
Написание программного обеспечения - это не просто соединение строк кода, пока оно не заработает. Вы должны сознательно работать над тем, чтобы сделать код легким для понимания. Один программист, которого я очень уважаю, однажды сказал мне: «Код читается намного чаще, чем пишется» . Хотя это должно быть совершенно очевидно, это был факт, о котором я не знал, пока он не сказал мне. Большая часть вашего кода написана только один раз, может быть, переписана еще раз или два, но вы в конечном итоге будете часто читать код в течение всего жизненного цикла программного обеспечения.
Если вы находите код трудным для понимания через несколько минут после его написания, это сигнал о том, что ваш код слишком сложен. Прекратите добавлять код и найдите лучший способ. Например, пятимерный массив почти никогда не является хорошей идеей. Даже действительно, действительно умным программистам трудно понять такую сложную структуру данных.
Тот же программист, который рассказал мне о читабельности кода, также сказал: «Покажите мне ваши структуры данных, и я могу рассказать вам, как работает ваш код» . Это означает, что хороший код начинается с чистых, понятных структур данных. Если вы правильно спроектируете свои данные, код станет для вас второстепенным. Следует признать, что это утверждение немного гипербола, потому что программное обеспечение, очевидно, больше, чем просто данные, но оно начинается с данных. Таким образом, работа по созданию чистых, легко понимаемых структур данных и кода будет значительно проще для понимания.
1 Конечно , есть код, что там очень сложно и трудно понять даже самые умные программист. Некоторые проблемы по своей сути сложны. Однако я бы рискнул сказать, что подавляющее большинство кода, написанного подавляющим большинством программистов, не относится к такому типу кода.