Казка про бэкенде, ruby і rails

Це черговий переклад статті про rails, в цей раз моєї власної. Стаття носить розважальний характер і призначена для людей, не знайомих з бекендом і rails додатками.

Оригінал статті тут і картинки взяті там же.

Всі ми знаємо про прекрасному світі Веба. Кожен день ми повертаємося туди за відповідями або ж просто щоб добре провести час. Проте не кожен знає, як влаштований цей світ одиниці і нуля.

Що ж, цей світ дуже великий і не кожен бачив його край. Зараз він також великий, як наш, на щастя, в ньому немає кордонів і з кожним днем він розширюється. Там з'являються нові держави, можливо ви чули про деяких з них, наприклад PhP або Python, в цих державах з'являються міста (ми їх називаємо програми), а в містах жителі (об'єкти і сутності).

Ласкаво просимо у світ Ruby
Сьогодні я розповім про один з таких держав, можливо ви чули про нього. Це держава називається Ruby. Також, можливо ви чули про його славної династії королів «Rails» зовсім нещодавно в державі на престол зійшов молодий і сильний король Rails V. Про цього короля чули і в інших країнах і брали з нього приклад, можна сказати що в державі Python є свій король Django він дуже схожий на королів династії Rails.

image

Династія Rails створила безліч міст. До речі, ви напевно чули про таких містах як Twitter, Github або Kickstarter, вони теж були засновані у державі Ruby.

Король Rails V славно править своєю державою за заповітом свого батька, а той правив за заповітом його батька. Про це заповіті чули багато хто, можливо і ви теж, це заповіт ще називають (патерн програмування MVC). Трохи про це заповіті.
Кожен місто (додаток) розробляється за однаковою архітектурі і в кожному місті є 3 основних будівлі:

  1. Муніципалітет (Model)
  2. Префектура (Controller)
  3. Площа (View)
Це все. Таке просто заповіт. Але, незважаючи на це, дуже важливе. Давайте з'ясуємо, чому.

image

Ми з вами, як гості міста хочемо побачити всю його красу, тому ми йдемо на Площу(View). Все вірно, з площі можна побачити все місто, а також ви можете потрапити куди завгодно, в будь-який заклад: галерею, контактний центр або просто познайомитися з іншими гостями міста. Однак щоб подивитися картини в галереї або дізнатися номери телефонів з контактного центру або просто переглянути інформацію про інших гостях міста нам потрібно зазирнути в Префектуру (Controller), там нам скажуть чи є у нас право отримати доступ до запитуваної інформації, а якщо є, тоді наш запит буде направлений в Муніципалітет (Model) — місце, де зберігається вся інформація про місто, його мешканців і гостей.

Що стосується Площі (View), то зараз набирає популярність відповідальність за її будівництво покладати на держави спеціалізуються на будівництві площ. Такі держави влаштувалися на континенті 'Мобільного розробки", ви напевно чули про них, це Android і IOS держави.

Префектура (Controller) — дуже корисне місце. Саме співробітники префектури кажуть нам "404 — not found" коли ми намагаємося знайти в місті заклад, якого не існує (наприклад судноплавний порт в місті не має вихід до моря).

Муніципалітет (Model) — це оплот кожного міста, без нього, місто буде порожнім. У місті може бути площу, але без Муніципалітету ви нікого на неї не зустрінете. Тут також можна знайти будь-яку інформацію, про його жителів, закладах, про його гостях і взагалі про все що є в місті. Муніципалітет — частина відповідає за архіви кожного міста.

Міське життя
image

Сьогодні ми відвідаємо дуже молодий і розвивається місто з самим відомим назвою в світі — 'MyApp'. Це місто створений для того, щоб об'єднувати людей з усього світу.

Припустимо, ви вже побували на площі міста MyApp і вирішили, що пора б з ким-небудь познайомитися. Прямуєте в Префектуру (Controller) і запитуєте інформацію про всіх чоловіків які зараз в місті.

Нехай це буде
"GET https://my_app/men"


Адміністратор префектури вам ввічливо відповість що ваш запит направлений в Муніципалітет (Model) і успішно виконаний. Пройде частка секунди і всі ці чоловіки будуть чекати вас на площі.

image

Що ж сталося за цю частку секунди?

Давайте спустимося в архіви муніципалітету і дізнаємося це. Інформація в архівах може зберігається в різному вигляді, вона може лежати на одній полиці, а можемо бути добре відсортована.

Наприклад: інформацію про всіх гостей міста ми покладемо на цю полицю, та інформацію про тих гостях які вже виїхали ми загорнемо в червону папку, а тих які перший раз в нашому місті загорнемо в зелену, а інформацію про чоловіків ми будемо записувати на синьому папері, а про жінок на фіолетового…

Якщо архітектура наших архівів розроблялася фахівцями тоді за цю частку секунди ми дуже просто і швидко знайдемо потрібних нам людей, в іншому випадку наша частка секунди може зрости в жахливі кілька секунд. Розробка такої архітектури одна з основних завдань бекенд-розробника.

image

Припустимо ми зайшли в архів фотографій і вибравши потрібні ми хочемо дізнатися, хто на цих фотографіях зображено. Але що ж робити? Архів «користувачів» знаходиться на іншому кінці муніципалітету. Завдяки правильно написаного коду нам не треба йти туди, ми можемо просто перевернути фотографію і на звороті будуть написані імена всіх, хто на ній зображений. Приблизно так і працюють архіви.

Звичайно, перебуваючи в Префектурі ми не знаємо, що відбувається в муніципалітеті, тим більше ми не дізнаємося цього і на площі. Однак співробітники муніципалітету турбуються про час гостей свого міста і про їх запитах.

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

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

Наведемо ще один приклад з життя міста. Припустимо, ви знаходитесь у місті вже дуже довго і знаєте всіх його жителів, але на жаль не знаєте його гостей, адже місто розширюється і кожен день приходять нові гості. Можливо ви б хотіли кожен новий день знати скільки гостей сьогодні з'явилося. Але ви ж не можете ходити в префектуру так часто і питати про появу нових гостей. Це буде дуже втомлює… Не хвилюйтеся, вам не потрібно цього робити. Там потурбуються про те, щоб кожен день ви отримували поштових голубів в будь-якій точці міста, (а якщо хочете то і в будь-який час дня).

Це все мала частина того, чим займаються співробітники Префектури та Муніципалітету. Завдання бекенд розробника налаштувати роботу в цих адміністративних будівлях, передбачити чого можуть захотіти гості міста або що їм може завадити.

Мораль цієї історії...
image

Підводячи підсумок нашій казці про містоMyApp хочу зазначити що бекенд це невід'ємна основна частина будь-якого веб-програми, з якими ви працюєте в ньому повинні виглядати добре і акуратно, більше того, доступ до них повинен бути швидким і безпечним, і звичайно ж самі дані повинні бути заховані від зловмисників.

Не рахуючи основного завдання, що стоять перед розробником питання розширюваності і гнучкості програми. Ви захотіли додати в ваш додаток реєстрацію через фейсбук коли там вже 1 000 000 користувачів або навпаки видалити її, а може бути сьогодні вам треба вводити новий мова інтерфейсу для вашого додатки, а ви й не думали про це на стадії проектування, при всіх цих умовах додаток повинен працювати також як працювало до кардинальних змін, а іноді навіть краще, саме про це і піклуються бекенд розробники.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.