Төслийн зорилго
Жижиг Task Manager системийн архитектур болон нэг request lifecycle-ийг хэрэгжүүлэхэд хангалттай тодорхой түвшинд зохиох.
Төслийн товч
Та бүтэн application бичихгүй. Харин өөр хөгжүүлэгч таны document-ийг уншаад юу барих, request хаашаа явах, data хаана шалгагдаж хадгалагдахыг ойлгохоор системийн зураг төсөл бэлдэнэ.
Task Manager дараах дөрвөн feature-тэй:
- Task үүсгэх
- Task жагсаах
- Task complete болгох
- Task устгах
Хязгаарлалт
- Нэг хэрэглэгчийн local demo product гэж үз; authentication зохиохгүй.
- Task нь
id,title,completed,createdAtталбартай. - Title trim хийсний дараа 1–120 тэмдэгт байна.
- Task complete болгоход зөвхөн
completedfield өөрчлөгдөнө. - Устгасан task буцаах restore feature байхгүй.
- Database technology нэрлэх боломжтой ч vendor-specific query бичих албагүй.
- Payment, certificate, comment, analytics нэмэхгүй.
- Error response-д stack trace, credential, raw database error өгөхгүй.
Хүлээлгэн өгөх 11 зүйл
1. User actions
Хэрэглэгч юу хийж болохыг verb-ээр бич:
- шинэ task-ийн title оруулах;
- task list харах;
- task complete checkbox дарах;
- delete action сонгох;
- алдаа гарвал засах эсвэл дахин оролдох.
2. Main screens
Minimum нэг Task List screen байж болно. Дотор нь create form, list, empty state, loading state, error state, task row, delete confirmation хэрхэн харагдахыг нэрлэ. Modal заавал хэрэгтэй гэж үзэхгүй; interaction-аа үндэслэ.
3. Frontend responsibilities
Form state, accessible labels, loading/empty/error feedback, request илгээх, successful canonical response-оор UI шинэчлэх, focus management зэргийг жагсаа.
4. Backend responsibilities
Request parsing, runtime validation, business rule, safe error mapping, database operation, stable response contract-ийг жагсаа. Client-ийн validation давсан гэж итгэхгүй.
5. Database entities
Task entity-ийн field, type, required/optional нөхцөл, default value,
constraint-ийг хүснэгтээр харуул.
| Field | Type | Дүрэм |
| --- | --- | --- |
| id | string | Unique, server/database үүсгэнэ |
| title | string | Required, trim хийсний дараа 1–120 |
| completed | boolean | Default false |
| createdAt | timestamp | Server/database цаг |
6. API endpoints
Minimum contract:
GET /api/tasks
POST /api/tasks
PATCH /api/tasks/{id}
DELETE /api/tasks/{id}Endpoint бүрт request body, success status, response body, боломжит 400,
404, 500-г хэрэгтэй хэмжээнд тодорхойл.
7. Validation rules
Frontend feedback болон backend trusted validation-ийг ялга. Title length,
JSON body, boolean completed, ID format, missing task, authorization
хамаарахгүй энэ scope-д ямар дүрэм үлдэхийг бич.
8. Success flows
Feature бүрийн request → validation → database → response → UI update дарааллыг нэг мөрөөр дүрслэ.
9. Error flows
Наад зах нь:
- хоосон title;
- task олдохгүй;
- network request тасрах;
- database operation амжилтгүй
үед хэрэглэгч юу харах, backend ямар status өгөх, internal error хаана үлдэхийг тусад нь бич.
10. Architecture diagram
Дүрслэлдээ direction болон message-ийн нэр тавь:
[User]
│ submit title
▼
[Frontend]
│ POST /api/tasks
▼
[Backend]
│ validated insert
▼
[Database]
│ saved Task
▼
[Backend response]
│ 201 + Task JSON
▼
[Frontend list update]Өнгө хэрэглэвэл label-аа хадгал. Color дангаараа success/error эсвэл layer ялгах ёсгүй.
11. Нэг complete request lifecycle
POST /api/tasks-ийг сонгоод хэрэглэгч Save дарахаас шинэ task дэлгэцэнд
гарах хүртэл дараахыг өгүүлбэрээр тайлбарла:
- frontend ямар data бэлдэх;
- request method, endpoint, headers, body;
- backend validation;
- database write;
- response status ба body;
- frontend state update;
- validation эсвэл database error-ийн өөр зам.
Санал болгох ажлын дараалал
- Feature inventory гарга
Дөрвөн feature болон тус бүрийн user action, success result-ийг нэг хүснэгтэд бич.
- Task entity тодорхойл
Field, type, default, constraint-аа шийд. UI field болон persisted field ижил байх албагүйг сана.
- API contract бич
Method, path, request, success response, expected error бүрийг нэм.
- Responsibility map хий
Шийдвэр бүрийг frontend, backend, database-ийн аль нэгэнд үндсэн эзэнтэй болго. Давхар validation байвал зорилгыг нь тайлбарла.
- Success ба error flow зур
Happy path-аар зогсохгүй network, validation, missing record, database failure-ийг зур.
- Нэг lifecycle-ийг prose-оор тайлбарла
Diagram дээрх arrow бүрийг өгүүлбэр болговол алга болсон алхам илүү амархан харагдана.
- Checklist-ээр review хий
Өөр хүн уншаад implementation decision таах шаардлага үлдсэн эсэхийг шалга.
Completion checklist
Практик дасгал
Task Manager design document-оо шалгах
Өөрийн document-ийг дээрх checklist-ээр нэг удаа, дараа нь “шинэ developer энэ design-оор implementation эхлүүлж чадах уу?” гэсэн асуултаар дахин review хий.
Хүлээгдэж буй үр дүн
11 deliverable, дөрвөн feature, success/error flow бүрийг агуулсан, full application code-гүй architecture design document.
Сонголттой зөвлөмж
Хэрэв нэг алхамд 'system шалгана' гэж бичсэн бол яг frontend, backend эсвэл database-ийн алийг хэлж байгаагаа нэрлэ.
Сонголттой зөвлөмж
- Эхлээд POST урсгалыг бүрэн хий. GET, PATCH, DELETE-д ижил contract pattern хэрэглэж болно.
- API response бүрийн дараа frontend-ийн loading state яаж дуусахыг бич.
- Delete action-д double-click эсвэл давхар request гарвал behavior ямар байхыг бод. Энэ challenge-д idempotency бүрэн шийдэх албагүй.
- Diagram tool хэрэглэхгүй бол monospace text хангалттай.
- Framework нэрнээс өмнө responsibility болон contract-аа шийд.
Model-solution outline харах
Энэ outline нь copy-paste finished application биш. Өөрийн шийдэлтэй харьцуулах review guide.
Screens: Нэг Task List page; дээр create form, доор loading/empty/error state бүхий list. Task row нь title, completed checkbox, delete action-тай.
Responsibilities: Frontend interaction ба feedback; backend validation, rule, safe response; database persisted Task болон constraint.
API: GET /api/tasks → 200; POST /api/tasks valid title → 201;
PATCH /api/tasks/{id} boolean completed → 200; DELETE /api/tasks/{id} → 204 эсвэл product convention-оор stable success body.
Invalid input → 400; missing task → 404; unexpected server/database
failure → safe 500.
POST lifecycle: Save → frontend trim/feedback → JSON request → backend
parse болон validation → insert → 201 + canonical Task → frontend list
update болон focus feedback. Validation failure үед database хүрэхгүй;
database failure үед backend internal log хийгээд safe 500 өгнө.
Эцсийн review асуулт
Өөрийн diagram-ийн нэг arrow-г санамсаргүй сонго. Тэр arrow:
- ямар data авч явж байна;
- аль component эхлүүлж байна;
- дараагийн component юу шалгах;
- амжилт болон алдаанд юу болох
гэсэн дөрвөн асуултад хариулж чадаж байвал design implementation-д ойртсон байна.
Албан эх сурвалж
- HTTP request methods
MDN Web Docs · documentation
- HTTP response status codes
MDN Web Docs · documentation
- Overview of HTTP
MDN Web Docs · documentation