Господи, надеюсь я никогда не буду нести чушь инфоцыганщины🤣
Иногда я буду писать про свою
продуктивность.Это могут быть технические советы уровня junior после курсов, а могут быть крайне высокоуровневые штуки, которые могут не пригодится никому ещё долгое время. Если вы всё знаете и умеете, то просто скипайте.
Начнём с самого простого. Настройка рабочего места.
Я часто могу пересаживаться с рабочего Windows стационарного ПК на surface планшет и потом и вовсе на макбук.
Мне надо иметь всегда идентичное рабочее место и утилиты, как минимум консольные, и алиасы.
У меня через MS
OneDrive (подписка MS office 365 family, ныне AI MS AI COPILOT AI 365 AI🤣) идет синхронизация всех важных мне файлов:-
~/.bashrc файлаВ нём всякие alias, кастомизации prompt и многое важное
-
~/.gitconfig настройки GIT-
~/.ssh/config настройки SSH (например там у меня сетапы для jumphosts)-
~/.cargo/config.toml настройки растоёба для RUSTТак же не маловажно отдельно выделю
ASDF пакетный менеджер.-
~/.tool-versions список утилит и их версий-
~/.asdfrc собственно сам конфиг asdf-
~/.asdf/plugins/ ТОЛЬКО для кастомных плагинов, у меня их всего 3Для тех, кто незнаком с пакетными менеджерами, а всё ещё пользуется скачиванием бинарей с гитхаба.
- установил
asdf один раз https://github.com/asdf-vm/asdf/releases
- установил нужные плагины один раз
asdf plugin add golang
asdf plugin add nodejs
asdf plugin add python
asdf plugin add helm
asdf plugin add kubectl
asdf plugin add k9s
asdf plugin add flux
asdf plugin add terraform
- Создаём
.tool-versions (один раз, потом иногда обновляем)golang 1.22.0 1.21.6
nodejs 20.11.0 18.19.0
python 3.12.1 3.11.7
helm 3.14.0 3.13.3
terraform 1.7.2 1.6.6
kubectl 1.29.1 1.28.4
k9s 0.31.7 0.31.6
flux 2.2.3 2.1.2
- установил все тулзы
asdf install
И всё, больше ничего.
В случае же моего синка можно лупануть башизмом на новой тачке нечто типа такого
cut -d' ' -f1 ~/.tool-versions | xargs -I{} asdf plugin add {} && asdf installВы только подумайте.
Потерял ПК/заменил ПК/пересел на другое место(тем, кто в офис ходит и там стационар)/переобулся и стал маководом - засинкал файлы(удобным вам способом), ввел пару команд и у вас на вашем ПК:
- все известные вам утилиты известных вам версий установлены
- все привычные алиасы и настройки баша так же доступны
Не надо тратить снова сутки на настройку рабочего места.
Скорость готовности рабочего места зависит лишь от скорости интернета при скачивании пакетов.
Я ещё люблю саму фичу:
- на маке, допустим, обновил helm до 3.8, пересел на винду, а у меня там уже helm3.8, а не старая 3.6.
Невероятно удобно. Идентичная среда везде и всегда, никаких багов.
* все пакеты качаются из официальных репозиториев, никаких левых пакетов!
** файлы с креденшлами НЕ синхронизируются и так делать нельзя
*** альтернативы OneDrive: google drive, icloud, dropbox, yandex.disk
**** все файлы выше это лишь базовый пример, так-то у меня синкается значительно больше вещей.
***** все файлы из
WSL2 залинкованы через ln -s /mnt/c/Users/alex/OneDrive/wsl2/.bashrc ~/.bashrc
Если вы хотите начать, но не знаете с чего начать с asdf, можете смело украсть примеры с гитхаба у людей.
https://github.com/search?q=path%3A**%2F.tool-versions+kubectl&type=code
Полный список плагинов можно найти тут https://github.com/asdf-vm/asdf-plugins
Раньше я ещё синкал
keybindings.json settings.json у VScode, но теперь это синкается автоматически через мой аккаунт средствами самого VScode.