8 способов значительно повысить производительность вашего разработчика

Повысьте свою продуктивность с помощью этих 8 советов

Введение

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

Это не полный список того, что вы должны делать, но только эти вещи значительно повысят вашу продуктивность, если вы еще этого не делаете.

Как складываются небольшие отрезки времени от повторяющихся задач

Допустим, вы пишете код на старом монолите Java, и ваш поток для каждого внесенного вами изменения выглядит примерно так:

  • Сохраните файл (1 секунда)
  • Сборка проекта в IDE (5 секунд)
  • Развертывание файла войны приложения в старый контейнер J2EE (30 секунд)

Для каждого изменения требуется 36 секунд, прежде чем вы сможете получить отзыв и опробовать свои изменения. Это может показаться не таким уж большим, но если вы делаете это для каждого изменения, это может происходить 50 или более раз в день. Это 1800 секунд или полчаса, которые вы могли бы потратить на другие дела.

При 5-дневной рабочей неделе это составляет до 2,5 часов потерянного времени. За обычный рабочий год это 469800 секунд или 5,4 дня потерянного времени, которое вы могли бы потратить на другие дела. Таким образом, решив эту проблему, вы получите дополнительную неделю продуктивности.

У вашего среднего разработчика есть много повторяющихся задач, которые они могли бы автоматизировать. Если автоматизация одной повторяющейся задачи сэкономит вам 36 секунд и эквивалент рабочей недели в год, автоматизация 5 таких же трудоемких задач вернет вам 5 недель в год.

Как бы я решил эту конкретную проблему? Используйте более новый фреймворк с поддержкой Hot Reload. Просто сохраните файл, и изменение будет автоматически скомпилировано и развернуто без необходимости перезапуска контейнера. Более новые платформы Java, такие как Spring Boot, поддерживают эту функцию. Подробнее о Hot Reload мы поговорим позже в этой статье.

Автоматизация повторяющихся задач с помощью скриптов

Если и есть что-то, что может повысить вашу производительность больше всего, так это автоматизация повторяющихся задач с помощью сценариев. Я настоятельно рекомендую писать Bash Scripts, потому что это позволяет легко связать несколько команд вместе, и это те же самые команды, которые вы можете часто запускать изо дня в день.

Многие современные разработки выполняются в командной строке с помощью таких команд, как npm install. Для некоторых из этих вещей существует интеграция с IDE, но я настоятельно рекомендую изучить и использовать командную строку по одной причине: она поддерживает сценарии. Как правило, также быстрее ввести команду, чем несколько раз указать и щелкнуть мышью в среде IDE для выполнения одной и той же задачи.

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

Это может занять менее секунды по сравнению с тем, что вам потребуется, скажем, 30 секунд (которые, как мы упоминали ранее, могут со временем накапливаться).

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

Несколько случайных скриптов, которые я настроил локально:

  • Резервное копирование моей локальной базы данных
  • Сделайте дамп последней копии тестовой базы данных и автоматически импортируйте ее в мою локальную базу данных. Разумеется, он вызывает предыдущий сценарий для создания резервной копии!
  • Запускайте и настраивайте несколько взаимозависимых микросервисов локально. Это сложно сделать вручную, но легко с помощью скрипта.

Используйте настоящий отладчик вместо вывода переменных

Когда я был инженером среднего звена, изучение отладчика само по себе повышало мою продуктивность. Я мог бы за пару часов сделать работу, на которую у меня мог бы уйти целый день. Исправлять ошибки и создавать новые функции было намного проще.

Я обнаружил, что отладка особенно полезна при изучении незнакомых кодовых баз, которые я не писал. Вы можете легко увидеть результаты даже самой сложной логики, написанной странным образом. Гораздо легче рассуждать о сложной, запутанной логике, когда вы можете запустить ее построчно и посмотреть, как все изменится.

Если вы когда-либо использовали console.log() в JavaScript, var_dump() в PHP, System.out.println() в Java или аналогичную функцию в другом языке для вывода значения на консоль, чтобы вы могли видеть, что происходит внутри вашего кода, вы, возможно, знаете, насколько это утомительно. get, если вы пытаетесь отлаживать что-то сложное.

Вы печатаете одно значение за раз, и обычно вам нужно написать новый оператор журнала для каждого значения, которое вы хотите увидеть. Если значение, которое вы просматриваете, изменяется, вам необходимо зарегистрировать его снова. Это немного похоже на ковыряние с завязанными глазами или в темноте. Давайте не будем забывать о возможности того, что вы можете случайно зафиксировать свои операторы отладки!.

Рабочая память человека ограничена, поэтому, как только вы вручную напечатаете достаточное количество переменных, значения начнут исчезать из вашего разума, и тогда вам придется распечатать их снова или где-то записать и обновлять по мере их изменения. Попытка сохранить все в рабочей памяти требует ценных ресурсов мозга, которые вы могли бы перенаправить на то, чтобы ваш код работал так, как вы хотите, следуя передовым методам или написав чистый код.

Войдите в отладчик: установите точку останова в коде, затем запустите приложение. Когда ваше приложение достигнет строки, на которой вы установили точку останова, вы сможете увидеть все переменные в области действия на вкладке отладки.

Больше нет необходимости жонглировать множеством значений в вашей рабочей памяти. С помощью всего одного действия вы теперь можете видеть все, а не только одно значение за раз.

Я начал просто с отладки собственного кода приложения, но со временем, по мере накопления опыта, я обнаружил, что могу получить ценную информацию, отлаживая код фреймворка и библиотеки (например, код для express). Мне удалось найти ответы на вопросы, которых даже не было в документации к различным фреймворкам и библиотекам, зачастую неполной или плохо написанной.

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

Если вы используете Node и хотите узнать, как настроить отладчик в vscode, см. другую мою статью Увеличьте производительность Node с помощью отладки.

Используйте нечеткий поиск

Многие из нас до сих пор работают с большими монолитными кодовыми базами, которые иногда содержат тысячи файлов.

Как вы должны найти спрятанное в /src/authentication/userTypes/Employee.js среди тысяч .js файлов и сотен папок в вашем проекте? Вручную искать файл через дерево каталогов? Спросите другого разработчика, который лучше знаком с кодовой базой?

Нет, просто используйте нечеткий искатель! Введите Employee.js, и вы найдете свой файл за считанные секунды.

Вот как это работает. Нажмите Ctrl+P, а затем введите имя файла, который вы ищете. Результат появится мгновенно.

Нечеткий поиск в vscode

Если вы используете IntelliJ или WebStorm, дважды быстро нажмите shift (двойной сдвиг) вместо нажатия Alt+P.

Используйте горячую перезагрузку и автосохранение

Если вы пишете код для веб-приложения или службы и не используете PHP (который имеет встроенные преимущества горячей перезагрузки), вам, вероятно, потребуется выполнить одно или несколько из следующих действий для каждого изменения, которое вы вносите в свой код.

  • Внесите изменения
  • Сохранить файл
  • Скомпилировать код (для скомпилированных языков)
  • Перезапустить сервер
  • Для некоторых сред повторно разверните свой код и подождите, пока он будет развернут.
  • Протестируйте свой код
  • Повторить

Может быть, это занимает у вас от 30 секунд до минуты каждый раз, но помните, что со временем это может составлять дни и недели.

С помощью горячей перезагрузки и автосохранения вы можете уменьшить это до

  • Внесите изменения
  • Ваша IDE автоматически сохраняет ваш файл
  • В фоновом режиме изменение автоматически обнаруживается и компилируется (при необходимости), а ваш работающий сервер либо перезапускается, либо обновляется новым кодом, как правило, менее чем за 5 секунд.
  • Протестируйте свой код
  • Повторить

В Java горячую перезагрузку часто называют горячей заменой. Для Node вы можете использовать nodemon и указать его в скрипте вашей точки входа.

У меня есть более подробные инструкции по настройке nodemon для Node в моей другой статье Шесть способов значительно повысить вашу производительность как разработчика Node.

Большинство IDE имеют функцию автоматического сохранения. В vscode это так же просто, как выбрать File > Auto Save. Проверьте документацию вашей IDE, чтобы узнать, как ее включить.

Если вы боитесь ошибок автосохранения, вам следует использовать систему управления версиями, такую ​​как git, и регулярно фиксировать свой код. Затем вы можете быстро вернуться к рабочим версиям вашего кода.

Автоматизируйте тестирование

Ручное тестирование — одна из самых трудоемких и наименее приятных задач, которую средний разработчик выполняет в рамках своей работы.

Раньше, когда разработчики следовали старой неуклюжей модели SDLC (теперь в основном замененной на Agile), часто говорили, что тестирование занимает примерно столько же времени, сколько фазы «анализа» и написания кода вместе взятые.

Вы можете внести одно сильное изменение в строку, а затем вам придется потратить часы на его тестирование.

Существуют различные типы автоматических тестов, от тестов браузера, которые могут указывать и щелкать в приложении, как реальный пользователь, до модульных тестов. Чтобы написать каждый тип, потребуется еще одно руководство (дайте мне знать в комментариях ниже, если я должен написать его?). Все виды автоматизированного тестирования быстрее, чем ручное тестирование.

Даже для самого медленного распространенного типа автоматизированного тестирования (браузерные тесты) вы можете сидеть сложа руки и наблюдать за выполнением теста, а затем пойти выпить кофе или заняться чем-нибудь продуктивным.

В некоторых случаях ручное тестирование неизбежно, но если вы постоянно тестируете одно и то же, рассмотрите возможность написания автоматизированного теста, чтобы сэкономить время.

Поделитесь своей работой заранее с общедоступным URL-адресом

Знаете ли вы, что вы можете получить общедоступный URL-адрес для приложения Node, обслуживаемого с localhost или 127.0.0.1 на вашем локальном компьютере, даже если он защищен брандмауэром или корпоративной сетью? Это не требует какой-либо сетевой конфигурации, и вы можете сделать это одной командой с expose, например expose 80 as myapi.expose.sh.

Это позволяет вам заранее делиться своей работой с вашими сотрудниками, такими как другие инженеры, клиенты или менеджеры по продуктам, и получать быструю обратную связь без необходимости настраивать полный конвейер развертывания. Чем раньше вы поделитесь своей работой, тем меньше переделок вам придется делать в долгосрочной перспективе.

Вы можете написать внутренний API, поделиться общедоступным URL-адресом для этого, а затем выполнить отладку в реальном времени, когда разработчик внешнего интерфейса React, с которым вы сотрудничаете, отправляет запрос из своего приложения в ваш API.

Почему бы не выполнять оперативную отладку, пока провайдеры веб-перехватчиков отправляют вам запросы на веб-перехватчики, вместо того, чтобы часами читать их (часто не очень хорошую) документацию?

Если вы работаете в Linux, запустите это, чтобы установить expose

curl -s https://expose.sh/sh/install-linux.sh | sudo bash

Если вы на Mac, запустите

curl -s https://expose.sh/sh/install-mac.sh --output install-mac.sh && sudo bash install-mac.sh

Для Windows перейдите на Страницу установки и загрузите файл exe.

Затем вы можете запустить expose <port>, где <port> — это номер порта, на котором работает ваше приложение (например, expose 80). Более подробные инструкции доступны в Документации.

Используйте Vimium и тестируйте свои веб-приложения без мыши

Иногда без ручного тестирования не обойтись. Общеизвестно, что клавиатура быстрее мыши. Обычно для просмотра веб-страниц, включая тестирование веб-приложений, требуется использование мыши. Но не больше!

Войдите в Вимиум. это расширение, доступное для Chrome и Firefox, которое позволяет вам использовать веб-сайты и веб-приложения с помощью клавиатуры.

Это означает, что вы можете выполнять различные виды ручного тестирования (например, размещение заказа) исключительно с помощью клавиатуры и без использования мыши, что экономит ваше время.

Как стать десятикратным разработчиком

Теория 10-кратного разработчика состоит в том, что лучшие разработчики в 10 раз более продуктивны, чем худшие.

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

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

В зависимости от того, сколько ручных задач автоматизировано в команде, это может быть эквивалентно увеличению производительности на одного или двух дополнительных членов команды.

Не стесняйтесь использовать эту статью в качестве материала для Lighting Talks или Lunch & Learns.

Заключение

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

Эти простые вещи могут сэкономить часы ненужной работы, которая со временем может растянуться на дни и недели.

Если вы нашли эту статью полезной, поделитесь ею, чтобы помочь другим.

дальнейшее чтение

Если вам нужны дополнительные советы по повышению производительности, относящиеся к NodeJS и JavaScript, см. другую мою статью Шесть способов значительно повысить вашу производительность в качестве разработчика Node.

Инструкции по отладке для NodeJS см. в статье Увеличьте производительность своего узла с помощью отладки.