Если вы профессионал в своем деле, то ваше мастерство должно находить отражение и в вашем инструментарии.
Во-первых, это напрямую влияет на вашу эффективность, что отражается на качестве работы.
Во-вторых, это элементарное удобство - комфорт, косвенно влияющий на всю вашу жизнь.
Конечно, нельзя не восхищаться крутым инженером, который всю жизнь пишет код в Vim, оттуда же управляет своей Tesla и делает много другого, что, судя по бесконечным спорам об удобстве инструментов на форумах, “любителям IDE даже не снилось”.
Но все-таки, если профи использует инструменты для профи, то он становится еще сильнее.
Зависимость от инструментов
Когда начинал писать код, мне очень помогла IDE от компании JetBrains - Rider. Мне казалось, что это какое-то волшебство и с ней реально написать любой код, даже, если ты не знаешь, как.
Профессиональные инструменты - IDE или крутая зеркальная камера для фотографа - значительно облегчают жизнь, сглаживая кривую обучения и помогая быстро получить неплохой результат.
“Как тебе удается делать настолько впечатляющие снимки? - Я просто нажимаю на это большую кнопку…”
Главное не попасть в ловушку заблуждений и понимать, что ваш инструмент многое берет на себя. Вы становитесь от него очень зависимыми, а большое количество зависимостей - это плохо :)
В какой-то момент я понял, что хочу глубже разбираться в работе IDE, хочу больше гибкости и свободы. Поэтому я ушел от экосистемы JetBrains, попращавшись с Rider и Goland.
Своим опытом перехода делился в серии постов.
Сейчас я весь код пишу в VS Code и мне это очень удобно. Конечно, есть некоторые нюансы, но у меня, наверное, ни разу не возникало мысли вернуться на тяжеловесную IDE, которой была Goland, пока…
Пока не стал активно работать с базами данных (Postgres, Redis и другие).
Да, для VS Code есть не мало плагинов, но каждый раз, добавляя очередной плагин, ловил себя на мысли:
- Этот плагин ужасен и неудобен в работе.
- Мой VS Code начинает превращаться в неповоротливую IDE, от которой уходил, что само по себе начало ухудшать мой опыт использования обычного редактора текста.
Lua-скрипт, безопасно удаляющий ключи Redis по шаблону
Поворотной точкой, когда я понял, что нельзя замыкаться на одном инструменте, стала работа с Redis и задача по удалению сотен тысяч ключей по определенному шаблону из тестового окружения.
Обычно это решается простым скриптом (чаще всего пишут на python), но я захотел очень сильно сделать это через Redis CLI…
Мягко говоря, у меня ушло какое-то время на это, ведь нельзя написать простую команду, которая все удалит, а нужно это делать в аккуратном режиме, так как хайлоад и лучше всегда перестраховаться лишний раз.
На помощь пришел Lua.
Lua-скрипт, безопасно удаляющий записи по ключу “example-key”:
|
|
Задачу свою решил, но это было неудобно.
Один инструмент - одна ответственность
Хорошо писать код в одном приложении и в том же приложении манипулировать данными, но как будто SRP работает и здесь: код мы пишем в редакторе текста, а данными в БД управляем в другом месте.
Когда данных становится много, то цена любой ошибки очень высока. Поэтому важно обеспечивать максимальное удобство, чтобы быть полностью сконцентрированным на том, что делаешь.
После опыта написания Lua-скриптов в Redis CLI поймал себя на мысли, что нужно переходить на удобные инструменты, которые специализируются на работе с базами данных.
Ранее я по каким-то внутренним причинам избегал их, но теперь настала пора попробовать.
Все-таки очень важно не замыкаться на одном инструменте (как я когда-то, перейдя на VS Code).
Проанализирйте
- Где вы пишите код?
- Что используете для работ с БД?
- Как тестируете API?
- Что используете для проксирования запросов?
Если понимаете, что стандартного функционала вам не хватает (или есть любое неудобство сейчас), то пришло время рассмотреть альтернативные решения, чтобы облегчить себе жизнь и стать более эффективным.
Каждый месяц появляются все новые и новые инструменты, способные решить, возможно, именно вашу проблему.
Мой сетап для разработки
- Редактор: VS Code, но смотрю в сторону Vim/Neovim (так как чувствую, что могу еще ускорить свою работу)
- Работа с БД: пока CLI + плагины на VS Code, но планирую перейти на что-то более удобное (DataGrip, DBeaver)
- Тестирование API: перешел с Postman на Bruno из соображений безопасности
- Проксирование: Proxyman
Запомнить: самое главное, чтобы вам было комфортно.
Если вы крутой инженер, который легко решает любую задачу всего лишь одним инструментом, то это очень здорово, но в большинстве случае все-таки удобнее подбирать инструмент под задачу, а не пытаться осилить все вызовы только лишь тем, с чем вы научились хорошо работать когда-то.
Читайте другие посты и присоединяйтесь к обсуждению темы в Телеграм: @time2code