Найти тему
Войти в IT

ТОП-5 критических ошибок в программировании

Оглавление

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

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

Дыры в безопасности ⛔️

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

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

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

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

Неправильная обработка ошибок ❌

Это означает, что разработчик не предусмотрел все возможные сценарии работы программы и не обработал все возможные ошибки. Не достаточно продумал ветки движения потоков данных внутри программ, и допустил узкие места в которых программа просто перестает работать.

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

Каждый заведомо сложный код должен иметь систему контроля ошибок. Это называется ветки try-catch. Опять же. у начинающих программистов может быть некоторый запас заведомой наивности о том, что код будет выполняться всегда правильно, просто потому что хочется так думать. На самом деле, это далеко не так.

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

Неправильное использование памяти 💾

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

Современные высокоуровневые языки часто балуют пользователя уже готовыми системами управления памятью. Тем не менее. существует множество программных объектов и библиотек, внутри которых управление памятью не автоматизировано. И тем более это касается системных языков например C++.

Создавая любой код. старайтесь быть аккуратны. Помните что чисто не так где убирают, а там где не мусорят. Привычка удалять после использования лишние объекты, очищать массивы и следить за аккуратным использованием ресурсов компьютера - это хороший стиль работы.

Неправильная архитектура программы 📄

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

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

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

Оператор goto 🚀

Оператор goto – это инструмент для безусловного перехода на метку в коде. Поверье мне, это оператор абсолютного зла в высокоуровневом программировании. Никогда не используйте его, даже если есть большой соблазн сделать это.

Использование goto может привести (и обычно приводит) к сложностям в понимании и отладке кода. Кроме того, он может привести к созданию бесконечных циклов и других ошибок. Поэтому очень многие программисты считают, что использование оператора goto – это плохая практика.

Нормально делай - нормально будет! 🧐

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

А также никогда не использовать оператор goto, чтобы избежать сложностей в понимании и отладке кода.

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

Вот к чему приводит небезопасное программирование; Из компьютера выходит его дух в виде белого тумана, после чего он перестает работать.
Вот к чему приводит небезопасное программирование; Из компьютера выходит его дух в виде белого тумана, после чего он перестает работать.

🔥 Понравилось? Подпишись! Победим восстание роботов вместе! 🔥

-2

🚀 P.S. Ты можешь круто поддержать меня и проект "Войти в IT" на boosty! Я публикую там более эксклюзивный и профессиональный, иногда немного личный контент. Хочешь посмотреть как я выгляжу в реальной жизни? Тогда жми: Ссылка 🚀

P.S.2 У меня ещё есть Telegram-канал. Там посты чуть попроще, и чуть повеселей. Ссылка