Как отлаживать как старший разработчик
8 декабря 2022 г.Моя книга по отладке уже доступна для предзаказа, и я очень рад объявить, что провожу полный онлайн-курс по идти вместе с ним. Сайт курса еще не готов, но у меня уже есть полный план и много записанного материала. Я постараюсь выпускать видео по два в неделю в течение следующих нескольких месяцев, пока полный курс не будет онлайн. Это будет очень подробный курс. Я записал первый модуль и половину второго модуля, и у меня уже почти 3 часа плотного записанного материала!
Посмотрите первое видео из серии ниже и полную стенограмму. Первый модуль состоит из 9 видеороликов, каждый из которых будет на 100 % бесплатным для всех и подробно описывает отладку IDE. Они примерно соответствуют первой главе моей книги. Полный курс охватывает детали, которые я получаю в других 13 главах, хотя он не может охватить всю широту книги, он представляет элементы, которые трудно показать в форме книги.
Я публикую курс на новом канале YouTube, буду очень признателен за лайки и подписчиков. Если вам понравилось видео, подпишитесь на него или на один из списков рассылки, например. здесь, чтобы получать уведомления о новых видео и о доступе к полному курсу по мере его появления.
Я не собираюсь публиковать курс ни на каком другом канале, кроме как здесь. Поэтому, если вы увидите курс где-либо еще, кроме этого, сообщите мне об этом и не покупайте его там.
https://www.youtube.com/watch?v=A919j_5qE0k?embedable=true а>
Расшифровка
Всем привет и добро пожаловать на практическую масштабную отладку. В этом курсе я научу вас отлаживать, но что более важно. Я надеюсь изменить ваш взгляд на отладку и программирование в целом.
В середине 90-х я был самоуверенным разработчиком. Я знал «все», и старшие разработчики постоянно обращались ко мне за консультацией, несмотря на мой юный возраст в то время. Тогда мне повезло. Я отлаживал проблему со старшим разработчиком, и то, как он орудовал отладчиком, сбило меня с места.
Опыт был одновременно удивительным и смущающим. Мое самолюбие было уязвлено, но я упорствовал и научился всему, что мог, о методах отладки. Мне посчастливилось увидеть мастера за работой, обнаружить, что есть способ лучше. Я надеюсь, что этот курс передаст вам эту удачу.
Вот почему я решил начать курс с отладки IDE. Это то, что мы используем все время, но, просматривая эти видео, я гарантирую, что расскажу о функциях, о которых вы, вероятно, никогда не слышали
Одной из таких функций является маркировка объектов, которая позволяет нам определять глобальную статическую переменную во время отладки. Это замечательная функция, о которой мы поговорим в третьем видео этого курса.
Еще одна функция — «Перейти к строке», которая позволяет нам динамически перемещать точку выполнения в произвольное место. Об этом мы поговорим во втором видео этого курса. Или средства рендеринга часов, которые позволяют нам настроить то, как все выглядит в области часов, в удивительной степени. Об этом мы поговорим в 6-м видео курса.
В школе этому не учат.
Но прежде чем мы продолжим… Почему я должен учить этому?
Я написал пару книг, в том числе одну об отладке, которая охватывает множество тем, которые мы здесь обсудим. Я работал в этой отрасли десятилетиями во многих компаниях и работал консультантом. Это означает, что мне приходилось идти в компании, выяснять, что не так, и решать проблему, а затем завышать смехотворную плату. Отладчик был моим секретным оружием!
Я также работал в Sun Microsystems и Oracle, создавал JVM, авиасимуляторы, встраиваемые системы, облачные решения и инструменты для разработчиков.
Вы можете связаться со мной через мои социальные сети, указанные здесь, и подписаться на меня в Mastodon, LinkedIn и т. д. Вы также можете использовать раздел комментариев здесь. Я постараюсь помочь.
Это моя книга Apress под названием «Практическая отладка в таком же масштабе, как и этот курс». Пока я это записываю, он еще не вышел, но вы можете предварительно заказать его, и это идеальное дополнение к этому курсу. Он может быть уже выпущен к тому времени, когда вы увидите его, так как он выйдет 20 января 2023 года. В любом случае, вы, вероятно, сможете найти его в Интернете.
Давайте рассмотрим учебную программу курса и обсудим темы, которые мы рассмотрим. Первая часть посвящена основам. Использование отладчика в среде IDE. Это кажется тривиальным упражнением, но я гарантирую, что расскажу о функциях отладчика, о которых вы, вероятно, никогда не слышали или о которых не думали.
Я сосредоточусь на IDE JetBrains, в основном на IntelliJ, так как у него один из лучших отладчиков. Далее мы обсудим теорию отладки. Научный метод, лежащий в основе процесса отладки.
Инструменты рассказывают о некоторых интересных инструментах, которые мы можем использовать при отслеживании проблемы. Это инструменты системного уровня, которые мы можем использовать, чтобы заглянуть в систему и выяснить, что там происходит. В основном они находятся в системах Linux, поскольку именно там мы выполняем большую часть развертывания. Особенно в мире контейнеров.
Далее мы углубимся в способы, с помощью которых мы можем лучше написать наш код, чтобы упростить отладку в случае сбоя. Любой код дает сбой, мы должны убедиться, что он дает сбой таким образом, чтобы нам было легко отслеживать проблему.
Отладка Kubernetes — это следующий шаг. Как вы отлаживаете проблему, когда между вами так много слоев абстракции. Масштаб Kubernetes значительно усложняет отладку.
За этим последует отладка без сервера, что довольно болезненно. Lambda добавляет сложности эфемерного состояния и среды, которую практически невозможно воспроизвести локально.
В разделе "Отладка полного стека" много говорится об отладке клиентской части и немного о процессе отладки серверной части базы данных. Цель состоит в том, чтобы создать движение щипцов при поиске ошибки в реальном приложении.
Наблюдение не является отладкой как таковой, но это важный инструмент для отслеживания производственных проблем во всех этих технологиях.
Прежде чем мы перейдем к основному курсу, давайте немного углубимся в отладку. Это должно быть очевидно для большинства из нас, и это так. Но есть и пара нюансов.
Отладка — это научный метод, применяемый к компьютерному программированию. Мы можем наблюдать проблему или поведение непосредственно в работающем приложении. Это важно. В физике есть теоретическая и экспериментальная физика. Эта аналогия не совсем то же самое, потому что в программировании у нас также есть производство и все эти сложности. Отладка — это понимание практической реализации и наблюдение за ней различными экспериментальными способами, чтобы мы могли увидеть реальную проблему и устранить то, что не является проблемой.
Отладка дает нам глубокое понимание нашего проекта, которое мы не можем получить никаким другим способом.
Отладка не заменяет тестирование, вам часто нужен отладчик для отладки тестов или понимания отсутствующих тестов. На самом деле отладка и тестирование идут рука об руку. В рамках этого курса мы поговорим о тестировании и его особом отношении к отладке.
Отладка дает представление о нашем коде, которое обычно гораздо сложнее получить другим способом. Вы можете использовать его для изучения нового кода. Я использую отладчики для изучения новой кодовой базы, которая мне чужда. Нет более мощного анализа кода или учебника, чем простой отладчик.
Но больше всего. Это позволяет нам проверять предположения, которые у нас могут быть о работающем приложении. Это помогает нам отслеживать ошибки.
Многие из моих демонстраций основаны на приложении PrimeMain, которое вы можете найти на моей странице GitHub. Не стесняйтесь подписываться на меня, пока вы там, и посмотреть другие мои проекты.
Давайте откроем IDE и отладим простое приложение.
Чтобы начать работу с отладчиком, мы открываем проект PrimeMain и запускаем его. Нам нужно выполнить некоторые настройки, специфичные для IDE, чтобы это заработало, но почти любая IDE и язык имеют здесь основные общие концепции. После запуска приложения мы можем разместить точку останова слева, и среда IDE остановится в этой точке для отладки.
Здесь мы видим кадры стека, в данном случае это довольно просто, потому что у нас есть только один кадр. Но когда мы начнем отлаживать реальные приложения, мы увидим, что стек может быть довольно глубоким. Мы можем щелкнуть кадры в стеке, выбрать определенный метод и просмотреть значения переменных в стеке.
Мы видим все это здесь, в представлении переменных. Мы можем добавить часы, проверить элементы и даже изменить их значения, но я забегаю вперед. Это позволяет нам видеть значение каждой переменной в этом кадре стека и многое другое. Мы углубимся в это в следующем видео.
В следующем видео мы обсудим поток управления программой. Следите за видео, чтобы ознакомиться с полным курсом. Если у вас есть какие-либо вопросы, пожалуйста, используйте раздел комментариев. Спасибо!
Также здесь
Оригинал