Как читать незнакомый код
Источник: Beginner Освоиться с большой кодовой базой сложно, но без чтения незнакомого кода никак не обойтись. В течение своей карьеры вы прочитаете больше кода, чем напишете. Ведь чтобы писать хорошо поддерживаемый код, вам необходимо четко понимать, как он интегрируется с остальной кодовой базой. Чтение кода — это навык, который можно освоить и улучшить с течением времени. Он требует практики, но есть инструменты и методы, которые вы можете использовать для развития этого навыка. Читать незнакомый код может быть неприятно, потому что его писали не мы сами. Обычно у нас есть собственное видение, как код должен быть написан, несмотря на разные стили кодирования, разные соглашения об именах переменных или разные способы решения проблемы. Но при чтении кода не всегда очевидно, что в нем могли быть ограничения, которые первоначальному автору нужно было обходить. Возможно, ему нужно было решить проблему определенным образом по причинам, о которых вы не знаете. Если автор кода все еще рядом, вы можете у него об этом спросить. Но иногда просто невозможно узнать, почему код был написан тем или иным образом. Вот некоторые инструменты и команды, которые я успешно использую, чтобы копаться в кодовых базах и понимать не только то, что делает код, но и контекст, в котором он был написан.Управляйте исходным кодом в своих интересах
Я постоянно использую команду git grep. Это оболочка вокруг grep, которая также учитывает ваш файл .gitignore. Если мне нужно найти, где в кодовой базе используется переменная, имя класса или строка, это то, к чему я обращаюсь в первую очередь. Я использую git blame всякий раз, когда читаю файл, с которым не знаком. Это помогает мне узнать, кто написал этот код или когда было внесено то или иное изменение. Знание этих вещей позволяет найти нужных людей, с которыми можно поговорить, или поможет вам отследить ошибку из-за недавних изменений в файле. Я также использую команду git log -p <filename>, чтобы узнать хронологическую историю всех изменений, которые делались в файле. Какие были самые последние изменения в этом файле и кто их внес? Когда они были сделаны?Используйте возможности IDE
Я предпочитаю IDE JetBrains, потому что они отлично поддерживают индексацию кодовой базы. Это позволяет мне использовать такие команды, как “Перейти к определению” (Go to definition) и “Найти использование” (Find usages). Соответственно, я лучше ориентируюсь в кодовой базе. Если я сталкиваюсь с незнакомым мне вызовом функции, я могу использовать “Перейти к определению”, чтобы перейти прямо к тому месту в кодовой базе, где определена эта функция. Так я вижу сигнатуру функции и могу прочитать ее логику, чтобы увидеть, что она делает. Если я смотрю на функцию и хочу знать, где она используется в кодовой базе, я применяю команду “Найти использование”. Так я вижу все места в кодовой базе, которые вызывают эту функцию. Это полезно для рефакторинга и понимания того, где в кодовой базе используется определенная бизнес-логика.Ищите точки входа
Найдите основной файл, в котором загружается ваше приложение. Это поможет узнать, как ваша программа запускается и настраивается. Если это веб-приложение, вы также захотите просмотреть маршруты, чтобы увидеть, какие конечные точки или URL-адреса доступны.Читайте комментарии
Это кажется легким делом, но его легко упустить из виду. Иногда я застреваю, пытаясь понять, как работает логика или почему она существует определенным образом. Хотя прямо над кодом есть комментарий, который ее объясняет. Обязательно читайте комментарии, но будьте осторожны. Хороший комментарий раскрывает достаточно контекста, чтобы дать вам представление о том, почему код существует и почему он был написан именно так. Но комментарии часто могут вызвать больше путаницы, если они не обновляются по мере внесения изменений в код. Используйте git fault, чтобы узнать, был ли код изменен позднее, чем комментарий.Читайте тесты
Тесты предоставляют спецификацию того, как должен работать код, и какие случаи учитывались при написании кода. Это дает вам представление о том, как функция должна работать, а в некоторых случаях — как ее следует использовать, если вы смотрите на интеграционные тесты. Потратьте некоторое время на этой неделе на изучение перечисленных инструментов и команд, если вы работаете над новой функцией или отслеживаете ошибку в кодовой базе. Чем больше вы их используете, тем быстрее вы узнаете, что поможет вам в работе. Также вы найдете свой собственный стиль для навигации по большим базам кода.Как улучшить свое портфолио разработчика
Источник: FreeCodeCamp Ни для кого не секрет, что хорошее портфолио может значительно улучшить шансы разработчика на получение работы. Все говорят об этом. Но мало кто может сказать, как сделать хорошее портфолио. Видите ли, многие портфолио довольно скучные и похожи друг на друга. Если ваше портфолио выглядит как и все остальные, то не рассчитывайте на то, что его заметят. Оно не будет ничем выделяться среди других. Но не волнуйтесь, я уже через это прошел. Мое первое портфолио было шаблонным, скучным и содержало много того, о чем я сейчас расскажу в этом посте. Я бывший маркетолог, ставший разработчиком, и я знаю, как что-то выделить. Я провел несколько рекламных кампаний, которые резко увеличили продажи. Поэтому я знаю, что нужно думать как маркетолог, чтобы выделить свое портфолио. Если вы прочитаете это руководство и воспользуетесь моими советами, вы поднимете свое портфолио над морем других молодых разработчиков, пытающихся выделиться. Прежде чем мы перейдем к пяти советам по повышению уровня вашего портфолио, давайте просто убедимся, что мы на одной волне.Что такое портфолио?
Портфолио — это способ продемонстрировать, кто вы, какие у вас есть навыки и, самое главное, проделанную вами работу. Если вы разработчик, то ваше портфолио будет иметь форму веб-сайта. Основная цель вашего сайта — продемонстрировать себя и свою работу наилучшим образом. Портфолио должно выделять вас и заставлять работодателей думать: “Вау! Я бы хотел работать с этим человеком”. В конечном счете, вам нужно будет показать им, что с вами здорово работать, и они должны узнать о вас больше. Портфолио должно включать некоторые стандартные элементы.Необходимый минимум портфолио
Вот не подлежащие обсуждению пункты любого портфолио разработчика:Адаптивный дизайн (страница должна качественно отображаться как в десктопной, так и в мобильной версии).
Проекты, демонстрирующие вашу работу.
Раздел “Обо мне” или другое место, где люди, читающие ваш сайт, могут узнать информацию о вас.
Ваше портфолио должно быть доступно для всех посетителей сайта.
У вашего портфолио должен быть собственный домен. Купите доменное имя — это можно сделать менее чем за 10 долларов. Не отправляйте людей на 39238834.netfily.com
Способ, с помощью которого люди могут связаться с вами, желательно ваш адрес электронной почты.
Пять пунктов, которые нужно выполнить, чтобы повысить уровень своего портфолио
1. Определите свою целевую аудиторию
Одной из областей, которая может помочь повысить уровень вашего портфолио, является точное знание цели вашего портфолио. То есть для кого оно? Если бы я спросил вас, какова цель вашего портфолио, соответствует ли результат этому? Скажем, цель вашего портфолио — получить первую работу младшего разработчика. Тогда ваше портфолио будет сильно отличаться от портфолио фрилансера. Поэтому первое, что вам нужно сделать, — это спросить себя, какова цель вашего портфолио. Начните с общего, а затем уточните детали. Продолжая пример с младшим разработчиком, вы можете уточнить интересующую вас должность как младший разработчик интерфейса на React. Если вы младший разработчик интерфейса, то вашему портфолио не понадобятся такие элементы, как общие карты навыков, показанные на рисунке ниже. Эти карты лучше подходят для тех, кто ищет внештатную работу. Когда вы знаете цель своего портфолио, вы можете лучше адаптировать информацию, чтобы сообщить, почему кто-то должен помочь вам в достижении вашей цели.2. Улучшите детали вашего проекта
Это самый важный раздел вашего портфолио, и я часто вижу, что он выполнен не очень хорошо. Если вы просматриваете на Reddit какое-то сообщество вроде r/webdev и ищете “портфолио”, то, как правило, вы увидите приложение-калькулятор, приложение с погодой, крестики-нолики, приложение для поиска фильмов, клон “большого веб-сайта” и так далее. Не поймите меня неправильно — это полезные проекты для изучения необходимых навыков. И люди потратили время на их создание. Проблема в том, что все разрабатывают одно и то же. Часто вы можете просто следовать инструкциям и создавать их, не задумываясь. Здесь есть две проблемы. Во-первых, вы не выделяете себя. Если я HR или менеджер по найму, почему я должен выбрать ваше приложение-калькулятор среди других тридцати таких же в папке “Входящие”? Кроме того, как я могу быть уверен, что вы создали эту штуку самостоятельно, а не просто скопировали/вставили код из учебника? Во-вторых, большинство людей просто загружают проект, ссылаются на репозиторий GitHub и, возможно, на онлайн-демо. Это ничего не говорит человеку, который потенциально собирается нанять вас, и не дает ему особых причин нанимать вас вместо всех остальных, кто сделал то же самое. Итак, как же выделить раздел проектов? Давайте рассмотрим несколько способов повысить уровень раздела проектов в вашем портфолио. Делайте оригинальные проекты Вам не нужно заново изобретать велосипед или создавать новое гениальное приложение для социальных сетей. Но было бы здорово, если бы вы попытались использовать другой API вместо стандартного API погоды. Например, вы можете создать приложение для серфингистов, которое будет работать, как приложение погоды, но вместо вызывать разные endpoints. Это покажет, что вы знаете, как вызывать API не по учебнику. Расскажите немного о проекте Первая проблема заключается в том, что многие проекты не оригинальны. Вторая — в том, что большинство людей не дают ничего, кроме общих сведений о проекте. Что выделит вас, так это предоставление некоторых подробностей о вашем проекте. Когда я говорю о деталях, я имею в виду историю вашего проекта. Попробуйте ответить на некоторые из этих вопросов:- Почему вы решили создать этот проект?
- Что вызвало у вас затруднения при создании этого проекта?
- Как вы решили проблему, возникшую при работе над проектом?
- Чему вы научились во время этой работы?
- Какие знания вы взяли с собой в другие проекты?
- Что бы вы сделали по-другому в следующий раз?
3. Удалите лишнее из своего портфолио
Иногда лучшее, что вы можете сделать для улучшения своего портфолио, — это удалить кое-что. Вы должны удалить то, что не добавляет ценности вашей целевой аудитории, и то, что снижает доверие к вам. Вот список вещей, которые вы должны удалить, и почему:Пошаговые учебные проекты. Эти проекты подрывают доверие к вам. Они не оригинальны, они не показывают мне, на что вы способны. Скорее, они показывают мне, что вы умеете копировать чужие идеи.
Проекты, не связанные с развитием или работой, которую вы пытаетесь получить. Они просто не имеют отношения к вашей целевой аудитории.
Если один из перечисленных проектов — это само портфолио. Зачем же избавляться от этого? Причина в том, что люди уже в вашем портфолио, они взаимодействуют с проектом. Лучше сэкономьте место для другого проекта.
Индикаторы прогресса навыков. Хотя они выглядят круто, они плохи. Если вы джуниор, то вы, вероятно, знаете только 10% языка JavaScript. Вы хотели бы об этом всем говорить?
Если ваше портфолио является точной копией чьего-то портфолио – переделайте его. Для начала, это просто не круто. Все хотят увидеть, на что вы способны, а не то, что вы научились копировать код.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ