Рубрики
Без рубрики

Учиться работать на существующих кодовых базах.

Некоторые наблюдения после неудачи и успеха в работе с устаревшими кодовыми базами. Теги с Python, Django, PHP, обучением.

Работа с устаревшим кодом, вероятно, является наиболее распространенной частью работы разработчика в программной индустрии. Если вы не будете работать в супер ранних фазовых запусках или постоянно назначаться на Гринфилд Проекты, вы Будет ли встретить наследие код. Есть много статей, написанных в Интернете, говорящих о том, как успешно понять и внести свой вклад в существующие кодовые базы. Я собираюсь поговорить о двух таких случаях в моей не такой длинной карьере, где у меня были некоторые разные результаты, пытаясь ознакомиться с существующей кодовой базой. Но До этого позвольте мне поделиться некоторыми моими наблюдениями.

Я бы сказал, что есть около трех факторов, которые помогают в понимании репо, авторумированного кем-то еще. Во-первых, насколько хорошо вы знакомы, вы с языком программирования и используемым каркасом. Программное обеспечение построено на абстракциях, а один из основных слоев абстракции является сам язык программирования. Если вы пытаетесь выяснить проект по Ruby-on-Rails, вы должны начать сниматься с понимания Ruby Share [1]. Я знаю, что это супер очевидно для большинства программистов, но не может быть для некоторых людей, работающих в индустрии программного обеспечения, что иногда приводит к тому, что люди получают назначение проектам, которые они не подходят.

Некоторые языки могут быть достаточно похожими, если вы знаете X, вы можете легко выучить вас. Но в некоторых случаях это может не работать таким образом. Как разработчик Python, я, вероятно, могу забрать Ruby на работе со значительными усилиями, но я не уверен, если оно то же самое с чем-то вроде Clojure или Erlang. Если вы работаете над проектами веб-разработки, то каркасы тоже играют важным фактором в Grokking CodeBase. Переход от колбы в Джанго был почти бесшовным для меня, но что-то вроде торнадо или скрученных, возможно, оказалось более сложным.

Другим ключевым фактором при захвате INS и ауты кодовой базы имеет нефте нашущийся. Хотя интуиция не помогает в определенной степени, вы должны попасть в руки в какой-то момент, если вы хотите постоянно решать проблемы. Будь то IDE, отладчик, регистрационные рамки или просто знание вашего пути вокруг Shell Linux, эти инструменты помогают вам огромным образом получить лучшую картину приложения. Почтальон Делает регулярный внешний вид в моих встречах отладки API. Так что лить над Git совершает и проверяет вину Git. Контактные вопросы при отладке определенного куска кода, и если автор репо, недоступен (то есть случай 9 раз из 10), вам придется собирать контекст в зависимости от этого способа. Ваш набор инструментов сыграет важную роль в этом.

Наконец, есть функциональность приложения. Если вы не знаете, что делает ваше приложение, вы не можете выяснить, как это так. Однако функциональные знания, в моем опыте было очень сложно общаться. Функциональные требования развиваются со временем, и если оно не будет постоянно документировано, вы часто остаетесь с неполной и неправильной картиной вашего проекта. Единственное, что помогает вот задавать вопросы и точно сообщать ваше понимание, чтобы избежать недоразумение или .. УХММ. Недостаток Отказ Но если вы каким-то образом получаете функциональные знания, то будет значительное дополнение к вашему арсеналу, с точки зрения выявления и решения проблем.

В хороший день я иногда изобразил себя что-то вроде Zach Galifianakis, играя в Black Jack в фильме похмелье. Хотя разработчик выясняет корневой причиной проблемы для проблемы, может не сделать сцену привлечения фильма, она определенно занимается некоторыми разработчиками в комнате. Я уверен, что каждый из нас может вспомнить хотя бы один экземпляр быть в страхе, наблюдая, как кто-то решит проблему, которая казалась нам загадочной. Следующий опыт, вероятно, является точным противоположным.

Я когда-то попросил пройти репозиторий PHP и быстро забрать его до уровня, который я могу начать вносить изменения в него. Я работал с Python в течение года в этот момент, но никогда не было возможности учиться или попробовать PHP. В конце концов мне удалось доставить его достаточно, но я изо всех сил пытался сделать это вовремя. Это была не только коллекция сценариев PHP, поддерживающих веб-сайт, которую меня попросили освоить, а скорее, это был полноценный проект, построенный на всеобъемлющих рамках.

Часто я слышу, как люди говорят о состоянии проектов, которым они назначены, и оправданно так. Но это было совершенно противоположно в моем случае. Разработчики широко собрали проект, используя соответствующие шаблоны дизайна и сохраняя его почти Сухой Отказ И я с другой стороны был тот, кто использовался для взлома быстрых решений для большинства проблем, не зная существование шаблонов. Таким образом, он пытался понять, как эта вещь сработала, что было построено на это еще, что я не знаю, а также построен так, как мне оставил меня.

Быть новичком, я явно боролся. Урок, который я узнал, так это то, что я не могу учиться как языком, так и рамками одновременно. Хотя связаны, они решают две разные проблемы. Это было глупо, чтобы недооценить эту задачу, но, к счастью, я в конечном итоге получил его.

Недавно я начал на новой работе. Я назначил команду поддержки. Я должен переключаться между 3-5 проектами в зависимости от поднятых билетов. Все они написаны кем-то еще и уже в производстве. Я мог бы написать другое сообщение в блоге о том, как он хотел работать как разработчик для поддержки полной занятости, но ядро того, что я делаю, это попробовать и понимать существующие кодовые базы ежедневно. На этот раз я уступил довольно положительные результаты до сих пор. Инструменты несколько новые, но проект в Python и Django помог мне быстро наращивать. Django заставляет вас писать код определенным образом, модели – просмотры – шаблоны, становится довольно простым для того, чтобы кто-то пережил в Джангу, чтобы понять любой проект, написанный в Джангу. Который удерживает то же самое для PHP-Symfony или Ruby-on-Rails.

Вероятно, есть некоторые действительно важные вещи, которые я пропустил здесь, для E.G.: Запуск тестов, используя отладчик, а некоторые другие вещи, которые я еще не сталкивался. Но все вообще, я хотел поделиться некоторыми мыслями о том, что я считаю основы понимания наследие. Пожалуйста, поделитесь своими мыслями и комментариями ниже.

[1]: Я когда-то дал проекты взять домашние интервью. Они хотели, чтобы я отладки приложения Ruby-on-Rails. Я начал, проходя мимо прошедших рубиновых на рельсов, только чтобы реализовать после 40%, что я должен пройти через рубиновое руководство первым. Само собой разумеется, я даже не завершил взять домашнее интервью.

PS: кредит на изображение – https://macrebisz.deviantart.com/

Оригинал: “https://dev.to/svemaraju/learning-to-work-on-existing-codebases-51nh”