Читаем Bash.org.ru IT Happens Истории ## 10001 – 11000 полностью

Здравствуй, добрый человек, который раздаёт соседям вайфай! До недавнего времени я тоже держал открытую точку. Цена небольшая, безлимиты позволяют, скорости приличные. К тому же домашним интернетом я пользуюсь только по вечерам, приходя с работы. Почему бы не побыть добрым соседом?

И вот наступил момент Х: из-за какого-то любителя торрентов даже страницы стали грузиться, как во времена дайлапа. Я даже вытерпел два дня, но когда приболел и работать пришлось дома, обрубил «пожирателю скорости» доступ, забанив по MAC-адресу. Кто-то может сказать, что я мог просто ограничить ему скорость, но тогда не было желания с этим возиться — на носу дедлайн, мысли заняты совсем другим.

Через три с половиной часа в дверь постучался неадекватный сосед, который начал орать, топая ногами. Это был он — любитель порнушки и HD-фильмов. Оказывается, я хакер и поломал ему интернет. Если я не включу немедленно положенный ему интернет, за который он платит деньги, то он вызовет полицию, а если понадобится — доберётся чуть ли не до президента, но не позволит воровать у него его интернет! Естественно, это не самое умное создание не стало меня слушать, в итоге оставшись за дверью, однако полицию в этот же день привело. С дежурными удалось провести хоть какой-то диалог, после которого мне принесли глубочайшие извинения.

Оказывается, мой сосед пару месяцев назад вызывал к себе «мальчика-программиста», который переустановил операционную систему на ноутбуке. Паролей от проводного интернета не нашлось, поэтому «мальчик» не нашёл ничего лучше, чем подключиться к моему вайфаю, сказав, что он провёл беспроводной интернет в квартиру, и содрав за это лишние деньги.

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

<p>#10768: Сначала думаю, потом пишу</p>

12:15 29.03.2013, IT happens

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

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

Есть входные данные — они могут поступать из разных источников, значит, надо продумать защиту от того, чтобы эти данные могли привести к сбоям.

Есть опечатки в коде — для этого в нормальных языках программирования предусмотрены специальные инструменты. И никакая «неопределённая переменная» вам не будет страшна. Кстати, не забывайте инициализировать переменные — это ведь нетрудно!

Есть ошибки, когда кто-то перепутал местами переменные или использовал не ту функцию, но для этого у вас должен быть продуман сценарий тестирования модуля. Сделали — собрали — протестировали. Ведёт себя не так, как должен? Устраните проблему! И делайте это на уровне отдельных модулей, ещё до того, как готовая система уйдёт в отдел тестирования.

Не надо городить сложноинтегрированные системы. Разбивайте их на отдельные функциональные блоки! Каждый блок должен работать идеально. Надо будет — лучше потом написать ещё один интерфейсный блок для сопряжения.

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

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

Ну вот, чувствую, как на голове материализуется фуражка Капитана Очевидность. Вам ведь наверняка всё это уже говорили, писали в книгах по программированию. Так откуда же берутся горе-программисты, которые привыкли быстренько, тяп-ляп, практически не думая, набросать код, который вроде примерно как надо работает, но в определённую фазу Луны при снижении котировок куриных окорочков на Нью-Йоркской бирже во время снегопада в Норвегии начинает вести себя совершенно непредсказуемо?

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

Не знаю. Я работаю по старинке: сначала думаю, потом пишу. Что характерно, на глюки потом никто не жалуется. Может быть, потому, что я уверен в своём коде.

<p>#10769: //это код</p>

12:45 29.03.2013, IT happens

Перейти на страницу:

Все книги серии Bash.org.ru IT Happens

Похожие книги