Forwarded from TypicalFolder // kadev CA (kaurcev)
еще один неочевидный вброс:
закинул темплейт монорепозитория React+NodeJS(Express)
там же сразу команды под автоматическое развертывание, общий билд (из реакта и бекенда делает билд для прода) и всё в том духе
крч, всё тут:
https://github.com/kaurcev/template-mono-repository
закинул темплейт монорепозитория React+NodeJS(Express)
там же сразу команды под автоматическое развертывание, общий билд (из реакта и бекенда делает билд для прода) и всё в том духе
крч, всё тут:
https://github.com/kaurcev/template-mono-repository
GitHub
GitHub - kaurcev/template-mono-repository: Шаблон для управления бэкендом (Node.js) и фронтендом (React) в одном репозитории с…
Шаблон для управления бэкендом (Node.js) и фронтендом (React) в одном репозитории с поддержкой: Параллельного запуска в режиме разработки, сборки production-версии и публикации проекта через локал...
Forwarded from TypicalFolder // kadev CA (᠌ ᠌ ᠌᠌ ᠌ ᠌ ᠌ ᠌ ᠌)
так, ну шо вы
я залил npm💻 пакет для того чтобы при разработке веб-клиента на React можно было внедрить виджет для приёма платежа
установка простая:
и после как пример можно не париться с формой и внедрить компонент💻 как есть:
само собой, версия 1.0.1, так что обновлять буду после ещё, так как есть моменты, в которых я бы хотел видеть более широкие возможности
реализация предоставлена на📱 , и может использоваться как в React на JavaScript, так и на TypeScript
кто интересуется веб-разработкой и шарит за npm, то вот ссылочка на💻 :
https://www.npmjs.com/package/yoomoney-widget
я залил npm
установка простая:
npm install yoomoney-widget
и после как пример можно не париться с формой и внедрить компонент
<Yoomoney
receiver="0000000000000000"
label="Пополнение счета"
successURL="https://kaurcev.dev/success"
defaultSum={100}
minSum={50}
/>
само собой, версия 1.0.1, так что обновлять буду после ещё, так как есть моменты, в которых я бы хотел видеть более широкие возможности
реализация предоставлена на
кто интересуется веб-разработкой и шарит за npm, то вот ссылочка на
https://www.npmjs.com/package/yoomoney-widget
Please open Telegram to view this post
VIEW IN TELEGRAM
TypicalFolder // kadev CA
так, ну шо вы я залил npm 💻 пакет для того чтобы при разработке веб-клиента на React можно было внедрить виджет для приёма платежа установка простая: npm install yoomoney-widget и после как пример можно не париться с формой и внедрить компонент 💻 как есть:…
kaurcev/yoomoney-widget
Stars: 1
Forks: 0
Language: TypeScript
Updated: 10/25/2025
React компонент для формы оплаты через YooMoney со встроенными шрифтами Factor IO.
Open repository
Stars: 1
Forks: 0
Language: TypeScript
Updated: 10/25/2025
React компонент для формы оплаты через YooMoney со встроенными шрифтами Factor IO.
Open repository
GitHub
GitHub - kaurcev/yoomoney-widget: [RU] React компонент для формы оплаты через YooMoney со встроенными шрифтами Factor IO.
[RU] React компонент для формы оплаты через YooMoney со встроенными шрифтами Factor IO. - kaurcev/yoomoney-widget
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
Для тех кто в очередной раз вкинет предложение о создании мессенджера — будет полезной эта статья
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
Максим_Федянин_—_Подход_WebFirst_WebView_в_разработке_мобильных.pdf
2.7 MB
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
Делюсь полезной ссылкой: https://www.apponfly.com
Это сервис для аренды виртуального сервера (VPS) с почасовой оплатой, но особенно удобен он для кратковременных задач — например, можно арендовать сессию всего на 20 минут (бесплатно)
Я использую его, чтобы:
· проверить работу своих веб-ресурсов с IP Чехии;
· скачать файлы (например, Vosk) через браузер на сервере, а затем забрать их через онлайн файловый менеджер (file-transfer), если прямая загрузка на мой компьютер недоступна из-за региональных или сетевых ограничений..
Пользуйтесь
Это сервис для аренды виртуального сервера (VPS) с почасовой оплатой, но особенно удобен он для кратковременных задач — например, можно арендовать сессию всего на 20 минут (бесплатно)
Я использую его, чтобы:
· проверить работу своих веб-ресурсов с IP Чехии;
· скачать файлы (например, Vosk) через браузер на сервере, а затем забрать их через онлайн файловый менеджер (file-transfer), если прямая загрузка на мой компьютер недоступна из-за региональных или сетевых ограничений..
Пользуйтесь
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
TypicalFolder // kadev CA
Всё-таки работать на бюджетную организацию в современных реалиях - идея плохая
ещё меня забавляет, как работает бюрократия в рамках цифровизации.
там готовы трястись над отдельными пунктами 152-ФЗ о персональных данных — мол, если вы используете open source решения, то на проверках будут проблемы. и ещё импортозамещение приплетут для убедительности. просто потому, что "надо же" — формально отчитаться, галочку поставить
но при этом тот же самый 152-ФЗ, где чёрным по белому написано: "обеспечивать безопасность данных любыми возможными способами" — шутка. как будто этого пункта не существует
а теперь факт, который все и так знают: госучреждения ползут за рынком еле-еле. современные решения и актуальный инструментарий внедряются в цифровизацию со скрипом и дикими тормозами. в итоге всё упирается в тот же legacy, с кучей техдолгов, с попытками переползти со стека, который уже давно снят с поддержки, на что-то, что хотя бы плюс-минус похоже на современные критерии.
и вот меня и забавляет: там, где реально нужно безопасность данных обеспечивать (а legacy — это реальная дыра), — тишина. а там, где можно попридираться к open source ради галочки — сразу бегут и трясут бумажками.
там готовы трястись над отдельными пунктами 152-ФЗ о персональных данных — мол, если вы используете open source решения, то на проверках будут проблемы. и ещё импортозамещение приплетут для убедительности. просто потому, что "надо же" — формально отчитаться, галочку поставить
но при этом тот же самый 152-ФЗ, где чёрным по белому написано: "обеспечивать безопасность данных любыми возможными способами" — шутка. как будто этого пункта не существует
а теперь факт, который все и так знают: госучреждения ползут за рынком еле-еле. современные решения и актуальный инструментарий внедряются в цифровизацию со скрипом и дикими тормозами. в итоге всё упирается в тот же legacy, с кучей техдолгов, с попытками переползти со стека, который уже давно снят с поддержки, на что-то, что хотя бы плюс-минус похоже на современные критерии.
и вот меня и забавляет: там, где реально нужно безопасность данных обеспечивать (а legacy — это реальная дыра), — тишина. а там, где можно попридираться к open source ради галочки — сразу бегут и трясут бумажками.
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
TypicalFolder // kadev CA
ещё меня забавляет, как работает бюрократия в рамках цифровизации. там готовы трястись над отдельными пунктами 152-ФЗ о персональных данных — мол, если вы используете open source решения, то на проверках будут проблемы. и ещё импортозамещение приплетут для…
раскидаю долги и пойду восвоясе, ибо рынок и без моего участия останется перенасыщенным, а я в состоянии паузы развития никуда уже не пролезу с выработанными проблемами в виде синдрома самозванца и выученной беспомощностью.
а в ином случае я становлюсь тем кого не понимаю и осуждаю. такие дела, народ, такой вот диссонанс разработчика что стремился быть инженером, а не смешным винтиком с часа до часу
а в ином случае я становлюсь тем кого не понимаю и осуждаю. такие дела, народ, такой вот диссонанс разработчика что стремился быть инженером, а не смешным винтиком с часа до часу
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
TypicalFolder // kadev CA
а сегодня у нас миграция проекта kadev на свой выделенный сервер. а так как я хочу реализовать всё не в простом формате, проект будет видоизменен, то есть — создан по новой.
вот так вот мы быстренько разворачиваем базовую конфигурацию докера, в котором собирается наше web приложение на React.
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
TypicalFolder // kadev CA
разворачиваем базовую конфигурацию докера
кстати, обратите внимание на то что стоит в портах.
а именно:
127.0.0.1:3000 обозначает тот что порт будет слушаться на localhost.
так как в дальнейшем на хосте будет nginx (в котором будет у нас указание доменных имен и SSL сертификаты), он будет проксировать куда надо.
то есть, сам домен в DNS указывает на хост, а на хосте его встречает балансировщик и будет указывать внутри какой порт дать на прослушивание.
там же будет базовые настройки по ограничению запросов (запросов в секунду) и ограничения по GeoIP для обеспечения штатной безопасности.
небольшие намеки на best practice для разворачивания веб-приложений
а именно:
ports:
- "127.0.0.1:3000:3000"
127.0.0.1:3000 обозначает тот что порт будет слушаться на localhost.
так как в дальнейшем на хосте будет nginx (в котором будет у нас указание доменных имен и SSL сертификаты), он будет проксировать куда надо.
то есть, сам домен в DNS указывает на хост, а на хосте его встречает балансировщик и будет указывать внутри какой порт дать на прослушивание.
там же будет базовые настройки по ограничению запросов (запросов в секунду) и ограничения по GeoIP для обеспечения штатной безопасности.
небольшие намеки на best practice для разворачивания веб-приложений
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
TypicalFolder // kadev CA
кстати, обратите внимание на то что стоит в портах. а именно: ports: - "127.0.0.1:3000:3000" 127.0.0.1:3000 обозначает тот что порт будет слушаться на localhost. так как в дальнейшем на хосте будет nginx (в котором будет у нас указание доменных…
пишем тут ради просветления, так что упомяну что не стоит забывать в переменных окружения устанавливать такие значения:
так как у меня всё строится на экосистеме node (ибо пакетный менеджер npm оч богат), эти переменные критично важны.
указывая NODE_ENV=production вы даете библиотекам понять то что код будет запускаться не у разработчика в режиме разработки, а уже для пользователей. Лишние проверки и подробные сведения об ошибках будут отключены и веб-приложение в таком случае становится легче и быстрее
а вот GENERATE_SOURCEMAP=false — очень важная штука. с виду, React билдит бандл (тот самый файлик из мешанины JavaScript кода), который так просто не разберешь. но и тут вот подводный камень для незнающего — React билдит карту исходного кода. оно, в общем, позволяет восстановить исходный код, который можно будет просмотреть в браузере. указывая false вы отключаете генерацию исходного кода и любопытные глазки не увидят вашу красоту по ту сторону =)
и, само собой, понимаете что если не надо генерировать карту исходного кода — значит не надо тратить время. ну в общем, примерно в 2 раза быстрее сбилдите web app и он будет меньше весить.
вот такие базовые первые шаги для обеспечения оптимизации и защиты кода от копирования☕️
NODE_ENV=production
GENERATE_SOURCEMAP=false
так как у меня всё строится на экосистеме node (ибо пакетный менеджер npm оч богат), эти переменные критично важны.
указывая NODE_ENV=production вы даете библиотекам понять то что код будет запускаться не у разработчика в режиме разработки, а уже для пользователей. Лишние проверки и подробные сведения об ошибках будут отключены и веб-приложение в таком случае становится легче и быстрее
а вот GENERATE_SOURCEMAP=false — очень важная штука. с виду, React билдит бандл (тот самый файлик из мешанины JavaScript кода), который так просто не разберешь. но и тут вот подводный камень для незнающего — React билдит карту исходного кода. оно, в общем, позволяет восстановить исходный код, который можно будет просмотреть в браузере. указывая false вы отключаете генерацию исходного кода и любопытные глазки не увидят вашу красоту по ту сторону =)
и, само собой, понимаете что если не надо генерировать карту исходного кода — значит не надо тратить время. ну в общем, примерно в 2 раза быстрее сбилдите web app и он будет меньше весить.
вот такие базовые первые шаги для обеспечения оптимизации и защиты кода от копирования
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
TypicalFolder // kadev CA
пишем тут ради просветления, так что упомяну что не стоит забывать в переменных окружения устанавливать такие значения: NODE_ENV=production GENERATE_SOURCEMAP=false так как у меня всё строится на экосистеме node (ибо пакетный менеджер npm оч богат), эти переменные…
так бы по хорошему развернуть GitHub Actions для того чтобы сразу из системы контроля версий подтягивать изменения, тестировать на месте и выливать в под (цикл CI\CD), но пока мне не до этого, так как до настройки такого мне нужно выстроить сами контейнеры и настроить сам сервер
предстоящие выходные будут насыщенные по постам, так что ожидайте
(да-да, нам ещё до конца доводить 3NF форму в той СУБД с IP адресами, так как энтузиастов помочь мне не нашлось)
предстоящие выходные будут насыщенные по постам, так что ожидайте
(да-да, нам ещё до конца доводить 3NF форму в той СУБД с IP адресами, так как энтузиастов помочь мне не нашлось)
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
кто работает с react, вам на заметку.
вы же помните что ваш исходный код проекта по окончанию билдится в один бандл?
так вот, теперь представьте что вы сделали мощное продуктивное веб-приложение, сопоставимое с какой-нибудь CRM системой корпоративного масштаба..
у вас там очень много функционала, страниц, вам не стало лень и вы ещё наделали интерактива на всё что можно, вплоть что сделали к системе обширный wiki-склад..
и теперь задумайтесь, каков объём этого бандла? каждая страница, каждый компонент, да каждое событие что вы вешали на форму\кнопку\поле ввода — всё там, анимации, графики — всё как мы любим в хороших энтерпрайз системах..
и заметили, что сжатый вариант выходит за порог 4-5мб..
с виду видите что вроде 4мб, но увы — это та байда что даст вам жару..
начну с простого: 1мб сжатого JS != 1мб какой-то картинки. не забывайте что он сжат и то что браузеру перед тем как запустить всё это нужно загрузить и распарсить это.
отсюда и пошли первые приколы с утечкой памяти (как я люблю тыкать hh.ru за их react реализацию с необоснованным потреблением памяти).
далее образуется задержка TBT (тотал блокинг тайм) — основной поток процессора будет блокироваться и интерфейс будет тупить.
и вот, только после того как всё прогрузится и будет распаршено — тогда то и сможете добиться работы с клиентской частью веб-приложения.
на такой случай в react есть lazy — ленивая загрузка. оно позволит вам обернуть те или иные компоненты и при билде они будут чанковаться.
таким образом, не нужные вам конструкции не будут загружаться и лишне обрабатываться. интерфейс будет отзывчивым, быстрым (для SEO тоже полезно, так как пользователи сейчас не ждут окончания загрузки) и догружаться будет только то что надо
вот такие дела, отмечу что это базовые механизмы которые стоит знать..
и вот, у меня же на практике вышла смешная ситуация, когда на одной странице был компонент кнопки (там я с помощью атрибутов передавал наименование иконки и текста чтобы не нарушать DRY) в котором были и стили, и все что надо.. и была страница в разработке, где была простая кнопка в стиле <button>
и вот, забавно было то что если я посещал страницы где использовался компонент кнопки, то при переходе на dev страницу где была простая <button> кнопка, то на ней были стили из компонента (я в общем их задавал сразу на button), но стоило мне перезагрузить страницу (или перейти на patch dev страницы), то стили не применялись =)
так что при работе с такими инструментами ещё и учитывайте то что может происходить такое и умейте делать правильно импорты чтобы не ловить подобных багов =D
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
Роберт С. (Роб) Пайк (англ. Robert C. (Rob) Pike, род. 1956) — разработчик операционных систем и языков программирования, работавший c 1980 года в Bell Labs, где в соавторстве с другим программистом написал графический терминал Blit для Unix, и также позднее участвовал в создании операционных систем Plan 9 и Inferno. Один из создателей кодировки UTF-8. Автор текстовых редакторов Sam и Acme.
Ссылка на вики
Ссылка на вики
Forwarded from TypicalFolder // kadev CA (alexsandr kaurcev)
Напоминаю о том что существует открытый порт закрытого Telegtam канала.
Там только вырезки касательно IT:
https://t.me/typicalfolder
Там только вырезки касательно IT:
https://t.me/typicalfolder