Результати пошуку за запитом: c
Предисловие к курсу "Шаблоны проектирования"
<p>Объектно-ориентированная программная система состоит из множества объектов, что находятся в определенных отношeниях и связях друг с другом. Данный курс научит Вас как прaвильно проeктировать свои прогрaммные системы для плaтформы .Net, прaвильно подбирать и использовать порождающие, структурные и поведенческие шаблоны проектирования, описанные в труде «Приемы объектно-ориентированного проектирования. Цели, которые перед собой стaвили aвторы книги «Design Patterns via C#»: рaзъяснить и в хорошем смысле более «просторечиво» прeдоставить опрeделения и положeния, предстaвленные в книгe «Приeмы объектно-ориeнтированного проeктирования. Паттeрны проeктирования».</p>
Вітаємо переможців Шахової IT Арени для програмістів
Автор: Редакція ITVDN
7 июля состоялся финал Шахматной IT Арены для программистов.
Соревнования проходили в 4 тура, всего было 184 участника. Задания можно было решать на одном из 5 языков программирования - Python, C#, Java, C++ или Pascal.
В каждом туре были отмечены победители, выполнившие задания с максимальными баллами.
Сегодня мы поздравляем победителей 4 тура. Ими стали:
Богдан Зарицкий
Владимир Шустов
Олег Деміхов
Александр Восколуп (решил задания на двух языках – Java и Python!)
Ekaterina Zapryagaeva
Победители 4 тура получат в подарок подписку ITVDN на 3 месяца с доступом ко всем курсам, представленным в каталоге.
Еще четверо участников, которые выполнили все задания 4-го тура, получают в подарок 1 видео курс на свой выбор. Имена участников: Maksym Sukhorukov, Михаил Громов, Artyko, Роман Брага.
Всем на емейл, указанный при регистрации, будут отправлены письма с промо-кодами и дополнительной информацией.
А теперь самое главное! Кто же стал победителем соревнований по итогам 4 туров?
Вот как выглядит Топ-10 турнирной таблицы:
Богдан Зарицкий - С#, 3180 баллов
Олег Деміхов – C#, 3050 баллов
Владимир Шустов - Python, 3040 баллов
Artyko - Python, 2970 баллов
Maksym Sukhorukov - Python, 2930 баллов
Ekaterina Zapryagaeva - С#, 2850 баллов
Александр Восколуп - Python, 2820 баллов
Александр Восколуп – Java, 2820 баллов
Роман Брага - С#, 2300 баллов
Михаил Громов - С#, 2280 баллов
Абсолютными победителями в финале стали
Богдан Зарицкий
Олег Деміхов
Владимир Шустов
Победители смогут выбрать себе в подарок хорошую книгу по программированию. Мы свяжемся с каждым из победителей по электронной почте.
Мы благодарим всех участников соревнований, а также Евгения Волосатова, инициатора, вдохновителя, бессменного ведущего, а главное создателя платформы для тренировки навыков программирования с возможностью проверки решений на 5 языках за возможность проведения Шахматной IT Арены для программистов.
Оставайтесь на ITVDN!
Вітаємо переможців С# Марафона
Автор: Редакція ITVDN
Сегодня, 27 февраля 2017 года, завершился двухнедельный C# Марафон. ITVDN благодарит всех участников соревнования. Марафон стал испытанием не только для вас, но и для нашей команды. Совместными усилиями были найдены ошибки и неоднозначности в заданиях и вариантах ответов. Все ошибки учтены и будут исправлены. Вы помогаете делать наш образовательный ресурс лучше и за это вам огромное спасибо!
Итоги марафона не совсем такие, как предполагалось на старте.
У нас есть 2 группы победителей вместо ожидаемых трех призовых мест. Минимальный разрыв в результатах участников второго тура марафона убедил нас наградить 10 лучших.
Имена победителей C# Марафона:
Скочко Богдан, 1400 баллов, 90 попыток, тест на 1000 баллов (TP24139904)
Андрей Бондар, 1400 баллов, 90 попыток, тест на 1000 (TP01827773)
Вацлав Матусевич, 1400 баллов, 90 попыток, тест на 1000 (TP29586781)
Вячеслав Добронравов, 1400 баллов, 90 попыток, тест на 1000 (TP29240846)
Геннадий Чурсов, 1400 баллов, 90 попыток, тест на 1000 (TP37697643)
Софья Полтавская, 1400 баллов, 90 попыток, тест на 972(TP33730985
Толстиков Александр, 1400 баллов, 90 попыток, тест на 972 (TP43297413)
Andrii Zhyla, 1400 баллов, 90 попыток, тест на 972 (TP79941789)
Roman Kyznecov, 1400 баллов, 90 попыток, тест на 944 (TP32693699)
Игорь Мотькин, 1400 баллов, 90 попыток, тест на 916 (TP55501110)
Все 10 победителей марафона получат в подарок подписку на три месяца, а первые пятеро также могут выбрать себе один из подарков - фирменную футболку ITVDN, брендированную настольную игру типа Jenga или фирменную чашку.
Подарочные сертификаты на 3 месяца подписки будут отправлены победителям 28 февраля 2017 года на емейлы, указанные в регистрационной форме. Для вручения других подарков мы свяжемся с каждым победителем лично.
Также все участники второго тура, которые на 100% выполнили задания и прошли тестирование с результатами не ниже 70%, получат индивидуальные промо-коды со скидкой 25% на подписку ITVDN.
Поздравляем победителей C# Марафона!
Олександр Шевчук розповість про шаблони проектування на семінарі у НАУ
Автор: Редакція ITVDN
Александр Шевчук, ведущий тренер-консультант, сертифицированный тренер Microsoft, ведущий эксперт в области бизнес анализа, построения архитектуры информационных систем и управления IT проектами, а также автор книги "Шаблоны проектирования via C#" выступит на семинаре в НАУ.
Дата: 29 апреля 2015 года
Время: 15:30 (время киевское)
Место: г.Киев, НАУ, 6 корпус, аудитория 200
На мероприятии Вы узнаете о том, что на самом деле означают шаблоны проектирования, для чего они нужны, как и зачем нужно их использовать и какие шаблоны проектирования являются наиболее часто используемыми и применимыми на практике.
Обращаем ваше внимание на то, что также на семинаре будет проведена презентация книги "Шаблоны проектирования via C#" и рассказано об идее ее написания, а также о преимуществах и недостатках книги "Приемы объектно-ориентированного проектирования. Паттерны проектирования" на основании которой она была написана.
Книга "Design Patterns via C#" была написала с той целью, чтобы помочь разработчикам просто и понятно разъяснить и донести определения и положения, из книги банды четырех, а так же привести практические и наглядные примеры на языке С#. Для всех желающих разработчиков книга уже доступна для скачивания на портале ITVDN.com бесплатно по адресу: http://itvdn.com/ru/patterns
На семинаре у участников будет замечательная возможность познакомиться с Александром Шевчуком лично и задать интересующие вопросы. Спикер уделит достаточное внимание всем участникам и ответит на Ваши вопросы. Участие в семинаре для разработчиков совершенно бесплатно, но тем не менее обязательна предварительная регистрация. Поэтому, уведомляем Вас, если вы решили участвовать - спешите зарегистрироваться, так как количество мест ограничено.
Зарегистрироваться на семинар можно на сайте организатора семинара - Учебного Центра CyberBionic Systematics http://edu.cbsystematics.com/ru/education/freeitseminars
Вивчай «Алгоритми та структури даних» безкоштовно
Автор: Редакція ITVDN
Друзі, привіт!
З 5 до 12 грудня ви маєте можливість безкоштовно пройти навчання за відеокурсом «Алгоритми та структури даних на C#».
Курс «Алгоритми та структури даних на C#» охоплює такі теми:
Оцінка ефективності алгоритмів — асимптотична складність, О-нотація, порівняння алгоритмів.
Однозв’язкові та двозв’язкові списки.
Динамічні масиви.
Стек (Stack) та черга (Queue).
Множини (Set) — об'єднання, перетин, різниця, симетрична різниця.
Алгоритми сортування — вибірка, вставка, злиття, Timsort.
Хеш-таблиці — принцип роботи, хеш-функції, обробка колізій.
Дерева — бінарне дерево пошуку, АВЛ-дерево, балансування.
Графи — представлення, пошук у глибину, пошук у ширину, алгоритм Дейкстри, алгоритм Флойда-Уоршелла, топологічне сортування.
Динамічне програмування — базові прийоми, задачі про рюкзак, оптимальний маршрут.
Кожне заняття — це баланс між теорією та практикою, де ви не просто вивчаєте алгоритми, а й навчаєтеся застосовувати їх у реальних завданнях. Завдяки цьому курсу ви зможете створювати оптимальні рішення, які працюють як годинниковий механізм.
Після закінчення курсу ви можете пройти онлайн тестування і отримати іменний сертифікат, який буде підтвердженням ваших знань.
Автор курсу
Зінов’єва Анастасія, .NET Developer в компанії Plarium, Польща.
Тривалість
Курс складається з 10 відеоуроків загальною тривалістю 5 години 14 хвилини. Доступ до курсу надається на 10 днів.
Чого ви навчитеся на даному курсі:
Оцінювати час виконання алгоритмів та ефективно їх оптимізувати.
Розуміти структури даних — від стеків і черг до дерев та хеш-таблиць.
Реалізовувати популярні алгоритми, як-от пошук найкоротшого шляху чи сортування Timsort.
Розв'язувати складні завдання — Ханойські вежі, комівояжер, динамічне програмування.
Попередні вимоги
Для тих, хто має базові знання C# і прагне підняти свої навички на новий рівень, створюючи потужні рішення.
Чорна п'ятниця на ITVDN. Великі знижки на IT навчання
Автор: Редакція ITVDN
Встречайте время грандиозного падения цен! Мы знаем, что вы его ждали.
C 25 по 30 ноября на ITVDN - Черная пятница! Большие скидки на все пакеты подписки.
Что же выбрать?
Если вы хотите иметь доступ ко всем видео курсам на ITVDN, выбирайте один из универсальных пакетов:
“Стартовый”, на 3 месяца – 35 USD (вместо 49,99)
“Базовый”, на 6 месяцев – 58 USD (вместо 89,99)
“Премиум”, на 12 месяцев – 110 USD (вместо 169,99)
Если вы хотите пройти обучение по определенной специальности, вы можете выбрать одну из 14 комплексных программ:
Верстальщик сайтов
FrontEnd Developer
JavaScript Developer
Angular Developer
C# / .NET Developer
Java Developer
Python Developer
PHP Developer
Android Developer
iOS Developer
Unity / Game Developer
ASP.NET Core Developer
ASP.NET MVC Developer
C++ Developer
Что входит в пакет по специальности:
пошаговый план обучения с нуля до уровня специалиста;
видео курсы по выбранной специальности;
учебные материалы, исходники программного кода, опорный конспект, презентации к урокам;
интерактивный тренажер для формирования навыков написания кода;
консультации с тренером;
онлайн тестирование и сертификаты по всем технологиям;
диплом по специальности в случае успешного финального тестирования после обучения.
Подробности всех планов подписок по ссылке.
Программирование само собой не изучится. Это труд. Но вы можете вдохновить и поддержать себя, купив подписку со скидкой во время акции!
Учитесь с друзьями!
Если у вас есть друг, который хочет освоить IT-профессию или расширить свои познания в программировании, вы можете порадовать его – вручить подарочный сертификат с доступом ко всем видео курсам. Во время акции подарочные сертификаты также будут продаваться со скидками.
Пусть ваше обучение будет легким и приятным на ITVDN!
Мови програмування 2026: зростання TypeScript і Rust та нові тренди ринку
Автор: Редакція ITVDN
Світ розробки програмного забезпечення змінюється швидше, ніж будь-коли. Якщо ще кілька років тому вибір технологій був переважно питанням особистих уподобань або корпоративних стандартів, то у 2026 році він дедалі більше визначається вимогами до безпеки, масштабованості та швидкості доставки продукту.
На передній план виходять дві технології з різною філософією — TypeScript і Rust. Паралельно з ними активно зростають Go, Kotlin, Swift та кілька молодших, але перспективних гравців.
Розглянемо, що відбувається з мовами програмування у 2026 році — і як ці зміни впливають на розробників, тестувальників та IT-команди.
Глобальна аналітика: що кажуть звіти та індекси
Щороку кілька великих індустріальних досліджень формують уявлення про реальну картину ринку. Серед них особливо виділяються опитування Stack Overflow, звіти GitHub Octoverse та індекс популярності мов від TIOBE.
Узагальнена картина виглядає так:
TypeScript демонструє стрімке зростання й уже випереджає JavaScript за кількістю активних комерційних проєктів.
Rust кілька років поспіль утримує статус “найулюбленішої технології” серед розробників.
Python залишається універсальним лідером за загальною кількістю користувачів, але саме TypeScript і Rust показують найцікавішу динаміку в професійному середовищі.
Це важливий сигнал: ринок рухається від простої популярності до якості інструментів і довіри до технологій.
TypeScript: професійна надбудова над JavaScript
Технічно TypeScript не є окремою мовою програмування — це надмножина над JavaScript, яка додає статичну типізацію, інтерфейси та розширені можливості для побудови великих застосунків.
Проте в професійній спільноті його дедалі частіше називають мовою програмування — через власну екосистему, синтаксичні можливості та незалежну роль у сучасних проєктах.
Чому TypeScript так швидко став стандартом?
статична типізація дозволяє знаходити помилки ще під час розробки
великі команди легше підтримують складні кодові бази
більшість сучасних фреймворків орієнтовані саме на TypeScript
типізований код краще аналізується AI-інструментами
У результаті TypeScript став ключовим інструментом для frontend-, full-stack-розробників і QA-інженерів, що працюють з автоматизацією веб-застосунків.
Rust: безпека і продуктивність без компромісів
Rust представляє інший підхід — системне програмування з акцентом на безпеку памʼяті без використання garbage collector.
Серед ключових переваг:
захист від memory-вразливостей на рівні компілятора
продуктивність, порівнювана з C/C++
сучасний інструментарій і продумана екосистема
Rust активно використовують у cloud-native сервісах, WebAssembly, blockchain-проєктах та високонавантажених backend-системах. Попри складніший поріг входу, більшість розробників, які освоїли Rust, не хочуть повертатися до альтернатив.
Інші мови, що набирають обертів
Окрім TypeScript і Rust, у 2026 році помітно зростають:
Go — фаворит DevOps та хмарної інфраструктури.
Kotlin — поступово витісняє Java в Android і заходить у backend.
Swift — стабільна основа iOS-екосистеми.
Julia, Zig, Elixir — нішеві рішення для науки про дані, low-level систем і розподілених застосунків.
Про зрілі мови: C#, Java та Python нікуди не зникли
Важливо не створювати хибного враження, що поява TypeScript і Rust означає занепад класичних мов.
Насправді C#, Java та Python залишаються основою величезної частини світової розробки.
Їхній розвиток перейшов у фазу зрілості:
темпи зростання сповільнилися
але обсяг існуючих систем — колосальний
мільйони продакшн-проєктів продовжують підтримуватися саме на цих мовах
Python домінує у data science, machine learning та автоматизації.
Java і C# залишаються ключовими мовами enterprise-сектору, банківських систем і корпоративних платформ.
Сумарно ці мови становлять левову частку всієї комерційної розробки у світі.
Зростання TypeScript і Rust не означає витіснення C#, Java чи Python — це радше диверсифікація стеків: сучасні команди дедалі частіше комбінують зрілі мови з новішими інструментами залежно від задач.
Чому рейтинги різні?
Аналітичні платформи вимірюють різні речі: пошуковий інтерес, активність у репозиторіях або субʼєктивні оцінки розробників. Саме тому позиції мов відрізняються між рейтингами.
Проте перетин усіх джерел показує чітку тенденцію: TypeScript і Rust стабільно входять до числа технологій, які активно обирають професійні команди.
Практичні рекомендації для IT-фахівців
Для розробників
веб і full-stack: JavaScript + TypeScript
backend і системні рішення: Rust або Go
Для QA-інженерів
TypeScript корисний для автоматизації тестування та інтеграційних сценаріїв у веб-проєктах.
Для DevOps
Go та Rust дедалі частіше стають основою для створення інструментів і мікросервісів.
Для початківців
Якщо ви тільки входите у веб-розробку, починати варто саме з JavaScript.
Оптимальний шлях:
спочатку JavaScript (синтаксис, async, DOM, базові концепції)
потім TypeScript як інструмент професійного рівня для великих проєктів
Висновок
JavaScript залишається фундаментом сучасного вебу, а TypeScript став його професійним надбудовним стандартом.
Rust формує нове покоління безпечного та продуктивного системного програмування.
Водночас C#, Java та Python продовжують утримувати левову частку реального production-коду у світі.
2026 рік чітко показує: нові технології не замінюють старі — вони доповнюють їх.
Для IT-фахівців це означає одне: сучасний стек — це комбінація перевірених мов і нових інструментів. А інвестуючи час у TypeScript, Rust та фундаментальні технології сьогодні, ви суттєво підвищуєте свою цінність на ринку завтра.
Новий відеокурс – Entity Framework Core Базовий
Автор: Редакція ITVDN
Якщо ви працюєте з C# і базами даних, то знаєте, що ефективне керування ними — це must-have навичка для розробника. А якщо ще не знайомі з Entity Framework Core, саме час виправити це!
Вийшов новий курс "Entity Framework Core Базовий", який допоможе швидко освоїти основи ORM і спростити роботу з базами даних у .NET-застосунках.
Уявіть: ви пишете код на C#, а вся магія з базами даних відбувається без зайвих SQL-запитів. Саме для цього існує Entity Framework Core — кросплатформний фреймворк від Microsoft, який перетворює таблиці БД на зручні об’єкти та колекції. Забудьте про рутинне писання SQL — EF Core бере це на себе, дозволяючи працювати з даними так, ніби це просто шматок вашого коду.
Цей курс — справжній must-have як для новачків, які хочуть нарешті зв’язати C# із SQL через ORM, так і для бувалих розробників, які прагнуть освіжити знання про EF Core та його останні фішки. Ось що вас чекає:
Розберетеся, що таке ORM і коли він рятує.
Навчитеся моделювати сутності в коді та пов’язувати їх із реляційною моделлю.
Освоїте CRUD-операції (create, read, update, delete) без стресу.
Познайомитеся з LINQ для крутих запитів до БД.
Дізнаєтеся про міграції, щоб ваші моделі завжди були в актуальному стані.
А ще — тонкощі типу відносин між сутностями (One-to-One, One-to-Many, Many-to-Many), підходи до спадкування (Table-per-Hierarchy, Table-per-Type тощо), жадібне/ліниве/явне зчитування даних і навіть трохи чистого SQL, якщо дуже захочеться.
Автор курсу – Наурінський Юрій, .NET Tech Lead
Курс складається з 15 відеоуроків загальною тривалістю 5 години 20 хвилини.
Структура курсу:
Поняття ORM. Знайомство з EF Core
Обрання провайдера БД та підключення до нього. Початок роботи з EF Core
Моделювання сутностей в EF Core. Частина 1: Конфігурація моделі
Моделювання сутностей в EF Core. Частина 2: Використання особливостей
Моделювання сутностей в EF Core. Частина 3: Відносини між сутностями
Моделювання сутностей в EF Core. Частина 4: Наслідування в моделях
Зворотня розробка. Міграції. Початкове наповнення даними
Особливість EF Core: Відстеження_змін
Зчитування сутностей. Частина 1: Теорія та використання LINQ
Зчитування сутностей. Частина 2: Складні запити
Зчитування сутностей. Частина 3: Завантаження пов’язаних сутностей
Створення сутностей
Оновлення сутностей
Видалення сутностей
Робота з сирим SQL
Чого ви навчитеся на даному курсі:
Основи ORM та їх переваги
Як змоделювати сутності у C# та зв’язати їх із реляційною базою даних
Як працювати з CRUD-операціями (створення, читання, оновлення, видалення)
Використання LINQ для запитів до бази даних
Як працювати зі зв’язками між сутностями: One-to-One, One-to-Many, Many-to-Many
Використання міграцій для зручної підтримки структури БД
Робота з Lazy, Eager та Explicit loading
Як виконувати складні SQL-запити без виходу з EF Core
Попередні вимоги
Для новачків, які хочуть зрозуміти, як зв’язати C# з базами даних за допомогою ORM. Для досвідчених розробників, які хочуть розібратися з останніми можливостями EF Core.
Дивіться перший урок у вільному доступі. Курс вже доступний на нашому сайті в повному обсязі – до кожного уроку є практичні завдання та опорний конспект. Якщо у вас є активна підписка, ви можете дивитися його прямо зараз.
Великий розіграш подарунків з нагоди 20 тис підписників на CodeUA
Автор: Редакція ITVDN
Друзі, на YouTube-каналі CodeUA вже 20 тисяч підписників! Цей канал ми розвиваємо спільно з нашими друзями – навчальним центром CyberBionic Systematics і запрошуємо до співпраці всіх, хто хоче створювати якісний та доступний навчальний контент українською мовою.
Ми вдячні вам за те, що дивитеся наші відео, і щоб розділити нашу радість із вами, влаштовуємо великий розіграш подарунків.
10 квітня о 16:00 на YouTube-каналі CodeUA ми розіграємо подарунки від двох проєктів – ITVDN та CyberBionic Systematics. Для визначення переможців буде використаний сервіс Random.org. Заявки приймаються до 11:00 10 квітня.
Що розігруємо?
Ви можете виграти подарункові сертифікати на пакети відео курсів з 4 спеціальностей, які користуються найбільшим попитом: FrontEnd Developer, Java Developer, C#/.NET Developer та Python Developer або пакет підписки Базовий.
Frontend Developer – 44 курси, доступ на 7 місяців, вартість 104.99 USD.
C#/.NET Developer – 55 курсів на 8 міс., вартість 119.99 USD.
Java Developer – 29 курсів на 7 міс., вартість 104.99 USD.
Python Developer – 19 курсів на 6 міс., вартість 89.99 USD.
Пакет "Базовий" – доступ до 230+ відео курсів на 6 місяців, вартість 89.99 USD.
Що входить в пакети підписки:
Доступ до відео курсів на 6-8 місяців (залежно від обраного напрямку)
Доступ до інтерактивних практикумів
Вихідний код навчальних проектів
Презентації, опорний конспект, ДЗ
Перевірка домашніх завдань
Консультації з тренером
Онлайн тестування та сертифікати за пройденими курсами
Доступ до нових курсів, які виходитимуть під час дії підписки
Детальніші описи кожного пакету дивіться за посиланнями вище.
Переможці розіграшу зможуть активувати свої подарункові сертифікати протягом року з моменту їх отримання.
Навчання за відео курсами – найдоступніший і заодно дуже зручний формат. Вчитися можна будь-де і будь-коли, потрібен тільки комп'ютер і підключення до інтернету. Дивіться відео уроки і вебінари, робіть практичні завдання, отримуйте сертифікати і ви досягнете успіху!
Умови участі в розіграші
Для того щоб взяти участь у розіграші, потрібно виконати дві прості умови:
Зробити пост в одній із соціальних мереж (Facebook, LinkedIn, Twitter, Instagram чи TikTok) з посиланням на будь-яке відео/плейлист з YouTube-каналу CodeUA, або на статтю/вебінар/курс на ITVDN. Переконайтеся, що ваша сторінка відкрита, аби ми могли перевірити умови виконання цього пункту.
Заповнити Анкету учасника.
Найцікавіше на CodeUA
На CodeUA ви знайдете курси з популярних мов програмування та технологій, а також уроки англійської, записані українською мовою:
C# Стартовий
Python Стартовий
HTML & CSS Стартовий
Java Стартовий
Git + GitLab
Business English
English IT
Курси ідеально підходять новачкам, котрі до цього не мали ніякого відношення до програмування та ІТ.
Крім цього, на CodeUA ви знайдете вебінари-практикуми з Python та C#/.NET розробки, огляди ІТ-спеціальностей, корисні вебінари з пошуку роботи в ІТ та успішного проходження співбесід, а також інші цікаві відео матеріали.
Про подарунки від навчального центру CyberBionic Systematics читайте за посиланням.
Взяти участь у розіграші
UPD від 11/03/2023
Переможці розіграшу
Сингаєвська Тетяна - Пакет "Базовий" (6 місяців доступу до бази з 230+ ІТ-відеокурсів) від ITVDN
Голод Андрій - Відеокурси за спеціальністю FrontEnd Developer на ITVDN
Армен Рогальов - Відеокурси за спеціальністю C# Developer на ITVDN
Черевач Сергій - Відеокурси за спеціальністю Python Developer на ITVDN
Kopernia Nikolas - Відеокурси за спеціальністю Java Developer на ITVDN
Створюємо Telegram-бота на Python. Частина 2
Автор: Армен Маїлян
Чат боты — это новый инструмент взаимодействия разработчика с пользователем. Их все чаще внедряют для совершенно различных целей. Новостные ленты, обработка налоговых деклараций, сохранение файлов – боты становятся удобным интерфейсом взаимодействия c различными сервисами.
В прошлой статье мы рассмотрели, как написать простейшего чат-бота на Python и запустить его на своем компьютере. Сегодня мы рассмотрим, как того, написанного нами бота, разместить на внешнем сервере в сети Интернет.
В качестве места размещения мы будем использовать бесплатный сервис Heroku.
Установка и настройка Git
Для дальнейшей работы нам понадобится установить Git, зарегистрироваться на GitHub и создать репозиторий с именем нашего приложения. В нашем случае это MyFirstTestBot.
Скачать версии Git, соответствующие вашей операционной системе, можно по следующим ссылкам для macOS и для Windows. На Linux Git можно установить, выполнив такую команду:
sudo apt-get install git-all
Далее, желательно использовать виртуальную среду. Если она не установлена, при установке Python вы можете ее установить, выполнив команду:
pip install virtualenv
Создадим новую папку для нашего приложения и связи его с GitHub. В нашем случае это папка PythonApplication1 в корне диска C.
Выполним клонирование репозитория. Для этого находясь в нашей папке в консоли выполним команду, введя ссылку на ваш репозиторий:
git clone https://github.com/your_github_account/your_repository_name
После выполнения этой команды в нашей папке с именем PythonApplication1 мы получили еще одну папку – MyFirstTestBot.
В консоли перейдем в корень диска C и выполним команду:
virtualenv PythonApplication1
Если команда не выполняется, и вы на экране консоли видите «"virtualenv" не является внутренней или внешней командой…» - вам следует настроить системную переменную PATH и добавить в нее адреса расположения вашей папки с Python и подпапки со скриптами (в моем случае C:\Users\B\AppData\Local\Programs\Python\Python37-32\Scripts).
Будем в дальнейшем пользоваться консолью Git, которую мы установили ранее:
После выполнения этого скрипта в нашей папке будет такое содержимое:
Поместим скрипт в папку, полученную в результате выполнения команды git clone (папка MyFirstTestBot). Имя файла с нашим скриптом - mftb.py
Теперь запустим наше виртуальное окружение. Перейдем в консоли в папку C:\PythonApplication1 и выполним команду:
source C:\PythonApplication1\Scripts\activate
Если все сработало нормально – в консоли приглашение командной строки будет начинаться с имени нашей папки (PythonApplication1):
Перейдём в нашу папку репозитория и выполним команду:
pip install requests
Создадим список зависимостей для Heroku, введя команду:
pip freeze > requirements.txt
Обратите внимание – в файле requirements.txt указываются требования к серверу Huroku. Там должно быть приблизительно такое содержимое:
Если вы не продолжаете проект из предыдущей статьи, а создали новый – не забудьте указать все зависимости.
В папке MyFirstTestBot создадим файл с именем Procfile без расширения. В теле этого файла пропишем:
web: python mftb.py
В папке MyFirstTestBot создадим также файл с именем __init__.py без содержимого.
Содержимое нашей папки MyFirstTestBot теперь такое:
Отправим в GitHub репозиторий наш набор изменений. Для этого выполним следующую серию команд, с указанием ссылки на ваш репозиторий:
git init
git add .
git commit -m “first commit – ваше сообщение комментарий к коммиту”
git push -u https://github.com/your_github_account/your_repository_name
Код нашего бота теперь загружен на GitHub и нам остается загрузить его на Heroku, где будет хоститься наш бот.
Рекомендуется ознакомиться с основами работы с Heroku по ссылке. По той же ссылке следует скачать установщик интерфейса командной строки (CLI) от Heroku и запустить его.
После установки CLI зарегистрируемся на Heroku через веб браузер.
Далее подключимся к Heroku через консоль используя команду:
heroku login
Нас попросят подключиться через браузер к сайту Heroku и залогиниться там. Нужно будет ввести ваши данные.
Выполним команду для создания приложения в Heroku:
heroku create
Дальнейшие наши команды отправят наш проект на сервер Heroku и укажут необходимую настройку:
git push heroku master
heroku ps:scale web=1
Последняя команда запустит наше приложение на сервере:
heroku open
Теперь наше предложение установлено и запущено на сервере. Мы можем проверить это, пообщавшись с нашим ботом в Telegram:
Как мы видим – все работает. Если по каким-то причинам бот не запустился, нужно ввести в консоли команду:
heroku logs –tail
И смотреть на коды ошибок на сайте.
Резюме.
В прошлой статье мы с вами посмотрели, как можно создать простого Telegram бота. Теперь мы опубликовали его на удаленном сервере. Наш чатбот работает, и мы можем к нему обращаться, используя привычный мессенджер. Конечно, этот вариант бота далек от идеала, но для учебных целей, как первый проект бота, он подойдет.
Попробуйте создать своего бота с другим набором предопределенных ответов. В дальнейшем вы сможете создавать более продвинутых чатботов, работающих с нейросетями и другими элементам искусственного интеллекта.
Чаще всего востребованные библиотеки для работы ботов сейчас пишут на Python. Именно поэтому мы рассмотрели этот простой пример. Для дальнейшего развития вас как квалифицированного Python разработчика мы рекомендуем ознакомиться с курсом подготовки Python-разработчика на портале ITVDN.