0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>27 июл 2020</li>
2
<ul><li>27 июл 2020</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><h2>Библиотеки в программировании: для чего нужны и какими бывают</h2>
4
</ul><h2>Библиотеки в программировании: для чего нужны и какими бывают</h2>
5
<p>Карл Саган сказал: "Если вы хотите испечь яблочный пирог c нуля, вам сначала надо создать Вселенную". У программистов для этого есть библиотеки.</p>
5
<p>Карл Саган сказал: "Если вы хотите испечь яблочный пирог c нуля, вам сначала надо создать Вселенную". У программистов для этого есть библиотеки.</p>
6
<p> vlada_maestro / shutterstock</p>
6
<p> vlada_maestro / shutterstock</p>
7
<p>Пишет о программировании, в свободное время создаёт игры. Мечтает открыть свою студию и выпускать ламповые RPG.</p>
7
<p>Пишет о программировании, в свободное время создаёт игры. Мечтает открыть свою студию и выпускать ламповые RPG.</p>
8
<p>Современные программы слишком сложные, чтобы создавать их с нуля, поэтому разработчики используют библиотеки - так код пишется гораздо быстрее.</p>
8
<p>Современные программы слишком сложные, чтобы создавать их с нуля, поэтому разработчики используют библиотеки - так код пишется гораздо быстрее.</p>
9
<p><strong>Библиотека</strong><em>(англ.</em><strong>library</strong><em>)</em> - это набор готовых функций, классов и объектов для решения каких-то задач.</p>
9
<p><strong>Библиотека</strong><em>(англ.</em><strong>library</strong><em>)</em> - это набор готовых функций, классов и объектов для решения каких-то задач.</p>
10
<p>Мы не пытаемся изобретать велосипед каждый раз, когда нужно поехать в булочную, - просто берём готовый и едем на нём. То же самое и в коде. Программист должен думать о реализации бизнес-логики, а не о том, как работает оборудование или по какому протоколу передаются данные.</p>
10
<p>Мы не пытаемся изобретать велосипед каждый раз, когда нужно поехать в булочную, - просто берём готовый и едем на нём. То же самое и в коде. Программист должен думать о реализации бизнес-логики, а не о том, как работает оборудование или по какому протоколу передаются данные.</p>
11
<p>Например, подключив библиотеку<strong>Requests</strong>в программу на Python, можно с помощью пары строк кода отправить запрос какому-нибудь серверу:</p>
11
<p>Например, подключив библиотеку<strong>Requests</strong>в программу на Python, можно с помощью пары строк кода отправить запрос какому-нибудь серверу:</p>
12
#Подключение библиотеки для отправки запросов import requests url = "Адрес сервера" #Отправляем запрос и помещаем ответ в переменную response response = requests.get(url) #Парсим данные из формата JSON в словарь data = response.json()<p>Разработчику нужно, чтобы программа отправила запрос, - это он и пишет, не задумываясь о том, что под капотом библиотеки тысячи строк кода.</p>
12
#Подключение библиотеки для отправки запросов import requests url = "Адрес сервера" #Отправляем запрос и помещаем ответ в переменную response response = requests.get(url) #Парсим данные из формата JSON в словарь data = response.json()<p>Разработчику нужно, чтобы программа отправила запрос, - это он и пишет, не задумываясь о том, что под капотом библиотеки тысячи строк кода.</p>
13
<p>Чтение или запись файла можно выполнить с помощью пары команд на C#, подключив библиотеку<strong>System.IO</strong>:</p>
13
<p>Чтение или запись файла можно выполнить с помощью пары команд на C#, подключив библиотеку<strong>System.IO</strong>:</p>
14
//Считываем текст из файла и помещаем его в переменную text string text = File.ReadAllText("file.txt"); //Сохраняем новый текст в файл file.txt File.WriteAllText("file.txt", "Some text");<p>При этом не нужно думать о преобразовании текста в байты, работе с файловой системой, потоках и прочем.</p>
14
//Считываем текст из файла и помещаем его в переменную text string text = File.ReadAllText("file.txt"); //Сохраняем новый текст в файл file.txt File.WriteAllText("file.txt", "Some text");<p>При этом не нужно думать о преобразовании текста в байты, работе с файловой системой, потоках и прочем.</p>
15
<p>А с помощью библиотеки<strong>Three.JS</strong>можно отрисовывать 3D-графику в браузере:</p>
15
<p>А с помощью библиотеки<strong>Three.JS</strong>можно отрисовывать 3D-графику в браузере:</p>
16
<p>Программист создаёт или берёт готовые объекты, добавляет свет, шейдеры, прописывает анимацию - и всё, сцена готова. Даже не возьмусь описывать, насколько сложно будет делать это с нуля.</p>
16
<p>Программист создаёт или берёт готовые объекты, добавляет свет, шейдеры, прописывает анимацию - и всё, сцена готова. Даже не возьмусь описывать, насколько сложно будет делать это с нуля.</p>
17
<p>Каждая библиотека предоставляет возможности для решения каких-то конкретных задач:</p>
17
<p>Каждая библиотека предоставляет возможности для решения каких-то конкретных задач:</p>
18
<ul><li>выполнения математических операций;</li>
18
<ul><li>выполнения математических операций;</li>
19
<li>работы с графикой;</li>
19
<li>работы с графикой;</li>
20
<li>работы с файлами;</li>
20
<li>работы с файлами;</li>
21
<li>работы с сетью;</li>
21
<li>работы с сетью;</li>
22
<li>шифрования и так далее.</li>
22
<li>шифрования и так далее.</li>
23
</ul><p>Они могут быть встроены в язык или добавляться отдельно.</p>
23
</ul><p>Они могут быть встроены в язык или добавляться отдельно.</p>
24
<p>Для популярных языков программирования уже написано очень много библиотек. Но чем их больше, тем быстрее появляются новые разработчики и тем быстрее создаются новые библиотеки - этот процесс бесконечен.</p>
24
<p>Для популярных языков программирования уже написано очень много библиотек. Но чем их больше, тем быстрее появляются новые разработчики и тем быстрее создаются новые библиотеки - этот процесс бесконечен.</p>
25
<p>Библиотеки бывают открытыми (англ. FOS, Free and Open Source - бесплатные и с открытым исходным кодом) и коммерческими:</p>
25
<p>Библиотеки бывают открытыми (англ. FOS, Free and Open Source - бесплатные и с открытым исходным кодом) и коммерческими:</p>
26
<ul><li><strong>Открытые</strong>создаются сообществом программистов - здесь каждый может предложить исправления, написать новые функции или сообщить об ошибках.</li>
26
<ul><li><strong>Открытые</strong>создаются сообществом программистов - здесь каждый может предложить исправления, написать новые функции или сообщить об ошибках.</li>
27
<li><strong>Коммерческие</strong>разрабатываются компаниями, в которых есть штат программистов и тестировщиков.</li>
27
<li><strong>Коммерческие</strong>разрабатываются компаниями, в которых есть штат программистов и тестировщиков.</li>
28
</ul><p>Также многие пишут собственные библиотеки и используют их в своих проектах.</p>
28
</ul><p>Также многие пишут собственные библиотеки и используют их в своих проектах.</p>
29
<p>По способу подключения к основной программе библиотеки можно разделить на два типа:</p>
29
<p>По способу подключения к основной программе библиотеки можно разделить на два типа:</p>
30
<ul><li><strong>Динамические</strong>- это файл с машинным кодом, который подключается во время исполнения. Его в любой момент можно заменить на другие. В этом одновременно и плюс - динамическую библиотеку можно обновить почти без труда, и минус - требуется ровно столько же усилий, чтобы заменить ее на что-нибудь вредоносное.</li>
30
<ul><li><strong>Динамические</strong>- это файл с машинным кодом, который подключается во время исполнения. Его в любой момент можно заменить на другие. В этом одновременно и плюс - динамическую библиотеку можно обновить почти без труда, и минус - требуется ровно столько же усилий, чтобы заменить ее на что-нибудь вредоносное.</li>
31
<li><strong>Статические</strong> - это исходный код на языке программы или объектный модуль, который упаковывается в саму программу. Такую библиотеку очень сложно подменить, поэтому, чтобы обновить её, придётся заново компилировать всю программу.</li>
31
<li><strong>Статические</strong> - это исходный код на языке программы или объектный модуль, который упаковывается в саму программу. Такую библиотеку очень сложно подменить, поэтому, чтобы обновить её, придётся заново компилировать всю программу.</li>
32
</ul><p>В интерпретируемых языках всё работает примерно так же. Отличие в том, что вместо машинного кода обычно используется байт-код - он выполняется не процессором, а виртуальной машиной вроде JVM.</p>
32
</ul><p>В интерпретируемых языках всё работает примерно так же. Отличие в том, что вместо машинного кода обычно используется байт-код - он выполняется не процессором, а виртуальной машиной вроде JVM.</p>
33
<p>Новичкам не терпится сразу в бой, поэтому не хочется тратить время ещё и на библиотеки. Но писать проект без них можно только в учебных целях - чтобы понять, как реализуются какие-то функции.</p>
33
<p>Новичкам не терпится сразу в бой, поэтому не хочется тратить время ещё и на библиотеки. Но писать проект без них можно только в учебных целях - чтобы понять, как реализуются какие-то функции.</p>
34
<p>Без библиотек не обойтись - очень важно быстро и регулярно выпускать продукт, чтобы он был конкурентоспособен. Кроме того, библиотеки гораздо безопаснее написанного с нуля кода, потому что над ними трудится много людей, а ещё больше - тестирует при использовании.</p>
34
<p>Без библиотек не обойтись - очень важно быстро и регулярно выпускать продукт, чтобы он был конкурентоспособен. Кроме того, библиотеки гораздо безопаснее написанного с нуля кода, потому что над ними трудится много людей, а ещё больше - тестирует при использовании.</p>
35
<p>Представьте, например, насколько уязвимыми стали бы приложения, если бы каждый разработчик самостоятельно писал функции для шифрования, которые обеспечивают безопасность.</p>
35
<p>Представьте, например, насколько уязвимыми стали бы приложения, если бы каждый разработчик самостоятельно писал функции для шифрования, которые обеспечивают безопасность.</p>
36
<p>Практически весь софт создаётся с использованием библиотек. Если вы не умеете с ними работать, то, скорее всего, просто не сможете найти работу. Даже если вы способны написать всё самостоятельно, компании будет невыгодно вас нанимать: писать без библиотек некачественно, медленно и дорого.</p>
36
<p>Практически весь софт создаётся с использованием библиотек. Если вы не умеете с ними работать, то, скорее всего, просто не сможете найти работу. Даже если вы способны написать всё самостоятельно, компании будет невыгодно вас нанимать: писать без библиотек некачественно, медленно и дорого.</p>
37
<p>Поэтому мы учим наших студентов не только возможностям языка, но и популярным и востребованным современным инструментам.</p>
37
<p>Поэтому мы учим наших студентов не только возможностям языка, но и популярным и востребованным современным инструментам.</p>
38
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
38
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>