вторник, 22 января 2013 г.

Профессиональный код

Раз уж у меня блог программиста — то и о программировании надо хоть иногда поговорить. Вот например сегодня. И вопрос у меня (сходу) будет очень простой — чем отличается профессиональный код от непрофессионального? Что вы думаете по этому поводу?

Сразу хочу предупредить — правильного ответа на данный вопрос я и сам не знаю. Я лишь предлагаю порассуждать на эту тему. И еще — естественно, что профессиональный код должен выполнять те функции, которые необходимо (выполнение требований ТЗ — это еще не профессионализм).

Например, когда мы были студентами, большинство наших программ очень легко можно было «уронить», мало кто ставил хоть какую-то «защиту от дурака», только пару человек делали это. Программы вроде как работали, но если подать «неправильные» данные — это конец.


Поэтому я считаю, что профессиональный код — это код, который позволяет избежать не только грубейших ошибок программирования (про правильный выход из сложного цикла, рекурсий и так далее я даже говорить не буду), но и защищен от «тонких» и «тончайших» ошибок.

А также — даже имеет защиту от «программиста». К примеру, есть метод, входные данные которого фильтруются так, что ну просто никак невозможно, что придут неверные данные. Данные всегда верны, либо до метода просто дело не доходит. Вроде как все защищено. Но есть одно «но» - программист. Он может сам (через отладчик) подать неправильные данные, случайно или специально. И тогда программа может упасть, если нет защиты от такой ситуации. А если защита есть — то программа будет отрабатывать всегда верно и корректно.

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

А вы как считаете, что есть профессиональный код?

Комментариев нет:

Отправить комментарий