13 библиотек С++, о которых нужно знать | Школа программирования ProgTips | Яндекс Дзен

Помимо стандартной библиотеки, содержащей основные модули языка С++, разработаны десятки, а то и сотни дополнительных библиотек. Каждая из этих библиотек содержит программы и подпрограммы, производящие ряд действий.

История[править | править код]

В ранних языках программирования (таких как Фортран, Алгол, Кобол, Бейсик) функциональность, не связанная непосредственно с языком, но необходимая для создания большинства реальных программ, включалась непосредственно в язык и нередко реализовывалась непосредственно на уровне транслятора или среды исполнения (для интерпретируемых языков). К числу таких функций относились прежде всего те, которые было невозможно, неудобно или неэффективно реализовывать средствами самого языка программирования: команды ввода-вывода, вычисление стандартных математических и логических функций, специфические операции с некоторыми типами данных, работа с внешними устройствами, с «сырой» памятью, взаимодействие с операционной системой и прочее. Такой подход имел недостатки: компилятор оказывался привязан не только к архитектуре компьютера, которая статична и меняется не так часто, но и к его программной среде, в первую очередь — к операционной системе, которая может меняться гораздо чаще.

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

В некоторых случаях стандартная библиотека описывается непосредственно в стандарте языка (Python, Perl, Java), в некоторых — отдельными стандартами (Си), иногда она определяется исходя из практического наличия функций в реализациях языка (Basic, Pascal).

6.18. Что такое библиотеки стандартных подпрограмм?

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

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

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

Веб-разработка

V8

13 библиотек С++, о которых нужно знать

Если Вам нужен удобный инструмент для работы с JavaScript, V8 подойдёт идеально.

Свои функции V8 реализует, используя специальные классы, написанные на с++ и объявленные в namespace V8. Работать с джава скрипт — структурами можно через привычную оболочку с++.

Схема взаимодействия объектов с++ и V8 реализована посредством использования  v8::Handle (template-классов).

Установка V8 обычно не занимает много времени, а польза для тех, кому периодически приходится работать с JavaScript’ом, неоценима.

Кроме того, о библиотеках, с помощью которых могут взаимодействовать C++ и JavaScript очень любят спрашивать на собеседованиях. Поэтому даже, если вы не собираетесь работать с js , с V8 или другими подобными библиотеками лучше познакомиться.

WebKit

13 библиотек С++, о которых нужно знать

Так или иначе, почти все разработчики на разных этапах сталкиваются с необходимостью отображать web – элементы. Чтобы всё выглядело красиво и в коде, и в конечном отображении, а выполнение этой задачи не отнимало слишком много времени и сил, существует библиотека WebKit.

Некоторые программисты называют WebKit «чёрным ящиком», органично перерабатывающим html, css и JavaScript в полноценные веб-страницы.

Awesomium

13 библиотек С++, о которых нужно знать

Awesomium — это библиотека для интеграции браузера (на базе Chromium) в своё приложение. Библиотека имеет 2 режима работы: Offscreen и Windowed.

В режиме Offscreen отрисовка  и работа скриптов на экране не отображается.

В режиме Windowed средствами библиотеки эффективно выполняется отрисовка в «окне приписки» и обработка активности мыши и клавиатуры.

Awesomium активно применяется в десятках разных приложений. Описаны случаи интеграции этой библиотеки в 3D игры.

Существенный минус – отсутствие активного сообщества, способного познакомить новичка с библиотекой, ответить на вопросы и исправить ошибки. А документация, доступная для работы с Awesomium на с++, даёт довольно смутное представление о принципах работы библиотеки.

Тем не менее, Awesomium остаётся очень удобным инструментом, завоевавшим признание сотен разработчиков по всему миру.

19. Пакеты прикладных программ.

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

В зависимости отхарактера решаемых задач различаютследующие разновидности ППП:

  • пакеты для решения типовых инженерных, планово-экономических, общенаучных задач;

  • пакеты системных программ;

  • пакеты для обеспечения систем автоматизированного проектирования и систем автоматизации научных исследований;

  • пакеты педагогических программных средств и другие.

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

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

Частопакеты прикладных программ дополняются базами данных для хранения данных ипередачи их прикладным программам.

Типовые подходы к проектированию[править | править код]

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

  • Первый — стандартная библиотека должна содержать в себе только те процедуры и функции, которые используются практически всеми и обладают максимальной универсальностью. В частности, этой позиции придерживается Бьёрн Страуструп, автор языка C++[1]. Одним из оснований этой концепции является простое соображение: чем более специфична предоставляемая библиотекой функциональность, тем труднее реализовать её так, чтобы она в полной мере удовлетворяла требованиям каждого конкретного случая; если библиотечная реализация не будет универсальной и эффективной во всех вариантах применения, то для большинства реальных задач она окажется неподходящей, следовательно — бесполезной.
  • Второй — стандартная библиотека должна содержать в себе максимально возможное количество типичных алгоритмов, обеспечивать простую работу с большинством (в идеале, со всеми) объектами, с которыми может взаимодействовать программа. Одним из примеров реализации этого подхода является язык Python с девизом «Batteries included» (батарейки в комплекте)[2]. Доводом в пользу этого подхода является представление, согласно которому скорость написания программ и их корректность в большинстве случаев важнее эффективности (по крайней мере, для большинства прикладных программ), поэтому лучше всего предоставить программисту максимум готовых, тщательно проверенных механизмов, которые он сможет использовать, чтобы программирование «вручную» было необходимо только для действительно нетривиальных алгоритмов; это сэкономит время и убережёт программиста от технических ошибок в написании того, что уже было реализовано.

Работа с сервером

Libcurl

13 библиотек С++, о которых нужно знать

Хотите упростить взаимодействие с сервером? – используйте Libcurl.

Libcurl помогает передавать данные (изображения, файлы и пр.) приложениям. Libcurl поддерживает 13 основных протоколов FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, LDAP, а также POP3, IMAP и SMTP.

Изначально cUrl предназначался для использования на языке С. Сейчас для работы с Libcurl разработаны модули интеграции к 30 языкам программирования. Что говорит о высокой популярности библиотеки в среде разработчиков. На это же указывает высокий рейтинг продукта.  

20. Интегрированные пакеты программ.

Интегрированные пакеты представляют собой набор нескольких программных продуктов, объединенных в единый удобный инструмент. Наиболее развитые из них включают в себя текстовый редактор, органайзер, электронную таблицу, СУБД, средства поддержки электронной почты, программу создания презентационной графики.

Результаты,полученные отдельными подпрограммами,могут быть объединены в один окончательныйдокумент, содержащий табличный,графический и текстовый материал.

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

Наиболееизвестный интегрированный пакет:MicrosoftOffice.В этот мощный профессиональный пакетвошли такие программы, как текстовыйредактор Word, электроннаятаблица Excel,программа создания презентацийPowerPoint,СУБД Access,программа для электронной почты Outlook.Все части этого пакета представляютсобой единое целое, что облегчает ихосвоение и использование.

Сжатие данных

Библиотек для сжатия данных довольно много, одна из самых удобных и популярных

Zlib

13 библиотек С++, о которых нужно знать

Сжатие любых объёмов данных (даже превышающих объём памяти) с помощью zlib проводится предельно легко.

Zlib написана на языке С и применяется в тысячах проектов. Использование некоторых других библиотек невозможно без использования zlib. Примером такой библиотеки является основная  библиотека для работы с растровой графикой в формате .png  — libpng.

Работа с изображениями

Libpng иlibjpg

13 библиотек С++, о которых нужно знать

Libpng, написанная на C с использованием ассемблера, предназначена для работы с изображениями в формате .png.

Для работы с изображениями в формате .jpg существует библиотека  libjpg (также написанная на С с использованием Ассемблера)

13 библиотек С++, о которых нужно знать

Обе библиотеки имеют подробные инструкции и множество примеров использования как в С, так и в С++.

Реализация в синтаксисе языка[править | править код]

В некоторых языках функции ввода-вывода являются частью синтаксиса самого языка (например, Basic, Pascal, Python) и не могут быть воспроизведены как самостоятельные функции (процедуры). С одной стороны, это позволяет создавать более гибкий синтаксис для операторов вывода (например, оператор вывода на экран writeln в Pascal существенно проще по синтаксису чем функция printf в стандартной библиотеке языка Си), с другой стороны, это усложняет синтаксис языка и затрудняет использование компилятора языка для создания программ не использующих эти возможности (например, в встраиваемых компьютерах).

21. Органайзеры

Органайзеры — это специальные программы, так называемые электронные секретари.

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

Работа сPDF

Периодически возникает необходимость конвертировать файлы в формат pdf. Для этого процесса разработана динамическая библиотека DynaPDF.

DynaPDF

13 библиотек С++, о которых нужно знать

DynaPDF – удобный гибкий инструмент. Формат .dll хотя и открывает достаточно широкие возможности, периодически становится причиной возникновения ошибок.

Для успешного устранения ошибок в сети есть много пошаговых инструкций.

Используется для программирования на языках C/C++, C#, Delphi, Lazarus, PHP, VB, VBA, and VB .Net.

Ссылки[править | править код]

  1. Bjarne Stroustrup. The C++ Programming Language. 3rd Ed. Addison-Wesley, 1997
  2. Guido van Rossum. Python Tutorial

Работа с базами данных

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

Libpq

13 библиотек С++, о которых нужно знать

Libpq – удобная библиотека для взаимодействия С и PosgreSQL. Благодаря ей из кода С можно вносить изменения в базу данных, добавлять и безвозвратно удалять данные, создавать и удалять таблицы.

Существуют вариации libpq для C++, Python’a, Perl’a, Tcl, ECPG.

См. также[править | править код]

  • Язык программирования
  • Библиотека в программировании
  • Компоновка

Отладка и тестирование

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

Check

Библиотека Check предназначена для модульного тестирования всех возможностей программ, написанных на языке С. Существенным плюсом использования Check’а служит возможность запуска тестов в отдельных процессах для более точной диагностики причин возникновения ошибок, снижения скорости и т.п

Для модульного тестирования на языке С++ используется Google C++ Testing Framework (Google Test).

Pcap

13 библиотек С++, о которых нужно знать

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

Pcap предназначена для работы с С и С++. Существуют обёртки, делающие эту библиотеку доступной для работы на других языках программирования.

Ещё Вам может пригодиться…

Libusb

13 библиотек С++, о которых нужно знать

Libusb — это библиотека, которая позволяет обмениваться данными с USB-устройствами прямо из кода программы.

В библиотеке поддерживаются все типы передачи (управление / объем / прерывание / изохронность). Важный элемент библиотеки – журнал сообщений. Он помогает правильно расшифровать коды ошибок, поступающие от USB- устройств.

Предназначена для работы с С. Для других языков программирования разработаны обёртки. Для С++ —  Libusbpp

ZBar

13 библиотек С++, о которых нужно знать

Библиотека ZBar предназначена для распознавания штрихкодов из изображений.

ZBar имеет предельно простую и логичную документацию без «тёмной магии» и необъяснимых функций.

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

Заключение

Большинство описанных библиотек работают и под Windows, и под Linux, и под macOS, и под BSD. Разработчики библиотек предоставляют подробную техническую документацию, а комьюнити готово поделиться пошаговыми инструкциями по установке и ответить на любые рабочие вопросы.

Умение работать с библиотеками – важный навык для любого программиста. Это своеобразный показатель его профессионального уровня и понимания процесса разработки.

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

Не бойтесь новых задач – ищите их решение.

Пишите код, тестируйте и оттачивайте его до блеска. А команда progtips.ru всегда придёт Вам на помощь!

Можно ли стать программистом за год с нуля?

Читайте в моей бесплатной мини-книге «Путь в программисты».Скачать её можно здесь.

Рейтинг
( 1 оценка, среднее 5 из 5 )
Загрузка ...