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

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

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

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

Фреймворки

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

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

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

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

При­ме­ры фрейм­вор­ков:

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

Библиотеки

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

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

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

При­ме­ры биб­лио­тек:

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

Что теперь

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

Ещё по теме