Досліджуйте Sinatra та його потенціал для створення продуктивних веб-застосунків

pic

Sinatra, створений на базі Ruby, є компактним фреймворком для розробки веб-застосунків. Завдяки своїй простоті, швидкості та гнучкості, він часто використовується для створення невеликих і середніх веб-застосунків, API та мікросервісів. Sinatra дозволяє розробникам швидко та легко створювати веб-застосунки без потреби в складному налаштуванні завдяки своїй простій мові DSL (Domain Specific Language) і мінімалістичному підходу.

У цій статті детально розглядається Sinatra, а також пропонується підручник із створення простого застосунку за його допомогою.

Що таке Sinatra і коли його варто використовувати?

Sinatra — це DSL для швидкого створення веб-застосунків на Ruby з мінімальними зусиллями.”

Це унікальний фреймворк для розробки веб-застосунків із відкритим кодом, випущений у 2007 році. Завдяки своїй легкості, гнучкості та меншій кількості залежностей Sinatra спрощує і пришвидшує роботу над проектами на Ruby.

Його можна використовувати для швидкого створення всього: від динамічних веб-сайтів до API, які дозволяють надавати дані іншим сервісам.

Чому варто використовувати Sinatra?

Стабільність Sinatra — це його велика перевага.

Ви жертвуєте деякою функціональністю генераторів Rails на користь власного вибору архітектури. Фреймворк змінюється рідко, тому розробка на Sinatra забезпечує стабільність API для розробників та підприємств.

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

Переваги:

  1. Легкість: Sinatra є дуже легким фреймворком, що робить його хорошим вибором для невеликих веб-застосунків або мікросервісів.
  2. Гнучкість: На відміну від Rails, Sinatra не має багатьох вбудованих конвенцій або структур, що робить його дуже гнучким і кастомізованим. Це може бути перевагою, якщо вам потрібно створити щось, що не вписується у стандартний шаблон Rails.
  3. Легкість у навчанні: Sinatra має невеликий, простий API, що полегшує його вивчення та старт. Це може бути корисно, якщо ви не знайомі з Ruby або веб-програмуванням.
  4. Швидкість: Оскільки він легкий і не має великого накладного витрат, Sinatra може бути дуже швидким і ефективним. Це перевага для створення веб-застосунків, які мають бути швидкими та продуктивними.

Недоліки:

  1. Обмежена функціональність: Sinatra не має такої кількості вбудованої функціональності, як Rails, тому багато речей доведеться створювати з нуля. Це може бути недоліком, якщо ви працюєте над великим, складним застосунком.
  2. Відсутність конвенцій: Гнучкість Sinatra може бути недоліком, якщо ви працюєте в команді або потрібно дотримуватись певних конвенцій. Без структури та конвенцій Rails може бути складніше підтримувати консистенцію та читабельність коду.
  3. Обмежена підтримка спільноти: У Rails велика й активна спільнота, що означає наявність багатьох ресурсів і інструментів для допомоги. Спільнота Sinatra менша і менш активна, тому знайти допомогу може бути складніше.
  4. Менша масштабованість: Хоча Sinatra може бути дуже швидким і ефективним для невеликих застосунків, він може бути менш масштабованим, ніж Rails, для більших проєктів.

Sinatra може бути не найкращим вибором, якщо вам потрібно створити щось, що оброблятиме великий трафік або значну кількість даних.

Ось кілька прикладів застосунків, створених за допомогою Sinatra:

pic

  • GitHub Gist: Платформа для спільного використання коду GitHub використовує Sinatra для обробки аутентифікації та авторизації.
  • Basecamp: Популярний інструмент управління проєктами використовує Sinatra для обробки своїх кінцевих точок API.
  • Heroku: Хмарна платформа як послуга (PaaS) використовує Sinatra для роботи з веб-інтерфейсом.
  • Fiverr: Платформа для фрилансу використовує Sinatra для обробки своєї платіжної системи.
  • Codeship: Інструмент безперервної інтеграції та розгортання використовує Sinatra для обробки вебхуків (Webhooks) і API.
  • Thoughtbot: Консалтингова компанія у сфері програмного забезпечення використовує Sinatra для внутрішніх інструментів та клієнтських проєктів.
  • Feedbin: Читач RSS використовує Sinatra для обробки свого веб-інтерфейсу та API.
  • The Changelog: Популярний подкаст і блог про розробку програмного забезпечення з відкритим кодом використовує Sinatra для роботи з веб-інтерфейсом.

pic

Давайте створимо простий застосунок за допомогою Sinatra:

Крок 1: Встановіть Sinatra, запустивши команду gem install sinatra у терміналі.

pic

Крок 2: Створіть новий файл із назвою "app.rb" і підключіть Sinatra у верхній частині.

require 'sinatra'

Крок 3: Визначте маршрути.

У вашому файлі app.rb ви можете визначити маршрути застосунку, використовуючи методи get, post, put, patch і delete, які надає Sinatra.

require 'sinatra'  

# Показати всі завдання  
get '/tasks' do  
 # код для виведення всіх завдань  
end  

# Створити нове завдання  
post '/tasks' do  
 # код для створення нового завдання  
end  

# Показати конкретне завдання  
get '/tasks/:id' do  
 # код для виведення конкретного завдання  
end  

# Оновити конкретне завдання  
put '/tasks/:id' do  
 # код для оновлення конкретного завдання  
end  

# Видалити конкретне завдання  
delete '/tasks/:id' do  
 # код для видалення конкретного завдання  
end

Крок 4: Визначте подання (Views).

У Sinatra подання визначаються за допомогою шаблонів. Ви можете використовувати різні шаблонізатори, такі як ERB або Haml, але в цьому прикладі ми використаємо ERB.

Створіть у вашому проєкті директорію views, а потім створіть файл index.erb у цій директорії:








Список завдань
    <% @tasks.each do |task| %>    
<%= task %>
    <% end %>    
        ```  **Крок 5:** Реалізуйте логіку вашого застосунку.  Тепер, коли ви налаштували маршрути та подання, можна приступати до реалізації основної логіки застосунку.

Для цього прикладу ми використовуватимемо масив для зберігання наших завдань:

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

tasks = []

Список усіх завдань

get '/tasks' do
@tasks = tasks
erb :index
end

Створення нового завдання

post '/tasks' do
task = params[:task]
tasks << task
redirect '/tasks'
end

Показ конкретного завдання

get '/tasks/:id' do
id = params[:id].to_i
@task = tasks[id]
erb :show
end

Оновлення конкретного завдання

put '/tasks/:id' do
id = params[:id].to_i
task = params[:task]
tasks[id] = task
redirect '/tasks'
end

Видалення конкретного завдання

delete '/tasks/:id' do
id = params[:id].toi
tasks.delete
at(id)
redirect '/tasks'
end
```

Крок 6: Створіть подання (Views)

Далі ми створимо файл show.erb:








<%= @task %>
        ```  

**Крок 7:** Запустіть ваш застосунок  

Щоб запустити ваш застосунок, перейдіть до директорії проєкту у вашому терміналі та виконайте таку команду:

ruby app.rb
```

Потім відкрийте ваш веб-браузер і перейдіть за адресою http://localhost:3000/tasks.

Ви маєте побачити порожній список завдань.

Висновок:

У підсумку, якщо ви створюєте невеликий, простий веб-застосунок, Sinatra може бути кращим вибором. Він легкий, простий у використанні і не має великого накладного витрат.

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

Які ваші думки про Sinatra? Поділіться ними у коментарях!

Отримайте необхідні переваги для успіху — підписуйтеся на Simform Engineering для важливих оновлень та ідей щодо інструментів і технологій!

Перекладено з: Explore Sinatra and its Potential for Building Performant Web Apps

Leave a Reply

Your email address will not be published. Required fields are marked *