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

Я всегда был одержим поиском способов избежать утомительных повторяющихся задач, и когда я в конце концов понял, что не могу их автоматизировать, я попытался, по крайней мере, упростить свою жизнь и быстрее справляться с ней. strong>.
Одна из многих причин, почему мне нравится парное программирование или просто встреча с коллегой для обсуждения некоторых деталей реализации, заключается в том, что я неизбежно что-то замечаю и «эй, эй, эй.. что было этот ярлык, что это за инструмент, который вы только что использовали?!» и это прозрение дня.

И именно поэтому я никогда не понимал тех коллег, которые днями/месяцами/годами придерживались известного им удобного способа ведения дел, каким бы медленным и утомительным он ни был (например, в Tortoise нужно 10 раз щелкнуть мышью, чтобы зафиксировать файл). или удалять console.logs повсюду вместо настройки VisualStudio для запуска правильного отладчика); и всякий раз, когда я предлагал ярлык или инструмент, ответ был: «О, но это слишком сложно, слишком долго настраивается, у меня нет времени этим заниматься. Мне просто нужно быстро починить эту штуку». и вот они снова и снова вручную делают то, что занимает целую вечность, скучно и чревато серьезными ошибками.

Вначале это может быть простое сочетание клавиш вроде 'Ctrl + Shift + ↑/↓' для перемещения
строки кода, затем оно накапливается, и вы обнаружите, что проксируете трафик веб-приложения в производстве и используете точки останова для отладки ваших лямбда-функций.

В качестве своего первого поста на DEV.TO я хочу поделиться некоторыми инструментами, которые, как я очень надеялся, были мне показаны, когда я начал программировать, а также некоторыми библиотеками и надстройками, которые я начал использовать почти ежедневно с тех пор, как перешел на FullStack. Javascript Serverless появился примерно 2,5 года назад, а также некоторые другие инструменты, которые действительно имеют значение с точки зрения эффективности.

Узел и Javascript

dev-hints и dev-docs. ​​Конечно, у каждой библиотеки, языка и фреймворка есть своя — хорошая или неполная — страница документации, но иметь одно место, где искать, всегда лучше и быстрее.

Хиски Git-хуки — это скрипты, которые запускаются автоматически каждый раз, когда в репозитории Git происходит определенное событие. Основные недостатки git hooks в том, что они не могут контролироваться версиями (они находятся в вашей локальной папке git), они в основном представляют собой оболочку или Perl, и их не так просто поделиться с вашей командой или обеспечить их использование. С Husky вы можете написать несколько js-кодов, которые будут зафиксированы вместе с вашим проектом и будут выполняться как git-хуки. Husky позаботится о привязке вашего скрипта к любому действию git, которое вам нравится.

XO Один из многих линтеров JavaScript. Основная причина выбора заключается в том, что результат красивый, а настройка очень проста. (Linters анализирует ваш код в поисках потенциальных программных и стилистических ошибок. Обнаружение (и исправление) проблем, которые варьируются от отступов до точек с запятой, неиспользуемых импортов или опечаток, помогает предотвратить ошибки и ошибки компиляции, а также обеспечивает строгий и читаемый код, что гарантирует единый стиль кода.
AVA Одна из многих сред тестирования, но минимальная и быстрая.Основная причина выбора в том, что она запускает каждый тест в отдельном Node-процессе, поэтому тесты могут выполняться одновременно и может запускать тесты параллельно и с изолированная среда.

Стандартный журнал изменений Префикс всех ваших коммитов в соответствии со спецификацией обычных коммитов, и всякий раз, когда вы будете публиковать свой пакет NPM, вы получите автоматически сгенерированный журнал изменений.
env-cmd Обработка переменных среды и сборок для разных стадий (разработка — контроль качества — производство и т. д.) может быть сложной и быстро приводит к путанице. С помощью этого удобного модуля вы можете выполнять сценарии в вашем package.json, используя среду из файла env.
Инструменты разработчика React и Инструменты разработчика Redux. Если вы создаете приложения React, вы не можете не использовать эти инструменты для проверить компоненты и изменения состояния.

Бэкенд

Postman Postman — ЭТО ПРИЛОЖЕНИЕ, если вы разрабатываете или тестируете RESTful API. С годами они добавляли все больше и больше функций, таких как фиктивные серверы и набор тестов, и я, вероятно, использую 20% их функций. Но настроить запросы GET POST UPDATE очень просто — с помощью шаблонов для разных сред и быстро проверить ответ. Без необходимости использовать curl или вручную заполнять форму вашего веб-приложения.

Charles Charles — это веб-прокси, который будет записывать и отображать все отправляемые и получаемые данные. Вы можете использовать его для просмотра запросов и ответов в формате XML и JSON, для ограничения пропускной способности и имитации более медленных интернет-соединений, для установки точек останова, а также для перехвата и редактирования запросов и ответов. (это одна из лучших функций, потому что она очень удобна для тестирования исправлений или воспроизведения ошибок при обмене данными между сервером и клиентом. просто перехватите ответ, который приводит к сбою клиента, измените его и посмотрите, как ваш клиент работает как часы, а затем вы вы уверены, как должен реагировать ваш сервер, и можете безопасно вносить изменения).
Switcheroo Charles может быть излишним для большинства простых задач, но часто может случиться так, что вы хотите перенаправить вызов API из вашего приложения в production к API, который вы запускаете локально, чтобы вы могли отладить его или просто проверить другое изображение или CSS, загруженные веб-страницей. В таком случае это расширение для Chrome делает свою работу очень хорошо и действительно за пару кликов.
Бессерверная среда Серьезно, если вы начинаете с бессерверной архитектуры, даже не думайте создавать свои приложения с помощью консоли пользовательского интерфейса. Погрузитесь прямо в раздел Инфраструктура как код. Опишите все компоненты вашего бессерверного стека, контролируйте его версии и развертывайте без проблем.
Dbeaver Бесплатный универсальный инструмент для работы с базами данных с открытым исходным кодом. Я использую его для проверки схемы и содержимого таблиц, а также для проверки SQL-запросов, которые будут выполняться моими лямбда-выражениями.
Robo 3T ранее Robomongo Поскольку Dbeaver поддерживает NOSQL только в Enterprise Edition, всякий раз, когда мне приходится работать с NoSQL и MongoDB, я использую Robomongo. Красиво и интуитивно понятно.

Производительность

Trello Прекратите использовать публикации и списки дел для организации своих задач. Вероятно, на работе вы уже используете какую-то систему тикетов и инструмент для совместной работы, чтобы справляться с разработкой фич и багов во время спринта. Я лично использую Trello на работе и дома, чтобы напоминать себе о том, что я должен делать в стиле Канбан.

Помидор Для Техники Помидора существует множество хромированных расширений. Выберите один, организуйте свое время, определите свои задачи, сосредоточьтесь на коротком промежутке времени и сделайте перерыв. Никакой электронной почты — телефона — проверки facebook, пока не истечет время!
Jumpcut Мы все копипастим. Jumpcut позволяет сохранять историю до 99 буферов обмена.

Зрелище Независимо от того, есть ли у вас ноутбук с небольшим экраном или рабочая станция с 3 мониторами, возможность легко и быстро перемещать и изменять размер окон имеет первостепенное значение.

MacPass Простые пароли — это плохо. Один и тот же пароль для многих сервисов и аккаунтов — это очень плохо. Везде сложный и разный пароль невозможен. Используйте подобный инструмент для создания и хранения паролей для всех ваших учетных записей.

MindMup Каждый раз, когда я устраиваю мозговой штурм или хочу навести порядок в своих идеях, я рисую диаграмму Mind Map. Будь то на бумаге или на экране, это отличный способ проследить ход ваших мыслей, а затем реорганизовать концепции.
Draw.io Еще один инструмент для диаграмм, но в данном случае речь идет о UML, блок-схемах. , Мокапы и архитектура AWS.

Разное

о боже мой автодополнение git-команд, удобная навигация по папкам и файлам, отображение всех скриптов в вашем package.json. ohmyz.sh делает работу с терминалом проще и интереснее.
Исходное дерево Если вы действительно не можете не иметь визуального представления вашего git-репозитория, я нахожу исходное дерево очень удобным (хотя я использую его только тогда, когда мне Это не дисциплинирует, и мне нужно проверить различия между многими файлами и реорганизовать свои изменения для атомарных коммитов.
Json Viewer Этот плагин просто делает JSON, открытый в вашем браузере, более читаемым.

jq JQ позволяет вам очень легко печатать, фильтровать, отображать файлы JSON.

curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq '.[0]'

например, передает JSON, возвращенный API, и возвращает первый элемент списка.

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

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

Первоначально опубликовано на dev.to.