Обновить
512K+

JavaScript *

Прототипно-ориентированный язык программирования

178,69
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Как я настраивал S3 в Strapi? Больно, но не сильно

Время на прочтение5 мин
Охват и читатели3.5K

Недавно я познакомился с сервисом Strapi и почти сразу получил задачу "Настроить отправку файлов в S3 из Strapi". Это мой первый опыт в работе со Strapi, но не первое подключение к S3.

В данной записи я хотел бы поделиться своим опытом и показать пару кастомных скриптов для работы с облачным хранилищу S3.

Читать далее

TMA Wallet — некастодиальный MPC воллет для вашего Telegram Mini App

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели4K

Всем привет! Думаю, все уже знают, что в телеге уже год как бум мини-аппов, все тапали хомяка. Подавляющее большинство из них связаны с криптой. Многие хотят внутри приложения давать своим пользователям кошелёк (EVM, TON или Solana, etc.), как некий виртуальный счёт, который можно пополнить, выводить средства, и, самое главное, дергать смарт-контракты.

Простое и небезопасное решение - хранить все ключи на серваке, выполнять транзакции от имени юзера. Взлом вашего сервера = потеря всех клиентских средств, добиться доверия в этом случае очень сложно.

Сложное и неудобное решение - кошелёк, который юзер должен записать на бумажке и следить за его безопасностью сам. В этом случае, вам лучше вообще использовать WalletConnect или не делать миниапп вообще. Правда, в этом случае UI миниаппа превращается в ад, где юзер должен подтверждать каждое действие во внешнем приложении.

Мы искали для нашего миниаппа вариант, который бы давал безопасность некастодиального кошелька, но с максимально гладким UX/UI. И нашли.

В этой статье я хочу сделать обзор TMA Wallet (npm-пакет, сайт, github) - opensource некастодиального multi-party кошелька, подходящего для любых чейнов, работающего на базе недавно появившееся API Telegram Cloud Storage.

Поехали!

Унификация, синхронизация, кросс-командность. Как дизайн-система реально улучшает жизнь компании

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели4.7K

Сегодня дизайн-система — это неотъемлемая часть процесса разработки цифровых продуктов. Однако не всегда очевидно, как именно такой инструмент помогает работать с UI-компонентами и улучшать качество продукта.

Меня зовут Артур Иванов, я тимлид B2B Product Design департамента Design & Research Office (DRO) «Лаборатории Касперского», и именно перед нашей командой встал вызов по внедрению дизайн-системы под названием Hexa UI в уже существующие рабочие процессы отдела дизайна.

Читать далее

Современные способы переключения контента

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели9.5K



Тот, у кого из всех инструментов есть только молоток, склонен на любую проблему смотреть, как на гвоздь.
Абрахам Маслоу

Мы склонны использовать знакомые решения. Когда речь заходит о переключении контента, мы обычно используем свойства display: none или opacity: 0 с добавлением JavaScript. Однако современный веб стремительно развивается, и, возможно, настало время рассмотреть другие подходы к переключению контента — узнать, какие нативные API на сегодняшний день поддерживаются, их достоинства и недостатки, а также некоторые нюансы, о которых мы могли и не подозревать (включая псевдоэлементы и другие малоизвестные вещи).

Читать дальше →

Brython: Python в вашем браузере (ч.3)

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели2.4K

Brython позволяет Python-коду взаимодействовать с кодом JavaScript. Наиболее распространенный шаблон — доступ к JavaScript из Brython. Обратный вариант, хотя и возможен, не распространен. Вы увидите пример вызова функции Python в JavaScript в разделе Модульные тесты JavaScript.

Читать далее

Brython: Python в вашем браузере (ч.2)

Уровень сложностиПростой
Время на прочтение12 мин
Охват и читатели12K

Ваше знакомство с различными способами установки Brython дало вам общее представление о том, как работает реализация. Вот краткое изложение некоторых характеристик, которые вы узнали на этом этапе руководства:

Читать далее

Brython: Python в вашем браузере

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели13K

Если вы веб-разработчик и предпочитаете писать на Python, а не на JavaScript, то Brython — реализация Python, работающая в браузере, — может оказаться для вас привлекательным вариантом.

Читать далее

PGlite — полноценный Postgres-сервер на WASM. Работает прямо в браузере и Node.js

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели10K

Безумные штуки иногда можно найти в интернете. Листая 2024 JavaScript rising stars (https://risingstars.js.org/2024/en#section-all) обнаружил там удивительного зверя - Postgres скомпилированный через emcc в WASM версию, и допиленный до состояния, когда его можно запустить внутри JS-процесса (браузер/Node.js/Bun/etc).

Как он устроен, как им пользоваться, и, самое главное, зачем? Добро пожаловать под кат :)

Поехали!

Почему текстовые форматы не идеальны в разработке: пример на JSON

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели22K

JSON - наш повседневный помощник, но вместе с другими текстовыми форматами он может преподнести неприятные сюрпризы: потеря точности чисел, громоздкие файлы, путаница с датами. Рассказываю, как этих проблем избежать и повысить эффективность с помощью стриминга в Node.js, а также MessagePack и Protobuf. Узнайте, где подводные камни и как их обходить на практике!

Если хотите понять, в чём именно проблема на иллюстрации, загляните в статью — там всё разобрано :-)

Читать далее

React на сервере — это не PHP

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели7.7K

Привет, Хабр.

Некоторое время назад наткнулся на интересную статью в блоге Кристофера Артмана, которой он сравнивает до чего эволюционировал Реакт в наше время и задается вопросом, о том, не вернулись ли мы в отправную точку, и Реакт на сервере - это старый добрый PHP.

Кроме самой статьи мне интересно было почитать комментарии к ней. И там довольно большое количество людей не согласилось с автором.

Под катом Вы найдете вольный перевод (или даже рерайт) этой статьи, а с оригиналом можно ознакомится по ссылке.

Читать далее

Brython: Python в вашем браузере (ч.4)

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели12K

Метод, используемый для установки Brython, может повлиять на то, как и где вы можете развернуть свой проект Brython. В частности, для развертывания в PyPI лучшим вариантом будет сначала установить Brython из PyPI, а затем создать свой проект с помощью brython-cli. Но типичное веб-развертывание на частном сервере или облачном провайдере может использовать любой выбранный вами метод установки.

Читать далее

DDD против реальности: распространённые ловушки и их решение в NestJS

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели15K

Сложно внедрить DDD в NestJS, не запутавшись в абстракциях? В статье рассмотрены частые ошибки - от комбайна в контроллерах до формальных Value Objects. Разбираем, как выделять слои (Domain, Application, Infrastructure, Interface), правильно использовать Entities и репозитории и создавать поддерживаемую архитектуру.

Читать далее

Еще раз про отличия Excel Vba vs OnlyOffice/Р7 офис JavaScript

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели3.5K

В рамках учебного курса основы разработки для Р7 Офис публикуем самый полный список сравнений в разработке Excel Vba vs OnlyOffice/Р7 офис JavaScript

Читать далее

Ближайшие события

Performance и оптимизация TypeScript-типов в больших проектах

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели20K

Узнайте, почему большие TypeScript-проекты начинают "захлёбываться" от рекурсивных типов и обилия импортов, и как с помощью правильной структуры монорепы, настройки tsconfig и диагностики ускорить время компиляции и работу IDE. Рассматриваем инструменты, параллельную сборку, оптимизацию рекурсивных типов и прочие техники, которые помогут сохранить ваш проект быстрым и удобным.

Читать далее

Яндекс капча: попытки установки для самых джун’ых

Время на прочтение9 мин
Охват и читатели23K

Яндекс капча: попытки установки для самых джун’ых.

Для чего?

Почему вдруг «молодо-зелено» учит «плавали-знаем» тому, что и так описано в оф.документации? Дело в том, что эта документация не сильно newbie-friendly. И если вы никогда до этого не ставили на сайт капчу, то имеется ненулевой шанс, что и не поставите, не прочитав данное «крео». Документация написана довольно сносно, но не для тех, кто здесь впервые. Не хватает основы — концепции (хотя раздел концепций в документации имеется…).

Читать далее

TanStack Router: современный и типобезопасный роутер для React

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели13K

Если вы пишете на React и любите TypeScript, вам стоит обратить внимание на TanStack Router - современный, гибкий и полностью типобезопасный роутер. В статье разбираю его ключевые возможности (loaders, кэширование, работу с query-параметрами, SSR) и сравниваем с другими популярными решениями.

Читать далее

Взгляд с другой стороны на useMemo, useCallback и React.memo в React: когда их стоит использовать

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели14K

Оптимизация производительности React приложений — важная часть разработки, особенно когда речь идет о сложных интерфейсах. В основном разработчики лишь краем уха слышат о необходимости использования хуков useMemo, useCallback и React.memo для оптимизации кода. Но если бездумно использовать их, то можно даже навредить вашему приложению

В этой статье я попытаюсь разобрать, когда действительно стоит использовать useMemo, useCallback и React.memo, а когда их использование излишне. Мы изучим каждый из хуков, их влияние на рендеринг компонентов в React, а также рассмотрим практические примеры с подробными объяснениями работы каждого из хуков.

Читать далее

Руководство по Convex. Часть 3

Уровень сложностиСредний
Время на прочтение33 мин
Охват и читатели2.1K


Привет, друзья!


В этой серии статей я рассказываю о Convex — новом открытом и бесплатном решении BaaS (Backend as a Service — бэкенд как услуга), которое выглядит очень многообещающе и быстро набирает популярность среди разработчиков.


На сегодняшний день Convex предоставляет реактивную базу данных смешанного типа, механизм аутентификации/авторизации, файловое хранилище, планировщик задач и средство интеллектуального поиска.


Эта третья и завершающая часть серии, в которой мы поговорим о планировании задач, хранилище файлов и поиске.


В конце мы также рассмотрим расширенный пример использования Convex для разработки полноценного веб-приложения.


Читать дальше →

Type-level программирование в TypeScript: практические кейсы и обзор возможностей

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели6.5K

Как использовать мощь системы типов TypeScript для вычисления логики ещё на этапе компиляции и автоматической генерации кода. Разбираем условные типы, шаблонные литералы, рекурсивные типы и другие приёмы, чтобы упростить разработку, сократить дублирование кода и снизить вероятность ошибок на runtime.

Читать далее

Эффективный процесс разработки на основе Feature-Sliced Design: наш опыт

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели9.9K

Привет! Я – Егор, фронтенд-разработчик в Чиббис. Наша команда разработала новый личный кабинет для партнеров – b2b-приложение с нуля, используя Feature-Sliced Design. В статье я делюсь нашим опытом: от выбора стека технологий до построения процесса разработки, который помог нам за 5,5 месяцев превратить пустую папку в рабочий продукт. Мы разберем итерации, FSD-макеты, этапы создания разделов и расскажем, как удалось сократить время разработки и тестирования.

Вас ждет готовый шаблон процесса, который вы сможете применить в своих проектах.

Читать далее