عند بناء أنظمة المحتوى الخلفية باستخدام Sanity، غالبًا ما يقع المطورون في فخاخ تجعل مخططاتهم صعبة الصيانة أو صعبة التوسع. بالاستناد إلى إرشادات فريقنا ذات الرأي الواضح، إليك أكثر الأخطاء شيوعًا وما يجب عليك فعله بدلاً من ذلك.
الخطأ 1: النمذجة للعرض
الخطأ الأكثر شيوعًا هو نمذجة "كيف تبدو الأشياء" بدلاً من "ما هي الأشياء".
لا تفعل هذا: تسمية الحقول بناءً على مظهرها البصري في تصميم معين.
defineField({
name: 'bigRedButton',
type: 'object',
fields: [
{name: 'text', type: 'string'},
{name: 'url', type: 'string'}
]
})افعل هذا بدلاً من ذلك: نمذجة نية المحتوى.
defineField({
name: 'primaryCallToAction',
type: 'object',
fields: [
defineField({name: 'label', type: 'string'}),
defineField({name: 'destination', type: 'url'})
]
})بفصل المحتوى عن العرض، يمكنك إعادة تصميم واجهتك الأمامية دون ترحيل بياناتك.
الخطأ 2: تجاهل مساعدات أمان النوع
توفر Sanity دوال مساعدة لضمان أن مخططك صحيح ومحدد النوع بصرامة.
لا تفعل هذا: استخدام كائنات عادية لتعريفات المخطط.
export default {
name: 'blog',
type: 'document',
fields: [...]
}افعل هذا بدلاً من ذلك: استخدم دائمًا defineType، defineField، وdefineArrayMember.
import {defineType, defineField} from 'sanity'
export default defineType({
name: 'blog',
type: 'document',
fields: [
defineField({
name: 'title',
type: 'string'
})
]
})الخطأ 3: فخاخ القيم المنطقية
حقول القيم المنطقية مغرية للمفاتيح التبديلية، لكنها تحصرك في زاوية إذا تغيرت المتطلبات.
لا تفعل هذا: استخدام قيمة منطقية لحالة قد تصبح غير ثنائية.
defineField({
name: 'isPublished',
type: 'boolean'
})افعل هذا بدلاً من ذلك: استخدم حقل نصي مع قائمة خيارات. إنه قابل للتوسع وأكثر وضوحًا.
defineField({
name: 'status',
type: 'string',
options: {
list: [
{title: 'Draft', value: 'draft'},
{title: 'Published', value: 'published'},
{title: 'Archived', value: 'archived'}
],
layout: 'radio'
}
})الخطأ 4: السياق المفقود
المخططات بدون أوصاف أو تحقق تترك المحررين يخمنون.
افعل هذا: ضمِّن أوصافًا موجزة ومفيدة وقواعد التحقق.
defineField({
name: 'slug',
title: 'URL Slug',
description: 'The unique URL part for this page',
type: 'slug',
validation: (rule) => rule.required().error('A slug is required for the page to be reachable')
})الخلاصة
نمذجة المحتوى الجيدة تتعلق بإنشاء تمثيل منظم ودلالي لمجالك. من خلال اتباع هذه الممارسات، تضمن أن يظل نظام المحتوى الخلفي الخاص بك مرنًا وقابلاً للصيانة وسهل الاستخدام للمحررين.
