Важная мелочь для меня в программировании — комфорт от набора текста. Он складывается из темы редактора, шрифта, клавиатуры и много чего ещё, наверно.
Уже несколько лет использую шрифт Fira Code. Во-первых, он крутой. А во-вторых, в нем есть лигатуры.
Лигатуры — это когда несколько логически связанных символов становятся одним. Например,
На мой взгляд, так код воспринимается много легче.
https://github.com/tonsky/FiraCode
#удобство_разработки
Уже несколько лет использую шрифт Fira Code. Во-первых, он крутой. А во-вторых, в нем есть лигатуры.
Лигатуры — это когда несколько логически связанных символов становятся одним. Например,
!=
станет ≠
.На мой взгляд, так код воспринимается много легче.
https://github.com/tonsky/FiraCode
#удобство_разработки
GitHub
GitHub - tonsky/FiraCode: Free monospaced font with programming ligatures
Free monospaced font with programming ligatures. Contribute to tonsky/FiraCode development by creating an account on GitHub.
Исследуя GitHub
Мне часто нужно читать пулл-реквесты на гитхабе. Это в целом не очень удобно, но отдельно раздражает невозможность переходить по файлам вокруг просматриваемого.
Есть хорошее расширение для хрома, которое избавляет от этой боли — Octotree.
#удобство_разработки
Мне часто нужно читать пулл-реквесты на гитхабе. Это в целом не очень удобно, но отдельно раздражает невозможность переходить по файлам вокруг просматриваемого.
Есть хорошее расширение для хрома, которое избавляет от этой боли — Octotree.
#удобство_разработки
Многие команды пренебрегают непрерывной интеграцией (CI). Очень зря.
CI на каждый пулл-реквест запускает набор скриптов, которые как-то проверяют код: тесты, линтеры, статические анализаторы.
Если мы можем делегировать машине какую-то работу (автоматизированная проверка кода, например), то мы должны это сделать. Пусть CI выловит одну ошибку на 100 пулл-реквестов, но зато она обнаружиться до выхода кода на боевой сервер.
Не экономьте на непрерывной интеграции. Пишите тесты, настраивайте линтеры, используйте CI.
#удобство_разработки
CI на каждый пулл-реквест запускает набор скриптов, которые как-то проверяют код: тесты, линтеры, статические анализаторы.
Если мы можем делегировать машине какую-то работу (автоматизированная проверка кода, например), то мы должны это сделать. Пусть CI выловит одну ошибку на 100 пулл-реквестов, но зато она обнаружиться до выхода кода на боевой сервер.
Не экономьте на непрерывной интеграции. Пишите тесты, настраивайте линтеры, используйте CI.
#удобство_разработки
Бизнес портит все!
CI — это долго и дорого. Часто бизнес в компании против таких трат. Что делать?
Стоит объяснить, что непрерывная интерграция экономит деньги. После однократной настройки, разработчики больше не тратят время на выполнение рутинный процедур. А время разработчиков стоит больше, чем любой CI-сервис.
Плюс это повышает надёжность производимого продукта, что тоже экономит деньги на исправление багов, простои системы, обработку жалоб пользователей.
CI — не серебряная пуля, но очень важен.
#удобство_разработки
CI — это долго и дорого. Часто бизнес в компании против таких трат. Что делать?
Стоит объяснить, что непрерывная интерграция экономит деньги. После однократной настройки, разработчики больше не тратят время на выполнение рутинный процедур. А время разработчиков стоит больше, чем любой CI-сервис.
Плюс это повышает надёжность производимого продукта, что тоже экономит деньги на исправление багов, простои системы, обработку жалоб пользователей.
CI — не серебряная пуля, но очень важен.
#удобство_разработки
CI выполняет задачи, которые должны увеличить уверенность в том, что приложение работает правильно.
Самое очевидное, запускать там тесты. В таком случае код, из-за которого падают тесты, не сможет попасть в мастер-ветку.
Но ответственность писать тесты все ещё лежит на программистах.
#удобство_разработки
Самое очевидное, запускать там тесты. В таком случае код, из-за которого падают тесты, не сможет попасть в мастер-ветку.
Но ответственность писать тесты все ещё лежит на программистах.
#удобство_разработки
Продолжаем разговор о непрерывной интеграции.
Тесты помогают держать часть кода под контролем, но покрыть тестами все приложения слишком дорого. Потому нужны какие-то более простые способы избегать ошибок.
Простой и эффективный путь — статический анализ, проверка корректности программы без ее выполнения. Для разных языков доступна разная глубина такого анализа.
Для JavaScript это JSHint, ESLint. Для TypeScript — TSLint. Уважайте линтеры, любите линтеры, используйте линтеры.
Для других языков можно найти по запросу
#удобство_разработки
Тесты помогают держать часть кода под контролем, но покрыть тестами все приложения слишком дорого. Потому нужны какие-то более простые способы избегать ошибок.
Простой и эффективный путь — статический анализ, проверка корректности программы без ее выполнения. Для разных языков доступна разная глубина такого анализа.
Для JavaScript это JSHint, ESLint. Для TypeScript — TSLint. Уважайте линтеры, любите линтеры, используйте линтеры.
Для других языков можно найти по запросу
static analysis {{language}}
.#удобство_разработки
Ссылка
Большую часть времени разработчики читают код. А потому нужно, чтобы чтение кода вызывало как можно меньше удивления.
Если бы весь код был одинаково отформатирован, это сделало бы уже половину работы. Но руками форматировать код и расставлять запятые долго, дорого и бессмысленно.
В таком случае следует использовать средства автоматизации — Дорога к Prettier
#удобство_разработки
Большую часть времени разработчики читают код. А потому нужно, чтобы чтение кода вызывало как можно меньше удивления.
Если бы весь код был одинаково отформатирован, это сделало бы уже половину работы. Но руками форматировать код и расставлять запятые долго, дорого и бессмысленно.
В таком случае следует использовать средства автоматизации — Дорога к Prettier
#удобство_разработки
Medium
Дорога к Prettier
Как мы начали использовать Prettier и стали счастливее
Ссылка
Большая часть сайтов может быть статическими. Блоги, сайты визитки и всякие подобные штуки.
Статику очень удобно хостить на Netlify. Нужно привязать репозиторий, указать команду для билда и все работает. SSL-сертификат автоматически, превью пулл-реквестов автоматически, деплой из мастера автоматически. Очень их люблю, и все статические сайты размещаю там.
#удобство_разработки
Большая часть сайтов может быть статическими. Блоги, сайты визитки и всякие подобные штуки.
Статику очень удобно хостить на Netlify. Нужно привязать репозиторий, указать команду для билда и все работает. SSL-сертификат автоматически, превью пулл-реквестов автоматически, деплой из мастера автоматически. Очень их люблю, и все статические сайты размещаю там.
#удобство_разработки
Конфигурация приложений — один из самых важных аспектов разработки. Это место, где постоянно происходят утечки секретных данных, тормозится процесс внедрения непрерывной доставки, случаются сложно отлавливаемые рантайм‑ошибки. Забота об этом — необходимость при разработке любого приложения.
Написал небольшую заметку — как правильно внедрять параметры конфигурации в приложение, управлять ими в разных окружениях и не страдать.
Конфигурация Node.js приложений
К Node.js относится только предпоследний абзац, так что читать можно и людям из других технологий.
#удобство_разработки #js
Написал небольшую заметку — как правильно внедрять параметры конфигурации в приложение, управлять ими в разных окружениях и не страдать.
Конфигурация Node.js приложений
К Node.js относится только предпоследний абзац, так что читать можно и людям из других технологий.
#удобство_разработки #js
Локальная разработка
Локально тестировать логин через соцсети больно. Многие провайдеры требуют чтобы сайт был доступен в интернете (например, они сами шлют какой-нибудь запрос к вам), другим обязательно нужен сертификат.
Есть простой способ избавиться от этой боли — ngrok. Эта штука позволяет моментально получить URL для вашего локального компьютера, SSL в комплекте.
Для нужд локальной разработки вполне достаточно бесплатной версии.
#удобство_разработки
Локально тестировать логин через соцсети больно. Многие провайдеры требуют чтобы сайт был доступен в интернете (например, они сами шлют какой-нибудь запрос к вам), другим обязательно нужен сертификат.
Есть простой способ избавиться от этой боли — ngrok. Эта штука позволяет моментально получить URL для вашего локального компьютера, SSL в комплекте.
Для нужд локальной разработки вполне достаточно бесплатной версии.
#удобство_разработки
Инструментируй это
Да этого доклада я никогда не слышал термина "инструментирование кода". Оказалось, что это супер важная концепция, которая позволяет работать всему нашему тулингу.
Роман Дворнов рассказал, как он написал свое решение для инструментирования кода и упрощения работы с компонентными фреймворками в браузере.
Запись доклада
#удобство_разработки
Да этого доклада я никогда не слышал термина "инструментирование кода". Оказалось, что это супер важная концепция, которая позволяет работать всему нашему тулингу.
Роман Дворнов рассказал, как он написал свое решение для инструментирования кода и упрощения работы с компонентными фреймворками в браузере.
Запись доклада
#удобство_разработки
YouTube
Роман Дворнов, Avito | Инструментируй это | FrontTalks 2015
Все уже привыкли к автоматизации: сборщиками и другими консольными инструментами никого не удивишь. А вот автоматизации самого процесса разработки того, с чем мы имеем дело в браузере, уделяется меньше внимания. Хотя тут многое можно улучшить. Если взглянуть…
Я когда-то уже рассказывал о важности CI, линтеров и тестов. А сейчас хочу показать как это все выглядит в реальных проектах.
Год назад в Breadhead мы начали делать непрерывную интеграцию и доставку приложений. Рассказываю, зачем мы это делаем, какие технологии используем, сколько денег тратим, как повторить, что планируем улучшить.
Как мы делаем CI/CD
#удобство_разработки
Год назад в Breadhead мы начали делать непрерывную интеграцию и доставку приложений. Рассказываю, зачем мы это делаем, какие технологии используем, сколько денег тратим, как повторить, что планируем улучшить.
Как мы делаем CI/CD
#удобство_разработки
Medium
Как мы делаем CI/CD
Год назад мы начали делать непрерывную интеграцию и доставку приложений. Рассказываем.
Бэкап GitHub
Все знают, что нужно делать бэкапы, но немногие их делают. Особенно бэкапы «надёжных» облачных сервисов.
Последнее время в работе GitHub все чаще наблюдаются сбои. За май зафиксировано три эпизода частичной доступности, за июнь — два. Я не готов доверять свой код сервису, который так относится к надежности работы, но и терять в удобстве использования, переезжая на альтернативные решения не хочется.
Потратив 10 минут времени и совсем немного денег можно обеспечить себе спокойную жизнь, удобство и комфорт работы.
Инструкция: бэкап GitHub
#удобство_разработки #автоматизаци
Все знают, что нужно делать бэкапы, но немногие их делают. Особенно бэкапы «надёжных» облачных сервисов.
Последнее время в работе GitHub все чаще наблюдаются сбои. За май зафиксировано три эпизода частичной доступности, за июнь — два. Я не готов доверять свой код сервису, который так относится к надежности работы, но и терять в удобстве использования, переезжая на альтернативные решения не хочется.
Потратив 10 минут времени и совсем немного денег можно обеспечить себе спокойную жизнь, удобство и комфорт работы.
Инструкция: бэкап GitHub
#удобство_разработки #автоматизаци
Medium
Инструкция: бэкап GitHub
Наш код стоит очень много денег. Мы тратим на его создание сотни тысяч долларов, но совершенно не заботимся о сохранности — храним на…
Больше года назад мы в Самокате сделали прекрасную систему передачи параметров во фронтенд приложение во время деплоя. Я тогда написал черновик статьи про это, а потом целый год не мог его довести до нормальной статьи.
В эти выходные я его дописал, а сегодня утром опубликовал.
https://habr.com/ru/post/541314/
#фронтенд #удобство_разработки
В эти выходные я его дописал, а сегодня утром опубликовал.
https://habr.com/ru/post/541314/
#фронтенд #удобство_разработки
Хабр
Солидные фронтенды: конфигурация
Манифест 12-факторных приложений внес весомый вклад в процесс разработки и эксплуатации веб-приложений, но это по-большей части коснулось бекендов, и обошло стор...
Наткнулся в твиттере на список современных аналогов для консольных утилит и вспомнил, что пользуюсь многими из них. Пользуйтесь и вы, это такой кайф.
1. bat — это замена
2. httpie — замена
3. exa — замена
#удобство_разработки
1. bat — это замена
cat
с бонусами: подсветка синтаксиса, изменений в гит-репозитории, номера строк2. httpie — замена
curl
с нормальным интерфейсом: само ставит заголовки правильные, нормально форматирует вывод3. exa — замена
ls
с красивыми цветами в терминале и удобным табличным видом (--grid
)#удобство_разработки
GitHub Copilot — это такой умный автокомплит для VS Code на основе искусственного интеллекта.
Сегодня утром мне пришел инвайт на закрытый бета-тест и я немного пощупал его. Первый ощущения:
+ Это прикольно, подсказки довольно осмысленные и местами полезные.
+ После ввода нужно остановиться секунды на 2-3, чтобы оно успело придумать подсказку. Выбивает из потока и теряет всякий смысл.
На мой взгляд, сейчас это скорее игрушка, чем реальный инструмент разработки. Но, я верю, что лет через 5 подобные системы плотно войдут в нашу жизнь и код писать станет сильно приятнее.
#удобство_разработки
Сегодня утром мне пришел инвайт на закрытый бета-тест и я немного пощупал его. Первый ощущения:
+ Это прикольно, подсказки довольно осмысленные и местами полезные.
+ После ввода нужно остановиться секунды на 2-3, чтобы оно успело придумать подсказку. Выбивает из потока и теряет всякий смысл.
На мой взгляд, сейчас это скорее игрушка, чем реальный инструмент разработки. Но, я верю, что лет через 5 подобные системы плотно войдут в нашу жизнь и код писать станет сильно приятнее.
#удобство_разработки
DigitalOcean App Platform — решения для деплоя приложений в интернет без головной боли. Пишешь докер-файл, нажимаешь кнопку и магия случается — сервис уже доступен.
Я давно хотел попробовать эту штуку, но все как-то не было времени разбираться. Сегодня обнаружил, что @yt_listen_bot перестал помещаться в общий дроплет и решил переселить его в App Platform. Поэтому, вот свежие впечатления.
1. Оно правда работает, как обещает. Кнопку жамкаешь — деплой случается. У меня для этого был написан свой скрипт, но всегда приятно отказываться от велосипедов. Как бонус — зиро-даунтайм деполой из коробки.
2. Удобно собираются логи и метрики ноды (нагрузка на процессор, потребление памяти, нагрузка на сеть). Сразу в том же месте можно посмотреть на состояние базы данных.
3. Дорого. Минимальный инстанс аналогичный дроплету за 6 долларов обходится в 12. То есть в два раза дороже.
4. Нет доступа к мэнэджд базам данных внутри DigitalOcean по приватной сети, только по публичной. Плюс, нельзя добавить сервис в вайт-лист для коннекта. Приходится отключать ограничение по хостам на подключения. Страшно.
5. При любом изменении настроек происходит полная пересборка контейнера. Непонятно и дико раздражает пока настраиваешь первый раз.
Короче, определенно прекрасное решение для пет-проектов. Но цена прямо злая.
#удобство_разработки
Я давно хотел попробовать эту штуку, но все как-то не было времени разбираться. Сегодня обнаружил, что @yt_listen_bot перестал помещаться в общий дроплет и решил переселить его в App Platform. Поэтому, вот свежие впечатления.
1. Оно правда работает, как обещает. Кнопку жамкаешь — деплой случается. У меня для этого был написан свой скрипт, но всегда приятно отказываться от велосипедов. Как бонус — зиро-даунтайм деполой из коробки.
2. Удобно собираются логи и метрики ноды (нагрузка на процессор, потребление памяти, нагрузка на сеть). Сразу в том же месте можно посмотреть на состояние базы данных.
3. Дорого. Минимальный инстанс аналогичный дроплету за 6 долларов обходится в 12. То есть в два раза дороже.
4. Нет доступа к мэнэджд базам данных внутри DigitalOcean по приватной сети, только по публичной. Плюс, нельзя добавить сервис в вайт-лист для коннекта. Приходится отключать ограничение по хостам на подключения. Страшно.
5. При любом изменении настроек происходит полная пересборка контейнера. Непонятно и дико раздражает пока настраиваешь первый раз.
Короче, определенно прекрасное решение для пет-проектов. Но цена прямо злая.
#удобство_разработки