StackDev.ru @stackdevru Channel on Telegram

StackDev.ru

@stackdevru


Современная web разработка в рамках экосистемы Javascript

StackDev.ru (Russian)

Добро пожаловать на канал StackDev.ru! Если вы увлечены современной web разработкой в рамках экосистемы Javascript, то вы попали по адресу. Здесь вы найдете множество полезной информации, обсуждения, идеи и советы, связанные с разработкой веб-приложений. Наш канал создан для тех, кто стремится быть в курсе последних тенденций в сфере программирования и хочет улучшить свои навыки. nnStackDev.ru предлагает уникальную возможность участвовать в дискуссиях, задавать вопросы, делиться опытом и учиться у опытных разработчиков. Мы стремимся создать сообщество единомышленников, которые готовы помогать друг другу и развиваться вместе. nnНе упустите шанс расширить свои знания и стать успешным веб-разработчиком вместе с StackDev.ru! Присоединяйтесь к нашему каналу уже сегодня и начните свой путь к профессиональному росту в сфере разработки веб-приложений.

StackDev.ru

15 Nov, 12:01


Все привет!

Продолжая тему TypeScript, выкладываю видео, где сравниваю типы Any и Unknown.

Если кратко, то тип any отключает проверку типов и позволяет выполнять любые операции со значением.

С другой стороны, тип unknown запрещает это и требует предварительной проверки типа переменной.

Видео: https://youtube.com/shorts/BMSbyw37GFY?feature=share

StackDev.ru

10 Nov, 10:16


Недавно попалась на глаза интересная статистика по росту трафика на популярные платформы ИИ.

На вершине списка находится ChatGPT с внушительными 3,7 миллиардами🚀 посещений по всему миру в месяц.

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

Согласно данным аналитической компании SimilarWeb, за последний год трафик ChatGPT вырос на целых 115,9%.

В статье также упоминается, что ChatGPT получил существенный прирост трафика после смены домена с chat.openai.com на chatgpt.com.

Известно, что OpenAI также недавно приобрела домен Chat.com, хотя пока неизвестно о планах компании на его использование.

Другие платформы ИИ также продолжают расти, хотя и не достигают уровня ChatGPT.

Для сравнения, трафик Perplexity (поисковая система и чат-бот на базе ИИ) достиг 90,8 миллиона посещений в Октябре. Таким образом, рост посещений за месяц составил 25,5%. За год трафик вырос почти на 200%!

Чат-бот Google Gemini получил 291,6 миллиона посещений в Октябре, увеличившись на 6,2% за месяц и на 19% за год. Здесь рост трафика во многом обязан новому обновлению ChromeOS.

Чат-бот на базе ИИ под названием Claude от компании Anthropic получил целых 84,1 миллиона посещений в Октябре, увеличившись на 25,5% за месяц и на 394,9% за год.

Здесь рост трафика совпал с недавним запуском настольного приложения для Windows и macOS.

Также в Октябре трафик сайта Copilot от Microsoft составил 69,4 миллиона пользователей, демонстрируя рост на 87,6% за месяц.

StackDev.ru

08 Nov, 09:34


Друзья, всем привет!
Много людей спрашивает - куда я пропал.
Каюсь - выпуск контента затормозил.

НО! - это скорее временная пауза, которая поможет трансформировать меня и мои подходы к созданию контента.

Я продолжаю работать, а также экспериментировать с ИИ.

Сегодня выкладываю небольшое видео о специальных типах утилит в TypeScript.

Типы утилит (utility types) — это набор универсальных типов, доступных в TypeScript, которые помогают создавать новые типы на основе существующих.

В этом коротком видео посмотрим как работают и чем отличаются типы Omit и Pick.

Omit<Type, Keys> - используется для создания нового типа, в котором можно указать свойства, которые будут исключены из исходного типа.

Используйте Omit, если нужно определить новый тип, который будет представлять некоторую часть уже существующего типа.

Pick<Type, Keys> - используется для создания нового типа, выбирая определенные свойства из существующего типа

Видео: https://youtube.com/shorts/fO5hbrT-syY?feature=share

StackDev.ru

11 Aug, 06:52


небольшое демо) буду признателен за любые совет по улучшению/функционалу)

StackDev.ru

11 Aug, 06:50


Друзья, всем привет!

Недавно удалось “набросать” 1ю версию инструмента, который в перспективе будет помогать мне создавать разные виды контента для разных проектов.

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

Итак, на первом этапе я сделал небольшое приложение, которое работает по следующему алгоритму:

1) Принимает на вход список названий любых мест (например ресторанов итд)
2) Записывает эти заведения в базу данных и присваивает уникальный id (согласно действующей модели данных)
3) Обогащает объект данных для каждого заведения уникальным ID yandex карт а также названием
4) Обогащает объект данных для каждого заведения списком отзывов из yandex карт (на данном этапе примерно 50 отзывов для каждого заведения), а также другими данными (адрес, координаты итд)

Далее, для каждого заведения используется ChatGpt, чтобы проанализировать все отзывы и на базе анализа создать уникальный контент, который содержит выжимку плюсов и минусов заведения.

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

Таким образом, я могу быстро и легко получать “живой” контент на любом языке.

Следующий этап - создание контента на базе статей.

Также есть много технических моментов, которые планирую “допилить”, чтобы сделать приложение более удобным.

Ниже записал небольшое видео с демонстрацией текущей работы приложения.
Что думаете?)

Хороших всем выходных!

StackDev.ru

15 Jun, 07:14


Друзья, всем доброе утро!

Ранее писал про то, как я пришел к тому, что неплохо было бы получить решение, которое поможет мне быстрее создавать новый качественный контент (статьи) для одного из моих проектов на английском языке.

Тексты от ChatGPT

Таким образом, я начал свои эксперименты по созданию контента с помощью моделей OpenAI (GPT-4 и GPT-3.5).

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

Другие модели ИИ

Также я выяснил, что есть ряд альтернативных моделей AI, которые не уступают моделям OpenAI при генерации текста (в том числе на русском языке) и их можно развертывать локально:

1) Llama-3 Instruct от Facebook, о которой слышал много хорошего (круче чем ChatGPT-3 Turbo и отлично понимает русский язык).

2) Недавно появилась PHI-3 от Microsoft

3) Alibaba недавно выпустила несколько мультиязычных моделей, которые могут оказаться круче той же Llama.

4) Mistral Instruct - отлично подходит для генерации текстового контента и хорошо понимает русский язык.

Использование ИИ в проекте

Чуть позже встанет вопрос о том, как использовать ИИ через API в моем проекте. Здесь есть несколько вариантов:

1) Использовать API ChaGPT напрямую, либо через один из сервисов посредников (если доступ требуется из России)

2) Арендовать облачный сервер с предустановленной моделью (та же llama-3)

3) Развернуть собственный сервер с видеокартой и установленной моделью (отдельная история с покупкой сервера и видеокарты, установкой модели + создания API)

С точки зрения затрат, последний вариант выглядит более предпочтительным на более позднем этапе, когда (если) процесс создания контента встанет на поток.

Очень важными во всей этой истории остается качество статей + вовлеченность пользователя. Никому не интересно читать длинный безликий текст.

Именно поэтому я решил, что статьи, полученные шагом ранее нужно разбавлять (обогащать) какой-то актуальной информацией (например использовать отзывы пользователей из открытых источников).

В следующем посте расскажу более подробно о процессе “добычи” этих данных и преобразовании этих новых данных в контент.

А у вас есть опыт использования ИИ для генерации контента? Делитесь в комментариях - всем будет интересно!🔥

StackDev.ru

12 Jun, 09:41


Друзья, всем привет!

Я давно не выходил на связь)

Что случилось?

Скажу честно, есть усталость постоянно “пилить” новый учебный контент. Каждый ролик с пошаговым объяснением каких-то моментов языка и технологий требует много сил и энергии.

В таких случаях очень помогает переключаться на какие-то новые вещи.

Для меня всегда было интересно создавать какие-то небольшие проекты, запускать, оптимизировать и смотреть на результат (посещения, подписки итд). Дальше, углубляться в проект, если показатели начинают расти.

В начале года, искал что-то, на что можно временно переключить свое внимание.

У меня есть один очень старый контентный проект на английском языке о Москве. Это такой небольшой пет-проект, который представляет собой набор статических страниц о ресторанах, достопримечательностях итд.

Сейчас все написано на NextJS (до этого использовал Gatsby). Проект висит на бесплатном хостинге. Из затрат - оплата Домена 1 раз в год. Базы данных никакой нет - весь контент хранится в виде markdown файлов.

Последний год - два ничего с ним не делал (контент не публиковал итд.), но по некоторым ключевым словам получил топовые позиции в Google.

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

Дальше пытаюсь побыстрее разместить баннер. Проект старый) Все написано на коленке на скорую руку. Разбираюсь во всем сплетении кода и плачу😱. Размещаю баннер и выкатываю на хостинг.

Получение “легких” денег меня очень обрадовало. Принимаю решение привести проект в божеский вид и переписываю все на NextJS.

Все работает быстро и выглядит намного лучше.

Но дальше встает вопрос с контентом: Как автоматизировать создание качественного контента?

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

Расскажу об этом более детально в следующем посте!

StackDev.ru

17 Apr, 10:35


Всем привет!
Только что выложил короткое видео, где рассказываю как можно быстро выделять и работать с элементами DOM дерева напрямую из консоли браузера (Google Chrome).

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

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

===
Момент, про который не удалось рассказать в этом коротком видео :

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

Последний элемент, выбранный во вкладке Elements, доступен в консоли как $0; предыдущий, выбранный до него, как $1 и т.д. (максимум 4 последних элемента)

Видео: https://youtube.com/shorts/2hO-HNtrmJM?feature=share

StackDev.ru

04 Apr, 11:44


Всем привет!
Выложил небольшое видео, где рассказываю о новом CSS свойстве field-sizing.

Если кратко, то используя field-sizing со значением content, мы можем легко подстраивать ширину полей нашей формы под количество символов в содержимом поля.

https://youtube.com/shorts/x_46j05nXgI?si=cgEIKAzTcEOehix1

StackDev.ru

27 Mar, 08:40


Друзья, всем привет!
Последний месяц не успевал записывать новый контент из-за большого количества работы😭

Начинаю менять эту практику.
Записал небольшое видео о том, как же легко стало создавать модальные окна, используя относительно новый HTML элемент <dialog> и его JS методы .

https://youtube.com/shorts/iprxJNwXPwc?feature=share

StackDev.ru

03 Feb, 12:52


Друзья, всем привет!
На канале новое видео.
Разбираемся как использовать Дженерики (Generics) в Typescript.

Как обычно, постарался все сделать просто и без воды)

https://youtu.be/k16Hgi753XQ

StackDev.ru

18 Dec, 07:33


Все привет!

Какое-то время назад выложил на канал короткое видео, где показываю как использую библиотеку Styled Components в своих проектах.

Видео уже собрало более 70 тысяч просмотров и большое количество комментариев.

Многие комментарии касались использования глобальных стилей CSS с библиотекой Styled Components.

Решил записать еще одно короткое видео как раз на эту тему.

Используя библиотеку Styled Components, все общие стили CSS находятся в одном компоненте.

Данный компонент "оборачивает" все наше приложение (как с Redux). Таким образом, всем компонентам приложения доступны Глобальные стили CSS, а также переменные нашей "темы".

Видео: https://youtube.com/shorts/eCwIGvIb6ao

StackDev.ru

26 Nov, 12:06


Всем привет!

Записал короткое видео про одну из фич браузера Google Chrome под названием CSS Overview.

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

https://youtube.com/shorts/hJu5ZWgG-uo

StackDev.ru

17 Nov, 08:22


Всем привет!

Только что опубликовал новое видео, в котором мы разбираемся для чего нужны и как работают функции Debounce и Throttle в JavaScript.

Мы напишем с нуля обе функции и отобразим результат работы Debounce и Throttle на нашей странице.

Debounce - откладывает вызов функции с запросом, пока не пройдет заданный промежуток времени после последнего вызова.

Один из самых частых примеров использования Debounce - это уменьшение количества запросов на сервер при наборе текста пользователем в форме поиска.

С другой стороны, Throttle постоянно вызывает нужную функцию, пропуская некоторые вызовы с определенной периодичностью.

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

Видео: https://youtu.be/3IYQM0b48nU

Файлы для работы: https://github.com/VasilyMur/JS-Debounce-Throttle

StackDev.ru

30 Oct, 11:32


Всем привет!

Выпускаю очередное короткое видео об использовании алиасов импорта в React.

Настроив алиасы импорта, нам больше не придется "копать вглубь" папок при написании пути к нужному компоненту.

То есть вместо такой записи:
import Component from '../../../components/Component';

Мы сможем использовать алиас (@):
import Component from '@/components/Component';

Видео: https://youtube.com/shorts/xoPm6wc9ilo?feature=share

StackDev.ru

24 Oct, 11:16


Всем привет!

Только что выпустил небольшое экспериментальное видео (в формате shorts), где показываю как использую библиотеку Styled Components в приложении React.

Видео: https://youtube.com/shorts/jOb2kCxdsnE

StackDev.ru

03 Oct, 08:41


Всем привет!

Только что опубликовал на канале новое видео.

Будем учиться создавать табы (вкладки) на чистом JavaScript.

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

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

Видео: https://youtu.be/Tg4qhQMwAf0
Файлы: https://github.com/VasilyMur/Tabs-JavaScript

StackDev.ru

11 Sep, 07:36


Друзья, всем привет!

Наконец публикую новое видео, в котором мы изучим 4 новых метода массивов JavaScript (в рамках редакции ES2023) - with, toSorted, toReversed, toSpliced.

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

Видео: https://youtu.be/SB5CkeZUwX0?si=MKZ7N8IsT65a_58F

Файлы: https://github.com/VasilyMur/ES2023-array-methods

StackDev.ru

29 Jun, 08:04


Друзья, всем привет!

На дворе лето и хорошая погода, поэтому душа требует новизны и экспериментов😀
Решил протестировать новый формат видео.

Недавно с одним приятелем обсуждали вопросы, связанные с продвижением по “карьерной лестнице” (что делать, куда двигаться итд). Один из вопросов был связан с перспективой повышения размера дохода🔥 .

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

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

Буду также рад услышать Ваше мнение относительно выводов в видео а также формата видео)

Видео: https://youtu.be/hINtMm-vtTg

StackDev.ru

18 Jun, 08:25


Друзья, всем привет!

Сегодня подготовил для вас небольшой воскресный JS workout🔥

Разбираем и решаем 6 задачек на чистом JavaScript (желательно не раньше чем через 40 минут после неплотного, легкого завтрака😁).

Видео: https://youtu.be/498UIks8UOk
Файлы: https://github.com/VasilyMur/js-workout-6-coding-tasks

StackDev.ru

07 Jun, 14:57


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

Последний год работаю в компании в команде, которая с нуля создает корпоративное приложение для поиска автомобильных запчастей. Пишем продукт на React + Redux + Typescript + бэкенд на c#. Готовимся “задеплоить” MVP приложения в Августе.

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

Не буду вдаваться в детали обоснования…. Решение принято и встал вопрос - что делать с командой проекта:)
К слову, наша команда - единственная в компании, где используется React (все остальные используют Vue).

Мне предложили 2 варианта - перейти на Vue (никогда с ним не работал) либо уйти в backend на node + PostgreSQL (опыта с этой базой нет никакого). Нужно отдать должное - коллеги понимают, что мне потребуется больше времени во всем разобраться).

Я делаю бэкенд для своих небольших проектов - но в больших корпоративных проектах всегда выступал в роли Frontend.

В Общем я решил, что хочу попробовать силы в бэкенде…
Вот сижу - читаю документацию PostgreSQL, изучаю как работает в связке c node, смотрю видео на youtube. Посмотрим куда это приведет)

StackDev.ru

29 May, 08:50


Друзья, всем привет.

Только что опубликовал очередной мини проект по изучению "ванильного" JavaScript.

В этом видео мы создадим таймер обратного отсчета времени (c установкой времени по клику и через форму).

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

Видео: https://youtu.be/q_dH_YBnAxU
Файлы проекта: https://github.com/VasilyMur/JS-workout-3-timer

StackDev.ru

01 Apr, 12:01


Друзья всем привет!

Хотел написать пару слов про недавние обновления платформы StackDev.

В течение последних нескольких месяцев удалось полностью переписать front + back платформы.

Это отнимало почти все свободное время, поэтому контента на канале выходило мало.

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

Первая версия проекта была написана “впопыхах” и, например, не использовала Redux, так как небольшие “pet проекты” вполне могут обойтись использованием того же “React Context”.

Frontend

Технологический стек проекта со стороны frontend - это NextJS, в основном из-за server side рендеринга, который мы получаем здесь из коробки (нужен для индексации публичных страниц в поиске).

Далее, под капотом используется React вместе с Redux и Typescript. Для стилей использую Styled Components.

Backend

С точки зрения бэкенда - проект использует NodeJS + серверный фреймворк под названием Express.

В качестве базы данных используется MongoDB с библиотекой Mongoose (кстати создана она теми же ребятами, кто создал NextJS).

Модели данных в базе данных также пришлось переработать и расширить (больше данных для лучшей статистики и учета).

Авторизация

Отдельная тема - авторизация. В первой версии проекта использовал пакет под названием Passport JS (авторизация под node.js - по сессиям). В новой версии перешел на авторизацию по JWT токену.

Тарифы

С точки зрения пользователей - решил расширить набор тарифов и добавил подписку на весь контент. Теперь есть возможность получить доступ ко всему контенту Stackdev на 6 и 12 месяцев.

Первые пару дней после "выкатывания" новой версии проекта - оказались "горячими". Выскочили "косяки", которые приходилось оперативно исправлять)

Теперь надеюсь, наконец, сфокусироваться на создании контента и продолжить развитие проекта!

Спасибо за внимание!

1,331

subscribers

10

photos

3

videos