Как стать автором
Обновить
52.21

TypeScript *

Cтрого типизированная надстройка для JavaScript

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

TypeScript: паттерны проектирования. Часть 1

Время на прочтение10 мин
Количество просмотров22K


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


Представляю вашему вниманию перевод первой части серии статей, посвященных паттернам проектирования в TypeScript.


Спасибо Денису Улесову за помощь в переводе материала.


Паттерны (или шаблоны) проектирования (design patterns) описывают типичные способы решения часто встречающихся проблем при проектировании программ.


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

Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии41

Что такое ngrx/createFeature и как это может облегчить жизнь frontend-разработчику

Время на прочтение6 мин
Количество просмотров3K

Всем привет, в этой статье будет описана одна очень полезная вещь, способная упростить жизнь разработчику, которому приходилось, или приходится работать с библиотекой NgRx. В данное время очень популярная и востребованная вещь. В частности, я покажу как избавится от привычного описания селекторов, сокращения кода по части reducers и, уверен, результат удивит.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

ЯП с нуля до прототипа (Лексер) #1

Время на прочтение9 мин
Количество просмотров11K

Мечтали создать свой язык программирования?

В этой статье мы вместе погрузимся в изучение этой темы. И к концу последней статьи создадим рабочий транспилятор из нашего выдуманного языка в Typescript. Здесь мы будем писать очень серьёзный код, так что приготовьтесь и поехали.

Поехали
Всего голосов 13: ↑11 и ↓2+9
Комментарии32

Effector — убийца Redux? Туториал с нуля. Часть 1

Время на прочтение5 мин
Количество просмотров26K

Redux и MobX больше не нужны ?

Туториал для новичков по EffectorJS - современному и удобному стейт-менджеру. Рассмотрим основные возможности, работу ядра, и какие проблемы решает. На примерах.

Читать далее
Всего голосов 8: ↑7 и ↓1+6
Комментарии79

Истории

Книга «Пять строк кода. Роберт Мартин рекомендует»

Время на прочтение9 мин
Количество просмотров16K
imageХаброжители, как дела?
А у нас тут книга по рекомендации самого Дяди Боба.

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

Познакомьтесь с уникальным подходом, позволяющим реализовать любой метод в пяти строках кода. И не забывайте про тайну, хорошо известную большинству senior-разработчиков: иногда проще ухудшить код и вернуться к его исправлению позже.

«Пять строк кода» — это свежий взгляд на рефакторинг для разработчиков любого уровня. Вы узнаете, когда проводить рефакторинг, как использовать паттерны, а также научитесь определять признаки, которые говорят о том, что код необходимо удалить

Для разработчиков всех уровней. В примерах используется доступный и понятный синтаксис TypeScript, который позволяет перейти к любому языку высокого уровня.
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии24

MobX с MVVM упрощает жизнь Frontend разработчика гораздо сильнее Redux'а

Время на прочтение16 мин
Количество просмотров16K

В этой статье я бы хотел подискутировать о том, насколько хорошо паттерн MVVM подходит для разработки Web приложений на React. Вместе этим, я собираюсь описать какие преимущества могут быть при разработке с использованием MobX с паттерном MVVM в сравнении с Redux. Запаситесь кофе, это будет долгое чтиво.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии52

Оптимальный процесс разработки онлайн игр

Время на прочтение13 мин
Количество просмотров5K

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

Одна из самых больших статей расходов в IT-компаниях — это программисты. К тому же самая сложно управляемая и контролируемая статья. Административные меры тут работают плохо, и чтобы эффективно воздействовать на программистов, нужно самому, минимум, быть программистом. Поэтому опишем чисто программистские меры и способы по снижению затрат и увеличению производительности.

Читать далее
Всего голосов 9: ↑7 и ↓2+5
Комментарии19

Монорепозиторий на обед

Время на прочтение10 мин
Количество просмотров6.9K

В прошлой статье я рассказывал про библиотеку компонентов и утилит handy-ones. Я задумал её не только чтобы делиться с сообществом своими наработками на постоянной основе, но главное - чтобы понять, как должен выглядеть, собираться, тестироваться и дистрибутироваться современный JavaScript-проект.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

TypeScript в React-приложениях. 6. Изящная типизация

Время на прочтение5 мин
Количество просмотров3.7K

Заключительная в цикле статья подводит итоги и рассказывает о том, как должна выглядеть типизация React-приложений по мнению автора. Также в конце статьи располагается опрос для получения обратной связи.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

TypeScript в React-приложениях. 5. Связанная типизация

Время на прочтение3 мин
Количество просмотров2.4K

Данные в React-приложениях передаются по однонаправленному потоку: через пропсы (или React Context) от родительских компонентов к дочерним и через колбэки от дочерних к родительским. Типизация пронизывает этот поток, помогая разработчику документировать данные на разных слоях, обнаруживать ошибки на стадии написания кода и проектировать упрощённую логику.

При изменении логики на одном уровне приложения возможно появление ошибок в зависимом коде, которые анализатор TypeScript подсвечивает. Разработчику остаётся переписать типизацию и логику. Чтобы каждый раз не обслуживать зависимые типы, их можно конструировать на основе базовых, таким образом связывая типы.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Перерождение Lerna. Что нового в Lerna 6?

Время на прочтение5 мин
Количество просмотров4.2K

Состоялся релиз Lerna 6!!! В статье собрано все, что вы должны знать о новом опыте, который предлагает Lerna!

Lerna продолжает развиваться. Если вы и так это знаете, то можете не читать дальше. Но многие все еще не слышали, что Lerna вернулась, не устарела и даже получает новые фичи. Мы из Nrwl являемся создателями Nx, и, учитывая нашу экспертизу в монорепозиториях, мы предложили взять на себя развитие Lerna, когда она была объявлена "мертвой" в апреле 2022 года.

Когда мы получили управление над Lerna начались настоящие американские горки. Мы запустили совершенно новый сайт, обновили документацию и сделали Lerna в 10 раз быстрее. И вот, Lerna 6 вышла!

Читать далее
Всего голосов 4: ↑2 и ↓20
Комментарии3

Как сделать свой собственный менеджер состояния в React всего с одним хуком

Время на прочтение5 мин
Количество просмотров5.5K

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

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

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии1

TypeScript в React-приложениях. 4. Глубокая типизация

Время на прочтение8 мин
Количество просмотров11K

Глубокая типизация предполагает обеспечение кода достаточно точными типами. Типы данных, связанных между собой какой либо логикой, так же должны быть связаны между собой. Статья рассматривает эти подходы на примерах, встречающихся в приложениях на React.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии4

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

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

WebSocket ориентированое Api на Nest.js

Время на прочтение3 мин
Количество просмотров11K

В этой статье я расскажу как создал модуль под Nest.js позволяющий писать классическое RESTFull API со swagger'ом но клиент будет полностью на WebSocket'ах, звучит странно не так ли? Но зато очень быстро и удобно по итогу)

Идея состоит в том, что вы пишите классическое документированное апи, со всеми типами и плюшками.

Читать далее
Всего голосов 6: ↑4 и ↓2+2
Комментарии11

TypeScript в React-приложениях. 3. Как использовать типизацию

Время на прочтение7 мин
Количество просмотров9.7K

В каждом проекте свои правила и подходы в типизации данных. Некоторые из них общепринятые, кое-какие сомнительны, а иные не достаточно строги. В данной статье предлагается объективный взгляд на законы, придуманные разработчиками для использования TypeScript.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии2

TypeScript 4.9: что нас ожидает

Время на прочтение5 мин
Количество просмотров14K

В сентябре Microsoft анонсировал TypeScript 4.9 beta. В бета-версии появились любопытные нововведения и исправления: новый оператор, оптимизация производительности, улучшения существующих типов… Разбираем самые интересные фичи этого анонса. 

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии26

Создаём npm пакет, совместимый с CJS, ESM, написанный на TypeScript

Время на прочтение6 мин
Количество просмотров8.4K

Здравствуйте! Меня зовут Евгений, я бакенд разработчик в компании ClickON. Хотелось бы поделиться опытом создания npm пакета, который умеет встраиваться в CommonJS, ESModule проект. Опишем подводные камни, попытаемся сделать универсальный пакет, прикрутим алиасы.

Читать далее
Всего голосов 20: ↑19 и ↓1+18
Комментарии7

Next.js v13. Что нового и чего ждать в будущем

Время на прочтение6 мин
Количество просмотров6.7K

25 октября команда Next проведёт презентацию, посвящённую новой, 13-ой версии. Данное обновление по традиции именуют крупнейшим. Оно может затронуть буквально всё — от очередных ускорений сборки до изменений в структуре приложения и новых абстракций.

Next.js — крупнейший фреймворк для разработки веб-приложений. Он был создан 6 лет назад, 25 октября 2016 года. За это время было выпущено 12 крупных релизов, делая веб всё быстрее и быстрее. Несмотря на громоздкость фреймворка, размеры каждого последующего релиза не становились меньше, хоть и замедлялись в темпах.

Три года назад команда Next.js впервые провела конференцию, посвящённую релизу и сделала её ежегодной. Исключением стала презентация 11-ой версии, которая прошла в июне 2021 года. В данной статье речь пойдёт о том, какой функционал был завершён в последних обновлениях и что может нас ждать на завтрашней конференции.

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии1

Next.js Layout RFC. Изменить всё и сделать веб ещё быстрее

Время на прочтение6 мин
Количество просмотров6.4K

Nextjs — самый быстрорастущий фреймворк. После создания, в 2016 году, было выпущено уже 12 обновлений, каждое из которых называлось компанией “крупнейшим”. 25 октября Vercel (компания, владеющая Nextjs) представит новый, 13 релиз, который, конечно же, вновь станет “крупнейшим”. Тем не менее, в этой статье речь пойдёт не конкретно о нём, а о действительно новом для компании процессе.

В мае этого года Nextjs неожиданно выпустил в своём блоге RFC (request for comments). В нём речь идёт, в первую очередь, о новой абстракции — layouts, а также о множестве связанных изменений, нацеленных на ускорение, улучшение DX и стандартизацию путём создания новых конвенций. Это рабочее предложение однозначно заслуживает внимания в меру своей громоздкости для фреймворка и потому, что буквально описывает его будущий вид.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии1

Пишем надёжный и расширяемый код с помощью Union & pattern matching в TypeScript

Время на прочтение7 мин
Количество просмотров3.7K

Добрый день, Хабр! Меня зовут Иван Колотилов и я фронтенд-разработчик. Я разрабатываю современные веб-приложения, специализируюсь на финансовых продуктах, работал в финтех-стартапах. Сегодня я хочу рассказать о том, как писать надёжный и расширяемый код с помощью TypeScript на примере разработки прикладного сервиса.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии1