Компании: clain.io
Город: Санкт-Петербург
Формат: офис
ЗП: от 250 000 до 300 000 ₽
Ищем фронтенд разработчика с опытом React / Typescript в Clain
clain.io — это платформа комплексной финансовой аналитики блокчейна на базе ML методов в реальном времени. Сейчас запускаем CRM и работаем над текущим продуктом.
Весь фронт в монорепе React / Typescript
своя библиотека компонентов, 95% типизированы без “any”
Nodejs в качестве прокси.
У нас быстрые процессы и гибкие подходы к разработке.
Задачи:
- Разрабатывать инструмент визуализации графа на WebGL (сейчас выбираем технологию)
- Поддерживать существующие сервисы, развивать внутреннюю библиотеку компонентов
- Участвовать в проектировании UX
- В перспективе будем писать е2е тесты (сейчас пишем только юниты), чтобы добиться беспрецедентной стабильности и спокойно релизиться
- Оптимизировать работу компонентов с графиками на больших данных, сейчас используется echarts, по нашим тестам они показали лучший перфоманс.
Работа в офисе, гибкий график, полный рабочий день.
Ожидания:
- Опыт разработки SPA на React от 3 лет
- Знание Vanilla JavaScript и ES2021
- Уверенное знание HTML, CSS
- Будет плюсом знание WebGL / PixiJS / PtsJS
Для связи:
Евгения
@jane_mai
em@clain.io
#react #typescript #webgl #js #ts #javascript #frontend #nodejs #web #офис #СанктПетербург #Питер
Город: Санкт-Петербург
Формат: офис
ЗП: от 250 000 до 300 000 ₽
Ищем фронтенд разработчика с опытом React / Typescript в Clain
clain.io — это платформа комплексной финансовой аналитики блокчейна на базе ML методов в реальном времени. Сейчас запускаем CRM и работаем над текущим продуктом.
Весь фронт в монорепе React / Typescript
своя библиотека компонентов, 95% типизированы без “any”
Nodejs в качестве прокси.
У нас быстрые процессы и гибкие подходы к разработке.
Задачи:
- Разрабатывать инструмент визуализации графа на WebGL (сейчас выбираем технологию)
- Поддерживать существующие сервисы, развивать внутреннюю библиотеку компонентов
- Участвовать в проектировании UX
- В перспективе будем писать е2е тесты (сейчас пишем только юниты), чтобы добиться беспрецедентной стабильности и спокойно релизиться
- Оптимизировать работу компонентов с графиками на больших данных, сейчас используется echarts, по нашим тестам они показали лучший перфоманс.
Работа в офисе, гибкий график, полный рабочий день.
Ожидания:
- Опыт разработки SPA на React от 3 лет
- Знание Vanilla JavaScript и ES2021
- Уверенное знание HTML, CSS
- Будет плюсом знание WebGL / PixiJS / PtsJS
Для связи:
Евгения
@jane_mai
em@clain.io
#react #typescript #webgl #js #ts #javascript #frontend #nodejs #web #офис #СанктПетербург #Питер
Caudena -
Next-Gen Blockchain Intelligence - Caudena
The Ultimate Solution for Law Enforcement & Financial Institutions
Пошаговое руководство по симуляции солнца, дождя, снега и грозы в интерактивном трехмерном приложении для прогноза погоды.
Автор показывает, что за красивым синтаксисом скрываются подводные камни специфичности и неожиданные баги, из-за которых старые добрые keyframes по-прежнему оказываются надёжнее.
#read_watch #react #js #ts
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥1
Эксперимент разработчика, который переписал фронт для Telegram-ботов на Rust и разобрался, где язык реально выигрывает у JS.
Medium-разбор, почему XSS, CSP и supply-chain атаки всё ещё ломают SPA, и как встроить безопасность в CI/CD.
Автор показывает реальные кейсы, обходные пути и поднимает важный вопрос: имеет ли фреймворк право на полный контроль над DOM?
#read_watch #react #js #ts
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰5🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Вместо чтения про "Union type позволяет переменной быть одним из нескольких типов" — видишь схему, и всё сразу понятно.
Примитивы, объекты, массивы, Union/Intersection типы, дженерики — все базовые концепции.
Полезно для начинающих в TypeScript или тех, кто запутался в терминологии.
#readme #ts
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7❤🔥1
Никаких больше “Cannot read property of undefined”!
// Опасно
const city = user.address.city;
// Ошибка, если address === undefined
// Многословно
const city = user && user.address && user.address.city;
// Безопасно и элегантно
const city = user?.address?.city ?? 'Не указан’;
Возвращает undefined, если слева null или undefined, и не пытается читать свойство дальше.
Возвращает правую часть только если слева null или undefined.
const volume = settings.volume ?? 0.5;
// Если volume = 0, вернёт 0 — корректно
const volume = settings.volume || 0.5;
// Если volume = 0, вернёт 0.5 — нежелательное поведение
— ответы API
— вложенные объекты конфигурации
— поля форм, которые могут отсутствовать
— опциональные коллбэки
// Массивы
const first = users?.[0]?.name ?? 'Гость';
// Функции
onClick?.();
// Сложные цепочки
const price = product?.variants?.[0]?.price?.amount ?? 0;
#hotfix #ts
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰4❤2
Типы
any и unknown часто путают, но они работают совершенно по-разному!any — «отключает» TypeScript
let value1: any = "hello";
value1.toUpperCase(); // TS не проверяет
value1.someMethod(); // TS разрешает всё
value1.foo.bar.baz; // Никаких проверок
unknown — «безопасный any»
let value2: unknown = "hello";
value2.toUpperCase(); // Ошибка компиляции!
// Нужна проверка типа:
if (typeof value2 === 'string') {
value2.toUpperCase(); // Теперь работает
}
any — когда:
— Мигрируете JS → TS постепенно
— Работаете с legacy-кодом
— Но помните: это технический долг!
unknown — когда:
— Парсите JSON с бэкенда
— Работаете с пользовательским вводом
— Получаете данные из внешних API
— Обрабатываете ошибки в catch
// Плохо
function parseResponse(response: any) {
return response.data.user.name;
}
// Хорошо
function parseResponse(response: unknown) {
if (
response &&
typeof response === 'object' &&
'data' in response
) {
// Type guard для безопасной работы
return (response as {data: {user: {name: string}}}).data.user.name;
}
throw new Error('Invalid response');
}
unknown заставляет вас думать о безопасности типов, any — отключает эту защиту.#career_merge #ts #middle
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤🔥2🥰2