Программер
52 subscribers
107 photos
86 links
Канал о программировании, с интересной иформацией.
Download Telegram
Объектно-ориентированное программирование.
Вид программирование, где происходит взаимодействие между различными участками программы - объектами. Акцент делается на взаимодействии объектов, каждый из которых инкапсулирует свои свойства и поведение. Основные принципы включают наследование, полиморфизм и инкапсуляцию, что способствует созданию модульного, поддерживаемого и расширяемого кода.

Принципы
--> Инкапсуляция. Скрытие внутренней реализации класса и предоставление доступа только к необходимым методам.
--> Наследование. Возможность создания нового класса на основе существующего с добавлением или изменением функциональности.
--> Полиморфизм. Способность объектов разных классов реагировать на одни и те же сообщения по-разному.
--> Абстракция. Определение важных характеристик объекта, скрывая детали реализации.

Программер
Классы в ООП.

Класс - шаблон для создания объектов. Определяет данные - свойства, и методы - функции, доступные созданным на его основе объектам.

Виды классов
--> Базовый класс или родительский класс - предоставляет общие свойства и методы для наследуемых классов.
--> Производный класс - наследует свойства и методы базового класса. Может добавлять свои.
--> Абстрактный класс - содержит абстрактные методы, которые должны быть реализованы в производных классах.
--> Интерфейс - описывает контракт методов, которые класс обязан реализовать.
--> Конкретный класс - полностью реализованный класс, готовый для создания объектов.

Программер
WebAssembly. WASM.
Стандарт, предназначенный для выполнения высокопроизводительного кода в браузерах.

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

Преимущества WASM
--> Поизводительность.
--> Безопасность.
--> Портативность.
--> Многоязычность.

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

Программер
Svelte - фреймворк для создания веб-приложений.

Позволяет с высокой скоростью разрабатывать интерактивные веб-интерфейсы.
Подходит для быстроработающих SPA. Single Page Application.


--> Svelte компилирует компоненты в чистый HTML, CSS и JavaScript, уменьшая размер итогового кода.
--> Благодаря отсутствию необходимости в DOM, Svelte работает быстрее и потребляет меньше ресурсов.
--> Интуитивно понятен и удобен для начинающих разработчиков.
--> Компактный код ускоряет загрузку страниц.

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

Программер
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.
--> Созданные проекты легко переносятся между разработчиками и могут быть развернуты на различных платформах.

Программер
Webpack

--> Объединяет все модули JavaScript, CSS и другие ресурсы вашего проекта в один или несколько файлов, что облегчает их загрузку браузером.
--> Может минимизировать код, удалять неиспользуемые части tree-shaking, оптимизировать изображения.
--> Webpack поддерживает ES6+ синтаксис, а также новые возможности JavaScript и CSS.

Представь, у тебя есть много разбросанных игрушек. Нужно потратить много времени и сил, чтобы собрать их в одну коробку. Webpack - помощник, который собирает игрушки (файлы JavaScript, CSS, картинки и т.д.) в одну большую коробку, где тебе легче их взять и поиграть.

Программер
Babel - инструмент транспиляции JavaScript
Трансляция кода.
Babel преобразует современный JavaScript-код ES6+ в более старый синтаксис поддерживаемый большинством браузеров.

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

То же самое происходит с кодом. Современные браузеры иногда не понимают новый код. Babel берёт новый код и превращает в старый, понятный всем браузерам. И тогда самые современные программы будут везде работать!

Программер
Create-react-app

Установка инструмента
npm install -g create-react-app

Создание нового проекта
npx create-react-app my-app

Переход в папку проекта
cd my-app

Запустить сервер разработки
npm start
Откройте браузер по адресу http://localhost:3000, чтобы увидеть ваше приложение.

Программер
#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

Чтобы создать множество похожих объектов, а не один, мы используем функцию конструктор.
Функция начинается с большой буквы, и выполняется благодаря оператору 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);

Программер
Как отлаживать код в браузере
Открыли инструмент разработчика нажав F12 или комбинацию Ctrl+Shift+I (Windows/Linux) or Cmd+Opt+I (macOS).

Используем консоль.
console.log() — выводит сообщение в консоль;
console.error() — отображает ошибку;
console.warn() — показывает предупреждение;
console.table() — форматирует данные в виде таблицы.

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

Работа с Network
Панель Network отслеживает запросы и ответы между клиентом и сервером. Здесь можно увидеть статус запросов, заголовки, тело запроса и ответа, а также время выполнения каждого запроса.

Программер
#javascript

Redux — библиотека JavaScript.
Управляет состоянием приложения.

Для чего?
--> Позволяет легко масштабировать приложение.
--> Понятное "поведение" приложения.
--> Сравнительно легкая отладка.
--> Облегчает управлять состояниями приложений с большим количеством данных.
--> Повышает производительность приложения.

Программер
#javascript

Redux Ключевые концепции.

--> Store - хранилище состояния приложения.
--> Actions - объекты описывающие, что произошло в системе.
--> Reducers - преобразовывают события в состояние.

Программер
#javascript

Три принципа Redux.
--> Все данные состояния хранятся в одном месте. Копии отсутствуют.
--> Состояние можно только читать. Глобальное состояние заблокировано для записи.
--> Изменения — только через редьюсеры.

Программер
#javascript

Redux.

State tree - дерево состояний. Объект, представляющий состояние приложения.

Generator creation - функции создающие действия.
Изменения возможно, когда отправляем действия - action.
При запуске действия, происходит изменение состояния приложения.

Reducer - редуктор, вычисляет следующее состояние приложения, на основе его состояний и применяемого действия.

Redux - поток данных направлен в одну сторону.

Программер
Telegram - не простое приложение. Это система, включающая клиентские части для различных платформ - iOS, Android, десктоп, и мощный бэкенд.

Чтобы сделать Telegram - понадобилось несколько языков программирования и свой протокол передачи данных.

Telegram написан на
--> C++ - бекенд.
--> Objective-C, C, Swift - macOS.
--> Objective-C, Swift - IOS.
--> Java, C++, C - Android.
--> NodeJS, AngularJS - web.

Программер
Telegram Bot API - api, позволяющий создавать ботов в Telegram. С помощью API можно управлять ботами, отправлять и получать сообщения, обрабатывать команды пользователей, взаимодействовать с различными функциями платформы.

Список возможностей
--> Отправка сообщений: Бот может отправлять текстовые сообщения, изображения, видео,
--> Обработка команд: Вы можете настроить бота так, чтобы он реагировал на определенные команды от пользователя, например, /start, /help и
--> Работа с кнопками и клавиатурами: Можно добавлять интерактивные элементы интерфейса, такие как кнопки и меню
--> Бот можно интегрировать с внешними сервисами, такими как базы данных, системы управления контентом и т.п.
--> Настройка прав доступа: Можно контролировать доступ к различным функциям бота, включая ограничение по ролям пользователей или настройку приватных чатов.

Для работы с Telegram Bot API обычно используются HTTP-запросы к серверу Telegram.
Телеграм-боты разнообразны
Вот некоторые
—> Информационные боты
—> Развлекательные боты
Предлагают игры, викторины, шутки, музыку.
—> Сервисные боты
Бронированием билетов, заказ еды, покупка товаров, запись к врачу.
—> Образовательные боты
—> Обучающие программы, тесты, справочники, словари, переводчики.
—> Бизнес боты
Автоматизация продаж, поддержка клиентов, маркетинговые кампании, аналитика.
—> Технические боты
Управление устройствами, мониторинг систем, отправка уведомлений об ошибках, резервное копирование данны.
—> Социальные боты
Помощь в общении, создании сообществ, проведении опросов, голосований и организации мероприятий.
—> Персональные ассистенты
Личные помощники управляют расписанием, напоминаниями, списками задач.
—> Модераторские боты
Контролируют группы и каналы, удаляют спам, блокируют нарушителей правил,
—> Креативные боты
Генерируют тексты, изображения, музыку.

Программер
Наиболее интересные телеграм боты

@PollBot - Создает опросы и голосования прямо в чате. Отлично подходит для быстрого сбора мнений.
@TrackMeBot - Позволяет отслеживать посылки и уведомления о доставке.
@FileConverterBot - Конвертирует файлы между разными форматами.
@ImageSearchBot - Ищет изображения по запросу, используя поисковые алгоритмы.
@GetMediaBot - Скачивает видео и аудиофайлы из YouTube, Instagram и других платформ.
@RateMyPhotoBot - Оценивает качество ваших фотографий и дает советы по улучшению.
@TriviaBot - Проводит викторины и тесты на самые разные темы.
@DrWebBot - Проверяет ссылки и файлы на наличие вирусов и вредоносного ПО.
@IFTTT Интегрируется с множеством сервисов и устройств, позволяя автоматизировать различные задачи.
@WeatherManBot - Предоставляет актуальные данные о погоде в любом городе мира. Б
@PomodoroTimerBot - Реализует технику "Помидоро" для повышения продуктивности.
@MuffinChatBot - Чат-бот имитирует беседу с человеком.
@Grammarnazibot - Проверяет грамматику и орфографию текста. Полезно для написания статей, постов и сообщений.
@BBCNewsBot - Доставляет последние новости от BBC прямо в ваш чат.

Программер