Программист
Всегда помни программист — "DEADLINE IS COMMING"
Как подготовить машину к долгой поездке
Взять с собой побольше вкусняшек, запасное колесо и знак аварийной остановки. А что сделать еще — посмотрите в нашем чек-листе. Бонусом — маршруты для отдыха, которые можно проехать даже в плохую погоду.
Когда протестуешь против властей, но у тебя завтра дедлайн
Программирование: как важно быть внимательным
Всем привет! Пока я в отпуске, продолжаю повествовать о приключениях в геймдеве.
Была запланирована в игре одна супер фишка. Народ на форумах давно ныл и требовал её. Реализация заняла у нас где-то месяц. Её разрабатывал один программист, но, как мы шутили тогда, срок заключения в нашей компании у него подошёл к концу и он благополучно покинул наши ряды.
Всё бы ничего, но закончить его труд (примерно 50% общей работы) предстояло мне. Я сел разбираться с его документацией. Вроде бы написано всё понятно, что делать надо понятно. Новая фишка была ожидаема. Очень. Наша пресс-служба на форуме и сайте, и в группе вк/фейсбуке/одноклассниках сказала:"Радуйтесь и ликуйте! Во вторник будет обновление с новой фишкой". Начальство из Москвы было в нетерпении, да и менеджер наш тоже слегка ёрзал. А ваш покорный слуга, вообще сон потерял от нервов. Мы тестировать начали с четверга. Весь четверг, пятницу. понедельник были тесты. Я уже перестал есть. Мы перепробовали все случаи, когда может не сработать, но... всё работало на тестовом сервере! И вот он вторник...
Объявлены техработы на сервере, игра будет недоступна час. Мы заливаем новую версию игры и начинаем на расслабоне смотреть: а ничего не отпало ли? Парадокс. Но мою фишку, несмотря на всю важность, решили посмотреть самой последней. Мол, и так уже три дня все смотрели, что там может пойти не так? Ага. Щас...
Первая же попытка использовать мою фишку сокрушительно провалилась. Не работает! Какая реакция у обычного программиста на такие вещи за полчаса до релиза? Обновить резюме Посмотреть ещё раз, может это какой-то супер редкий случай и торжественно заготовить классическую отмазку пользователю, что "это не баг, это фича!".
Но нет. Ни у меня, ни у моих коллег это не работало. НИКАК. Ни при каких обстоятельствах...
Этот зверёк уже не просто подкрадывался к нашему офису, а он пришёл и нагло хохотал нам всем в лицо. Я просто сел на стул... Менеджер проекта был белее белого, собрал свои яйца в кулак и позвонил в Москву, сказав, что необходимо продлить техработы... Что у нас фишка главная не работает... Единственное, что спасло лично меня от немедленных анальных кар - несколько тестеров за три дня не имели претензий к моей работе. Москва сказала:"Даём ещё 4 часа. Если не будет введена фича в эксплуатацию... Ваши задницы ждёт жёсткое изнасилование. Впрочем, всех тестеров тоже касается".
А теперь, представьте себе мои ощущения... Я залез на форум, и почитал посты с сарказмом, где гадали, что у нас отвалилось. Но делать нечего. Вазелин стоит дорого, а зп у меня была мелкая, поэтому надо было разбираться с проблемой. Стал искать зацепки.
Во-первых, на тестовом сервере всё работает, а на основном нет. Также работает на локальном сервере у меня. Значит, проблема в том, что серверы различаются как-то.
Спрашиваю у менеджера, что стоит на основном сервере, а что на тестовом. И таки да. Они разные. На одном линукс, а у меня на компе и тестовом сервере винда... Запомните это. Это будет ключ, почему не работает.
Во-вторых, раз ничего не падает, а просто не работает, то значит никаких нулевых указателей или какой-нибудь такой хрени нет. Наверное, не работает что-то в коде.
Стал смотреть код . Код клиента (то есть, код отвечающий за то, что будет видеть клиент) без ошибок. Всё правильно. Код сервера - тоже. Чёрт... время,время... осталось полчаса всего.
Пошёл проверять запросы к базам данных и опять всё верно. Хотя...Оу... а почему тут у нас в запросе в названии таблицы есть символ в верхнем регистре (то бишь, заглавная буква)???? Как бесит, когда не соблюдают элементарные правила оформления кода! Надо исправить. Минутку... На тестовом сервере и у меня на компе винда, а там линукс... MySQL на Винде по барабану на регистр, а линуксу нет! Точно, запрос ничего на основном сервере не возвращал данных!!!! Товарищи, коллеги,
Менеджер был очень рад. Он даже дал мне выходной на следующий день. Москва побурчала для виду из серии:"Вам просто повезло!", но в целом тоже была довольна.
Дедлайн
Один знакомый программист хвалился, какой он классный и в конце он добавил: "Я все дедлайны вовремя сдаю"