Что такое фреймворк в программировании
Перейти к содержимому

Что такое фреймворк в программировании

  • автор:

Начинающим программистам: что такое фреймворки и библиотеки

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

Когда человек начинает программировать, он узнаёт про фреймворки и библиотеки. Попробуем на доступных примерах объяснить, что это такое и чем они полезны. Будем использовать аналогию с постройкой дома. Это несколько упрощает реальное положение вещей, зато помогает понять разницу.

Фреймворки

Представьте: вам нужно построить дом. Можно выбрать готовый типовой проект и немного поиграть с планировкой, пока архитектор не против и вы не трогаете капитальные стены. А можно нарисовать план самому и получить именно тот дом, который хотите — даже если вы хотите цилиндрический дом со входом на втором этаже.

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

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

Без фреймворка вам нужно будет обо всём думать самостоятельно. Это даёт больше свободы, но и больше ответственности. Если криво реализована авторизация в базу данных, через эту кривизну код смогут взломать. Если не написали обработку ошибок, программа может не работать. На языке строительства это эквивалент дома без канализации или когда в стенах не предусмотрели дырки под розетки.

  • Bootstrap — создание сайтов с адаптивной вёрсткой. Можно рисовать красивые кнопки, верстать текст во много колонок, включать-выключать блоки в зависимости от ширины экрана, делать выпадающие меню и многое другое
  • Vue.js — обеспечивает единообразие компонентов и модульный подход к разработке. Можно создавать собственные строительные блоки для страницы, делать шаблоны
  • Angular.JS — JavaScript фреймворк от Google для динамических веб-приложений, похож на Vue
  • django — фреймворк для Python, нацеленный на скорость: готовые компоненты для баз данных, рисования страниц, админок, окон входа на сайт, шаблонов и множества других вещей
  • Ruby on Rails — тоже сильно ускоряет разработку сайтов

Вывод: фреймворк даёт стабильность и удобство разработки, но ограничивает программиста своей архитектурой.

Библиотеки

Продолжаем строительную аналогию. Допустим, с домом вы определились, но в нём теперь нужно сделать ремонт и провести электрику. Это можно сделать с помощью молотка, отвёртки, ручной дрели и зубила, а можно взять специальные инструменты — болгарку, перфоратор и шуруповёрт. Специнструменты — это и есть библиотеки. С ними задача решается быстрее, но чтобы ими пользоваться, нужно умение. Если задача простая и с ней действительно можно справиться только с молотком и отвёрткой — отлично, тогда нам не нужны библиотеки и достаточно встроенных средств языка программирования.

Если расширить пример, то с помощью специнструмента можно даже построить дом: бетономешалка вместо ведра с лопатой, кран вместо ручной разгрузки и так далее. Получается, что написать программу можно с помощью фреймворка, а можно с помощью библиотеки. Библиотека тоже следит за тем, чтобы вы сделали как можно меньше ошибок, но нужно чётко знать все команды и правила. В итоге вы полностью контролируете процесс, но упрощаете себе жизнь, используя уже готовые библиотеки.

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

  • TensorFlow для Python, которая погружает вас в мир искуственного интеллекта
  • Almanac Converter — для простой работы с датами и временем
  • WebKit — популярнейшая библиотека для работы с веб-страницами
  • Scribe Java — простая библиотека для авторизации пользователей

Мы сами решаем, как и когда вызывать библиотечные функции и что с ними делать. Библиотека — это просто набор заранее определённых функций, из которых, как из кирпичиков, можно складывать то, что нам нужно. Ещё одно интересное свойство: внутри фреймворка можно использовать другие библиотеки. Например, если вам нужен адаптивный сайт и удобная работа с формами — используйте Bootstrap для адаптива как фреймворк и подключите к нему библиотеку jQuery.

Что теперь

В одной из будущих статей потренируемся на библиотеках и фреймворках. Не переключайтесь и до скорого!

Получите ИТ-профессию

В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.

Что такое фреймворк. Объясняем простыми словами

Фреймворк (англ. framework — «остов, каркас, структура») — готовая модель в IT, заготовка, шаблон для программной платформы, на основе которого можно дописать собственный код.

Проще говоря, фреймворк — это промежуточный вариант по гибкости и сложности между написанием кода с нуля и использованием CMS. Если написание кода с нуля — это рисование любыми инструментами на чистом листе бумаги, а использование CMS — раскраска, то использование framework — это рисование в блокноте в клеточку. С одной стороны, вы всё ещё можете нарисовать что угодно и как угодно. С другой, уже есть направляющие линии и границы блокнота, так что рисовать проще.

Фреймворки «берут на себя» тысячи нюансов, например работу с файловой системой и базами данных, обработку ошибок, защиту программы.

Пример употребления на «Секрете»

«От тестовых заданий мы решили отказаться, собеседование тоже стараемся сократить, сейчас оно длится полчаса, максимум час. Начинаем с технических вопросов из серии «как это работает» — например, спрашиваем про Java или фреймворки. Можем задать вопрос вроде: «Почему именно JavaScript?» Нам важно выяснить, насколько человек заинтересован».

(Сооснователь студии Finch Дмитрий Щипачев — о том, как искать разработчиков.)

Ошибки в употреблении

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

Нюансы

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

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

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

Существенный минус фреймворков — открытый код большинства из них. Это значит, что нужно отдельно решать вопросы безопасности проекта.

Фреймворки дают стабильность и удобство разработки, но ограничивают программистов своей архитектурой.

Что такое фреймворк

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

Что такое фреймворк

Александр Мищенко

Тимлид направления «Контент и методология» в Нетологии

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

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

Фреймворки вначале возникли в сфере программирования, а затем расширили своё применение и вышли за его пределы. Один из примеров фреймворков, широко применяемый как в программировании, так и в управлении проектами, — это Scrum, часть Agile-практик. Scrum представляет собой набор технологий, которые позволяют организовывать встречи и процессы в команде для достижения определённых целей.

Какие бывают фреймворки

Если говорить о программировании, то фреймворков существует огромное количество. Есть веб-фреймворки, такие как Ruby on Rails, Django или FastAPI: предоставляют набор инструментов, библиотек и шаблонов для разработки веб-приложений. Они упрощают создание серверной части приложений и обеспечивают стандартизированный подход к разработке.

С другой стороны, есть фреймворки, которые специально предназначены для разработки фронтенда, такие как React или Vue.js. Их используют немного иначе. В основном фронтенд-фреймворки предоставляют набор инструментов и шаблонов, которые помогают разработчику быстрее и проще создавать интерфейсы пользовательского взаимодействия. Они также обеспечивают стандартизацию разработки, что упрощает совместную работу и переход между разработчиками.

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

Как выглядит фреймворк

Фреймворк можно рассматривать как некую рамку или набор инструментов, которые применяются для выполнения определённой задачи. Чтобы получить представление о фреймворке, нужно обратиться к его документации, где описаны основы работы и порядок выполнения задач.

Чтобы лучше представить, как выглядят фреймворки, можно привести аналогию с постройкой здания. У нас есть два фреймворка — наборы инструментов для строительства жилого дома и гаража. В каждом случае мы начинаем с документации, чтобы понять, какие компоненты нам нужны. Например, в случае с домом нам нужны стены, которые могут быть построены из разных материалов. Аналогично и в программировании: существуют различные фреймворки, и программисты выбирают их в зависимости от того, какие задачи перед ними стоят и что нужно разработать. Это можно рассматривать как список рекомендаций и правил, которые помогают нам создавать приложения.

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

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

Как применяют фреймворки

У нас есть цель, к которой мы стремимся, и инструменты — фреймворки, которыми мы пользуемся. Давайте разберёмся, как используются фреймворки для достижения поставленной цели.

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

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

Представим, что вам нужно выбрать между Django и FastAPI для Python-разработки.

Django — это крупный фреймворк с большим набором функциональности. Django был очень популярен в конце 2000-х годов и в начале 2010-х, и он хорошо подходил для разработки веб-приложений, когда разработчику было необходимо создать сайт с нуля.

Однако с течением времени веб-разработка изменилась, и теперь создание сайтов разделилось на две части — фронтенд и бэкенд. Чтобы обеспечить обмен данными между этими частями, можно сделать более лёгкий и удобный выбор — взять FastAPI.

В чём отличие фреймворка от библиотеки

Когда мы говорим о фреймворках, часто звучит термин «библиотека». Это набор функций, который можно использовать в любом проекте. Библиотека — это готовый код, который можно использовать по мере необходимости. Библиотеки обычно предоставляются в виде независимых компонентов и не накладывают ограничений на архитектуру проекта.

Если представить фреймворк как ящик с инструментами, то библиотека — это набор отвёрток или ключей, которые можно взять и применить в нужном месте в нужное время.

В программировании переиспользование кода является ключевым аспектом — с этим связано примерно 90% работы. Фреймворки и библиотеки помогают в этом. Библиотеки дают готовый код, а фреймворки структурируют готовые библиотеки.

Что такое фреймворк

курс

Старт в программировании

Узнать больше

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

Хотите написать колонку для Нетологии? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.

Что такое фреймворк

Александр Мищенко

Тимлид направления «Контент и методология» в Нетологии

Что такое фреймворки и какие они бывают

Что такое фреймворки и какие они бывают главное изображение

Создавая сайт, разработчики могут писать код с нуля сами: сделать скелет будущей страницы на HTML, стилизовать с помощью CSS. А могут воспользоваться наборами уже готового кода — библиотеками — для создания отдельных элементов сайта вроде блоков с иллюстрациями, текстами.

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

Фреймворк (с английского framework — «каркас, структура») — это набор инструментов, ускоряющих разработку приложений.

Например, фреймворки для фронтенда задают каркас будущего приложения, который состоит из компонентов. Компонент — как кирпичик для строительства веб-сайтов. Это маленькая часть кода, которая, например, добавляет на сайт кнопку или поле для ввода текста. Вы можете комбинировать вместе множество таких компонентов, чтобы создать большое и сложное веб-приложение, как конструктор из деталей LEGO.

Бесплатные курсы по программированию в Хекслете

  • Освойте азы современных языков программирования
  • Изучите работу с Git и командной строкой
  • Выберите себе профессию или улучшите навыки

В чем разница между фреймворком и библиотекой

Фреймворк — это как большая библиотека. Она решает не одну проблему в разработке веб-приложения, а сразу несколько. Например, упрощает верстку и стилизацию с помощью компонентного подхода, упрощает управление данными внутри приложения, предлагает свой способ взаимодействия между клиентом и сервером — то есть решает вообще все основные проблемы.

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

Из чего состоят фреймворки

Большинство фреймворков основано на шаблоне проектирования MVC (Model-View-Controller или модель-представление-контроллер).

Модель (Model) — это место, где хранятся данные вашего приложения. Представим, что мы пришли в музей. Карта музея с описанием, где и в каком зале находится тот или иной экспонат, — это и есть модель.

Представление или отображение (View) определяет взаимодействие с пользователем через модель. Он отвечает за отображение данных, определяет внешний вид проекта — веб-сайтов или приложений. От него зависят возможные действия пользователя: где печатать текст, какие кнопки нажимать.

Представление — это конкретная экспозиция на выставке. Например, на выставке мумий древнего Египта может быть Тутанхамон или Клеопатра. И это не противоречит модели, потому что модель говорит: «Тут есть мумии», а какие именно — зависит от представления.

Контроллер (Controller) отвечает за реакцию двух предыдущих объектов на действия пользователя. Его код и логика проверяют, как сайт обрабатывает запросы и выдает ли правильный результат.

Контроллер — это экскурсовод. Он встречает нас на входе, мы говорим ему, куда хотим идти. Экскурсовод смотрит на модель музея и ведет нас, например, в зал мумий. Трогать ничего не разрешает, куда-то отходить нам самим тоже, а если и идти в другие залы, то только с контроллером-экскурсоводом.

Читайте также:

Какие бывают фреймворки и как их выбирать

Выбор фреймворка зависит от того, какую задачу нам нужно решить. Разберем основные виды фреймворков.

Фронтенд-фреймворки

Фронтенд-фреймворки применяют для разработки внешнего вида и функциональности сайта. Такие фреймворки основаны на JavaScript, HTML или CSS.

Фронтенд-фреймворки помогают решить задачи SEO-оптимизации, верстки, взаимодействия с сервером, управления данными.

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

Бэкенд-фреймворки

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

Бэкенд — это программа, которая находится на сервере. Фронтенд по интернету спрашивает у нее, какие данные отрисовать в блоках на сайте, бэкенд-фреймворк ловит запрос, запрашивает данные из БД через ОРМ (Object-relational mapping) и возвращает клиенту. ОРМ тоже может быть реализована в фреймворке, а может устанавливаться отдельной библиотекой.

Кроссплатформенные фреймворки

Кроссплатформенные фреймворки позволяют разработчикам запускать исходный код на разных операционных системах: macOS, Windows, Linux. Или на платформах: в вебе, десктопе, мобильных устройствах. Примеры: Flutter, React Native, Electron, Unity

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

10 лучших фреймворков и библиотек для веб-разработки

Angular

Где используют: фронтенд

С какими языками работает: TypeScript

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

Angular включает в себя комплект интегрированных библиотек с широким спектром функций. Это, например, маршрутизация — переход от шаблона к шаблону по заданному URL-адресу без перезагрузки страницы. И также взаимодействие клиент-сервер: клиенты и серверы обмениваются информацией в виде «запрос-ответ» — клиент отправляет запрос, а сервер возвращает ответ.

Читайте также:

Nuxt.js

Где используют: фронтенд

С какими языками работает: основной — JavaScript, но также используют с TypeScript

В чем особенность Nuxt.js и для чего его используют: Это современный фреймворк, который предназначен для создания фулстек веб-приложений с помощью библиотеки Vue.

Одной из главных особенностей Nuxt.js является поддержка серверного рендеринга, как в Next.js. Это означает, что приложение может быстро отображаться на экране пользователя. Кроме того, Nuxt.js предоставляет удобные средства для организации кода и управления маршрутами приложения.

Next.js

Где используют: фронтенд

С какими языками работает: JavaScript, TypeScript

В чем особенность Next.js и для чего его используют: Фреймворк используется для создания веб-приложений на основе библиотеки React, которая помогает создавать внешние пользовательские интерфейсы — кнопки, виджеты и другое — с использованием SSR (server side rendering), что улучшает скорость работы сайтов.

У Next.js большое сообщество разработчиков, а его знание требуют во многих вакансиях. На нем уже созданы решения типовых задач, которые регулярно пополняются. А значит можно рассчитывать на его долговечность и улучшение.

Читайте также:

Ember

Где используют: фронтенд

С какими языками работает: JavaScript

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

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

jQuery

Где используют: фронтенд

С какими языками работает: JavaScript

В чем особенность jQuery и для чего его используют: Это простая библиотека с открытым исходным кодом во всех браузерах. Однако все, что умеет jQuery, — выполняет библиотека React и фреймворк Angular, ведь jQuery был создан до них. Сейчас это довольно устаревшая технология, но ее используют для поддержки огромного количества проектов прошлых лет.

jQuery применяют для взаимодействия с DOM-элементами, создания сложной анимации с лаконичным кодом, для работы с AJAX — технологией фоновой загрузки данных. У jQuery также есть готовые функции для асинхронных запросов от веб-приложений.

Читайте также:

Django

Где используют: фронтенд и бэкенд

С какими языками работает: Python

В чем особенность Django и для чего его используют: Фреймворк Django применяют для создания CRM-систем, CMS, коммуникационных платформ, платформ управления документооборотом. На нем также создают практически любые виды сайтов, где контент доставляется в форматах JSON, XML, HTML и RSS.

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

Laravel

Где используют: бэкенд

С какими языками работает: PHP

В чем особенность Laravel и для чего его используют: Это фреймворк для разработки веб-приложений. Laravel довольно простой для изучения, однако это не ограничивает его функциональность. В нем есть интерактивная документация, шаблоны для создания UI и аутентификации пользователей. А еще в него внедрена современная архитектура, включая MVC.

У Laravel удобная маршрутизация. Он позволяет группировать, кэшировать и называть маршруты, определять действия на разные HTTP-запросы. Также он использует пакетный менеджер Composer, благодаря которому можно легко подключать сторонние библиотеки в проект.

Читайте также:

Express.js

Где используют: бэкенд

С какими языками работает: JavaScript

В чем особенность Express.js и для чего его используют: Это фреймворк для создания веб-приложений на языке программирования JavaScript. Он позволяет разработчикам программировать серверные приложения, обрабатывать HTTP-запросы.

Фреймворк используют в связке с Node.js, который облегчает написание веб-приложений и API (это комплекс инструментов и функций для создания приложений). Express.js минималистичен, а в его составе множество подключаемых библиотек.

В Express.js большое разнообразие промежуточных обработчиков (Middleware) запросов — они обрабатывают входящие запросы, проверяют входящие данные на ошибки и выполняют отправку ответов.

Flask

Где используют: бэкенд

С какими языками работает: Python

В чем особенность Flask и для чего его используют: Фреймворк используют для обеспечения всей функциональности бэкенда: управления данными пользователя, аутентификации (проверки подлинности пользователя), взаимодействия с БД через удобный интерфейс ORM. Он обеспечивает базовые возможности маршрутизации запросов и визуализации страниц.

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

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

Читайте также:

Ruby on Rails

Где используют: бэкенд

С какими языками работает: Ruby

В чем особенность Ruby on Rails и для чего его используют: Ruby on Rails (часто сокращенно Rails) — это фреймворк для создания веб-приложений, известный своей простотой, скоростью разработки и активным сообществом разработчиков. Он используется для быстрого создания различных веб-приложений, включая блоги, интернет-магазины и социальные сети.

Как научиться работать с фреймворками

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

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

Изучайте идеи, которые заложены в framework. Например, пользовательский интерфейс в Next.js и Angular делают с помощью компонентов — почитайте о них. Узнайте, как решается проблема общения фронтенда и бэкенда по сети, задача создания и отображения интерфейсов — тогда все фреймворки станут понятнее. Рекомендуем также изучить документацию фреймворков — там много полезной информации о том, как их использовать.

Бесплатные курсы по программированию в Хекслете

  • Освойте азы современных языков программирования
  • Изучите работу с Git и командной строкой
  • Выберите себе профессию или улучшите навыки

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *