Искусство написания не поддерживаемого кода: руководство к долголетию
В мире разработки программного обеспечения существует искусство, которым владеют немногие: искусство написания не поддерживаемого кода. Это навык, который может обеспечить вам занятость на долгие годы, поскольку никто другой не посмеет прикоснуться к коду, который вы так тщательно проработали. Вот пошаговое руководство о том, как достичь этой сомнительной чести.
Соглашения об именах: путь клингона
Когда дело доходит до именования переменных и методов, ясность — ваш враг. Используйте непонятные имена, которые противоречат логике и соглашениям. Например, вместо userFirstName
используйте xqjklm
или a_crszkvc30LastNameCol
, если вы особенно креативны.
Комментарии: отвлекающий манёвр
Комментарии предназначены для пояснения кода, но в мире не поддерживаемого кода они должны делать обратное. Пишите комментарии, описывающие, что делает код, а не почему он это делает. Лучше всего использовать автоматизированные инструменты для создания бессмысленных комментариев. И никогда не обновляйте комментарии при изменении кода.
Модульные тесты: иллюзия покрытия
Модульные тесты необходимы для поддерживаемого кода, но для не поддерживаемого они должны вводить в заблуждение. Писать тесты без утверждений, тестировать только положительные случаи и никогда не проверять бизнес-логику. Используйте насмешку для проверки исключений, которые никогда не произойдут в производстве. И самое главное — никогда не проводите интеграционные тесты.
Циклические зависимости: паутина путаницы
Циклические зависимости — ключ к созданию кодовой базы, которую невозможно ориентироваться. Убедитесь, что каждый класс зависит от случайных пакетов во всех направлениях. Это сделает невозможным понимание архитектуры вашего кода будущими разработчиками.
Копии кода: наследие копипасты
Копии кода увеличивают размер вашего программного обеспечения и приводят к непоследовательным изменениям и исправлениям ошибок. Эта путаница является золотом, когда речь идёт о написании не поддерживаемого кода. Чем больше копий, тем лучше.
Грязные обходные пути: искусство угадывания
При работе с нестабильным кодом, таким как тесты Selenium GUI, используйте обходные пути, которые иногда работают. Например, используйте Thread.sleep()
с магическими числами, чтобы ваши тесты проходили время от времени. Это гарантирует, что некоторые тесты будут случайным образом давать сбой, держа будущих разработчиков в напряжении.
Глобальные переменные: хаос области видимости
Глобальные переменные — мощный инструмент в арсенале не поддерживаемого кода. Используйте их широко, чтобы гарантировать, что любая часть кода может изменить любую переменную в любое время. Это делает отладку восхитительным приключением.
Обманчивые имена и венгерская нотация
Убедитесь, что каждый метод делает немного больше (или меньше), чем предполагает его имя. Например, метод с именем isValid(x)
должен иметь побочный эффект преобразования x
в двоичный формат и сохранения его в базе данных. Венгерская нотация — ещё один отличный инструмент; используйте её для создания имён переменных, которые сбивают с толку.
Проверка на стороне клиента: скрытая ловушка
Вместо того чтобы защищать от внедрения SQL с помощью надлежащей проверки на стороне сервера, полагайтесь на проверку на стороне клиента. Таким образом, ошибки остаются скрытыми до тех пор, пока не причинят катастрофического ущерба.
Try-catch-проглотить: тихий убийца
Заключите свой код в блоки try-catch, но оставьте блок catch пустым. Это гарантирует, что ошибки проглотятся незаметно, делая невозможной диагностику проблем.
Заключение
Написание не поддерживаемого кода — это искусство, требующее преданности делу и глубокого понимания того, как разочаровать будущих разработчиков. Следуя этим советам, вы можете гарантировать, что ваша кодовая база станет легендарным кошмаром, который обеспечит вам занятость на долгие годы. Поэтому, когда у вас возникает соблазн написать чистый, поддерживаемый код, помните: путь к занятости лежит в глубинах сложности и неясности.