Django або Ruby on Rails: який фреймворк вибрати?


Дізнайтесь більше про нові кар'єрні можливості в EchoUA. Цікаві проекти, ринкова оплата, гарний колектив. Надсилайте резюме та приєднуйтеся до нас.

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

Змія або коштовний камінь

Основні відмінності між фреймворками полягають у підході до мови, філософії та мовах програмування, які вони використовують. Філософія Python: “Є тільки один очевидний спосіб розв’язання задачі”, – суперечить гнучкості, свободі й силі вибору Ruby.

Більшість новачків починають програмувати на Python. Перший погляд на код Python подобається тим, хто не ознайомлений з мовою. Його синтаксис просто ідеальний: немає крапок з комою, дивних спеціальних символів або ключових слів. Якщо Ви ще не програмували на Python – спробуйте, не розчаруєтеся. Код на Python виглядатиме таким чином:

>>> django_apps =['Pinterest', 'Instagram', 'Mozilla Firefox', 'National Geographic', 'The Washington Post']>>>>>> for app in django _apps:... print (app)

Синтаксис Python робить його відповідним для більшості проектів. Читаність коду також спрощує залучення новачків до команди розробників.

Python також підходить для прототипування. Ви можете реалізувати нову ідею, використовуючи Python. Якщо ідея здійсненна і Ваш додаток вимагає високої продуктивності, ідея може бути повторно реалізована на високопродуктивній мові програмування типу C++.

Прим. перекл. Якщо Ви захочете розпочати вивчення Python, то радимо звернути увагу на наші навчальні матеріали з цієї мови.

Ruby особлива, її можна назвати екзотичною і витонченою. Недивно, що ця мова була винайдена японцями. У її рядках є щось виняткове, що викликає інтерес. І хоча код не такий читаний, як на Python, синтаксис як і раніше, дуже простий для розуміння і вивчення. Код на цій унікальній мові виглядатиме так:

ror_apps =['Twitter', 'GitHub', 'Airbnb', 'Groupon', 'Shopify', 'SoundCloud']for app in ror_apps if app == 'Twitter' || app == 'SoundCloud' next end puts append

У Ruby все є об’єктами. Кожен тип даних відноситься до певного класу зі вбудованими методами. Те саме відноситься до Python. Іншою популярною особливістю Ruby є “блоки”. Використовуючи їх, Ви можете змінити будь-який метод (навіть вбудований).

Особливості фреймворків

Ruby on Rails і Django – це веб-фреймворки для реалізації схеми Model-View-Controller. Цей шаблон поділяє проблеми розробки на три блоки. От як це працює:

Інакше кажучи, всі три компоненти шаблону MVC – це просто класи з методами. Припустимо, що ми створили простий блог:

  • Model представляє бази даних: профілі користувачів, коментарі, повідомлення і так далі;
  • View переносить дані в шаблон HTML і відправляє їх в Controller;
  • Controller сполучає Model і View, обробляє користувацькі запити і відправляє відповіді назад у веб-браузер.

У Django ім’я шаблону трохи відрізняється і може збентежити спочатку. Це той самий MVC, але View називається Template, а Controller називається View. Таким чином, ми отримуємо MTV.

Розташування файлів

Ruby on Rails і Django по-різному упорядковують файли всередині проекту. Уявіть, що у нас є веб-додаток Rails з ім’ям my_taxi. Коли розробник додає новий компонент, наприклад, “рахунки” або ” платежі”, він повинен перейти в спеціальне місце:

Django використовує окремі додатки для кожного компонента. Додаток містить власні класи моделей, представлень і шаблонів. Це дуже зручно, якщо Ваш проект швидко розвивається:

Продуктивність

І Ruby on Rails, і Django мають так звані “чарівні”, готові рішення. Проте магія RoR набагато перевершує все інше.

Коли розробник Rails створює контроллер, його методи можуть автоматично звертатися до змінних і наслідувати методи іншого класу. Ні ці класи, ні змінні не визначені явно. Ruby on Rails просто додає їх автоматично, так само встановлює маршрути всередині MVC.

Розробник Django, навпаки, повинен явно визначати змінні й класи імпорту. Вони повинні використати регулярні вирази (щось подібне до ^[A - Z]+[a - zg]$) для визначення маршрутів і URL-адрес. Розробники Django повинні повністю зрозуміти, як все працює всередині, щоб налаштувати код.

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

Продуктивність

Обидва фреймворка ґрунтуються на скриптових мовах, що інтерпретуються. Це приводить до майже однакової продуктивності. Ранні версії Ruby, такі як 1.8 або 1.9.x, були низькопродуктивними. У ті дні Twitter перейшов з Ruby on Rails на Scala, заявивши, що “Twitter Search тепер став утричі швидше”. Майте на увазі, що більшість компаній навряд чи досягнуть такого ж об’єму трафіку, як Twitter.

Зазвичай Python вважається трохи швидшим за Ruby. Деякі люди можуть заперечувати і посилатися на показники часу виконання. Тести показують ідентичні результати з точки зору продуктивності. Проте навіть експерти Ruby визнають, що мова повільна. Гарною новиною є те, що кожна нова версія мов програмування підвищує продуктивність.

Документація і співтовариства

Документація є особистою перевагою. Обидва фреймворка добре документовані й організовані. Команди розробників Django Software Foundation і Rails виконали велику роботу, щоб документація була структурованою і зручною. Вони схожі на прості книги, які приємно читати.

Завдяки співтовариствам на StackOverflow і GitHub ми можемо відкрити Google і просто знайти потрібний код. Ідея, яка виникне у Вас завтра, вже сьогодні має втілена. Є багато програм, розроблених співтовариством. Плагіни можуть допомогти впоратися з більшістю завдань.

Проте співтовариства різні. Спочатку Ruby – це мова програмування загального призначення. Хоча є інші Ruby-структури, такі як Sinatra або Lotus, велика частина Ruby відноситься до Rails. І Rails – це середовище веб-розробки.

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

Що вибрати?

Django і Python

  • Якщо Ви знаєте, що робити.
  • Якщо Ви звикли все робити, не порушуючи термінів.
  • Якщо Ви вважаєте, що документація – кращий друг програміста.

Ruby on Rails

  • Якщо Ви очікуєте на підтримку від веб-співтовариства.
  • Якщо Ви задоволені великою кількістю плагінів.
  • Якщо Ви шукаєте фреймворк, який працюватиме за Вас.

Висновок

Django і Ruby on Rails виглядають як близнюки від різних батьків: у кожного своя філософія і свої особливості. Однак коли справа доходить до роботи, вони діють однаково: обидва чудові фреймворки, які можуть справлятися з однаковими завданнями, використовуючи свої унікальні підходи.

Переклад статті “Django or Rails”

Київ, Харків, Одеса, Дніпро, Запоріжжя, Кривий Ріг, Вінниця, Херсон, Черкаси, Житомир, Хмельницький, Чернівці, Рівне, Івано-Франківськ, Кременчук, Тернопіль, Луцьк, Ужгород, Кам'янець-Подільський, Стрий - за статистикою саме з цих міст програмісти найбільше переїжджають працювати до Львова. А Ви розглядаєте relocate?


Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *