Onamap — Створення додатку на Django з нуля

текст перекладу

pic

Я використовую Django — час від часу — з версії 1 з 2009 року. Останні чотири (!) роки я працюю старшим розробником у компанії, яка створила сайт, що використовується десятками тисяч людей, управляє терабайтами даних і має величезний і постійно зростаючий потік трафіку щодня. Ми почали з Django 4, але минулого року оновили до Django 5. Протягом 2024 року нам довелося зробити перерву у розробці на кілька тижнів і зосередитися виключно на продуктивності. Ми багато чому навчилися, але я відчував, що можу зробити ще краще. Тому на Різдво я вирішив заново вивчити Django "з нуля", пройти через Django Tutorial і створити оригінальний вебсайт, який, можливо, ви захочете спробувати.

Мета цього вебсайту:

  • бути справді дуже простим у використанні.
  • бути надзвичайно продуктивним. Зокрема, повертати вебсторінки за зазвичай менше ніж за 100 мс (оригінальна мета Google Search була 500 мс). Невелика затримка на завантаження кешу — прийнятна.
  • бути добре спроектованим і простим у підтримці. Зокрема, я буду використовувати розвиток по глибині, де я дійсно розберусь із парадигмами, які буду використовувати, перш ніж додавати нові функції.
  • використовувати “найсучасніші” технології, де це можливо.
  • мати можливість виконувати оновлення в реальному часі для кількох клієнтів. Це те, що я ніколи не робив добре раніше, зазвичай використовуючи щось на кшталт long polling. Є кращі способи зробити це.
  • добре працювати як на мобільних пристроях, так і на десктопах (2025 рік на дворі).
  • зробити щось дійсно круте і корисне (для мене) без врахування монетизації.
  • розвивати технології, які можна застосувати в моїй реальній роботі.

Мета цієї серії статей:

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

Про що саме Onamap — розповім у наступному пості.

Перекладено з: Onamap — Building a Django App From Scratch

Leave a Reply

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