Перейти до змісту

Learning Path

Цей маршрут веде від базової web-моделі до фінального Django-проєкту. Читайте розділи послідовно, якщо ви початківець. Якщо вам потрібен лише проєкт, переходьте до 12_final_project.

1. Internet і HTTP

Почніть з web foundations. Мета - зрозуміти, що browser не викликає Python напряму. Він надсилає HTTP request до server.

Контроль: поясніть різницю між URL, DNS, IP, TCP port і HTTP path.

2. Django architecture

Перейдіть до Django core. Мета - побачити Django як конвеєр: middleware -> URL dispatcher -> view -> template/response.

Контроль: знайдіть route /notes/ у notes_app/urls.py.

3. Database і ORM

Читайте database and ORM. Мета - зрозуміти, чому models.py є схемою домену, а migrations є історією зміни БД.

Контроль: поясніть зв'язки Note, Notebook, Tag, Reminder.

4. Forms і templates

Читайте forms і frontend/templates. Мета - зрозуміти trust boundary: browser input не можна довіряти, server має validate.

Контроль: знайдіть NoteForm.__init__ і поясніть, чому він приймає user.

5. Application architecture

Читайте services/selectors. Мета - відділити HTTP, читання даних і зміну даних.

Контроль: назвіть один selector і один service з поточного проєкту.

6. Auth і security

Читайте auth and security. Мета - відрізняти authentication від authorization і не допустити IDOR.

Контроль: поясніть, чому @login_required не достатній для note_detail.

7. Testing і CI

Читайте testing. Мета - вміти перевірити model, service, form, view, consumer і E2E flow.

Контроль: запустіть один test module після встановлення dependencies.

8. Async і WebSocket

Читайте async and realtime. Мета - зрозуміти, чому chat використовує ASGI і Consumer.

Контроль: намалюйте flow від group_chat.js до GroupChatConsumer.

9. Linux, Docker, deployment

Читайте Linux and DevOps і deployment. Мета - відрізнити GitHub, CI, server і production runtime.

Контроль: поясніть, чому DEBUG=True не можна залишати на server.

10. Final project

Читайте final project. Мета - зібрати всі концепції в одному реальному codebase.

Контроль: відкрийте feature map і перевірте кожну feature у коді.