Чем отличается фреймворк от библиотеки

Обновлено: 06.07.2024

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

Ниже представлен мой джентельменский набор Java-библиотек/фреймворков (иногда используются куски переводов базовых технических объяснений).

Чем отличается фреймворк от библиотеки

Фреймворки Java — по сути, блоки предварительно написанного кода, в которые программист может добавлять свой код для решения конкретных проблем. Это каркас программной системы (или подсистемы). Он может включать:

  • вспомогательные программы;
  • библиотеки кода;
  • язык сценариев;
  • другое ПО, облегчающее разработку и объединение разных компонентов большого программного проекта.

Обычно объединение происходит за счёт использования единого API. Фреймворки Java сокращают объём написания кода с нуля, который программистам приходится делать, чтобы найти решение.

Библиотеки — это код, предназначенный для решения конкретной проблемы.

4–5 декабря, Онлайн, Беcплатно

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

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

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

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

Мой топ-10 фреймворков и библиотек Java

1. Spring Framework

Spring Framework — одна из самых мощных и широко используемых платформ Java. Благодаря своей концепции внедрения зависимостей и особенностям аспектно-ориентированного программирования Spring покорила мир разработки.

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

Spring чаще всего используют в разработке веб-приложений. Его применяет ряд технологических гигантов, включая Netflix и Amazon. Главное преимущество фреймворка заключается в том, что он чрезвычайно лёгкий и не требует вызова веб-сервера. С точки зрения эффективности это одна из самых популярных платформ Java. Spring чрезвычайно прост и, как правило, может использоваться даже новичками. Он также обеспечивает обратную совместимость и возможность тестирования.

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

Основные концепции

Внедрение зависимостей (DI) (инверсия управления) — в этом принципе вместо того чтобы последовательно брать управление потоком приложение передаёт управление внешнему контроллеру, который управляет потоком. Внешний контроллер — это события. Когда происходит какое-то событие, поток приложения продолжается. Это придаёт гибкость приложению. В Spring IoC выполняется с помощью DI, которые бывают трёх типов — внедрение установщика, внедрение метода и внедрение конструктора.

В Spring объекты называются bean-компонентами. Существует BeanFactory, которая управляет и настраивает эти bean-компоненты. Вы можете думать о BeanFactory как о контейнере, который создаёт экземпляры.

Большинство приложений используют XML (beans.xml) для конфигурации. ApplicationContext, который является надмножеством BeanFactory, используется для более сложных приложений, которым требуется распространение событий, декларативные механизмы и интеграция с аспектно-ориентированными функциями Spring.

2. Hibernate

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

Возможность выполнять операции с базой данных объектов в Java является проблемой, когда дело доходит до большинства других фреймворков. Но Hibernate очень эффективно решает эту проблему. Он используется рядом крупных компаний, включая IBM, Oracle и Accenture из-за его преимуществ в переносимости. Его можно использовать бесплатно, исходный код полностью открыт.

Хотя Hibernate не является фреймворком полного стека, он полностью изменил наш взгляд на базу данных. Как и SQL, запросы в Hibernate называются HQL (Hibernate Query Language).

Hibernate напрямую сопоставляет классы Java с соответствующими таблицами базы данных и наоборот. Основным файлом в спящем режиме является файл hibernate.cfg.xml, который содержит информацию о сопоставлении классов Java с конфигурацией базы данных.

Hibernate решает две основные проблемы с JDBC — JDBC не поддерживает отношения на уровне объектов, и если вы когда-нибудь решите перейти на другую базу данных, старые запросы могут не работать, что означает много изменений, то есть время и деньги.

Hibernate предоставляет уровень абстракции, так что код слабо связан с базой данных. Такие вещи, как установление соединения с базой данных, выполнение операций CRUD берёт на себя Hibernate. Поэтому разработчикам не нужно это реализовывать, что делает код независимым от используемой базы данных.

  • полностью открыт;
  • уменьшает избыточность через JDBC API;
  • повышает производительность и удобство обслуживания;
  • поддерживает API-интерфейсы Persistence;
  • обеспечивает связь между приложением и любой базой данных.

3. Vaadin

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

Данные могут быть связаны с использованием как MVC, так и MVP через платформу Vaadin. Он поставляется со встроенной поддержкой инфраструктуры Spring, а также поддерживает языки JVM, такие как Scala и Kotlin. Он также имеет поддержку WebSocket, которая обеспечивает автоматическую связь между сервером и клиентом. Как Java, так и HTML можно использовать для построения представлений во фреймворке Vaadin. Он имеет интуитивно понятный пользовательский интерфейс с поддержкой взаимодействий перетаскивания, что значительно упрощает весь процесс веб-разработки для программистов любого уровня подготовки.

Vaadin — это флагманский продукт, а также платформа, на которой разработчики могут выполнять реализацию веб-интерфейса HTML5 с использованием Java. Это платформа с открытым исходным кодом, которая включает в себя веб-фреймворк Java и набор веб-компонентов, а также средства запуска приложений и инструменты. Эти веб-компоненты составляют ядро ​​Vaadin и могут быть настроены для получения высокопроизводительного и универсального кода для настольных и мобильных приложений.

Vaadin Flow — это фактическая часть инфраструктуры Java-платформы Vaadin, которая заботится о взаимодействии клиент-сервер, а также о маршрутизации. С помощью Vaadin Flow вы можете полностью написать веб-приложение на Java без суеты JS или CSS. Компоненты пользовательского интерфейса заботятся о действиях пользователя в браузере, используя автоматическую связь с браузером и сервером. Вы можете легко интегрировать компоненты Vaadin в любую IDE, которую используете, плюс это кроссплатформенный фреймворк, поэтому не нужно беспокоиться о переносе кода на другую платформу.

4. gRPC

gRPC — это абстрактная спецификация. Она описывает абстрактную RPC (remote procedure call), то есть удалённый вызов процедуры, которая обладает определёнными свойствами.

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

5. Play

Play — это среда Java, предназначенная для веба и мобильных приложений. Основное применение — в приложениях, требующих большого масштабирования. Платформа также совместима с рядом языков помимо Java, такими как Python и Ruby. Play не основан на корпоративных стандартах Java. Обычно он используется для веб-приложений на основе создания контента, а также для приложений Scala.

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

  • высокая производительность за счёт асинхронной обработки;
  • без контейнера, без состояний и построенный на реактивных принципах;
  • использует статически типизированный язык, поэтому большинство ошибок обнаруживается во время компиляции, что позволяет избежать множества ошибок на ранних этапах жизненного цикла разработки;
  • Scala исследует истинное ООП вместе с некоторыми концепциями функционального программирования. Его совместимость с Java делает систему отличной и мощной;
  • вместе с Play2 была выпущена новая мощная система сборки sbt, которая упрощает интеграцию с проектами Maven, а также создание простых файлов JAR;
  • встроены обширные библиотеки доступа к реляционным базам данных для общих функций.

Play написан с использованием языка программирования Scala. Предлагает разработку веб-приложений и мобильных приложений. Он следует архитектуре MVC. Play скомпилирован в Java bytecode, и это делает его одним из самых мощных фреймворков.

Некоторые преимущества использования Play Framework:

6. MapStruct

Совсем недавно в поле моего зрения попала библиотека MapStruct, которая изменила мой мир. Я всегда не очень любил писать builder или свой метод для перекладывания значений из entity в ДТО. Для тех, кто так же, как и я, не любит писать этот шаблонный код, приходит на помощь MapStruct. Эта библиотека генерирует код, который будет автоматически мапить один класс в другой. Это невероятно ускоряет разработку и тестирование кода.

7. Lombok

Эта библиотека предназначена для генерации кода. Она способна генерировать код для достаточно популярных use-cases. Стоит лишь поставить необходимые аннотации.

Достаточно спорная библиотека. Кто-то её любит, кто-то ненавидит, но никого она не оставляет равнодушным.

8. Apache POI

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

9. Liquibase/ FlyWay

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

10. Testcontainers

Просто невероятная по своей мощности библиотека, которая позволяет запускать контейнеры в Docker для тестирования. У меня она нашла применение в интеграционных тестах. Есть возможность поднять настоящую базу данных с использованием миграций FlyWay/Liquibase и проверить полный флоу работы системы. Тест-контейнеры можно кастомизировать, а также писать свои.

Подведение итогов

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

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

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

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

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

Так в чём на самом деле разница между фрэймворком, библиотекой и API? Есть мнение, что всё это близкие понятия, везде есть классы и методы которые можно встроить в клиентский код. И всё же, похоже есть существенные отличия?

110k 24 24 золотых знака 98 98 серебряных знаков 262 262 бронзовых знака


2,727 3 3 золотых знака 21 21 серебряный знак 37 37 бронзовых знаков Метафорически — библиотека — это часть приложения. Фрэймворк — это скелет, API – внешние части указанного приложения. Фрэймворк, ко всему прочему, в отличии от API использует инверсию управления.

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

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

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

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

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

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

Фреймворк или библиотека

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

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

Это уже можно назвать простой библиотекой.

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

IKEA или строительная компания?

Но все же разница есть. Подумайте о вашей программе как о доме, в котором собираетесь жить.

Можно строить его самому, а когда дело дойдет до мебели, съездить в IKEA, чтобы выбрать то, что вам подходит. Другими словами, вы покупаете стол и вносите его в свой дом. Именно вы полностью контролируете ситуацию.

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

Техническое различие

Технически библиотека отличается от фреймворка тем, что называется инверсией управления.

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

Фреймворк же сам отвечает за поток. Он предоставляет несколько мест для размещения вашего кода, но вызываться его или нет – решает он сам.

Библиотека vs фреймворк

jQuery

Здесь мы сами решаем, когда и где вызвать метод библиотеки. Это вовсе не значит, что функции jQuery не требуют определенных входных данных для работы. Суть в том, что jQuery – это библиотека таких функций. Их можно использовать или не использовать. Мы тут главные.

Vue.js

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

Именно наличие инверсии управления – основная разница между библиотекой и фреймворком.

Упрямцы

Очень часто фреймворки и библиотеки характеризуют как «упрямые» (opinionated) или «не упрямые» (un-opinionated). Эта оценка основывается на уровне свободы, который имеет разработчик при структурировании кода.

Конечно, это очень субъективный критерий. Фреймворки «упрямы» по определению – инверсия контроля требует от программиста ряда уступок при проектировании приложения. Степень «упрямства» может быть разной для каждого разработчика.

Примером очень «упрямого» фреймворка может служить Angular, а вот Vue.js считается очень свободным.

Теперь вы знаете, что:

  • Фреймворки и библиотеки — это код, написанный кем-то другим, который решает некоторые общие задачи, не утруждая вас реализацией этого решения.
  • Фреймворк инвертирует управление программой и говорит программисту, что ему нужно.
  • Библиотека не вмешивается в поток программы. Ее методы можно вызывать только тогда, когда они нужны.
  • «Упрямство» фреймворка или библиотеки определяется степенью свободы разработчика.

А какой подход ближе вам? С чем приходится работать чаще – с фреймворками или библиотеками? Делитесь в комментариях.

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

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

В чем разница между фреймворком и библиотекой?
Основное различие заключается в вопросе о том, кто контролирует определенные ключевые действия в процессе создания программного обеспечения (и когда программное обеспечение фактически работает).
Например, когда разработчик использует функцию из библиотеки, он контролирует – другими словами, код разработчика полностью контролирует последовательность событий. Однако в случае фреймворка направление управления инвертируется (это называется инверсией управления), поскольку фреймворк управляет разработчиком – в данном случае фреймворк управляет кодом разработчика. В каком-то смысле фреймворк работает так же, как и так называемый голливудский принцип: "Не звони нам, мы тебе позвоним".

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

Что такое библиотеки в кодировании?
Библиотека - это набор функций, к которым разработчик может получить доступ. Библиотека обычно организована в так называемые "классы". Вся идея такой библиотеки заключается в том, что она содержит код, который можно повторно использовать для определенной цели в определенном домене. Таким образом, библиотека упрощает конкретные задачи, предоставляя набор общих функциональных возможностей. Затем они готовы к использованию в программном обеспечении. Например, большинство языков программирования предоставляют библиотеки для функциональных возможностей, таких как форматирование строки или ведение журнала исключений, которые могут возникнуть. Используя соответствующие библиотеки, разработчики могут сократить объем кода, который им необходимо написать. В то же время хорошо известные библиотеки имеют хорошую документацию и были протестированы. Поэтому в большинстве случаев IT специалистам лучше пользоваться библиотекой, а не тратить время и силы на написание, тестирование и документирование собственного кода.

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

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


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

Вопрос: Могут ли программисты кодировать приложение без библиотеки или фреймворка, но используя только свой собственный код, написанный с нуля?
Ответ: Да, они могут, но это всегда займет больше времени.

Вопрос: Могут ли программисты кодировать приложение, используя фреймворк плюс какой-то свой собственный код?
Ответ: Да, они могут.

Вопрос: Могут ли программисты программировать приложение, используя либо одну библиотеку (или несколько библиотек), либо часть своего собственного кода?
Ответ: Да, они могут.

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

Вопрос: Могут ли программисты кодировать приложение, используя фреймворк плюс одну библиотеку (или несколько библиотек) плюс свой собственный код?
Ответ: Да, они могут. Если команда разработчиков уже знакома с фреймворком и соответствующими библиотеками, и конкретный фреймворк хорошо подходит для той области, в которой будет работать новое программное обеспечение, то такой подход, скорее всего, будет наиболее эффективным и действенным. Это означает, что при подборе персонала вы ищете разработчиков, которые уже знакомы с фреймворками и библиотеками, используемыми вашей командой в данный момент.

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

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

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

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

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