Применение нейронных сетей
--> Идентификация лиц, анализ изображений, распознавание рукописного текста.
--> Прогнозирование и предсказание. Прогноз погоды, финансовые прогнозы, прогнозирование спроса.
--> Автоматическое преобразование текста из одного языка на другой.
--> Рекомендательные системы.
--> Робототехника и автономные системы. Управление беспилотниками, автомобилями, промышленными роботами.
--> Диагностика заболеваний, анализ медицинских изображений, разработка новых лекарств.
--> Голосовые помощники. Распознавание и синтез речи, виртуальные ассистенты.
--> Финансовый сектор.Оценка рисков, обнаружение мошенничества, управление инвестициями.
--> Разработка игровых персонажей с искусственным интеллектом, создание реалистичной графики.
--> Таргетинг рекламы, персонализация контента, анализ поведения пользователей.
Программер
--> Идентификация лиц, анализ изображений, распознавание рукописного текста.
--> Прогнозирование и предсказание. Прогноз погоды, финансовые прогнозы, прогнозирование спроса.
--> Автоматическое преобразование текста из одного языка на другой.
--> Рекомендательные системы.
--> Робототехника и автономные системы. Управление беспилотниками, автомобилями, промышленными роботами.
--> Диагностика заболеваний, анализ медицинских изображений, разработка новых лекарств.
--> Голосовые помощники. Распознавание и синтез речи, виртуальные ассистенты.
--> Финансовый сектор.Оценка рисков, обнаружение мошенничества, управление инвестициями.
--> Разработка игровых персонажей с искусственным интеллектом, создание реалистичной графики.
--> Таргетинг рекламы, персонализация контента, анализ поведения пользователей.
Программер
Telegram
Программер
Канал о программировании, с интересной иформацией.
Реактивное программирование.
Подход, подразумевает реакцию программы на изменения данных в реальном времени. Это помогает лучше справляться с асинхронными задачами и улучшает производительность.
Асинхронные задачи - разные части программы работают независимо друг от друга. Что позволяет программе выполнять несколько задач одновременно, увеличивая скорость и отзывчивость.
Принципы работы реактивного программирования
--> Создаются изменяющиеся во временем потоки данных.
--> Программа подписывается на потоки данных и реагирует на их изменения.
--> Как только изменения произошли, программа автоматически обновляет результаты.
Таким образом, программа, гибко реагирует на события и данные, улучшая производительность и удобство работы.
Подход, подразумевает реакцию программы на изменения данных в реальном времени. Это помогает лучше справляться с асинхронными задачами и улучшает производительность.
Асинхронные задачи - разные части программы работают независимо друг от друга. Что позволяет программе выполнять несколько задач одновременно, увеличивая скорость и отзывчивость.
Принципы работы реактивного программирования
--> Создаются изменяющиеся во временем потоки данных.
--> Программа подписывается на потоки данных и реагирует на их изменения.
--> Как только изменения произошли, программа автоматически обновляет результаты.
Таким образом, программа, гибко реагирует на события и данные, улучшая производительность и удобство работы.
Примитивы синхронизации.
Семафор - примитив, контролирующий доступ к ресурсам. Имеет счетчик, указывающий, сколько потоков одновременно могут использовать ресурс. Когда счетчик достигает нуля, последующие потоки блокируются до освобождения ресурса. Ждут очереди.
Применение
--> Контроль доступа к многопользовательским системам.
--> Синхронизации сложных/многопоточных приложений.
Мьютекс - примитив, гарантирующий доступ к ресурсу только одному потоку. Другие потоки ожидают, когда мьютекс освободится.
Применение
--> Защита критических участков кода.
--> Предупреждение взаимоблокировки, когда потоки ждут друг друга, создавая тупик.
Спинлок. Spinlocks.
Поток активно ожидает освобождения ресурса, постоянно проверяя его статус. Отличается от обычных блокирующих механизмов, где поток засыпает и просыпается при освобождении ресурса.
Применение
В системах реального времени и приложениях, где недопустимы задержки.
Программер
Семафор - примитив, контролирующий доступ к ресурсам. Имеет счетчик, указывающий, сколько потоков одновременно могут использовать ресурс. Когда счетчик достигает нуля, последующие потоки блокируются до освобождения ресурса. Ждут очереди.
Применение
--> Контроль доступа к многопользовательским системам.
--> Синхронизации сложных/многопоточных приложений.
Мьютекс - примитив, гарантирующий доступ к ресурсу только одному потоку. Другие потоки ожидают, когда мьютекс освободится.
Применение
--> Защита критических участков кода.
--> Предупреждение взаимоблокировки, когда потоки ждут друг друга, создавая тупик.
Спинлок. Spinlocks.
Поток активно ожидает освобождения ресурса, постоянно проверяя его статус. Отличается от обычных блокирующих механизмов, где поток засыпает и просыпается при освобождении ресурса.
Применение
В системах реального времени и приложениях, где недопустимы задержки.
Программер
Примитивы синхронизации. Продолжение.
Condition variables
Условия ожидания - примитивы синхронизации, позволяют блокироваться/засыпать потокам до наступления одного условия и пробуждаться/разблокироваться, когда выполнено другое условие. Используются для координации работы потоков, ожидающих изменений в общем состоянии ресурсов.
Active objects
Активные объекты. Модель программирования, где объект имеет собственный поток исполнения. Используются для изоляции логики объекта от вызовающих потоков. Это упрощает написание многопоточного кода. Часто применяются в системах реального времени и высоконагруженных приложениях, где важна низкая задержка и высокая производительность.
Монитор
Высокоуровневый механизм синхронизации, сочетающий в себе мьютекс для управления доступом к общим ресурсам, и условие ожидания для координации работы потоков. Позволяет потокам безопасно взаимодействовать с общими данными, гарантируя, что в критичесой секции находится только один поток за раз.
Читатели-писатели. Readers-Writers Locks.
Разрешает потокам читать общий ресурс одновременно, но допускает запись только одним потоком за раз. При записи остальные потоки блокируются.
Барьер (Barriers) - точка синхронизации, в которой все потоки должны дождаться друг друга перед тем, как продолжить выполнение. Когда все потоки достигают барьера, они могут продолжать работу.
Программер
Condition variables
Условия ожидания - примитивы синхронизации, позволяют блокироваться/засыпать потокам до наступления одного условия и пробуждаться/разблокироваться, когда выполнено другое условие. Используются для координации работы потоков, ожидающих изменений в общем состоянии ресурсов.
Active objects
Активные объекты. Модель программирования, где объект имеет собственный поток исполнения. Используются для изоляции логики объекта от вызовающих потоков. Это упрощает написание многопоточного кода. Часто применяются в системах реального времени и высоконагруженных приложениях, где важна низкая задержка и высокая производительность.
Монитор
Высокоуровневый механизм синхронизации, сочетающий в себе мьютекс для управления доступом к общим ресурсам, и условие ожидания для координации работы потоков. Позволяет потокам безопасно взаимодействовать с общими данными, гарантируя, что в критичесой секции находится только один поток за раз.
Читатели-писатели. Readers-Writers Locks.
Разрешает потокам читать общий ресурс одновременно, но допускает запись только одним потоком за раз. При записи остальные потоки блокируются.
Барьер (Barriers) - точка синхронизации, в которой все потоки должны дождаться друг друга перед тем, как продолжить выполнение. Когда все потоки достигают барьера, они могут продолжать работу.
Программер
Telegram
Программер
Канал о программировании, с интересной иформацией.
Объектно-ориентированное программирование.
Вид программирование, где происходит взаимодействие между различными участками программы - объектами. Акцент делается на взаимодействии объектов, каждый из которых инкапсулирует свои свойства и поведение. Основные принципы включают наследование, полиморфизм и инкапсуляцию, что способствует созданию модульного, поддерживаемого и расширяемого кода.
Принципы
--> Инкапсуляция. Скрытие внутренней реализации класса и предоставление доступа только к необходимым методам.
--> Наследование. Возможность создания нового класса на основе существующего с добавлением или изменением функциональности.
--> Полиморфизм. Способность объектов разных классов реагировать на одни и те же сообщения по-разному.
--> Абстракция. Определение важных характеристик объекта, скрывая детали реализации.
Программер
Вид программирование, где происходит взаимодействие между различными участками программы - объектами. Акцент делается на взаимодействии объектов, каждый из которых инкапсулирует свои свойства и поведение. Основные принципы включают наследование, полиморфизм и инкапсуляцию, что способствует созданию модульного, поддерживаемого и расширяемого кода.
Принципы
--> Инкапсуляция. Скрытие внутренней реализации класса и предоставление доступа только к необходимым методам.
--> Наследование. Возможность создания нового класса на основе существующего с добавлением или изменением функциональности.
--> Полиморфизм. Способность объектов разных классов реагировать на одни и те же сообщения по-разному.
--> Абстракция. Определение важных характеристик объекта, скрывая детали реализации.
Программер
Классы в ООП.
Класс - шаблон для создания объектов. Определяет данные - свойства, и методы - функции, доступные созданным на его основе объектам.
Виды классов
--> Базовый класс или родительский класс - предоставляет общие свойства и методы для наследуемых классов.
--> Производный класс - наследует свойства и методы базового класса. Может добавлять свои.
--> Абстрактный класс - содержит абстрактные методы, которые должны быть реализованы в производных классах.
--> Интерфейс - описывает контракт методов, которые класс обязан реализовать.
--> Конкретный класс - полностью реализованный класс, готовый для создания объектов.
Программер
Класс - шаблон для создания объектов. Определяет данные - свойства, и методы - функции, доступные созданным на его основе объектам.
Виды классов
--> Базовый класс или родительский класс - предоставляет общие свойства и методы для наследуемых классов.
--> Производный класс - наследует свойства и методы базового класса. Может добавлять свои.
--> Абстрактный класс - содержит абстрактные методы, которые должны быть реализованы в производных классах.
--> Интерфейс - описывает контракт методов, которые класс обязан реализовать.
--> Конкретный класс - полностью реализованный класс, готовый для создания объектов.
Программер
Telegram
Программер
Канал о программировании, с интересной иформацией.
WebAssembly. WASM.
Стандарт, предназначенный для выполнения высокопроизводительного кода в браузерах.
Используется в Веб-приложениях, для улучшения производительности и расширения возможностей.
В играх, для запуска игр и медиа в браузере. Для визуализации расчетов и данных в браузере.
Преимущества WASM
--> Поизводительность.
--> Безопасность.
--> Портативность.
--> Многоязычность.
WebAssembly открывает новые горизонты для веб-разработки, позволяя запускать высокопроизводительный код непосредственно в браузерах.
Программер
Стандарт, предназначенный для выполнения высокопроизводительного кода в браузерах.
Используется в Веб-приложениях, для улучшения производительности и расширения возможностей.
В играх, для запуска игр и медиа в браузере. Для визуализации расчетов и данных в браузере.
Преимущества WASM
--> Поизводительность.
--> Безопасность.
--> Портативность.
--> Многоязычность.
WebAssembly открывает новые горизонты для веб-разработки, позволяя запускать высокопроизводительный код непосредственно в браузерах.
Программер
Svelte - фреймворк для создания веб-приложений.
Позволяет с высокой скоростью разрабатывать интерактивные веб-интерфейсы.
Подходит для быстроработающих SPA. Single Page Application.
--> Svelte компилирует компоненты в чистый HTML, CSS и JavaScript, уменьшая размер итогового кода.
--> Благодаря отсутствию необходимости в DOM, Svelte работает быстрее и потребляет меньше ресурсов.
--> Интуитивно понятен и удобен для начинающих разработчиков.
--> Компактный код ускоряет загрузку страниц.
Идеально подходит для создания быстрых и легких веб-приложений с минимальным размером бандла. Оптимизирован для производительности и простоты использования. Это отличный вариант для проектов любого масштаба.
Программер
Позволяет с высокой скоростью разрабатывать интерактивные веб-интерфейсы.
Подходит для быстроработающих SPA. Single Page Application.
--> Svelte компилирует компоненты в чистый HTML, CSS и JavaScript, уменьшая размер итогового кода.
--> Благодаря отсутствию необходимости в DOM, Svelte работает быстрее и потребляет меньше ресурсов.
--> Интуитивно понятен и удобен для начинающих разработчиков.
--> Компактный код ускоряет загрузку страниц.
Идеально подходит для создания быстрых и легких веб-приложений с минимальным размером бандла. Оптимизирован для производительности и простоты использования. Это отличный вариант для проектов любого масштаба.
Программер
Telegram
Программер
Канал о программировании, с интересной иформацией.
Nest.js. Фреймворк для создания серверных приложений на языке TypeScript.
Построен поверх Node.js и Express. Добавляет уровень архитектуры и удобные инструменты для разработки масштабируемых и поддерживаемых приложений.
С его помощью создают
--> REST API. Отлично подходит для разработки серверных API, обеспечивающих взаимодействие между фронтендом и бэкендом.
--> Микросервисная архитектура. Помогает создавать и управлять микросервисами, что полезно для крупных и сложных систем.
--> Идеален для создания надежных и масштабируемых корпоративных приложений.
Преимущества
--> Nest.js предлагает чёткую архитектуру, что упрощает поддержку и расширение проекта.
--> Поддержка TypeScript обеспечивает типизацию и улучшает качество кода.
--> Легко интегрируется с другими библиотеками и фреймворками.
Программер
Построен поверх Node.js и Express. Добавляет уровень архитектуры и удобные инструменты для разработки масштабируемых и поддерживаемых приложений.
С его помощью создают
--> REST API. Отлично подходит для разработки серверных API, обеспечивающих взаимодействие между фронтендом и бэкендом.
--> Микросервисная архитектура. Помогает создавать и управлять микросервисами, что полезно для крупных и сложных систем.
--> Идеален для создания надежных и масштабируемых корпоративных приложений.
Преимущества
--> Nest.js предлагает чёткую архитектуру, что упрощает поддержку и расширение проекта.
--> Поддержка TypeScript обеспечивает типизацию и улучшает качество кода.
--> Легко интегрируется с другими библиотеками и фреймворками.
Программер
Create-React-App
Упрощает настройку окружения для разработки React-приложений. Избавляет т настройки Webpack, Babel и других инструментов. Налицо экономия времени и снижение порога входа для начинающих разработчиков.
Create-React-App
--> Позволяет мгновенно создать новое React-приложение с минимальными усилиями.
--> Устраняет необходимость вручную настраивать Webpack, Babel и другие инструменты сборки.
--> Обеспечивает актуальную версию зависимостей и инструментов, необходимых для работы с React.
--> Созданные проекты легко переносятся между разработчиками и могут быть развернуты на различных платформах.
Программер
Упрощает настройку окружения для разработки React-приложений. Избавляет т настройки Webpack, Babel и других инструментов. Налицо экономия времени и снижение порога входа для начинающих разработчиков.
Create-React-App
--> Позволяет мгновенно создать новое React-приложение с минимальными усилиями.
--> Устраняет необходимость вручную настраивать Webpack, Babel и другие инструменты сборки.
--> Обеспечивает актуальную версию зависимостей и инструментов, необходимых для работы с React.
--> Созданные проекты легко переносятся между разработчиками и могут быть развернуты на различных платформах.
Программер
Webpack
--> Объединяет все модули JavaScript, CSS и другие ресурсы вашего проекта в один или несколько файлов, что облегчает их загрузку браузером.
--> Может минимизировать код, удалять неиспользуемые части tree-shaking, оптимизировать изображения.
--> Webpack поддерживает ES6+ синтаксис, а также новые возможности JavaScript и CSS.
Представь, у тебя есть много разбросанных игрушек. Нужно потратить много времени и сил, чтобы собрать их в одну коробку. Webpack - помощник, который собирает игрушки (файлы JavaScript, CSS, картинки и т.д.) в одну большую коробку, где тебе легче их взять и поиграть.
Программер
--> Объединяет все модули JavaScript, CSS и другие ресурсы вашего проекта в один или несколько файлов, что облегчает их загрузку браузером.
--> Может минимизировать код, удалять неиспользуемые части tree-shaking, оптимизировать изображения.
--> Webpack поддерживает ES6+ синтаксис, а также новые возможности JavaScript и CSS.
Представь, у тебя есть много разбросанных игрушек. Нужно потратить много времени и сил, чтобы собрать их в одну коробку. Webpack - помощник, который собирает игрушки (файлы JavaScript, CSS, картинки и т.д.) в одну большую коробку, где тебе легче их взять и поиграть.
Программер
Babel - инструмент транспиляции JavaScript
Трансляция кода.
Babel преобразует современный JavaScript-код ES6+ в более старый синтаксис поддерживаемый большинством браузеров.
Представь, что ты говоришь на современном языке, используя новые слова и выражения, а твой друг понимает только старые. Babel переводит твою речь на тот язык, который твой друг точно поймёт.
То же самое происходит с кодом. Современные браузеры иногда не понимают новый код. Babel берёт новый код и превращает в старый, понятный всем браузерам. И тогда самые современные программы будут везде работать!
Программер
Трансляция кода.
Babel преобразует современный JavaScript-код ES6+ в более старый синтаксис поддерживаемый большинством браузеров.
Представь, что ты говоришь на современном языке, используя новые слова и выражения, а твой друг понимает только старые. Babel переводит твою речь на тот язык, который твой друг точно поймёт.
То же самое происходит с кодом. Современные браузеры иногда не понимают новый код. Babel берёт новый код и превращает в старый, понятный всем браузерам. И тогда самые современные программы будут везде работать!
Программер
Telegram
Программер
Канал о программировании, с интересной иформацией.
Create-react-app
Установка инструмента
npm install -g create-react-app
Создание нового проекта
npx create-react-app my-app
Переход в папку проекта
cd my-app
Запустить сервер разработки
npm start
Откройте браузер по адресу http://localhost:3000, чтобы увидеть ваше приложение.
Программер
Установка инструмента
npm install -g create-react-app
Создание нового проекта
npx create-react-app my-app
Переход в папку проекта
cd my-app
Запустить сервер разработки
npm start
Откройте браузер по адресу http://localhost:3000, чтобы увидеть ваше приложение.
Программер
Telegram
Программер
Канал о программировании, с интересной иформацией.
#javascript
Объекты - используются для хранения набора значений.
Объект в JavaScript, создается при помощи фигурных скобок, и содержит список свойств.
Создадим объект.
Назовем его primitiveObject.
let = primitiveObject{ id: 1, // ключ id, значение 1
name: "Ivan", // ключ name значение Ivan
age: 30 // ключ age, значене 30
};
Чтобы получить значение объекта, делаем запись через точку.
console.log(primitiveObject.id); // получаем значение ключа id - 1
console.log(primitiveObject.name); // получаем значение ключа name - Ivan
console.log(primitiveObject.age); // получаем значение ключа age - 30
Для перебора свойств объекта удобно использовать цикл for . . in
Программер
Объекты - используются для хранения набора значений.
Объект в JavaScript, создается при помощи фигурных скобок, и содержит список свойств.
Создадим объект.
Назовем его primitiveObject.
let = primitiveObject{ id: 1, // ключ id, значение 1
name: "Ivan", // ключ name значение Ivan
age: 30 // ключ age, значене 30
};
Чтобы получить значение объекта, делаем запись через точку.
console.log(primitiveObject.id); // получаем значение ключа id - 1
console.log(primitiveObject.name); // получаем значение ключа name - Ivan
console.log(primitiveObject.age); // получаем значение ключа age - 30
Для перебора свойств объекта удобно использовать цикл for . . in
Программер
Telegram
Программер
Канал о программировании, с интересной иформацией.
#javascript
Чтобы создать множество похожих объектов, а не один, мы используем функцию конструктор.
Функция начинается с большой буквы, и выполняется благодаря оператору new.
Создадим простую функцию-конструктор
function Instrument(name) {
this.name = name;
this.prise = prise;
}
присвоим переменной значение "внутренности" функции.
let mallet = new Instrument("molotok", 20);
console.log(mallet.name); // molotok
console.log(mallet.prise); // 20
Хотим создать другой инструмент, с набором заданных характеристик?
Пожалуйста!
let saw = new Instrument("saw", 40);
let pliers = new Instrument("pliers", 30);
let wrench = new Instrument("wrench", 15);
Программер
Чтобы создать множество похожих объектов, а не один, мы используем функцию конструктор.
Функция начинается с большой буквы, и выполняется благодаря оператору new.
Создадим простую функцию-конструктор
function Instrument(name) {
this.name = name;
this.prise = prise;
}
присвоим переменной значение "внутренности" функции.
let mallet = new Instrument("molotok", 20);
console.log(mallet.name); // molotok
console.log(mallet.prise); // 20
Хотим создать другой инструмент, с набором заданных характеристик?
Пожалуйста!
let saw = new Instrument("saw", 40);
let pliers = new Instrument("pliers", 30);
let wrench = new Instrument("wrench", 15);
Программер
Telegram
Программер
Канал о программировании, с интересной иформацией.
Как отлаживать код в браузере
Открыли инструмент разработчика нажав F12 или комбинацию Ctrl+Shift+I (Windows/Linux) or Cmd+Opt+I (macOS).
Используем консоль.
console.log() — выводит сообщение в консоль;
console.error() — отображает ошибку;
console.warn() — показывает предупреждение;
console.table() — форматирует данные в виде таблицы.
Отладка с помощью точек останова
Проходите пошагово через код, чтобы проверить, для этого используйте точки останова.
Работа с Network
Панель Network отслеживает запросы и ответы между клиентом и сервером. Здесь можно увидеть статус запросов, заголовки, тело запроса и ответа, а также время выполнения каждого запроса.
Программер
Открыли инструмент разработчика нажав F12 или комбинацию Ctrl+Shift+I (Windows/Linux) or Cmd+Opt+I (macOS).
Используем консоль.
console.log() — выводит сообщение в консоль;
console.error() — отображает ошибку;
console.warn() — показывает предупреждение;
console.table() — форматирует данные в виде таблицы.
Отладка с помощью точек останова
Проходите пошагово через код, чтобы проверить, для этого используйте точки останова.
Работа с Network
Панель Network отслеживает запросы и ответы между клиентом и сервером. Здесь можно увидеть статус запросов, заголовки, тело запроса и ответа, а также время выполнения каждого запроса.
Программер
Telegram
Программер
Канал о программировании, с интересной иформацией.
#javascript
Redux — библиотека JavaScript.
Управляет состоянием приложения.
Для чего?
--> Позволяет легко масштабировать приложение.
--> Понятное "поведение" приложения.
--> Сравнительно легкая отладка.
--> Облегчает управлять состояниями приложений с большим количеством данных.
--> Повышает производительность приложения.
Программер
Redux — библиотека JavaScript.
Управляет состоянием приложения.
Для чего?
--> Позволяет легко масштабировать приложение.
--> Понятное "поведение" приложения.
--> Сравнительно легкая отладка.
--> Облегчает управлять состояниями приложений с большим количеством данных.
--> Повышает производительность приложения.
Программер
Telegram
Программер
Канал о программировании, с интересной иформацией.
#javascript
Redux Ключевые концепции.
--> Store - хранилище состояния приложения.
--> Actions - объекты описывающие, что произошло в системе.
--> Reducers - преобразовывают события в состояние.
Программер
Redux Ключевые концепции.
--> Store - хранилище состояния приложения.
--> Actions - объекты описывающие, что произошло в системе.
--> Reducers - преобразовывают события в состояние.
Программер
Telegram
Программер
Канал о программировании, с интересной иформацией.
#javascript
Три принципа Redux.
--> Все данные состояния хранятся в одном месте. Копии отсутствуют.
--> Состояние можно только читать. Глобальное состояние заблокировано для записи.
--> Изменения — только через редьюсеры.
Программер
Три принципа Redux.
--> Все данные состояния хранятся в одном месте. Копии отсутствуют.
--> Состояние можно только читать. Глобальное состояние заблокировано для записи.
--> Изменения — только через редьюсеры.
Программер
Telegram
Программер
Канал о программировании, с интересной иформацией.
#javascript
Redux.
State tree - дерево состояний. Объект, представляющий состояние приложения.
Generator creation - функции создающие действия.
Изменения возможно, когда отправляем действия - action.
При запуске действия, происходит изменение состояния приложения.
Reducer - редуктор, вычисляет следующее состояние приложения, на основе его состояний и применяемого действия.
Redux - поток данных направлен в одну сторону.
Программер
Redux.
State tree - дерево состояний. Объект, представляющий состояние приложения.
Generator creation - функции создающие действия.
Изменения возможно, когда отправляем действия - action.
При запуске действия, происходит изменение состояния приложения.
Reducer - редуктор, вычисляет следующее состояние приложения, на основе его состояний и применяемого действия.
Redux - поток данных направлен в одну сторону.
Программер
Telegram
Программер
Канал о программировании, с интересной иформацией.