Pull to refresh
0
@Shazzamread⁠-⁠only

User

Send message

Рецепты TypeScript: перевод ключей объекта в camelCase

Level of difficultyMedium
Reading time4 min
Views5.5K

Всем привет! С вами снова Костя Логиновских — ведущий разработчик из Cloud.ru. Я уже делился TypeScript-рецептами в предыдущих статьях — вот первая и вторая — и теперь хочу рассказать про еще один. Наши рецепты — это готовый код, который можно применить в конкретных ситуациях, а в некоторых случаях и подогнать ситуацию под код.

Сегодня в меню — функция на обычном TypeScript, которая преобразует тип объекта так, чтобы все ключи внутри него из snake_case стали camelCase. Жду всех под катом!

Смотреть рецепт

Как работает JS: классы и наследование, транспиляция в Babel и TypeScript

Reading time11 min
Views45K
В наши дни использование классов являются одним из самых популярных способов структурирования программных проектов. Этот подход к программированию применяется и в JavaScript. Сегодня мы публикуем перевод 15 части серии материалов, посвящённых экосистеме JS. В этой статье речь пойдёт о различных подходах к реализации классов в JavaScript, о механизмах наследования и о транспиляции. Начнём мы с рассказа о том, как работают прототипы и с анализа различных способов имитации наследования, основанного на классах, в популярных библиотеках. Далее мы поговорим о том, как, благодаря транспиляции, можно писать JS-программы, использующие возможности, которые либо отсутствуют в языке, либо, хотя и существуют в виде новых стандартов или предложений, находящихся на разных стадиях согласования, пока не реализованы в JS-движках. В частности, речь пойдёт о Babel и TypeScript и о классах ECMAScript 2015. После этого мы разберём несколько примеров, демонстрирующих особенности внутренней реализации классов в JS-движке V8.
image
Читать дальше →

Стоит ли игра свеч? Кратко о Single SPA (часть 1)

Level of difficultyHard
Reading time12 min
Views7.6K

О проектировании микросервисной архитектуры с использованием фреймворка Single SPA и технологиях, связанных с его использованием.

Читать далее...

Микрофронтенды. Учимся на ошибках

Reading time6 min
Views13K
В этой статье я расскажу с какими проблемами удалось столкнуться при построении микрофронтендов, каким образом их можно было бы избежать, а также немного привнести полученного опыта в довольно редкоподнимаемую тему микрофронтендов.



Микрофронтенды на iframe


В одной компании взвешенным и обдуманным решением CTO было принято, что микрофронтендам наравне с микросервисами быть, причем сервировать их надо на iframe'ах.
Читать дальше →

Git. Скачем между ветками как древесные лягушки

Level of difficultyEasy
Reading time6 min
Views29K

Статей на тему много, но, видимо, недостаточно: время от времени слышу от коллег (последние 10 лет, в 4-х разных компаниях):

«Не могу пошарить экран с кодом, у меня другая ветка сейчас».

«Не хочу переключать ветку, придется запускать кодогенерацию, у меня сбросятся build-файлы, потом это опять пересобирать!»

«Стаскивать ветку для просмотра ПР? Это же неудобно, надо "стэшить" изменения, ветку переключать».

Читать далее

Как два программиста хлеб пекли

Reading time5 min
Views262K


Я работаю программистом уже много лет, на протяжении которых, как это ни странно, я всё время что-то программирую. И вот какую интересную вещь я заметил: в коде, написанном мной месяц назад, всегда хочется что-то чуть-чуть поправить. В код полугодичной давности хочется поменять очень многое, а код, написанный два-три года назад, превращает меня в эмо: хочется заплакать и умереть. В этой статье я опишу два подхода. Благодаря первому архитектура программы получается запутанной, а сопровождение — неоправданно дорогим, а второй — это принцип KISS.

Итак, представим себе, что есть два программиста. Один из них умный, прочёл кучу статей на Хабре, знает каталог GoF наизусть, а Фаулера — в лицо. Другой же делает всё просто. Первого будут звать, например, Борис Н., а второго — Маркус П. Само собой, имена вымышленные, и все совпадения с реальными людьми и программистами случайны.

Итак, к ним обоим приходит проектный менеджер (если в вашей вселенной PM не ходит сам к программистам, назовите его как-то иначе, например BA или lead, сути это не изменит) и говорит:
— Ребята, нам нужно, чтобы делался хлеб.

Именно так, «делался», без уточнения способа производства.

Как же поступят наши программисты?
Читать дальше →

Простой путь к публикации Vue3 модуля на NPM с помощью Vite

Level of difficultyEasy
Reading time7 min
Views6K

Для веб-разработчика (особенно начинающего) создание собственных модулей и публикация их в open source может казаться сложным процессом. В этой статье я покажу один из самых простых и быстрых способов публикации своего модуля на NPM при помощи бандлера Vite.

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

Читать далее

Java Digest #3

Level of difficultyEasy
Reading time7 min
Views5.8K

Всем привет! ? ? ?

Мы — Java-разработчики Тинькофф: Константин, Андрей и Арсений. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и решили делиться этим со всем сообществом.

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

Терри Пратчетт «Стража! Стража!» 

Читать далее

Пишем Тетрис на Svelte

Level of difficultyEasy
Reading time21 min
Views3.6K

Статья рассчитана на начинающих программистов, уже знакомых с git, html/css, typescript и nodejs. В статье будет много кода и мало текста - все, как вы любите - так что приготовьтесь поработать. Некоторые места в коде я прокомментирую, чтобы облегчить вам его понимание. Конечно, для разработки игр существуют и более подходящие специализированные инструменты, нежели фронтенд-фреймворк общего назначения Svelte, но, в демонстрационно-учебных целях, почему бы и нет?..

Читать далее

Пусть наступит «МИР» (особенности платежной системы — способ не платить)

Level of difficultyEasy
Reading time5 min
Views41K

Только через распространение информации мне видится возможность справится с глупостью платёжной системы (ПС) "МИР" и банков, идущих у них на поводу.

С ростом услуг по подписке (каршеринг, стрим-музыка, кино и т.п.) во многих платежных системах появились рекуррентные платежи. Суть такого типа платежа (даже если вы не слышали называние, то наверняка сталкивались) в том, что согласившись один раз с компанией, она (через банк) будет списывать с вашего счета регулярные платежи за оказываемые услуги. "Удобство" в том, что нет надобности заново вводить данные банковской карты, подтверждать оплату и т.д. "Всё для клиента".
Казалось бы - пользуйся на здоровье!

Читать далее

О, «Герои»? Дайте две! Как я писал очередной браузерный клон легендарной стратегии, в который уже почти* можно играть

Level of difficultyEasy
Reading time14 min
Views35K


TL;DR для тех, кому некогда читать™:




Вот как всё начиналось

Я хотел улучшить React

Level of difficultyMedium
Reading time8 min
Views10K

Я давно пишу код, а React использую более пяти лет.

За это время у меня возникло несколько идей о том, как можно было бы улучшить React.

К реализации этих идей я приступил около трех лет назад. Сначала проверил концепцию, потом решил оформить всё в виде библиотеки.

А о том, что из этого вышло, я бы хотел рассказать в этой статье.

Читать далее

Качественно — значит долго? Как быстро создавать жизнеспособные MVP

Reading time3 min
Views3.3K

Вопрос скорости и качества стоит в разработке особенно остро. Мы привыкли думать, что чем больше времени было потрачено на разработку продукта, тем лучше результат, и наоборот. Но так ли это на самом деле?

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

Читать далее

Как прошел IT’s Tinkoff Solution Cup

Reading time15 min
Views4.2K

Привет! Провели финал IT’s Tinkoff Solution Cup 22 апреля. Шесть треков, нестандартные задачи и призы. У нас получилось собрать офлайн много крутых разработчиков и близких по духу людей, порешать задачи и пообщаться с коллегами.

Рассказываем, как все прошло, и разбираем задачи разных треков.

Читать далее

Пишем свой хук для отслеживания изменений в LocalStorage

Level of difficultyEasy
Reading time2 min
Views11K

В рамках своей работы, я не раз сталкивался с проблемой, что нужно отслеживать изменение в LocalStorage в совершенно независимых компонентах.

Были попытки отслеживания изменений через "window.addEventListener", но и тут меня ждала неудача, так как в этом случае отслеживание будет происходить только в другой вкладке браузера и тем самым я дошел до создания своего хука, назвал его - useLocalStorageEffect. Далее уже будем говорить о нем.

Читать далее

Как я написал удобную оболочку над электронным дневником

Level of difficultyEasy
Reading time4 min
Views18K

Статья о том, как я в 15 лет облегчил работу с электронным дневником, представленным Кировской области в 2022 году.

Что получилось сделать и как это было реализовано.

Читать далее

Один из способов ускорения компиляции TypeScript

Level of difficultyEasy
Reading time3 min
Views5.4K

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

Некоторые библиотеки предоставляют много возможностей, из которых в вашем проекте используется от силы пара процентов. В бандл сборки они не входят благодаря tree-shaking, но жрут ресурсы во время компиляции: процессор и память.

В этой небольшой заметке я расскажу, как обнаружить прожорливые библиотеки и ускорить компиляцию.

Читать далее

Приложения и сервисы в Docker

Reading time5 min
Views17K

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

Читать далее

Что такое URL

Reading time8 min
Views23K

В прошлом году Дэниэл Стенберг, создатель curl, написал пост об одном забавном URL:

http://http://http://@http://http://?http://#http://

Пост интересен, рекомендую его прочитать. Автор объясняет, как устроен URL, и как различные системы его обрабатывают.

Но в том посте не разобрано, в частности, как сказывается такая разница в обработке одних и тех же URL различными системами. В этой лекции 2017 года (слайдывидео) Оранж Цай рассматривает и многие другие несогласованности между различными библиотеками, а также риски из области безопасности, возникающие из-за такой несогласованности.

В лекции данная тема раскрыта в мельчайших (и очень увлекательных) деталях, но здесь я хотел бы резюмировать суть.

Читать далее

Information

Rating
Does not participate
Registered
Activity

Specialization

Frontend Developer, Web Developer
JavaScript
CSS
HTML
Adaptive layout
BEM
Webpack
Crossbrowser layout
Web development
TypeScript
Angular