AzLearn

أنماط قواعد البيانات

Database Patterns

مفهوم ~20 دقيقة

أنماط قواعد البيانات — Database Patterns

بعد تعلم الأساسيات، حان وقت الأنماط الاحترافية التي تُنظّم كودك وتجعله قابلاً للصيانة والاختبار.

نمط Repository

يفصل منطق الوصول للبيانات عن منطق الأعمال. بدلاً من كتابة SQL في كل مكان، تُغلّفه في طبقة واحدة:

main.go

لماذا Repository مهم:

  1. الاختبار — استبدل التنفيذ الحقيقي بتنفيذ وهمي (mock)
  2. المرونة — بدّل من PostgreSQL لـ MySQL بتغيير التنفيذ فقط
  3. الفصل — منطق الأعمال لا يعرف شيئاً عن SQL

مسح البنيات — Struct Scanning

database/sql يتطلب مسح كل حقل يدوياً. هذا مُرهق مع بنيات كبيرة:

main.go

مفهوم الترحيل — Migrations

الترحيلات تُدير تطور بنية قاعدة البيانات مع الوقت:

main.go

مقارنة الأدوات

الأداةالنوعالمستوىالاستخدام
database/sqlقياسيمنخفضتحكم كامل
sqlxمكتبة مساعدةمتوسطdatabase/sql + راحة
GORMORM كاملعاليتطوير سريع
sqlcمولّد كودمتوسطSQL → Go code

نصيحة أخيرة

ابدأ بـ database/sql لفهم الأساسيات، ثم انتقل لـ sqlx للمشاريع الحقيقية. GORM مناسب إذا كنت تأتي من عالم ORM (Django, Laravel) وتريد نفس التجربة.

تحدي — Challenge