HTML Diff
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>