Руслан Куянец | Reactify – Telegram
Руслан Куянец | Reactify
5.85K subscribers
703 photos
52 videos
39 files
286 links
Я IT-специалист, ментор и основатель проекта YeaHub и сообщества Reactify. Здесь рассказываю про Frontend и IT.

Менторство:
https://reactify.ru

YouTube канал:
https://youtube.com/@reactify-it

YeaHub:
https://yeahub.ru/

Связь:
@ruslan_kuyanets
Download Telegram
Элементы section, aside, и article

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

Элемент section:

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

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

Элемент aside:

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

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

Элемент article:

Элемент article используется для обертывания независимого, самодостаточного контента, который можно перенести в другой контекст, не потеряв смысл. Это может быть статья, блог-пост, комментарий, форумное сообщение и т.д.

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

#html
👍142🔥2🤔1
Способы преобразования строки в число в JavaScript

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

1️⃣ parseInt()

Функция parseInt() анализирует строку и возвращает целое число. Она принимает два аргумента: строку для преобразования и основание системы счисления (опционально, по умолчанию 10).


let str = "123";
let num = parseInt(str, 10); // 123


2️⃣ parseFloat()

Функция parseFloat() анализирует строку и возвращает число с плавающей точкой. Она отличается от parseInt() тем, что может обрабатывать дробные числа.


let str = "123.45";
let num = parseFloat(str); // 123.45


3️⃣ Унарный плюс (+)

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


let str = "123";
let num = +str; // 123

let floatStr = "123.45";
let floatNum = +floatStr; // 123.45


4️⃣ Number()

Функция Number() преобразует значение к числовому типу. Если значение не может быть преобразовано в число, она вернет NaN.


let str = "123";
let num = Number(str); // 123

let notANumber = "abc";
let result = Number(notANumber); // NaN


5️⃣ Оператор двойного тильды (~~)

Оператор двойного тильды ~~ является битовым оператором, который эффективно усекает дробную часть числа, аналогично Math.floor(), но быстрее. Он полезен, когда вам нужно преобразовать строку в целое число.


let str = "123.45";
let num = ~~str; // 123


6️⃣ Умножение на 1

Умножение строки на 1 - это простой способ преобразовать её в число. Этот метод эффективен как для целых, так и для дробных чисел. Происходит неявное приведение типа, где строка преобразуется в число благодаря операции умножения.


let str = "123";
let num = str * 1; // 123

let floatStr = "123.45";
let floatNum = floatStr * 1; // 123.45


#JavaScript #string #number
🔥18👍10👌21👏1
Как у вас прошел первый рабочий день в году?

У меня он начался с раннего подъема в 6:00 и похода в тренажерный зал, после него уже сел работать, еще бросил кофе💪

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

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

Курс по HTML добавил в Reactify Academy. Осталось настроить до конца платформу. Вот вот появится "Убийца платных курсов"🤞😁

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

Очень долго растянулась вся эта история. Я думал все будет намного быстрее. Ну ничего, я получил опыт и каждый последующий курс будет добавляться быстрее. На выходных хочу уже снять пару новых видео(разговорная тема). Со следующей неделе начать сбор Команд, параллельно написание курса по CSS.
👍20🔥62
Всем привет! Мало кто знает, что у нас еще есть чат. Если у вас возникли вопросы, проблемы, вы можете писать туда.

Разрешено общение не только на технические темы. Если вам есть, чем поделиться то смело пишите. Если вы хотите поболтать, обсудить что-нибудь - пишите.

Если у вас есть предложения, советы по контенту - пишите.

Reactify Community
👍4🔥1
Руслан Куянец | Reactify pinned «Всем привет! Мало кто знает, что у нас еще есть чат. Если у вас возникли вопросы, проблемы, вы можете писать туда. Разрешено общение не только на технические темы. Если вам есть, чем поделиться то смело пишите. Если вы хотите поболтать, обсудить что-нибудь…»
Фабричный метод

Фабричный метод (Factory Method) - это паттерн проектирования, который позволяет создавать объекты определенного типа, не указывая конкретный класс объекта. Вместо этого вы создаете фабричный метод, который будет решать, какой класс объекта создавать на основе входных данных или условий. Этот паттерн полезен, когда у вас есть семейство классов с общим интерфейсом, и вам нужно выбирать конкретную реализацию в зависимости от контекста.

Вот когда можно использовать фабрику:

1️⃣ Когда у вас есть несколько типов объектов с общим интерфейсом: Если у вас есть набор объектов, которые имеют схожий интерфейс, но различаются по конкретной реализации, фабрика может помочь создать объекты этого семейства без необходимости знать конкретный класс.

2️⃣ Когда нужно сократить зависимость между клиентским кодом и конкретными классами: Фабрика помогает изолировать клиентский код от деталей создания объектов, что делает систему более гибкой и менее связанной.

3️⃣ Когда нужно обеспечить централизованное создание объектов: Если вы хотите, чтобы все объекты создавались через один и тот же механизм, фабрика обеспечивает эту централизованную точку создания.

#programming #patterns #factory
👍5🔥4
Я не изучал паттерны программирования целенаправленно. В процессе разработки я старался улучшить свой код, иногда перенимая самые логичные и эффективные подходы, которые мне встречались. В итоге, когда я приступил к изучению паттернов, я был удивлен, обнаружив, что многие из них мне уже знакомы и активно используются в моей работе. Это было похоже на 'переоткрытие' существующих шаблонов проектирования, к которым я пришел сам в процессе разработки.

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

#programming #patterns
👍14🔥3👌1
Что такое ECMAScript?

ECMAScript, часто сокращенно ES, является стандартом, на котором основан JavaScript. Это спецификация, определяющая стандарты для скриптовых языков, включая синтаксис, типы данных, операторы, объекты и методы.

История и Развитие

🔹1997 год, ECMAScript 1: Первая версия стандарта, выпущенная после того, как Netscape передала JavaScript в Ecma International для стандартизации.

🔹1998-2000 годы: Выпуск ES2 и ES3, привносящие некоторые улучшения и нововведения.

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

🔹2009 год, ECMAScript 5 (ES5): Ввел строгий режим ('use strict'), а также некоторые улучшения в объектной модели и API.

🔹2015 год, ECMAScript 2015 (ES6): Один из самых значительных выпусков, внесший классы, модули, стрелочные функции, шаблонные строки, и многое другое. Эта версия часто называется ES6.

🔹После 2015 года: Переход к ежегодному циклу выпуска, с добавлением новых функций в каждой версии (ES2016, ES2017, и т.д.).

Значение для JavaScript

1️⃣ Стандартизация: ECMAScript обеспечивает стандартизацию JavaScript, что важно для обеспечения совместимости кода на различных платформах и браузерах.

2️⃣ Современные возможности: Новые версии ECMAScript вводят улучшения и новые возможности, которые делают JavaScript более мощным, гибким и удобным в использовании.

3️⃣ Совместимость: Благодаря стандартизации ECMAScript, разработчики могут быть уверены, что их код будет работать в разных средах исполнения.

#ecmanoscript
👍16🔥211
Важность практики

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

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

Такой опыт оказался чрезвычайно полезным. Он позволил мне глубже понять, для чего нужны фреймворки и что находится у них «под капотом». Разрабатывая эти инструменты, я смог лучше осмыслить принципы, лежащие в основе больших систем.
🔥5👌4👍31🎉1
https://academy.reactify.ru/

Готовность на 99%

Тестирую доступность, как выглядит для гостя/ученика.

Думаю завтра открою доступ. Переживаю, что курс не достаточно хороший😬 Синдром самозванца называется?😅

Буду дорабатывать постоянно, доводить до совершенства, жду обратную связь

Лучше заходить с компьютера
🔥25🎉43👍1
React Новостям БЫТЬ!

Но пока что — раз в месяц. Я подумал, что для того чтобы добавить Redux/Router в приложение, не нужно сначала писать курс по этой технологии.

Всё-таки, "React Новости" — это, прежде всего, практика. Так что через неделю начну записывать новое видео.
🎉10👍7🔥2
Reactify Academy запуск

Официально Академия запущенна для всех желающих. На данный момент там есть один курс по HTML. Я буду активно расширять и добавлять курсы. Так же буду добавлять мини курсы/статьи. Будет интересно.

Хочу еще раз отметить, платформу разрабатывал не я. Это готовый шаблон/конструктор. Открытый проект, которым пользуются различные учебные заведения. Написание своего сайта для курсов задача сложная. Для нее нужна как минимум команда. Я же развернул на своем сервере и настроил уже готовую платформу, добавив в нее изменения, плагины, настройки, темы и тд.

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

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

Жду предложения, советы, найденные ошибки от вас. Но в самом курсе, функциональности. За интерфейс и верстку я не отвечаю.

#academy
🎉25👍5🔥51
Награды

Так же самые активные будут получать награды. В каждом курсе будут значки и сертификаты за прохождение.

Кто первый получит Сапфировый значок, я проведу экзамен по HTML!

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

Будет много наград, в том числе:

- личные созвоны
- менторинг
- тестирование

И многое другое

#academy
🫡13👍8🔥51
React Signals

Совсем недавно перешел на рабочем проекте с Redux на Signals. Первое впечатление - Очень удобно и легко.

Что мне понравилось?

1️⃣ Легко освоить. React Signals отличаются простотой как в освоении, так и в использовании, особенно по сравнению с Redux. Redux требует понимания сложных концепций, таких как редьюсеры, миддлвары и хранилище (store), в то время как Signals предлагает более прямолинейный и декларативный подход.

2️⃣ Меньше кода. Redux часто критикуют за "шаблонность" и избыточность кода. Для каждого действия необходимо создавать отдельные редьюсеры и экшены, что может привести к увеличению объема кода. Signals же позволяют управлять состоянием напрямую, без необходимости в дополнительных конструкциях, что уменьшает количество кода и повышает его читаемость.

3️⃣ Оптимизация. Signals обеспечивают более эффективное обновление состояния. В Redux, изменение в хранилище может привести к перерисовке всех подключенных компонентов, даже если изменение их не касается. Signals позволяют компонентам подписываться только на те изменения состояния, которые им реально необходимы

4️⃣ Гибкая архитектура. Signals позволяют создавать более модульные и гибкие архитектуры приложений. В Redux, глобальное хранилище означает, что все состояние приложения централизовано, что может быть не всегда оптимально для больших и сложных приложений. Signals же позволяют локально управлять состоянием в контексте отдельных компонентов, что обеспечивает более гранулярный контроль и упрощает масштабирование приложений.

5️⃣ Управление побочными эффектами. В Redux для управления побочными эффектами часто используется дополнительный инструмент, такой как Redux-Saga или Redux-Thunk. Это усложняет архитектуру и увеличивает сложность кода. В случае с Signals, управление побочными эффектами может быть более интегрированным и простым, что упрощает создание и поддержку сложных приложений.

Ставлю жирный лайк Signals. А вы использовали в своих проектах?

#react #signals #state
👍6🔥4💯1
Reactify Teams

Приблизительно к концу месяца начнется разработка совместного проекта в командах. А сейчас начинается подготовка.

Этапы:

1️⃣ Сбор заявок. Заполнение формы для участия в проекте.

2️⃣ Отбор. Просмотр заявок. Проведение небольших собеседований.

3️⃣ Формирование команды. Создание чата, знакомство участников. Подключение всех участников к Yandex Tracker, GitHub и другим сервисам/инструментам

4️⃣ Выбор проекта. Совместно выбираем идею для проекта

5️⃣ Распределение ролей. Решаем кто какую часть будет разрабатывать и тд.

6️⃣ Подготовка проекта. Настраиваем репозитории, конфигурации проектов, выбираем стек технологий, структуру проектов, архитектуру, инструменты, дизайн и тд

7️⃣ Начала разработки.

Примут участие до 10-12 человек. В дальнейшем, по мере роста проекта, будем проводить собеседования и принимать новых участников.

Это тестовые команды. Если все пройдет хорошо, то в начале февраля начнется сбор еще 1-2, а может и больше команд.

#teams
🔥6🎉3🤝2
Reactify Teams [Сбор заявок]

Начинаю сбор заявок до 18 января. Все желающие принять участие должны заполнить форму. Это будет боевая разработка. Участник должен уметь самостоятельно разрабатывать простые приложения с использованием фреймворка.

Пока, что приоритет на такие технологии:

- React для фронтенд
- NodeJs (Nest/Express) для бекенд

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

У нас будет полноценная работа в команде, разработка большого сервиса (решим в дальнейшем).

Уделять проекту много не нужно. Будем двигаться в спокойном темпе. Я думаю, что 7 часов в неделю будет достаточно. В любом случае на Созвонах будем распределять задачи. Если кто-то хочет больше уделять времени, то будет получать задачи более приоритетные.

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

Заполните форму
https://forms.gle/VvVGWWJezUyKf9mS8

#teams
🔥17👍2🫡2
Руслан Куянец | Reactify pinned «Reactify Teams [Сбор заявок] Начинаю сбор заявок до 18 января. Все желающие принять участие должны заполнить форму. Это будет боевая разработка. Участник должен уметь самостоятельно разрабатывать простые приложения с использованием фреймворка. Пока, что…»
Почему мы ушли от Styled Components на проектах

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

Использование чистого CSS или CSS Module имеют преимущества перед CSS-in-JS решениями.

🔹Прямая обработка браузером: Чистый CSS обрабатывается непосредственно браузером, что обычно быстрее, чем обработка стилей, внедренных в JavaScript. Браузеры оптимизированы для разбора и применения CSS, что обеспечивает более эффективную отрисовку стилей.

🔹Отсутствие JavaScript-вычислений: Поскольку CSS не зависит от JavaScript для определения и применения стилей, он избегает затрат на производительность, связанных с выполнением JavaScript-кода (например, вычисление стилей на основе состояния или пропсов).

🔹Отсутствие дополнительных библиотек: Использование чистого CSS не требует включения дополнительных библиотек или фреймворков, в отличие от подходов CSS-in-JS, где необходимо использовать библиотеки, такие как Styled Components.

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

🔹Уменьшение сложности: Меньшее количество зависимостей также уменьшает сложность проекта, что облегчает поддержку, обновление и устранение ошибок.

Конечно, Styled Components имеют и много плюсов, но мы, разработчики, в нашем мире технологических абстракций, решили отодвинуть в сторону сложности. Мы вернулись к основам: чистому CSS и модулям. Видимо, в какой-то момент мы устали от излишней логики, спрятанной за красивыми интерфейсами. И кто знает, может быть, однажды мы даже сделаем шаг назад к чистому JavaScript, оставив React в покое. В конце концов, иногда проще — это лучше, правда?😅

#css #cssInJs #styledComponents
11👍4🔥3🤔1
Прототип

Прототип (Prototype Pattern) - это паттерн проектирования, который используется для создания объектов, основываясь на шаблонном объекте. Этот паттерн особенно удобен в ситуациях, где создание экземпляров является затратным или сложным. Вместо создания объектов с нуля, вы создаете копии объекта, который служит прототипом, и вносите в эти копии необходимые изменения.

Вот когда стоит использовать Прототип:

1️⃣ Когда создание экземпляра класса требует больших затрат ресурсов: Если инициализация объекта занимает много времени или ресурсов (например, из-за загрузки данных из файла или базы данных), вы можете использовать существующий экземпляр в качестве прототипа для создания новых экземпляров.

2️⃣ Когда система должна быть независимой от способа создания, состава и представления объектов: Прототип позволяет избежать привязки к конкретным классам объектов, необходимых для создания. Это достигается за счет использования общего интерфейса для создания новых объектов из прототипа.

3️⃣ Когда необходимо создавать объекты в ситуации, где классы могут изменяться динамически: Вы можете изменять прототипы во время выполнения программы и создавать новые объекты, основываясь на измененных прототипах.

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

ВАЖНО: Пример демонстрирует паттерн, похожий на "Прототип" в контексте React, но это не классическое использование паттерна. В React предпочтительнее композиция компонентов и передача пропсов. Традиционный паттерн "Прототип" в JavaScript встречается в встроенных прототипах, таких как Array.prototype, позволяющих объектам наследовать общие свойства и методы.

#programming #patterns #prototype
👍6👌1