В настоящее время наша работа по разработке не начинается с нуля, а часто основана на многих библиотеках с открытым исходным кодом.Для внешнего интерфейса мы будем использовать веб-пакет для создания инструментов и мы будем использовать Vue, React или Angular для сред MVVM.Они открыты исходные инструменты помогают нам значительно повысить эффективность производства.
Обычно шаги для изучения проекта с открытым исходным кодом заключаются в том, чтобы прочитать его официальные документы, загрузить и установить несколько его демонстрационных экземпляров, а затем применить и наступить на ямы на работе. После того, как мы научимся использовать и освоить проект с открытым исходным кодом, нам нужно прочитать его исходный код, если мы хотим понять его глубже.
Многие студенты пытались изучить исходный код, и в отрасли также есть статьи с анализом исходного кода различных библиотек с открытым исходным кодом, поэтому сегодня мы также поговорим об изучении исходного кода.
почему
Почему людям не нравится анализ исходного кода, или почему мы хотим изучать исходный код Обычно это следующие причины:
управляемый интересом
Такие студенты часто очень увлечены технологиями, проявляют большой интерес к изучению неизвестных технологий и любят докапываться до сути вещей. Поэтому для отличных проектов с открытым исходным кодом они очень охотно тратят время на изучение принципов его реализации, и как только они это поймут, у них будет большое чувство достижения.
Технологии
Такие студенты часто желают улучшить свои технические способности за счет дополнительного обучения. Техническое содержание изготовления колеса выше, чем использование колеса, поэтому изучение принципа реализации колеса и знание того, как делается колесо, также могут значительно улучшить ваши технические способности. Кроме того, исходный код общих исследований связан с работой, и изучение исходного кода также может быть хорошим подспорьем для вашей обычной работы.
пит-драйв
Такие студенты наступят на некоторые ямы в процессе использования проектов с открытым исходным кодом, и после безрезультатного ознакомления с информацией они решают посмотреть на реализацию исходного кода, чтобы найти причину проблемы. Однако способ изучения исходного кода, управляемый ямами, относительно пассивен, и часто можно изучить только верхушку айсберга исходного кода, и эффект не так хорош, как первые два.
собеседование
Таких одноклассников может быть больше всего, потому что сейчас многие интервьюеры любят расспрашивать о принципах реализации тех или иных технологий, поэтому перед собеседованием заставят всех выучить принцип реализации стека технологий, который используется в их обычной работе, но такого рода обучения является наиболее пассивным.Да, многие люди могут предпочесть прочитать некоторые статьи анализа исходного кода, чтобы запомнить их наизусть, не вникая в суть реализации исходного кода.
когда делать
Изучение исходного кода — это хорошо, но изучение его в неподходящее время может иметь неприятные последствия. Некоторые студенты начинают смотреть исходный код, когда они даже не знают, что делает проект с открытым исходным кодом, Если это немного сложный проект с открытым исходным кодом, такая эффективность очень низкая, и велика вероятность того, что время будет потрачено впустую. и ничего не узнал.
Итак, когда мы должны изучить исходный код?Я думаю, вы, по крайней мере, хорошо разбираетесь в использовании этого проекта с открытым исходным кодом, и когда вы ясно представляете его конструктивные идеи, какие проблемы он используется для решения и т. д., чтобы в дальнейшем понять это Изучая, вы можете посмотреть на его реализацию исходного кода.
Как это сделать
Таким образом, как выучить исходный код очень важно.Это правда, что изучение исходного кода определенно займет время.Хороший метод обучения значительно повысит эффективность обучения и позволит достичь вдвое большего результата с половиной усилий. На самом деле, некоторые люди в сообществе рекомендовали некоторые способы изучения исходного кода, например, начинать с ранней фиксации исходного кода, имитировать маленькое колесо и так далее. Здесь я суммировал несколько моментов, основанных на моем собственном опыте просмотра исходного кода.
Получите полную картину
Прежде всего, вы должны иметь полное представление об этом проекте с открытым исходным кодом, знать предысторию его создания и какие проблемы решать. Прежде чем приступить к просмотру исходного кода, сначала получите общее представление о его структуре каталогов исходного кода, записи выполнения кода, методе сборки и упаковки, окончательных выходных файлах и т. д. Необходимо исследовать исходный код с глобальной точки зрения и избегать бесцельного просмотра исходного кода.
проблемный
На основе всестороннего понимания вы можете посмотреть исходный код через проблемно-ориентированный. Взяв в качестве примера Vue.js, мы знаем, что его основная идея заключается в управлении данными + компонентизация, тогда мы можем спросить себя, как данные шаблона Vue отображаются в DOM и как шаблон повторно отображается после данных. обновляется, как реализуется компонентизация, как шаблоны компилируются для функций рендеринга и так далее. Тогда каждая проблема может стоить целенаправленного изучения исходного кода. Разница между методом, ориентированным на проблемы, и методом, ориентированным на яму, заключается в том, что процесс обучения является активным и самостоятельным, а усвоенные вещи будут более систематическими и всеобъемлющими; в то время как метод, ориентированный на яму, часто удовлетворяется решением проблемы. а затем останавливается, и обучение будет относительно ограниченным.
Основная линия первая
Когда мы смотрим на код с точки зрения задач, мы должны в первую очередь иметь в виду основную строку, так называемую основную строку — это код в основном процессе решения вашей проблемы. Поскольку обычно проект с открытым исходным кодом имеет богатые функции, будет много логики ветвления кода. Когда мы смотрим на исходный код с проблемой, мы не должны смотреть на каждую логику ветвления, как на выполнение кода, нам нужно заботиться о основной части строки. Логика ветвления обычно используется для решения проблемы некоторых конкретных сценариев, поэтому, если вы хотите изучить ее, вы можете вернуться, когда будете анализировать этот сценарий. Возьмем в качестве примера Vue.js.Например, когда мы анализируем, как шаблоны управляют рендерингом DOM, нам нужно заботиться только о реализации основного процесса init -> mount -> render -> update -> patch. Тогда мы можем игнорировать встречающуюся в процессе ветвящуюся логику инициализации отзывчивых объектов, потому что в текущем сценарии анализа нет части обновления данных, и эту часть контента можно поместить в углубленное изучение принципа отзывчивости. чтобы увидеть.
Участвовать в совместном строительстве
Я бы предпочел бы сообщество открытого исходного кода, чтобы иметь больше людей, участвующих в проектах с открытым исходным кодом для создания, когда мы вносим вклад в проекты с открытым исходным кодом, когда наше понимание исходного кода будет предложено быть более тщательным. Например, существует множество способов построить, например, вы можете поставить PR на проекты с открытым исходным кодом; например, предложил помочь решить существующую проблему проектов с открытым исходным кодом; проекты с открытым исходным кодом, такие как участие в подготовке документов и скоро. В ходе моего исследования Vue.js источника, также обнаружили ситуацию и добиться исходного документа не соответствует, а затем поднял PR Этот документ ремонтировать. Кстати не только построить может помочь нам изучить исходный код, но и увеличить чувство выполненного долга, выполнять обоими.
навыки чтения
Конечно, есть много навыков чтения исходного кода, таких как добавление точек останова в пошаговую отладку в ключевых местах, просмотр ввода и вывода модульных тестов для сложных функций, помощь сложной логике посредством рисования и т. д.
Вспомогательная информация
Понимание исходного кода на самом деле является сложным процессом, особенно для сложного проекта с открытым исходным кодом. Люди на разных уровнях могут по-разному понимать исходный код.В настоящее время, если есть отличные данные, проанализированные другими, чтобы помочь нам изучить исходный код, эффективность будет значительно повышена, и его будет легче понять. Тем не менее, существует много данных для анализа исходного кода сообщества, и очень важно определить хорошие данные.
Изучение исходного кода Vue.js
Vue.js используется в качестве интерфейсной среды MVVM все большим числом компаний, и одна за другой появляются различные статьи по анализу исходного кода. Но глядя на эти статьи по анализу исходного кода, большинство из них представляют собой некоторые учебные заметки автора.Добавление некоторых аннотаций к исходному коду, такого рода информация не сильно отличается от непосредственного просмотра исходного кода, потому что исходный код будет также добавляйте там, где это необходимо.На заметку (если вы не очень плохо понимаете английский). Еще одна большая проблема заключается в том, что он относительно разбросан, а не систематичен и всеобъемлющ.Если вы хотите полностью изучить Vue.js, такие разрозненные учебные материалы на самом деле не очень эффективны. Но сообщество также преуспело, например, Ран Мо.learnVue, который представляет собой относительно обширную серию статей об анализе исходного кода Vue.js, которую я видел.
Поскольку мой обычный рабочий проект разработан с использованием Vue.js, по Vue.js проводится много исследований. Я прошел 2 практических курса Vue.js на MOOC, первый«Vue.js жаждет высокой имитации?»Курс помог вам начать работу с Vue.js, второй курс«Музыкальное приложение Vue.js»Курс поможет вам продвинуться в практических аспектах Vue.js. После второго курса в прошлом году я думал об одном, как помочь своим ученикам продолжать совершенствоваться в направлении Vue.js. Поэтому я подумал сделать"Анализ исходного кода Vue.js"курсы, чтобы помочь студентам практиковать внутренние навыки.
На рынке нет обучающего видеокурса по анализу исходного кода.Я первый крабов ем.Запись курса исходного кода намного сложнее, чем запись самого курса.Прошло более полугода с момента создания. начало подготовки к запуску курса. Чтобы понять исходный код Vue.js, я объединил свой собственный опыт чтения исходного кода, разработал курс от поверхностного к глубокому, разделив его на четыре аспекта: ядро, компиляция, расширение и экология, и разделил его на восемь глав. , Как показано ниже:
В дополнение к видеокурсам я также написалэлектронная книга, как вспомогательный дидактический материал к видео. Электронная книга с открытым исходным кодом, студенты могут читать ее бесплатно, видео платное, 25+ часов курсов чистой галантереи, если вам это нужно, вы можете купить это, чтобы учиться,Но, пожалуйста, не забудьте поддержать подлинность, пожалуйста, уважайте результаты труда автора.. Кроме того, электронные книги и видео будут постоянно обновляться и поддерживаться, поэтому не беспокойтесь о проблемах с обновлением версии Vue.js, а последующие главы будут расширены за счет добавления нового контента. Студенты покупают эти преимущества, которыми могут пользоваться только настоящие о ~
Эпилог
Обычно наше владение технологией я делю на 5 уровней: уметь ею пользоваться; овладеть ею; понять принцип ее реализации; знать, зачем это делается; могу предложить лучший метод реализации. Я считаю, что большинство студентов все еще находятся на первых двух уровнях, поэтому изучение исходного кода может позволить нам перейти на третий уровень. Если вы выше 4 уровня, вы уже технолог.
Я надеюсь, что когда студенты изучают исходный код, они не только знают, что это такое, но и знают, что это такое.