Новости Школы Программирования - 7 типичных ошибок неопытных программистов
Сколько люди будут учиться программированию, столько будут совершать одни и те же ошибки. Существуют грабли, на которые просто невозможно не наступить. Тем не менее, хочется верить, что читатели этой статьи смогут сократить количество неверно
принятых решений в ходе разработки программ до минимума. Потому что небольшая ошибка в начале разработки может обернуться сильной головной болью для программиста и его коллег в будущем.
Неумение кататься на велосипедах. Неожиданно, да?) На самом деле я хотел сказать, что в эпоху дот-нетов, мак буков и web 2.0 всё (ну или почти всё) уже написано. На любой более-менее популярный язык программирования – по несколько фреймворков и сред разработки. В том числе множество бесплатного, но качественного софта. Огромное количество CMS’ок и движков сайтов. Для коих, в свою очередь, тысячи плагинов, расширяющих функционал.
Но начинающие программисты часто либо забывают про этот факт, либо его игнорируют. Они, может быть, и понимают, что кто-то уже решил задачу, которая перед ними стоит, и предлагает решение абсолютно бесплатно. Но это их почему-то не останавливает от изобретения велосипедов, которые в большинстве случаев оказываются менее качественными. А зря, вместо придумывания, лучше найти хороший пример с открытым кодом. Тогда можно сосредоточиться на других задачах.
Использование неподходящих средств разработки. Знаете, некоторые прям таки с гордостью заявляют, что пишут веб страницы в блокноте windows. Этим они, видимо, подчеркивают некий аскетичный стиль программирования, а на самом деле – свою глупость. Опять же, в наше время существует множество удобных сред и средств разработки, которые упрощают написание кода, заранее проверяют в нём ошибки, выдают подсказки и прочее и прочее. Зачем всем этим пренебрегать? Видимо для того, чтобы сделать
больше ошибок и потратить лишнее время на отладку, иных причин я не вижу. Используйте блокнот, как блокнот.
Вопросы, на которые уже 100 раз ответили. Перед тем, как начать спрашивать что-либо в форумах, сообществах и т.п. поищите ответ на свой вопрос. Если вы начинающий программист, то наверняка кто-то до вас уже интересовался тем, что вам не понятно. Сначала ищите информацию в мануалах, документациях, форумах, разделах FAQ, а только потом, в случае неудачи, спрашивайте у других.
Костыли. У новичков код пестрит неочевидными ходами и решениями. Некоторые из них появляются в результате того, что при тестировании программа начинает вести себя не так, как ожидается. Вместо того чтобы докопаться до сути проблемы, неопытный программист на скорую руку начинает вставлять в код заплатки, которые уродуют программу.
Доходит до смешного. Например, на сайте была форма, куда пользователь должен был ввести число от 0 до 999. Вместо того, чтобы получить из поля данные и проверить, действительно ли это число в заданном диапазоне, человек сделал проверку на количество символов не больше трех.
В итоге в логике программы становится трудно разобраться. Ещё сложнее становится вносить изменения и расширять функционал.
«Этого точно никогда не будет». Любимая тема новичка – игнорировать обработку некорректных входных данных. Мотив – «этого точно никогда не будет» :) А ведь будет наверняка! Закон программистской подлости – случится именно то, что не предусмотрел. Надо быть готовым, что там, где должны ввести год рождения будет всё что угодно, кроме четырех цифр. При этом еще нужно придумать правильные ограничивающие условия.
Некрасивый код. Стоит ли говорить, что вначале многие не задумываются о длине строчек кода, размере функции, забывают о комментариях и т.д. Об этом много пишем в рубрике культура кода.
Не задумываются об этом в основном потому, что нет опыта длительной разработки. Когда начинаешь понимать, что всё то, что на первый взгляд кажется мелочью, на самом деле очень важно для жизнеспособности программы в дальнейшем.
Не получилось с первого раза – ищем простой путь. Наверное, все за собой замечали: по какой-то непонятной причине программа работает некорректно, а в чем дело мы никак определить не можем. Тогда начинаем делать пункт 5, то есть костыли.
Например, есть файл с объявлениями констант и функциями, который используют разные модули программы. В одном модуле этот файл забыли включить, что в ходе выполнения приводит к выводу ошибки интерпретатором о том, что не нашлась константа с таким-то именем. Вместо того, чтобы разобраться где она объявлена и почему не нашлась, мы берем и ещё раз объявляем её в проблемном модуле. Это - очень плохое решение. Не делайте так, ищите корень проблемы.