Webpack aliases в IDE
Обычно IDE сами автоматически резолвят алиасы, если есть webpack. Но если мы используем другой бандлер, например Vite, то необходимо прописать в корне проекта файл jsconfig.json, где указать paths:
Обычно IDE сами автоматически резолвят алиасы, если есть webpack. Но если мы используем другой бандлер, например Vite, то необходимо прописать в корне проекта файл jsconfig.json, где указать paths:
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"],
"~/*": ["./src/*"]
}
}
}Laravel Test Mock With Constructor
При написании тестов часто требуется замокать ответы стороннего API, но при этом часто нужно мокнуть только те методы, которые возвращают ответ, а остальные оставить оригинальными. При этом нужно собрать инстанс сервиса вместе с параметрами конструктора.
Подробней тут https://bearlogin.notion.site/Laravel-Test-Mock-With-Constructor-ff5904277d86458ca8bb1429c1e102fa
#advices #tests #laravel #php
При написании тестов часто требуется замокать ответы стороннего API, но при этом часто нужно мокнуть только те методы, которые возвращают ответ, а остальные оставить оригинальными. При этом нужно собрать инстанс сервиса вместе с параметрами конструктора.
Подробней тут https://bearlogin.notion.site/Laravel-Test-Mock-With-Constructor-ff5904277d86458ca8bb1429c1e102fa
#advices #tests #laravel #php
Andrei's Notion on Notion
Laravel Test Mock With Constructor
При написании тестов часто требуется замокать ответы стороннего API, но при этом часто нужно мокнуть только те методы, которые возвращают ответ, а остальные оставить оригинальными. При этом нужно собрать инстанс сервиса вместе с параметрами конструктора.
Makewarnotpeace
Только сегодня прилетели новости, что не надо обновлять зависимости. Как минимум может прилететь эта шляпа https://www.npmjs.com/package/peacenotwar, а как максимум шифровальщик или удаление всех ваших файлов. Чекните этот тред https://github.com/vuejs/vue-cli/issues/7054
Upd. Бро прислал ссылку, где собирают список зловредов https://docs.google.com/spreadsheets/d/1H3xPB4PgWeFcHjZ7NOPtrcya_Ua4jUolWm-7z9-jSpQ/htmlview?usp=sharing&pru=AAABf7rCuSo*bIOpMXcSv6-ORZvEudbuAw
#ебанулись #оборзели #thisiswar
Только сегодня прилетели новости, что не надо обновлять зависимости. Как минимум может прилететь эта шляпа https://www.npmjs.com/package/peacenotwar, а как максимум шифровальщик или удаление всех ваших файлов. Чекните этот тред https://github.com/vuejs/vue-cli/issues/7054
Upd. Бро прислал ссылку, где собирают список зловредов https://docs.google.com/spreadsheets/d/1H3xPB4PgWeFcHjZ7NOPtrcya_Ua4jUolWm-7z9-jSpQ/htmlview?usp=sharing&pru=AAABf7rCuSo*bIOpMXcSv6-ORZvEudbuAw
#ебанулись #оборзели #thisiswar
Бей своих, чтобы чужие боялись
Американское НКО пострадало от автора node-ipc
https://github.com/RIAEvangelist/node-ipc/issues/308#issuecomment-1070975082
Американское НКО пострадало от автора node-ipc
https://github.com/RIAEvangelist/node-ipc/issues/308#issuecomment-1070975082
Храните lock файлы в репозитории
Вот просто всегда заливайте lock файлы в git. Я это делал еще до этой всей истории с малварями, и всем советовал. Если у вас вдруг есть репа без лок файла, срочно залейте его туда.
Вот просто всегда заливайте lock файлы в git. Я это делал еще до этой всей истории с малварями, и всем советовал. Если у вас вдруг есть репа без лок файла, срочно залейте его туда.
👍2
Хроники первой мировой интернет войны
Обсуждали сейчас в техдирском чате https://news.1rj.ru/str/ctorecordschat как жить в таких условия. Собрал список рекомендаций.
- lock файлы хранить в репозитории
- Изоляция сборки в контейнерах в том числе и для промежуточных сборок на машинах разработчиков, хотя бы до появления lock файла.
- Форки всех библиотек (по возможности) и контейнеров к себе.
- Зеркалирование репозиториев пакетов.
- Включение в CI как минимум поиска по ключевым словам, UTF символам с изображением украинского флага и сравнение списка файлов с вайтлистом.
- Ресерч по инструментам анализа кода.
Конечно, форки всех библиотек - это очень дорого, но тут нужно смотреть по рискам, что дороже - потеря данных или форки.
Пишите свои советы в комменты
Обсуждали сейчас в техдирском чате https://news.1rj.ru/str/ctorecordschat как жить в таких условия. Собрал список рекомендаций.
- lock файлы хранить в репозитории
- Изоляция сборки в контейнерах в том числе и для промежуточных сборок на машинах разработчиков, хотя бы до появления lock файла.
- Форки всех библиотек (по возможности) и контейнеров к себе.
- Зеркалирование репозиториев пакетов.
- Включение в CI как минимум поиска по ключевым словам, UTF символам с изображением украинского флага и сравнение списка файлов с вайтлистом.
- Ресерч по инструментам анализа кода.
Конечно, форки всех библиотек - это очень дорого, но тут нужно смотреть по рискам, что дороже - потеря данных или форки.
Пишите свои советы в комменты
👍4
Laravel Facades
При работе с Laravel приходится много работать с Facades и многие их не любят, так как непонятно, с каким реальным классом они работают. Но есть способ узнать это. Например так мы узнаем, какой класс используется для URL:
При работе с Laravel приходится много работать с Facades и многие их не любят, так как непонятно, с каким реальным классом они работают. Но есть способ узнать это. Например так мы узнаем, какой класс используется для URL:
\dd(get_class(\Illuminate\Support\Facades\URL::getFacadeRoot()));#laravel #facades #advices #backend #php
Как оплатить Hetzner
Комрады интересуются, как в таких условиях платить за хостинг.
У Hetzner есть возможность оплатить через Bank Transfer.
Тема работает со Сбер, Тинькофф и Альфа.
У Сбера вроде коммисия самая маленькая - 150р. Тинькофф берут 15 евро, Альфа 0.9%
Тут тема https://vc.ru/ask/376006-kak-oplachivat-hosting-hetzner-kuda-perehodit
Комрады интересуются, как в таких условиях платить за хостинг.
У Hetzner есть возможность оплатить через Bank Transfer.
Тема работает со Сбер, Тинькофф и Альфа.
У Сбера вроде коммисия самая маленькая - 150р. Тинькофф берут 15 евро, Альфа 0.9%
Тут тема https://vc.ru/ask/376006-kak-oplachivat-hosting-hetzner-kuda-perehodit
vc.ru
Как оплачивать хостинг Hetzner? Куда переходить? — Вопросы на vc.ru
Коллеги, как думаете оплачивать хостинг Hetzner? Payment options там такие:
👍1
Фризы SSH терминала
Я думаю все замечали, что если на какое то время оставить в терминале SSH подключение, то через некоторое время оно перестает отвечать, и либо отваливается, либо фризит терминал.
Чтобы это фиксануть, нужно в файле /etc/ssh/ssh_config дописать конфиг
#devops #ssh #advices
Я думаю все замечали, что если на какое то время оставить в терминале SSH подключение, то через некоторое время оно перестает отвечать, и либо отваливается, либо фризит терминал.
Чтобы это фиксануть, нужно в файле /etc/ssh/ssh_config дописать конфиг
Host *Клиент будет отправлять пустой пакет каждые 100 секунд и не даст умереть соединению
ServerAliveInterval 100
#devops #ssh #advices
👍6
Yarn и проблема с install в CI окружениях
Если вы используете yarn для билда, то думаю замечали, что у него бывают проблемы со скачиванием зависимостей в CI билдах, хотя локально все отрабатывает отлично.
Обычно мы получаем такие ошибки:
А вы как решаете такие проблемы?
#yarn #ci
Если вы используете yarn для билда, то думаю замечали, что у него бывают проблемы со скачиванием зависимостей в CI билдах, хотя локально все отрабатывает отлично.
Обычно мы получаем такие ошибки:
error An unexpected error occurred: "ENOENT: no such file or directory, open '/usr/local/share/.cache/yarn/v6/npm-esbuild-linux-ppc64le-0.14.38-dceb0a1b186f5df679618882a7990bd422089b47-integrity/node_modules/esbuild-linux-ppc64le/.yarn-metadata.json'".Эта проблема решается флагом --network-concurrency 1, которая ограничивает конкурентные запросы, правда при этом страдает скорость билда.
А вы как решаете такие проблемы?
#yarn #ci
👍1
Кеширование сборки докера в multistage конфигурациях
В CI билдить приложение можно как в окружении runner, так и в docker in docker.
Если в первом случае мы можем сделать service specific конфигурацию, настроить кеши и т.д. То во втором случае мы будем в меньшей степени зависить от конкретного CI сервиса и не придется для теста билда гонять CI.
Но при билде docker-in-docker возникает вопрос производительности и кеширования.
Универсальный способ - спулить последний образ и использовать его как кеш.
Вот пример из документации Gitlab https://docs.gitlab.com/ee/ci/docker/using_docker_build.html
Но если Dockerfile содержит несколько stage, то данный вариант не будет работать, так как кешироваться будет только последняя стадия.
Подробней тут https://bearlogin.notion.site/multistage-88aab91f9848490ea1b41bf87b23b917
#docker #devops #ci #cache
В CI билдить приложение можно как в окружении runner, так и в docker in docker.
Если в первом случае мы можем сделать service specific конфигурацию, настроить кеши и т.д. То во втором случае мы будем в меньшей степени зависить от конкретного CI сервиса и не придется для теста билда гонять CI.
Но при билде docker-in-docker возникает вопрос производительности и кеширования.
Универсальный способ - спулить последний образ и использовать его как кеш.
Вот пример из документации Gitlab https://docs.gitlab.com/ee/ci/docker/using_docker_build.html
Но если Dockerfile содержит несколько stage, то данный вариант не будет работать, так как кешироваться будет только последняя стадия.
Подробней тут https://bearlogin.notion.site/multistage-88aab91f9848490ea1b41bf87b23b917
#docker #devops #ci #cache
👍4
Grepper
Недавно наткнулся на такой сервис https://www.codegrepper.com/
Его суть, что любой человек может сохранить code сниппет как ответ на вопрос.
Например, ищу я как в vue3 сделать компонент с v-model:
В 1 клик сохраняю этот сниппет, и теперь любой у кого установлен плагин grepper увидит этот ответ при вводе вопроса в гугл.
Записал небольшое демо https://www.loom.com/share/a632fb66dc214ac3893f0c892c1560f0
Недавно наткнулся на такой сервис https://www.codegrepper.com/
Его суть, что любой человек может сохранить code сниппет как ответ на вопрос.
Например, ищу я как в vue3 сделать компонент с v-model:
В 1 клик сохраняю этот сниппет, и теперь любой у кого установлен плагин grepper увидит этот ответ при вводе вопроса в гугл.
Записал небольшое демо https://www.loom.com/share/a632fb66dc214ac3893f0c892c1560f0
You
Enterprise AI, Built Your Way | You.com
From APIs to full-service support, You.com empowers every business to build secure, scalable, and trustworthy AI apps and agents — all with complete control.
👍5
Идемпотентность
Наверное вы сталкивались с проблемой дублирования запросов к API при быстром нажатии на кнопки или проблемами с сетью, в результате которых создавались дублирующие заказы.
По этой теме очень советую статью от Яндекса https://habr.com/ru/company/yandex/blog/442762/
#api #backend #arcitecture
Наверное вы сталкивались с проблемой дублирования запросов к API при быстром нажатии на кнопки или проблемами с сетью, в результате которых создавались дублирующие заказы.
По этой теме очень советую статью от Яндекса https://habr.com/ru/company/yandex/blog/442762/
#api #backend #arcitecture
Хабр
Стажёр Вася и его истории об идемпотентности API
Идемпотентность — звучит сложно, говорят о ней редко, но это касается всех приложений, использующих API в своей работе. Меня зовут Денис Исаев, и я руковожу одной из бэкенд групп в Яндекс.Такси....
👍11
Обратная связь
Буду очень признателен за обратную связь по постам - вам секундное дело жмакнуть 👍👎, а я буду понимать, насколько релеватную инфу выкладываю. Спасибо!
Буду очень признателен за обратную связь по постам - вам секундное дело жмакнуть 👍👎, а я буду понимать, насколько релеватную инфу выкладываю. Спасибо!
👍6
Сегодня узнал что такое ханипот, как говорится и в мемах есть полезная информация
Forwarded from ДЕВОПСИНА | DevOps | Linux
This media is not supported in your browser
VIEW IN TELEGRAM
Пентестер находит бекдор, но это всего лишь ханипот
👍9
API
Еще в догонку к теме API - отличная книга Сергея Константинова. Маст хев для всех бэкендеров, кому приходится проектировать REST API.
https://twirl.github.io/The-API-Book/index.ru.html
Еще в догонку к теме API - отличная книга Сергея Константинова. Маст хев для всех бэкендеров, кому приходится проектировать REST API.
https://twirl.github.io/The-API-Book/index.ru.html
twirl.github.io
Сергей Константинов. API
Разработка API — особый навык: API является как мультипликатором ваших возможностей, так и мультипликатором ваших ошибок. Эта книга написана для того, чтобы поделиться опытом и изложить лучшие практики разработки API. Книга состоит из шести разделов, посвящённых…
👍7
Определение области применения
В предыдущем посте в книге про API описан хороший метод аналитики задач:
"Ключевой вопрос, который вы должны задать себе четыре раза, выглядит так: какую проблему мы решаем? Задать его следует четыре раза с ударением на каждом из четырёх слов.
Какую проблему мы решаем? Можем ли мы чётко описать, в какой ситуации гипотетическим потребителям-разработчикам нужен наш API?
Какую проблему мы решаем? А мы правда уверены, что описанная выше ситуация — проблема? Действительно ли кто-то готов платить (в прямом и переносном смысле) за то, что ситуация будет как-то автоматизирована?
Какую проблему мы решаем? Действительно ли решение этой проблемы находится в нашей компетенции? Действительно ли мы находимся в той позиции, чтобы решить эту проблему?
Какую проблему мы решаем? Правда ли, что решение, которое мы предлагаем, действительно решает проблему? Не создаём ли мы на её месте другую проблему, более сложную?" https://twirl.github.io/The-API-Book/docs/API.ru.html#chapter-8
Особенно мне нравится пункт 4. Действительно бывают случаи, когда вместо одной проблемы создаем другую, городим костыли и т.д.
#product_management #development
В предыдущем посте в книге про API описан хороший метод аналитики задач:
"Ключевой вопрос, который вы должны задать себе четыре раза, выглядит так: какую проблему мы решаем? Задать его следует четыре раза с ударением на каждом из четырёх слов.
Какую проблему мы решаем? Можем ли мы чётко описать, в какой ситуации гипотетическим потребителям-разработчикам нужен наш API?
Какую проблему мы решаем? А мы правда уверены, что описанная выше ситуация — проблема? Действительно ли кто-то готов платить (в прямом и переносном смысле) за то, что ситуация будет как-то автоматизирована?
Какую проблему мы решаем? Действительно ли решение этой проблемы находится в нашей компетенции? Действительно ли мы находимся в той позиции, чтобы решить эту проблему?
Какую проблему мы решаем? Правда ли, что решение, которое мы предлагаем, действительно решает проблему? Не создаём ли мы на её месте другую проблему, более сложную?" https://twirl.github.io/The-API-Book/docs/API.ru.html#chapter-8
Особенно мне нравится пункт 4. Действительно бывают случаи, когда вместо одной проблемы создаем другую, городим костыли и т.д.
#product_management #development
👍4🔥2
Значит, прилетает к нам такое письмецо.
Моя первая реакция - ты чо, пёс, у нас кубернейтесы с масштабированием до 10 нод сударь, тут какая то ошибка, у нас все хорошо с мощностями...
Ну иблагополучно забил отложил в беклог данный тикет.
Но несколько дней спустя заметил, что huntica.works у меня с домашнего интернета не открывается, хотя с 4G все отлично. В то же время у нашего CEO извражеской солнечной Калифорнии все отлично загружается.
Более того, оказалось, что я не могу подключится к нашему кластеру на DO.
При этом при включении VPN все начинало работать "like a charm"
Пишу George Gaál, спрашиваю, вотневедомая хуйня оказия такая случилась, знаешь чего? Он говорит - ага, похоже блокируют, на днях комрады по этой причине драпали с DO на Яндексы...
А так же скинул эту статью https://habr.com/ru/amp/post/667096/
Собственно, привет РКН, КПСС или что там у нас.
На этом месте лимит телеги кончается, дальше решение читайте тут https://bearlogin.notion.site/a62fb447700646e59b790f9450d081ae
#devops
Моя первая реакция - т
Ну и
Но несколько дней спустя заметил, что huntica.works у меня с домашнего интернета не открывается, хотя с 4G все отлично. В то же время у нашего CEO из
Более того, оказалось, что я не могу подключится к нашему кластеру на DO.
При этом при включении VPN все начинало работать "like a charm"
Пишу George Gaál, спрашиваю, вот
А так же скинул эту статью https://habr.com/ru/amp/post/667096/
Собственно, привет РКН, КПСС или что там у нас.
На этом месте лимит телеги кончается, дальше решение читайте тут https://bearlogin.notion.site/a62fb447700646e59b790f9450d081ae
#devops
👍10
Шпаргалочки
В каждой (но это не точно) технологии можно найти cheetsheets - шпаргалки. Это основные возможности и конструкции языка/фреймворка и т.д.
По ним очень удобно готовиться к собесам или быстро ознакомится с технологией.
Примеры:
https://github.com/typenoscript-cheatsheets/react
https://github.com/dekadentno/vue-cheat-sheet
https://github.com/mbeaudru/modern-js-cheatsheet
https://github.com/wsargent/docker-cheat-sheet
https://github.com/LeCoupa/awesome-cheatsheets
P.S. О шпаргалках я узнал у своего падавана @VicSmol :) Он кстати ищет работу NodeJS Developer
#advices
В каждой (но это не точно) технологии можно найти cheetsheets - шпаргалки. Это основные возможности и конструкции языка/фреймворка и т.д.
По ним очень удобно готовиться к собесам или быстро ознакомится с технологией.
Примеры:
https://github.com/typenoscript-cheatsheets/react
https://github.com/dekadentno/vue-cheat-sheet
https://github.com/mbeaudru/modern-js-cheatsheet
https://github.com/wsargent/docker-cheat-sheet
https://github.com/LeCoupa/awesome-cheatsheets
P.S. О шпаргалках я узнал у своего падавана @VicSmol :) Он кстати ищет работу NodeJS Developer
#advices
👍8🔥5