Javascript
18.6K subscribers
804 photos
117 videos
2 files
1.24K links
По всем вопросам - @workakkk

@itchannels_telegram -🔥лучшие ИТ-каналы

@ai_machinelearning_big_data - машинное обучение

@JavaScript_testit- js тесты

@pythonl - 🐍

@ArtificialIntelligencedl - AI

@datascienceiot - ml 📚

РКН: № 5153160945
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
VideoCall App UI — изящный пользовательский интерфейс приложения VideoCall, реализованный с помощью jQuery.

https://codepen.io/aybukeceylan/pen/pobbEYB

@javascriptv
👎9👍71🔥1
Архитектурные стили, которые вы должны знать в 2023 году

REST (Representational State Transfer): REST - это архитектурный стиль, в котором используются преимущественно методы HTTP, - чемпион по простоте и повсеместности. Он обеспечивает простое взаимодействие с ресурсами, что делает его основным паттерном для множества приложений и современных API.

SOAP (Simple Object Access Protocol): SOAP, претендующий на звание тяжеловеса на арене API, отличается сложностью и мощностью. Он использует XML для определения структурированного взаимодействия. Хотя для работы с SOAP требуется клиент и сервер, он компенсирует это своей прочностью и надежностью, подобно хорошо сконструированному внедорожнику, преодолевающему труднопроходимую местность.

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

gRPC (Google Remote Procedure Call): gRPC - это самый быстрый из всех API. Работающий по протоколу HTTP/2 и использующий двоичные данные, он нацелен на производительность и скорость, особенно в архитектурах микросервисов. Он подобен скоростному поезду, обеспечивающему быструю и надежную связь.

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

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

#советы
🔥16👍92🤔2
This media is not supported in your browser
VIEW IN TELEGRAM
Creativity Now — 3D-текст, созданный на Blender. Анимация замены оформления реализована с помощью Tree.js.

#анимация #Blender #Treejs

https://codepen.io/ScavengerFrontend/pen/mdRrVVO

@javascript
👍152🔥1
Использование FileReader для чтения файлов в JavaScript

Нашли для вас туториал о том, как использовать FileReader для чтения содержимого файлов в браузере. Автор статьи на практике рассмотрел несколько примеров, как с использованием элемента input, так и Drag'n'Drop:

https://itchief.ru/javascript/filereader

#javascript #туториал

@javascriptv
👍133🔥1
🐈‍⬛ Микросервисы gRPC в NestJS: пошаговое руководство

В процессе иллюстрации возможностей gRPC создадим два микросервиса: службу заказа (order-service) и службу пользователя (user-service).

В службу заказов (order-service) внедрим API MyOrders, возвращающий фиктивные заказы пользователя. Прежде чем вернуть заказ, служба связывается с помощью gRPC с user-service для проверки прав пользователя в системе.

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

Настройка проекта
Предполагается, что вы знакомы с основами NestJS. Сначала определим специфичные для gRPC элементы.

С помощью командной строки NestJS инициализируем проекты user-service и order-service.

nest new order_service
nest new user_service


Установим специфичные для gRPC зависимости.

В gRPC определяем API в файлах буфера протокола или proto. Наши клиенты NestJS должны понимать этот интерфейс, и для этого мы будем использовать пакет ts-proto, который автоматически сгенерирует код адаптера NestJS для определений proto.

npm i --save @grpc/grpc-js @grpc/proto-loader
npm i protoc-gen-ts_proto
npm install ts-proto


Примерная структура проекта:

📌Читать

@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
👍92🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Анимированная форма обратной связи

Хороший способ сделать ваш сайт более интересным. Проект реализован с помощью CSS, jQuery и TweenMax.js.

Посмотреть код можно тут:

https://codepen.io/izmaelmag/pen/NqyEKx

@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
👍213🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Magic Wand Reveal - красивый эффект хайд для изображений.

https://codepen.io/Hyperplexed/pen/wvQzbGz

@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥31
🔥 Дайджест полезных материалов из мира Javascript за неделю

Почитать:
Минуты и часы не нужны
Создание мини игр и анимации в Online редакторе Collagen_2
Event Loop в деталях
Создание конвертера JSON в Typescript с помощью React, NodeJS и ChatGPT
Web Accessibility в рассказе «A11Y от 0 до NaN»
Создаем мини-игру с капельным эффектом и движущимися кружками. Часть 2. Финал
JavaScript. WebRTC. Соединение браузеров напрямую без сервера, peer-to-peer
Веб-компоненты в 2023: нужно поговорить
Подружим Sentry и Mattermost быстро и просто через адаптер
Генерация BDD тестов с помощью ChatGPT и запуск их через Playwright
Latest Newsletter: Beware Of Circularity (Issue #133)
Basic Promise in JavaScript
Conquer MS-101: Dumpsarena Offers Reliable Study Materials
JavaScript Magic Tricks: 6 Ways to Use 'alert'
typeof null return object...
Cracking the Code: Leet Code 1048 - Longest String Chain (Medium) - NileshDev
How To Quickly Fix Production Errors Along With CORS Error
Creating an NPM Package in 2024 (Deno, dnt)
Singleton Connection with Transactions in MongoDB
What is JavaScript(and what can you do with it)

Посмотреть:
🌐 Экосистема React.js 2023 ( 12:45)
🌐 The Best React State Management Solution Has Been There All Along ( 05:38)
🌐 This CSS Feature Replaces CSS-In-JS ( 01:00)

Хорошего дня!

@javascriptv
👍12🔥73
Топ вопросы на собеседовании по JavaScript

1. Способы наследования
2. Типы данных
3. Ключевое слово this.
4. Методы call, apply, bind.
5. Замыкание (closure)
6. Область видимости (scope)
7. Каррирование (currying).
8. Параметры функции в ES6
9. Модификаторы var, let, const B
10. Коллекции Array, Map, Set Blog

#video #js

https://www.youtube.com/watch?v=0e9eyrxB-LU&list=PLwHvxJae2LazDrHm6ayqLKz6jszEn7ArQ&ab_channel=ProgBlog
👍213😱2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
📌Binoculars — красивая имитация бинокля. Реализована на CSS и JavaScript.

#js #анимация #css

https://codepen.io/DeyJordan/pen/MWZwRMm

@javascriptv
👍11🔥72
5 лучших шаблонов проектов React Native на GitHub для быстрой разработки приложений 📱

Список полезных ресурсов, которые ускорят разработку приложений! Эти шаблоны упрощают процесс разработки, позволяя вам быстро приступить к работе над приложениями👇

1. React Native Elements: https://github.com/react-native-elements/react-native-elements
2. Ignite CLI Boilerplate: https://github.com/infinitered/ignite
3. React Native Paper: https://github.com/callstack/react-native-paper
4. UI Templates: https://github.com/Aashu-Dubey/React-Native-UI-Templates
5. React Native Boilerplate: https://github.com/thecodingmachine/react-native-boilerplate

@javascriptv
👍84👎3🔥1
🖥 Генераторы и итераторы в JavaScript

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

В JavaScript функция-итератор — это уникальная функция, возвращающая объект-итератор. Объект-итератор — это объект, который через метод next() возвращает объект с двумя свойствами: value и done. Свойство value представляет собой следующее значение в последовательности, а свойство done указывает, достиг ли итератор конца последовательности.

Функции-итераторы могут использоваться для перебора наборов данных, таких как массивы и объекты.

Ниже приведен пример функции-итератора, выполняющей итерацию по массиву:

function Iterator(array) {
let nextIndex = 0;
return {
next: function () {
if (nextIndex < array.length) {
return {
value: array[nextIndex++],
done: false,
};
} else {
return {
value: undefined,
done: true,
};
}
},
};
}

const array = [1, 2, 3, 4, 5];
const arrayValue = Iterator(array);

console.log(arrayValue.next()); // { value: 1, done: false }
console.log(arrayValue.next()); // { value: 2, done: false }
console.log(arrayValue.next()); // { value: 3, done: false }
console.log(arrayValue.next()); // { value: 4, done: false }
console.log(arrayValue.next()); // { value: 5, done: false }
console.log(arrayValue.next()); // { value: undefined, done: true }
В приведенном выше коде определена функция Iterator, которая принимает в качестве аргумента массив и возвращает объект итератора. Объект итератора через метод next возвращает следующий элемент массива и обновляет внутреннюю переменную nextIndex для отслеживания индекса массива.

Метод next проверяет, меньше ли nextIndex длины массива. Если это так, то метод возвращает объект со значением массива в позиции nextIndex и устанавливает свойство done в false. После этого переменная nextIndex увеличивается на единицу. Если nextIndex больше или равно длине массива, то метод next устанавливает свойство done в true.

📌Читать дальше

@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥52
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Neumorphic Liquid Slider

Анимация на чистом Javascript. В JS устанавливаются значения и запускаются анимации.

https://codepen.io/konstantindenerz/pen/qBMvXNK

@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍62🤔1
🔥 Дайджест полезных материалов из мира Javascript за неделю

Почитать:
Увеличиваем свою производительность в WebStorm / PhpStorm c помощью шаблонов
Пристальный взгляд на отладку JavaScript приложений
Один компонент, 20+ фич, A/B-тесты: Поможет ли машина состояний?
Как добавить несколько товаров в Shopify корзину одним кликом?
15 лучших бесплатных курсов по Linux
Как мы создаём Squadus. Реализуем «прыжок к сообщению» в мобильной версии
React 18: что поменялось
Restyle как новый стандарт для создания UI в React Native
React Fiber & Concurrency Part 1 (2)
Svelte: Знакомство с рунами
Tailwind не только для MVP
Flaco - Personal multipage theme
Optimising Architectural Excellence: Must-Have Tools for Success!
Exploring React's Data Retrieval Methods
Mastering React.js: Top 20 Interview Questions You Need to Know
Latest Newsletter: Bitcoin Butterfly (Issue #134)
Send email confirmation in Strapi
ALTER 26" 002S MODEL CYCLE | Alter Bikes
10 Best Tools and Practices for Boosting Code Quality in Node.js
How to Create a Chat App With Bun Using WebSockets
Demystifying TypeScript Generics with Simple Examples

Посмотреть:
🌐 CSS nth-child Just Got 100x Better ( 00:56)
🌐 Clean Code Is Killing Your Projects ( 09:20)

Хорошего дня!

@javascriptv
👍8🔥31
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Variable font animation — анимация переменных шрифтов. Реализован с помощью CSS и JavaScript.

#анимация #css #javascript #текст

https://codepen.io/michellebarker/pen/bPEWGK

@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥73🤯2
🖼 Почему разрабатывать веб-интерфейсы так сложно?

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

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

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

Кроме того, мы исследуем так называемые “нерезультативные пути” (“unhappy paths”), часто упускаемые из виду. К ним относятся состояния загрузки, обработка ошибок, а также более широкие архитектурные аспекты, включающие безопасность, производительность и доступность.

Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101🔥1
🖥 8 продвинутых вопросов для собеседования по JavaScript

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

1. Подробнее о свойствах операторов + и —
console.log(1 + '1' - 1);
Можете ли вы предположить,
как поведут себя операторы + и — в ситуациях, подобных приведенной выше?

Когда JavaScript имеет дело с выражением 1 + '1', то обрабатывает его с помощью оператора +. Интересным свойством этого оператора является то, что он предпочитает конкатенацию строк, когда один из операндов является строкой.

В нашем случае ‘1’ является строкой, поэтому JavaScript неявно преобразует числовое значение 1 в строку. Следовательно, 1 + '1' становится '1' + '1', в результате чего получается строка '11'.

Теперь у нас есть выражение '11' - 1. Поведение оператора — прямо противоположно. Приоритет отдается числовому вычитанию независимо от типа операндов. Если операнды не относятся к числовому типу, JavaScript выполняет неявное принуждение для их преобразования в числа. В данном случае '11' преобразуется в числовое значение 11, и выражение упрощается до 11 - 1.

Собираем все вместе:

'11' - 1 = 11 - 1 = 10
2. Дублирование элементов массива
Рассмотрите следующий JavaScript-код и постарайтесь найти в нем какие-либо проблемы:

function duplicate(array) {
for (var i = 0; i < array.length; i++) {
array.push(array[i]);
}
return array;
}

const arr = [1, 2, 3];
const newArr = duplicate(arr);
console.log(newArr);

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

Функция duplicate использует цикл для перебора каждого элемента конкретного массива. Но внутри цикла она добавляет новый элемент в конец массива, используя метод push(). В результате массив каждый раз становится длиннее, что создает проблему, при которой цикл никогда не останавливается. Условие цикла (i < array.length) всегда остается истинным, поскольку массив продолжает увеличиваться. В результате цикл может продолжаться бесконечно, что приводит к зацикливанию программы.

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

function duplicate(array) {
var initialLength = array.length; // Сохранение начальной длины
for (var i = 0; i < initialLength; i++) {
array.push(array[i]); // Дублирование каждого элемента
}
return array;
}

const arr = [1, 2, 3];
const newArr = duplicate(arr);
console.log(newArr);

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

[1, 2, 3, 1, 2, 3]

📌Читать дальше

@javascriptv
Please open Telegram to view this post
VIEW IN TELEGRAM
👍265🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Movie Poster Interaction - Стильные карточки с анимацией и эффектом размытия.

https://codepen.io/pleasedonotdisturb/pen/oNQLVXB

@javascriptv
12🔥4👍2🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
Card — анимированная карточка. Реализована с помощью CSS и JavaScript

https://codepen.io/BlogFire/pen/yLRgbwO

@javascriptv
👍12🔥41