Сейчас занимаюсь разработкой собственного веб-проекта. Делаю информационный портал для русскоязычных жителей Турции. Как многие, я всегда хотел делать свои проекты, но не было подходящих идей, поэтому занимался аутсорсингом - программировал на заказ. Сильно позже я узнал, что с точки зрения профориентации мне это не подходит, и экстравертам лучше заниматься системами массового обслуживания. Это для интровертов более удобно концентрироваться на небольшом спектре клиентов и глубже вникать в их потребности.
На этом портале я решил делать авторизацию через телеграм, все-равно сейчас все сидят в телеграме. Но вышла на самом деле не очень юзабельно - телеграм заставляет пользователя вбивать свой номер телефона в отдельном окне. Как бонус - появится возможность переносить отдельные сообщения из чатов на портал и в некоторых случаях обратно с портала в телеграм.
Затрону здесь еще вопрос пригодности людей к программированию. Об этом нет общего консенсуса, и кто-то считает что большая часть населения может программировать, буквально от 80%. Но фактически количество программистов - это полпроцента от трудоспособного населения. Есть мнение, что заниматься программированием может только тот, кто умеет справляться с собственной фрустрацией. Некоторые справляются с ней очень экзотическим способом - всегда работают на старых привычных технологиях. Потом иногда мне встречается такой тихий ужас 20-летней давности в проектах попадающих на поддержку.
Думал управлюсь быстро. Но традиционно, во время кодинга словил несколько кошмариков. Сначала были опечатки в скриптах развертывания кода на сервере. Потратил на них много часов, хотя процедура вроде отработанная, но все-равно очень много переменных. Я использую самый простой вариант CI/CD - через bash-скрипты на Jenkins. Потом у меня внезапно перестал открываться сайт. Я пробовал пинговать и трейсроутить, облазил все панели регистратора и клаудфлера. Стал искать как вообще в принципе можно продебажить клаудфлер, если проблема вдруг будет в нем - кажется, никак. Потом обнаружил, что домен оказывается в Турции заблокирован еще много лет назад. Видимо, была какая-то пауза в блокировке и он случайно временно работал. Пришлось покупать новый домен, опять придумывать имя, искать опять способ оплаты.
Потом как-то вечером перед сном лежал, размышлял и испугался, что работа с телеграмом у меня идет через JS, который обращается в телеграм и возвращает мне идентификатор пользователя. И злоумышленники могут в браузере подставить любой свой идентификатор пользователя. У меня просто вылетело из головы, что данные от телеграма подписаны ключом и можно их проверить. В общем, это был мини-кошмарик практически на пустом месте.
Потом, когда написал код авторизации, проверил на другом пользователе. На втором уже не сработало. Я стал искать разницу, сперва мне показалось, что проблема в кодировке, я наверное два дня потратил на решение этой проблемы, не вплотную конечно.
В общем, каждый такой кошмарик сильно выбивает из колеи, заставляет отвлечься от проекта, идти подлечивать нервы, переключаться на чтение новостей или подключать какой-нибудь другой способ прокрастинации.
Те чемпионы воли, которые несмотря на подобные трудности могут двигаться вперед - они и становятся программистами. А кому повезло программировать и не встречать таких трудностей - пишите Ваш секрет в комментариях.