Разумевање основа Руби он Раилс-а: ХТТП, МВЦ и Роутес

Након учења вашег првог програмског језика , можете питати шта можете учинити са програмирањем: АИ / машинско учење? Развој хардвера? Мобилне апликације? Или можда желите да започнете развој веб апликација! :)

Овде ћемо разумети основе како функционишу веб, руте и МВЦ архитектура користећи веб оквир Руби он Раилс. Заронимо у веб свет.

Пре него што научим веб развој са Раилс-ом, заиста препоручујем да прво научим о Руби-у .

Како веб функционише?

Интернет има гомилу слојева (апликативни, ТЦП, Интернет, хардверски слојеви) који су сви повезани. Али у основи то функционише путем ХТТП-а ( Хипертект Трансфер Протоцол ).

Хипертект Трансфер Протоцол ( ХТТП ) је протокол апликација за дистрибуиране, колаборацију, хипермедија информационих система. - Википедиа

ХТТП функционише као захтев - одговора циклуса у клијент - сервер модел.

Имамо веб прегледач (на пример, Гоогле Цхроме). Дакле, укуцавамо www.google.comУРЛ, а клијент предаје ХТТП захтев (поруку захтева) серверу . Сервер враћа ХТТП одговор (респонсе поруку - у том случају, одговор је ХТМЛ од Гоогле-сајта).

Клијент не на захтев и добије одговор од сервера . Клијент управља корисничким интерфејсом и корисничким интеракцијама. На серверу можемо да складиштимо и преузимамо податке (у базама података), да обрађујемо логику у позадини (радници / послови) и пуно других ствари.

Ако желите да то дубоко разумете, предложићу неке ресурсе. Велики сам фан Преетијевих постова. Ево низа од 3 дела :

  • Приручник за новопридошле у веб развоју
  • Клијент-сервер модел и структура веб апликације
  • ХТТП & ОСТАЛО

Архитектура МВЦ и Раилс Роутес

Сада када смо разумели како Интернет функционише, проучићемо МВЦ архитектуру и Раилс Роутес.

МВЦ је скраћеница од Модел, Виев и Цонтроллер.

На овој архитектури имамо „ раздвајање проблема “ међу моделима, приказима и контролерима. Сваки део има своју одговорност. Заронимо у сваки део.

Модел

„Одржава везу између објекта и базе података и рукује валидацијом, придруживањем, трансакцијама“

То значи да ће модел одржавати екстремну везу са базом података . Сваки модел (може) представља табелу базе података (у случају СКЛ база података). Овај модел објекта добија могућности (наслеђене из класе АцтивеРецорд - Раилс) за преузимање, чување, уређивање и брисање података из табеле базе података. Објекте модела користимо као слој између наше апликације и базе података.

Поред те везе са базом података, модел може створити валидације и асоцијације између модела.

Поглед

„Презентација података у одређеном формату, покренута одлуком контролора да представи податке.“

Ово је презентација одговора на захтев . Ова презентација може бити у мноштву типова формата: ПДФ, ХТМЛ, ЈСОН итд. Коначни резултат приказа вероватно ће бити корисничко сучеље (УИ) - део „Клијента“.

За већину страница на вебу прикази ће бити у ХТМЛ стилу са ЦСС и ЈС. Али можемо да имплементирамо ПДФ-ове понашања корисника на Травел дигиталном производу да покажемо свим запосленима како и људи користе њихову веб страницу.

Контролер

„Објекат у апликацији који усмерава саобраћај, с једне стране постављајући упит моделима за одређене податке, а с друге стране организујући те податке (претраживање, сортирање) у облик који одговара потребама датог приказа.“

Контролор је „Маестро“. Брине о току: користи моделе за израду упита, рашчлањивање података и доношење одлука у којем формату ћете податке представити.

МВЦ & Роутес циклус у апликацији Раилс

Па замислите да радимо у Травел Стартуп-у. Део производа је представљање листе сјајних чланака о путописним причама и савета путницима.

Само мислите из перспективе путника. Одете www.worldpackers.com/articlesи видите прелепу страницу која садржи гомилу сјајних чланака.

Када у прегледач унесете ову УРЛ адресу, он упућује захтев серверу. На серверу имамо веб апликацију Раилс. Рутер за шине проверава да ли постоји унос који се подудара са траженом УРЛ адресом.

Само треба да конфигуришемо руте за ову линију:

Ово ће створити РЕСТфул руте за чланке. Ако покренемо bundle exec rake routes, приказаће се листа креираних путања.

ХТТП глагол може бити GET, POST, PATCH, PUT, или DELETE. И знамо како Раилс мапира сваку PATHудесно controllerи action. Прочитајте више овде.

У нашем случају, сервер ће добити /articlesпутању и GETкао ХТТП глагол. Мапираће се ArticlesControllerи indexделовати.

У контролеруArticlesController користимо моделArticle да бисмо добили све чланке у бази података и приказали приказindex.html.erb као одговор сервера (УИ).

Према договору, овај контролер ће приказати приказ у views/articles/index.html.erb. У основи, то је обична ХТМЛ датотека коју покреће Руби.

Циклус Раилс захтев-одговор један је од првих концепата које треба да разумете када започнете учење веб развоја.

Корисник ради ствари (захтев серверу), апликација Раилс има рутер за мапирање путање УРЛ-а у десни контролер. У контролеру можемо све радити са моделом (или више њих) - што значи добијање, чување, уређивање, брисање података - и приказивање приказа кориснику.

То је све!

Овде смо много научили. Надам се да ћете ценити садржај и научити више о томе како МВЦ архитектура и рутирање раде на Раилс-у.

Ово је још један корак напред на мом путу ка учењу и савладавању шина и развоју веб страница. Документацију мог комплетног путовања можете видети овде у мојој публикацији Ренаиссанце Девелопер .

Ако желите комплетан курс за Руби анд Раилс, научите вештине стварног кодирања и градите пројекте, испробајте Једномјесечни Руби Боотцампи Раилс Боотцамп . Видимо се ☺

Забавите се и наставите да учите и кодирате.

Мој Твиттер и Гитхуб. ☺