антоша где ошибка в коде
:ho f¡le_get_contents(‘./blok/re (issetíS POSTCsubmifjj && ^E5^PST[,iog,l)str :tfí / Антоша :: программист :: Смешные комиксы (веб-комиксы с юмором и их переводы)
Смешные комиксы(155366)
программист(473)
Ночь, улица, фонарь, аптека,
Я покупаю вазелин.
За мной стоят два человека,
Армянин и сумрачный грузин.
Как бонус видео от valve про отладку кода в QtC.
Неприятие пыхи связано с двумя особенностями.
1. Благодаря мощным дефолтным библиотекам он позволяет заниматься кодингом уж совсем упоротым дебилам, из-за чего средний уровень пхп-кодера как кодера на уровень ниже, чем кодера, начавшего с другого языка.
В итоге, все плюсы приходися вычеркивать и получаем что-то типа сильно кастрированного и тормозного перла/питона с комьюнити, состоящим из дегенератов. Зачем такое счастье?
Ну пых действительно развивается. Сам я его очень сильно недолюбливаю. Все пытаюсь вебовские проекты перестать на нем делать. Только пока альтернатив не нашел.
Но начиная с 5,3 версии много хорошего добавили. Те же трейты, генераторы, норм ООП. Есть возможность использовать статическую типизацию.
Когда я пробовал на питон перейти меня остановило именно его кастрированное ООП.
:ho f¡le_get_contents(‘./blok/re (issetíS POSTCsubmifjj && ^E5^PST[,iog,l)str :tfí / Антоша :: программист :: Смешные комиксы (веб-комиксы с юмором и их переводы)
Смешные комиксы(155366)
программист(473)
Ночь, улица, фонарь, аптека,
Я покупаю вазелин.
За мной стоят два человека,
Армянин и сумрачный грузин.
Как бонус видео от valve про отладку кода в QtC.
Неприятие пыхи связано с двумя особенностями.
1. Благодаря мощным дефолтным библиотекам он позволяет заниматься кодингом уж совсем упоротым дебилам, из-за чего средний уровень пхп-кодера как кодера на уровень ниже, чем кодера, начавшего с другого языка.
В итоге, все плюсы приходися вычеркивать и получаем что-то типа сильно кастрированного и тормозного перла/питона с комьюнити, состоящим из дегенератов. Зачем такое счастье?
Ну пых действительно развивается. Сам я его очень сильно недолюбливаю. Все пытаюсь вебовские проекты перестать на нем делать. Только пока альтернатив не нашел.
Но начиная с 5,3 версии много хорошего добавили. Те же трейты, генераторы, норм ООП. Есть возможность использовать статическую типизацию.
Когда я пробовал на питон перейти меня остановило именно его кастрированное ООП.
Как искать и исправлять ошибки в коде
Искать ошибки в программах — непростая задача. Здесь нет никаких готовых методик или рецептов успеха. Можно даже сказать, что это — искусство. Тем не менее есть общие советы, которые помогут вам при поиске. В статье описаны основные шаги, которые стоит предпринять, если ваша программа работает некорректно.
Шаг 1: Занесите ошибку в трекер
После выполнения всех описанных ниже шагов может так случиться, что вы будете рвать на себе волосы от безысходности, все еще сидя на работе, когда поймете, что:
Трекер поможет вам не потерять нить размышлений и о текущей проблеме, и о той, которую вы временно отложили. А если вы работаете в команде, это поможет делегировать исправление коллеге и держать все обсуждение в одном месте.
Вы должны записать в трекер следующую информацию:
Это должно подсказать, как воспроизвести ошибку. Если вы не сможете воспроизвести ее в любое время, ваши шансы исправить ошибку стремятся к нулю.
Шаг 2: Поищите сообщение об ошибке в сети
Если у вас есть сообщение об ошибке, то вам повезло. Или оно будет достаточно информативным, чтобы вы поняли, где и в чем заключается ошибка, или у вас будет готовый запрос для поиска в сети. Не повезло? Тогда переходите к следующему шагу.
Шаг 3: Найдите строку, в которой проявляется ошибка
Если ошибка вызывает падение программы, попробуйте запустить её в IDE под отладчиком и посмотрите, на какой строчке кода она остановится. Совершенно необязательно, что ошибка будет именно в этой строке (см. следующий шаг), но, по крайней мере, это может дать вам информацию о природе бага.
Шаг 4: Найдите точную строку, в которой появилась ошибка
Как только вы найдете строку, в которой проявляется ошибка, вы можете пройти назад по коду, чтобы найти, где она содержится. Иногда это может быть одна и та же строка. Но чаще всего вы обнаружите, что строка, на которой упала программа, ни при чем, а причина ошибки — в неправильных данных, которые появились ранее.
Если вы отслеживаете выполнение программы в отладчике, то вы можете пройтись назад по стектрейсу, чтобы найти ошибку. Если вы находитесь внутри функции, вызванной внутри другой функции, вызванной внутри другой функции, то стектрейс покажет список функций до самой точки входа в программу (функции main() ). Если ошибка случилась где-то в подключаемой библиотеке, предположите, что ошибка все-таки в вашей программе — это случается гораздо чаще. Найдите по стектрейсу, откуда в вашем коде вызывается библиотечная функция, и продолжайте искать.
Шаг 5: Выясните природу ошибки
Ошибки могут проявлять себя по-разному, но большинство из них можно отнести к той или иной категории. Вот наиболее частые.
Если ваша ошибка не похожа на описанные выше, или вы не можете найти строку, в которой она появилась, переходите к следующему шагу.
Шаг 6: Метод исключения
Если вы не можете найти строку с ошибкой, попробуйте или отключать (комментировать) блоки кода до тех пор, пока ошибка не пропадет, или, используя фреймворк для юнит-тестов, изолируйте отдельные методы и вызывайте их с теми же параметрами, что и в реальном коде.
Попробуйте отключать компоненты системы один за другим, пока не найдете минимальную конфигурацию, которая будет работать. Затем подключайте их обратно по одному, пока ошибка не вернется. Таким образом вы вернетесь на шаг 3.
Шаг 7: Логгируйте все подряд и анализируйте журнал
Пройдитесь по каждому модулю или компоненту и добавьте больше сообщений. Начинайте постепенно, по одному модулю. Анализируйте лог до тех пор, пока не проявится неисправность. Если этого не случилось, добавьте еще сообщений.
Ваша задача состоит в том, чтобы вернуться к шагу 3, обнаружив, где проявляется ошибка. Также это именно тот случай, когда стоит использовать сторонние библиотеки для более тщательного логгирования.
Шаг 8: Исключите влияние железа или платформы
Замените оперативную память, жесткие диски, поменяйте сервер или рабочую станцию. Установите обновления, удалите обновления. Если ошибка пропадет, то причиной было железо, ОС или среда. Вы можете по желанию попробовать этот шаг раньше, так как неполадки в железе часто маскируют ошибки в ПО.
Если ваша программа работает по сети, проверьте свитч, замените кабель или запустите программу в другой сети.
Ради интереса, переключите кабель питания в другую розетку или к другому ИБП. Безумно? Почему бы не попробовать?
Если у вас возникает одна и та же ошибка вне зависимости от среды, то она в вашем коде.
Шаг 9: Обратите внимание на совпадения
Шаг 10: Обратитесь в техподдержку
Наконец, пора попросить помощи у того, кто знает больше, чем вы. Для этого у вас должно быть хотя бы примерное понимание того, где находится ошибка — в железе, базе данных, компиляторе. Прежде чем писать письмо разработчикам, попробуйте задать вопрос на профильном форуме.
Ошибки есть в операционных системах, компиляторах, фреймворках и библиотеках, и ваша программа может быть действительно корректна. Но шансы привлечь внимание разработчика к этим ошибкам невелики, если вы не сможете предоставить подробный алгоритм их воспроизведения. Дружелюбный разработчик может помочь вам в этом, но чаще всего, если проблему сложно воспроизвести вас просто проигнорируют. К сожалению, это значит, что нужно приложить больше усилий при составлении багрепорта.
Полезные советы (когда ничего не помогает)
Что вам точно не поможет
Ошибка, которую я недавно исправил
«С любовью, Антоша»: интервью с режиссером посмертного фильма про Антона Ельчина
В кино вышла документальная лента о погибшем три года назад Антоне Ельчине «С любовью, Антоша», где актера вспоминают Кристен Стюарт, Дженнифер Лоуренс, Уиллем Дефо, Николас Кейдж и вся команда «Стартрека». Алиса Таежная поговорила с режиссером Гарретом Прайсом о том, почему этот фильм стоит посмотреть тем, кто мечтает что‑то написать или снять.
— Как история Антона Ельчина нашла вас?
Родители Антона, Ирина и Виктор, очень хотели, чтобы после несчастного случая о нем было известно гораздо больше, чем рассказали в экстренных новостях. Антон был правдоискателем, экспериментатором и большой душой — и нужен был тот, кто покажет это людям. Дрейк стал продюсером фильма, а меня пригласил как режиссера.
— Что случилось за этот час? Что на вас так повлияло?
— Вообще делать кино при поддержки семьи, которая испытывает боль утраты — это большой риск. Попасть в зависимость от чужого мнения или сделать еще больнее.
— Этот баланс и был самым трудным — мы обсудили его с родителями Антона с самого начала. Они пообещали никак не вмешиваться и дать полный доступ. Было видно, как им было трудно на это решиться, но они меня поддерживали и уважали как режиссера. Было сразу понятно, что они сами художники, вырастившие художника, и им не надо объяснять такие вещи.
— Когда вы росли, Антон Ельчин постоянно был на виду — американская восходящая звезда с десятками ролей. Какое у вас к нему было отношение как зрителя?
— Если честно, из «С любовью, Антоша» складывается впечатление, что Ельчин был идеальным. Неужели не нашлось ни одного знакомого, который сказал бы: «Этот подонок испортил мне жизнь»?
— Вас не мучила совесть читать дневники и работать со всем интимным, что не предназначалось для посторонних глаз?
— Все режиссеры — нарушители границ. Они лезут за вещами, которые никто не должен видеть, — мне кажется, об этом вообще пора снять отдельное кино. Но чем больше любви и вдохновения я видел в людях, которые знали Ельчина, тем меньше вины я испытывал за то, что копаюсь в его жизни. Думаю, ему бы очень понравился фильм, который показывает его таким вдохновляющим и сильным, каким он был на самом деле.
— Ваш док про Дженис Джоплин, где вы были монтажером, тоже основывался на неопубликованных ранее записях, ее любовной переписке и частных дневниках. Там вы научились работать с архивом известного ушедшего человека?
— Вы работали монтажером в художественном кино и доке, а теперь вы режиссер. Вы навсегда поменяли профессию?
— Во-первых, художественное кино сейчас невозможно представить без документального. А во-вторых, режиссуру — без монтажа. Я горячо люблю все это, хотя иногда понятия представляют полярными.
А кино вообще, как известно, делается в монтажной. История Антона просто приплыла ко мне, я ее не искал. Думаю, мой следующий фильм так же причалит ко мне. Потому что если начинаешь напряженно искать, точно найдешь что‑то не то.
— Из фильма мне показалось, что Антон Ельчин стал близок вам еще и потому, что он синефил. Насмотренных и очень любопытных актеров, которые хорошо знают историю кино, в Голливуде правда мало.
— Да, и эта его синефилия неслучайна: Антон собирался снимать фильмы, но так и не успел. Все, что он делал — и музыка, и фото, и актерская работа, и тексты, — вело его в сторону кино. И по его биографии видно, что только человек, который искренне любит кино, а не просто хочет прославиться, будет отсматривать фильмографии режиссеров и писать заметки о фильмах, которые смотрит. Трагично то, что он так и не успел сделать то, что придумал. Зато как он впитывал.
— Вы сами изменились, пока делали посмертный фильм?
— История Ельчина — это еще и история американской мечты. В России Антона воспринимают как родного, а в Америке, наверное, как сына иммигрантов, который сумел добиться славы.
— Да, иммигрантская история — еще одна линия в фильме. Думаю, что многие иммигранты, которые сейчас приезжают в Америку, лишены американской мечты, и разочаровались в ней, хоть и слышали о ней всю жизнь. А история Ельчина — вневременная и очень волнительная: классический сценарий того, как люди начинали с нуля и через любовь и поддержку добились многого.
— В фильме слегка затрагивается интерес Ельчина к аутсайдерской жизни: кинки-вечеринки, меньшинства, кросс-дрессинг. Что это было для него? Поиск идентичности или просто темы для съемок?
— До того как решить снимать кино, Антон снимал фото и интересовался жизнью, максимально далекой от селебрити-культуры. Все его выходы из зоны комфорта я связываю с любопытством и желанием показать то, что мало кому было видно. Он был живой. Его восхищало то, что другие игнорировали. А самое главное — он не подглядывал, а был другом всем людям, которые ему доверились.
Знаменитости в Голливуде — это определенный образ жизни, которому многие сейчас решают не соответствовать. Посмотрите на других героев фильма — Кристен Стюарт или Дженнифер Лоуренс ведут себя так же свободно и независимо, они презирают шелуху так же, как презирал Антон. Они не озираются в поисках одобрения. Мне кажется, их появление в фильме — как раз о том, что похожие люди с принципами притягиваются друг к другу.
Они в Голливуде не из‑за чека и выбирают быть собой, а не соответствовать образу правильной знаменитости. Антон точно не хотел быть удобным, когда снимал подпольные вечеринки и себя в женском платье.
Эти 10 ошибок делал каждый разработчик
Не стесняйтесь своих ошибок, потому что ошибаются — все!
Живёт в Нидерландах, занимается backend-разработкой, увлечённо инвестирует в криптовалюты.
Переводчик-фрилансер. Увлечён своей профессией. Переводит полезные статьи на разные темы — от IT до путешествий, урбанистики и социологии. Занимается лингвистическими исследованиями.
Человеку свойственно ошибаться. День за днём все мы совершаем промашки. И на работе тоже.
Создание программ — задача сложная. Без ошибок здесь не обходится. Какие-то ошибки пустяковые, какие-то — серьёзные. Но они были и будут всегда.
И это хорошо. Потому что ошибки ценны. Конечно, если мы извлекаем из них уроки — и растём профессионально. Как говорила Элеонора Рузвельт, жизнь слишком коротка, чтобы тратить её на повторение чужих ошибок. Так что лучше на них учиться.
Я расскажу про самые частые ошибки разработчиков. Надеюсь, вы научитесь их избегать.
Ошибка 1. Неверно сохранять изменения проекта
Помните об этом и будьте внимательны.
Ошибка 2. Путать, что нужно коммитить
Я часто сталкиваюсь с тем, что в репозитории оказываются лишние файлы или в нём чего-то недостаёт. Это происходит тогда, когда фиксируют слишком много изменений за раз. Тут уж немудрено надобавлять лишнего или забыть что-то нужное.
Чаще всего из-за пропавшего файла что-нибудь пойдёт не так, а что конкретно — зависит от файла. Например, если не хватает yarn.lock, вы получите разные зависимости для всех ваших окружений, что легко породит самые дурацкие ошибки.
Ошибка 3. Исправлять код как попало
Безусловно, иногда допустимо кодить «грязно». Когда главное — быстро получить результат. Например, если код нужен ненадолго или вовсе на раз. Но если кодом, который держится на костылях, будут пользоваться постоянно — это вам ещё аукнется.
Ошибка 4. Искать лучший код для проходной задачи
Этим часто грешат новички — очень уж им охота впечатлить коллег. Но поверьте, писать навороченный код для задачи, которая того не стоит, бессмысленно. Так вы тратите время на то, чего не требовалось.
А вам надо быстрее выдавать адекватный код, который верно решает поставленную задачу. Это значит — оптимальный для её условий, требований к кодингу в команде, понятный коллегам и так далее, а вовсе не лучший из всех возможных (например, по своим техническим характеристикам).
Так у вас останется время на действительно полезную работу.
Ошибка 5. Не всегда проверять свой код
Каждый разработчик хоть раз в жизни писал совсем короткий код — буквально пару строк. Казалось, тут просто нечему ломаться. И верно: здесь не ломалось — ломалось где-то ещё, но виноваты были как раз те две строчки.
При этом большинство разработчиков ненавидят проверять свой код. Не видят в этом смысла, считают пустой тратой времени. Они уверены, что код заработает идеально. Почему — вопрос без ответа.
Не делайте так. Подкрепляйте веру в свой профессионализм результатами тщательного тестирования. Оно поможет устранить критические ошибки и подтвердит, что ваш код работает именно так, как задумано.
Ошибка 6. Наследовать по поводу и без
В наследовании как таковом нет ничего плохого. Но я замечаю, что разработчики слишком уж им увлекаются. Это частая ошибка.
Так что помните: наследование — всё же не палочка-выручалочка, а палка о двух концах.
Ошибка 7. Изобретать велосипед
Многие проекты применяют тот или иной фреймворк — это здорово упрощает жизнь разработчикам. Однако не все в команде знают, что фреймворк умеет.
И это проблема. Потому что такие разработчики продолжают изобретать методы и инструменты, аналоги которых во фреймворке уже есть. То есть не только тратят время впустую, но и не пользуются потенциалом фреймворка — усложняют повторное использование кода.
Чтобы не делать двойную и тройную работу, изучайте фреймворки тщательнее.
Ошибка 8. Не учиться новому
Не учиться чему-то новому — самая досадная ошибка разработчика.
Да, не всегда получается учиться на работе — приходится тратить и личное время. Но это необходимо, чтобы оставаться востребованным, это инвестиции в себя.
Ключ к совершенству — в практике, это знают все. Без неё не получить полезные навыки, не освоить другие языки программирования, новые технологии и так далее.
Ошибка 9. Недооценивать объём работы
А всё оказалось иначе. Решение в лоб заработало не так, как ожидали. Пробуете альтернативное — на него уходит гораздо больше времени.
Недооценивать объём работы — ошибка частая, особенно в командах с гибким управлением проектами (типа Scrum).
Так что, если вы тимлид, закладывайте время не только на разработку продукта, но и на дополнительные этапы вроде тестирования.
Ошибка 10. Излишняя самоуверенность
Уверенность в себе — это здорово, когда она не мешает вам слышать чужие мнения.
Самоуверенные разработчики порой забывают, что тоже совершают ошибки. И чаще начинают принимать решения единолично, не консультируясь ни с кем. Однажды это непременно выйдет им боком: либо качество решений упадёт, либо коллеги начнут чувствовать себя ненужными.
Разработчик не может разбираться сразу во всём и делать всё одинаково хорошо. Стоит это осознать.
Подытожу
Подумайте над этими ошибками, извлеките урок из каждой. Позвольте себе ошибаться, но не забывайте на этом учиться. И помните расхожую мудрость: не ошибается лишь тот, кто ничего не делает.