00:00:00Tan Stick Start يحظى ببعض الضجة هذه الأيام، والسؤال هو، هل يجب عليك التحول من Next.js؟
00:00:06هل هو أفضل من Next.js؟
00:00:08بالأمس كان لدي بث مباشر كامل قارنت فيه بين الاثنين وبنيت تطبيقين أو تطبيقاً واحداً مرتين، مرة باستخدام Next.js ومرة باستخدام Tan Stick Start ويمكنك مشاهدة ذلك إذا أردت، لكن هنا سأقدم لك ملخصي المختصر لما هو مختلف، وما هو أفضل وأيهما يجب أن تستخدم.
00:00:27بالطبع، هذا مجرد رأيي الشخصي، وليست مقارنة موضوعية بوضوح، لكنني سأشارك تجربتي حول الاثنين وما أفكر به عن Next.js و Tan Stick Start.
00:00:37لقد وضعت بعض المعايير التي أريد استخدامها لمقارنة الاثنين ويمكنك إضافة المزيد كما يمكنك إضافة المزيد من الأطر هنا.
00:00:47أعني، يمكننا تضمين Remix و React Router الآن، يمكننا تضمين Nuxt لـ Vue، يمكننا الحديث عن SvelteKit، لكنني لن أفعل، هذا الفيديو عن Next.js و Tan Stick Start، ليس لأن الآخرين سيئون، بل لأن هذين الاثنين يُقارنان غالباً.
00:01:01أولاً، من الجدير بالذكر أن Tan Stick Start في النهاية هو مجرد Tan Stick Router بالإضافة إلى بعض الأمور المتعلقة بالخادم، بشكل أساسي.
00:01:10لذا يمكنك استخدام Tan Stick Router بمفرده إذا أردت بناء تطبيق من صفحة واحدة لا يحتاج إلى العرض من جانب الخادم ووظائف الخادم، على سبيل المثال.
00:01:19يمكنك استخدام Tan Stick Router بدلاً من React Router في تطبيق React Vite الخاص بك، على سبيل المثال.
00:01:25Tan Stick Start إذن، كما ذكرت، يضيف فقط الأمور المتعلقة بالخادم إلى Tan Stick Router، مما يجعله إطار عمل React متكامل الوظائف.
00:01:32تماماً مثل Next.js، الذي هو بالطبع أيضاً إطار عمل React متكامل الوظائف.
00:01:37وهذا مهم أيضاً.
00:01:38أحياناً أتلقى سؤالاً حول ما إذا كان يجب عليك استخدام Next.js أو React Vite مع React Router وأعتقد أن هذه مقارنة خاطئة.
00:01:47إذا كنت لا تحتاج إلى منطق من جانب الخادم، إذا كنت لا تحتاج إلى العرض من جانب الخادم، فيجب عليك فقط استخدام React Vite، أي مشروع Vite مع React، وإضافة React Router أو Tan Stick Router.
00:02:00لا حاجة لسلوك طريق Next.js في هذه الحالة.
00:02:02على أي حال، لنبدأ بتلك المقارنة.
00:02:05أول معيار اخترته هو الجاهزية للذكاء الاصطناعي للاثنين، لأن ذلك بالطبع مهم هذه الأيام.
00:02:12من المرجح جداً أنك تستخدم الذكاء الاصطناعي لتوليد بعض الشيفرة، ربما كل الشيفرة التي تريدها في مشروع Next.js أو Tan Stick Start الخاص بك، ولذلك يحتاج الذكاء الاصطناعي بالطبع إلى معرفة كيفية كتابة تلك الشيفرة.
00:02:25من الواضح أنه يمكنك ويجب عليك توفير السياق المناسب بنسخ صفحات التوثيق أو باستخدام MCP مثل Context 7 لجعل الذكاء الاصطناعي يصل إلى المستندات، أو بإخبار الذكاء الاصطناعي أن يقوم ببعض البحث على الويب، أو بإضافة مهارات وكيل تعلم الذكاء الاصطناعي كيفية استخدام Tan Stick Start أو Next.js.
00:02:47لكن افتراضياً، إذا سألت ChatGPT سؤالاً عن Tan Stick Start، فمن المرجح جداً أنه سيعرف عنه أقل مما يعرفه عن Next.js وما يعرفه ربما يكون خاطئاً.
00:02:59لأنه حتى الآن، عندما أسجل هذا، لا يزال Tan Stick Start في مرحلة النسخة المرشحة للإصدار، مما يعني عدم وجود تغييرات جذرية كبيرة بعد الآن، ولكن أيضاً ليس مستقراً تماماً.
00:03:10خلال العام الماضي كان بشكل أساسي في مرحلة البيتا وألفا وهذه هي المعرفة التي تمتلكها روبوتات الذكاء الاصطناعي هذه افتراضياً، ولهذا السبب ستمتلك افتراضياً معرفة خاطئة عن Tan Stick Start.
00:03:23لذا فإن الجاهزية للذكاء الاصطناعي افتراضياً ليست رائعة، إنها بالتأكيد أفضل لـ Next.js.
00:03:31الآن مع Next.js بالطبع كانت هناك أيضاً تغييرات على مر السنين، هناك توجيه use cache الجديد الذي لا يعرفه الذكاء الاصطناعي افتراضياً أيضاً بشكل جيد لكن الذكاء الاصطناعي لديه فهم جيد لائق حول app router وحول React server components وكل ذلك لذا فهو بالتأكيد أفضل لـ Next.js منه لـ Tan Stick Start.
00:03:51لكن مرة أخرى، كما ذكرت، يجب عليك التأكد من أنك تعطي الذكاء الاصطناعي السياق الإضافي المناسب الذي يحتاجه، وإلا فأنت تستخدم الذكاء الاصطناعي بشكل خاطئ.
00:04:02ماذا عن النظام البيئي وبذلك أعني الموارد الأخرى التي يمكنك العثور عليها مثل الدروس ومقاطع فيديو YouTube والدورات، وربما أيضاً حزم إضافية لهذه الأطر.
00:04:13وهنا بالطبع يبدو Next.js أفضل بكثير من Tan Stack Start ببساطة لأنه أقدم، موجود منذ فترة أطول، ستجد موارد أكثر عنه لأنه أكبر أيضاً.
00:04:27يجدر الإشارة أيضاً بالطبع إلى أنه أكبر مما يعني استخداماً أوسع لأن Next.js جزء من المجموعة الافتراضية التي يستخدمها الذكاء الاصطناعي حيث يمنحك أساساً Next.js وReact وTailwind وTypeScript لمعظم تطبيقات الويب التي تطلبها، بينما لن يكون Tan Stack Start على الأرجح الخيار الافتراضي أبداً.
00:04:47ولذلك ليس من المستغرب إذا كنت تقارن مخططات التنزيلات بين الاثنين، نعم، Tan Stack Start لديه تنزيلات أقل بالتأكيد كما ترى.
00:04:56إذا أزلت Next.js يمكنك أن ترى اتجاهاً تصاعدياً جميلاً لـ Tan Stack Start.
00:05:01ما يرتبط إلى حد ما بنقطة النظام البيئي هو بالطبع سهولة التعلم وليس ذلك فقط.
00:05:07بسهولة التعلم أعني ما مدى بساطة تعلم الأداة؟
00:05:11وأعلم بالطبع أنه الآن في عصر الذكاء الاصطناعي أنت لست مهتماً بتعلمها ولكن كمطور جيد يجب أن تفهم ما تعمل معه.
00:05:19قد لا تكون تكتب كل الكود يدوياً بعد الآن ولكن يجب أن تفهم الكود الذي يولده لك الذكاء الاصطناعي.
00:05:25لذا فإن تعلمها لا يزال مهماً.
00:05:28وهنا أقول بالنسبة لـ Next.js الأمر مختلط.
00:05:33يمكنك منحه، لست متأكداً إذا كنت أريد أن أمنحه علامة زائد واحدة أو اثنتين لأن البدء مع Next.js مع موجه التطبيقات وبالمناسبة كل هذا هنا يشير إلى موجه التطبيقات أمر مباشر إلى حد كبير.
00:05:46الأمر منطقي.
00:05:47بالأمس في البث المباشر صنعت تطبيقاً صغيراً لتدوين الملاحظات حيث يمكنك إنشاء وحفظ وعرض الملاحظات.
00:05:56وتفعل ذلك مع Next.js بمجرد تحديد بعض ملفات page.tsx التي هي، كما خمنت، الصفحات.
00:06:03يمكنك الحصول على أقسام ديناميكية.
00:06:04وتعلم هذا الصياغة وهذا النهج لبناء تطبيقك أمر مباشر إلى حد كبير في النهاية.
00:06:12أعتقد أيضاً أن التوثيق يقوم بعمل جيد في إرشادك خلال المفاهيم الأساسية خطوة بخطوة وبدء استخدامك لـ Next.js.
00:06:22لكن الأمور تصبح أكثر تعقيداً بمجرد أن تبني تطبيقات أكثر تعقيداً وبمجرد أن تتعمق في المفاهيم الأكثر تقدماً مثل التخزين المؤقت.
00:06:30وخاصة جزء التخزين المؤقت يمكن أن يكون محيراً للغاية لأن Next.js اتخذ القرار بأنه مع تقديم موجه التطبيقات أرادوا القيام ببعض التخزين المؤقت الصارم للغاية على طبقات مختلفة وفهم ذلك وفهم كيفية تكوين مكوناتك للعمل بشكل جيد مع التخزين المؤقت المدمج ولمنح المستخدمين السلوك الذي تريدهم أن يحصلوا عليه يمكن أن يكون صعباً.
00:06:55سأقول ذلك.
00:06:56البداية رائعة.
00:06:59تعلم الميزات الأكثر تقدماً صعب.
00:07:02سأمنحه على الأرجح علامتي زائد هنا.
00:07:05وسأمنح Tan Stack Start نفس الشيء ولكن لأسباب مختلفة جداً.
00:07:09بالنسبة لـ Tan Stack Start أقول إن البدء ربما يكون أصعب قليلاً من Next.js لأن توثيقات البدء الخاصة بهم ليست جيدة مثل توثيقات Next.js.
00:07:20المفاهيم المهمة مفقودة هنا في رأيي مثل جلب البيانات أو التعديلات.
00:07:27مع ذلك إذا كانت لديك معرفة سابقة بـ Next.js هناك وثيقة مقارنة جيدة جداً تقارن الميزات الرئيسية بما في ذلك ما يتعلق بجلب البيانات والتعديلات.
00:07:36لكنني أعتقد أن الأمر قد يكون أصعب قليلاً لأن التوثيقات على الرغم من أنني سأقول إنها تحسنت بشكل كبير لا تزال تحمل قليلاً من شعور إلقاء المعلومات حيث ليس من الواضح تماماً أي مقال تحتاجه وحسناً على سبيل المثال لا يوجد مقال عن جلب البيانات هنا وأشياء من هذا القبيل.
00:07:54بالإضافة إلى ذلك نظراً لأن Tan Stack Start مبني على Tan Stack Router لكل ما يتعلق بالتوجيه يجب عليك الدخول إلى توثيقات Tan Stack Router التي تكون أيضاً مربكة إلى حد ما عندما تنظر إليها في المرة الأولى.
00:08:07لكن بمجرد أن تتجاوز ذلك الحاجز الأولي يصبح الأمر أسهل بكثير وكل شيء في رأيي منطقي جداً وليس بالأمر الصعب ولا توجد مشاكل مخفية مثل المشاكل المتعلقة بالتخزين المؤقت التي قد تواجهها مع Next.js.
00:08:22لهذا السبب أقول إن البدء أصعب مع Tan Stack Start ولكن بمجرد أن تبدأ العمل يكون من الأسهل التقدم والتعمق في الميزات الأكثر تقدماً مقارنة بـ Next.js.
00:08:32كما ذكرت، هذا مجرد رأيي الشخصي بالطبع.
00:08:36الآن ماذا عن سهولة الاستخدام من منظور المطورين؟
00:08:41ما مدى متعة العمل معه؟
00:08:43هذا أمر شخصي تماماً بالطبع، لكن Next.js لديه بعض المشاكل هنا بالتأكيد.
00:08:48ليس فقط المشاكل المتعلقة بالتعلم المحتمل، بل مشاكل أخرى أيضاً.
00:08:53على سبيل المثال، مع التخزين المؤقت، قد يحدث أن يتصرف تطبيقك بشكل مختلف في وضع التطوير عنه في وضع الإنتاج، مما يعني أنه يجب عليك دائماً اختباره في وضع الإنتاج، وهو ما يجب أن تفعله على أي حال، لكن الأمر يصبح مزعجاً للغاية إذا اضطررت للقيام بذلك طوال الوقت أثناء التطوير لأن ذلك يبطئك.
00:09:11إذاً هذه إحدى المشاكل الكبيرة التي واجهتها في الماضي.
00:09:14يمكن أن يصبح خادم التطوير بطيئاً جداً أيضاً.
00:09:18على الأقل إذا كنت تستخدم إصدار webpack، فإن إصدار turbo pack الجديد الافتراضي أفضل بكثير هناك، لكن في تجربتي، لا يتفوق على إعداد vite الذي يوفره Tan Stack Start.
00:09:30لذا سأعطيه ثلاث علامات زائد هنا لأنه في تجربتي كان العمل معه سلساً للغاية من وجهة نظر تجربة المطور.
00:09:40إنه سريع، يمكن التنبؤ به، لا يوجد سلوك غريب في معظم الأحيان، ما زالت هناك بعض الغرائب هنا وهناك وهو لا يزال في مرحلة الإصدار التجريبي، لكن بشكل عام أفضل تجربة المطور في Tan Stack Start على تجربة Next.js.
00:09:57من الواضح أن الأمر قد يكون مختلفاً بالنسبة لك.
00:10:01الآن ماذا عن الميزات الملموسة التي يقدمها Next.js و Tan Stack Start؟
00:10:06بالنسبة للتوجيه، كما أريتك في Next.js، لديك نهج قائم على الملفات، حيث تقوم بإعداد ملفات تعمل كمساراتك وهناك اصطلاحات تسمية مختلفة يجب عليك اتباعها.
00:10:16تقوم الوثائق بعمل جيد في شرحها، لكن هناك بالتأكيد ميزات أكثر تعقيداً مثل المسارات المتوازية التي قد يكون إعدادها معقداً.
00:10:25Tan Stack Start لديه أيضاً نهج قائم على الملفات باستخدام Tan Stack Router كما ذكرت، ولديك أيضاً اصطلاحات أسماء ملفات يجب اتباعها هنا والتي يسهل تعلمها بنفس القدر.
00:10:36إحدى المزايا التي تحصل عليها من Tan Stack Start هي أنه مع التوجيه القائم على الملفات، يمنحك أماناً كاملاً للأنواع وهو أمر رائع جداً.
00:10:45إذاً كلاهما قائم على الملفات ويتلخص الأمر في تفضيلاتك لنمط التسمية الذي تفضله، لكن Tan Stack Start لديه أيضاً أمان بنسبة 100% للأنواع الذي يأتي مع موجه الملفات الخاص به، وهو أمر جيد.
00:11:00وهذا يجيب أيضاً على السؤال التالي، Next.js لديه دعم ممتاز لـ TypeScript و Tan Stack Start لديه دعم أفضل لـ TypeScript في تجربتي.
00:11:11أيضاً عندما يتعلق الأمر بأشياء مثل إجراءات الخادم أو وظائف الخادم أو مهما كنت تريد أن تسميها وجلب البيانات.
00:11:18لذا نعم، عندما تستخدم TypeScript، والذي أعتقد أنه يجب عليك استخدامه، فإن Tan Stack Start هو حقاً متعة للعمل معه.
00:11:24الآن عندما يتعلق الأمر بجلب البيانات وتعديل البيانات، كلاهما كما ذكرت يسمح لك بتشغيل التعليمات البرمجية على الخادم، كلاهما تطبيقات React كاملة، لكنهما يتبعان نهجين مختلفين.
00:11:35يستخدم Next.js مكونات خادم React ولفترة طويلة كان الإطار الوحيد الذي يدعم مكونات خادم React.
00:11:43هذا يعني أن مكونات الصفحة الخاصة بك افتراضياً يتم عرضها فقط على الخادم.
00:11:48لا يتم إعادة عرضها أبداً على العميل، مما يعني أنه يمكنك وضع كود جلب البيانات الخاص بك مثل هذا الذي سيصل إلى قاعدة بيانات في الخلفية داخل مكوناتك وذلك لن ينتقل إلى العميل.
00:11:59Tan Stack Start لديه نهج مختلف.
00:12:01دعم مكونات خادم React سيصل قريباً أيضاً، لم يتم إصداره بعد عندما أقوم بتسجيل هذا، لكن النهج الذي أعرضه لك هنا والذي استخدمته في جميع مشاريعي سيستمر في الوجود أيضاً، وفي هذا النهج يتم عرض مكونات المسار افتراضياً على جانب الخادم وجانب العميل، يتم عرضها مسبقاً على جانب الخادم، ويتم تحديثها على جانب العميل، وبالتالي لا يمكنك وضع كود جانب الخادم الخاص بك في وظائف المكون.
00:12:27بدلاً من ذلك، يستخدم نمط المحمّل الذي قد تعرفه من Remix على سبيل المثال، حيث يمكنك إرفاق محمّل بمساراتك والذي سيعمل أيضاً على جانب العميل والخادم، ولكن يمكنك بعد ذلك استدعاء دوال مُزيّنة أو مُغلّفة بدوال الخادم المُنشأة إن جاز التعبير، وهي دالة توفرها Tan Stick Start والتي تحدد الدالة لتُنفّذ على جانب الخادم فقط ولكن يمكن استدعاؤها من جانب العميل.
00:12:54هذا هو ما تعنيه دالة الخادم.
00:12:56وإذا كان لديك مثل هذه الدالة، يمكنك استدعاؤها بأمان في محمّل أو حتى من جسم دالة المكوّن وسيبقى الكود على جانب الخادم.
00:13:05خلف الكواليس، سيتم إرسال طلب HTTP.
00:13:07لذا يعتمد Next.js بشكل أساسي على RSC رغم أنه يمكنك بالطبع أيضاً إعداد نقاط نهاية API هناك واستخدام useEffect مع Fetch API.
00:13:15يستخدم Tan Stick Start المحمّلات ودوال الخادم، رغم أنه يجدر بالذكر أنه هناك أيضاً يمكنك إعداد مسارات API واستخدام Fetch API أو Tan Stick query أو أي شيء من هذا القبيل، لكن النهج الأساسي المدمج هو نهج المحمّل بالإضافة إلى دالة الخادم.
00:13:31بالنسبة للتحديثات، يستخدم Next.js إجراءات الخادم وهي إجراءات مُزيّنة بتوجيه useServer الخاص.
00:13:39أحد الأشياء التي يمتلكها Next.js هي هذه التوجيهات useServer وuseClient.
00:13:44بعض الناس لا يحبونها، وأنا أيضاً لست من المعجبين بها سأقول ذلك صراحة.
00:13:48وإذا كان لديك ملف مُزيّن بـ useServer، فإن جميع الدوال الموجودة فيه تصبح دوال خادم سيتم تنفيذها على الخادم فقط.
00:13:55ليس على جانب العميل، لكن لا يزال بإمكانك استدعاؤها من جانب العميل.
00:13:59على سبيل المثال، دالة saveNode هذه التي لدي هنا والتي تخزن عقدة في قاعدة البيانات، لا يزال بإمكاني استدعاؤها من جانب العميل هنا باستخدام خطاف useActionState على سبيل المثال.
00:14:10في Tan Stick Start نستمر ببساطة في استخدام نهج دالة createServer هنا لأنني ذكرت أنها دوال مضمونة التشغيل على الخادم ويمكنك استخدامها لجلب البيانات أو لتحديثات البيانات لأن الكود مرة أخرى سيعمل على الخادم فقط.
00:14:24في دالة مكوّن يتم عرضها أيضاً على العميل، يمكنك استخدام خطاف useServer function المقدم من Tan Stick Start لتغليف دالة الخادم الخاصة بك، وهذا يجعلها في الأساس قابلة للاستدعاء من جانب العميل ويمنحك ميزات إضافية مثل معالجة إعادة التوجيه التلقائية وما إلى ذلك.
00:14:39وهذا يتيح لي بعد ذلك استدعاء دالة الخادم تلك من مكوّنات جانب العميل الخاصة بي.
00:14:43لذا يستخدم Next.js دوال خادم React الرسمية، بينما يستخدم Tan Stick Start دوال الخادم الخاصة به في النهاية.
00:14:51لكن الفكرة العامة بالطبع هي نفسها.
00:14:54الآن ماذا عن التخزين المؤقت؟
00:14:56لقد ذكرت أن هذا هو الجزء الصعب.
00:14:58إنه عدواني جداً ومعقد محتملاً في Next.js.
00:15:04إنه بالتأكيد أحد الأجزاء الأصعب في Next.js.
00:15:07وأنا أغطيه تماماً مثل جميع مفاهيم Next.js المهمة الأخرى في دورة Next.js الخاصة بي في حال أردت تعلم كل شيء عن Next.js.
00:15:16هذه الدورة هي مورد رائع لتنتقل بك من مبتدئ مطلق إلى مستخدم متقدم لـ Next.js.
00:15:21لكن التخزين المؤقت بالتأكيد أحد المواضيع الأكثر إشكالية في Next.js.
00:15:26الميزة بالطبع هي أنه بسبب الإعدادات الافتراضية العدوانية، يمكنك الحصول على تخزين مؤقت جيد جداً لمستخدميك.
00:15:35لكن يمكنك أيضاً أن تطلق النار على قدمك بسهولة تامة.
00:15:38بالنسبة لـ Tan Stick Start، سألخصها على أنها إعدادات افتراضية جيدة.
00:15:43أقل عدوانية بكثير من Next.js والأهم من ذلك أنها متسقة في تجربتي على الأقل بين وضع التطوير ووضع الإنتاج.
00:15:52كما أنه يوفر لك التخزين المؤقت بحيث عندما ينتقل المستخدمون بين المسارات على سبيل المثال، يتم تخزين البيانات مؤقتاً لفترة زمنية معينة.
00:16:00بحيث لا ترسل مجموعة من الطلبات إلى خادمك عند التنقل السريع.
00:16:04وهذا بالطبع يساعد كثيراً في الأداء لكنه لا يخزن كل شيء مؤقتاً أو يحاول تخزين كل شيء مؤقتاً على طبقات مختلفة، وهذا يمكن أن يجعل حياتك كمطور أسهل.
00:16:14لكنه يعني أيضاً بالطبع أنه إذا كنت تريد الحصول على أفضل أداء لمستخدميك وتوفير حركة المرور بشكل محتمل، عليك تعيين رؤوس تخزين مؤقت جيدة بنفسك والتفكير قليلاً في كيفية تخزين تطبيقك مؤقتاً أكثر مما قد تحتاج إلى فعله مع Next.js.
00:16:30هناك عليك التفكير في مشاكل أخرى رغم ذلك.
00:16:32ماذا عن الاستقرار؟
00:16:35هنا سأعطي كليهما على الأرجح علامتين إيجابيتين.
00:16:39كلاهما مستقر إلى حد كبير.
00:16:40من الواضح أن Next.js أكثر نضجاً لكن في تجربتي كان يعاني من أخطاء عديدة خلال السنوات القليلة الماضية خاصة خادم التطوير الذي واجه مشاكل مع الأعطال وما إلى ذلك.
00:16:53لكنه تحسن كثيراً وبشكل عام هو تجربة مستقرة وهناك بالطبع مئات وآلاف التطبيقات التي تستخدمه والتي تعمل في بيئة الإنتاج دون مشاكل.
00:17:03هذا أمر مهم بالتأكيد للإشارة إليه.
00:17:06من الواضح أن لدينا تلك الثغرات الأمنية في React لكن من ناحية يمكن اكتشاف بعضها في المستقبل وقد تؤثر أيضاً على 10-stack start خاصة عندما يبدأون أيضاً في دعم مكونات خادم React ومن ناحية أخرى هذه ليست مشكلة أساسية في Next.js بالطبع.
00:17:2110-stack start لا يزال في مرحلة الإصدار التجريبي وقد واجهت بالتأكيد نصيبي العادل من المشاكل معه.
00:17:28بعض الأعطال الغريبة ورسائل الخطأ الغريبة والسلوكيات الغريبة هنا وهناك لذلك كان يمكنني أيضاً أن أعطيه علامة إيجابية واحدة فقط لذلك لكن بما أنه في مرحلة الإصدار التجريبي ومقابل ذلك فهو مستقر جداً سأذهب لعلامتين هنا.
00:17:41فقط كن على دراية بأنه يمكنك بالتأكيد أن تواجه بعض المشاكل عند استخدام 10-stack start.
00:17:47ومع ذلك لدي تطبيقات تعمل في بيئة الإنتاج مثل buildmygraphic.com هنا والذي يمكنك استخدامه لبناء إنفوجرافيك رائع بمساعدة الذكاء الاصطناعي والتي تعمل بواسطة 10-stack start وتعمل دون مشاكل ولم تكن أيضاً مشكلة في بنائها.
00:18:02ماذا عن الميزات المدمجة؟
00:18:04إذن ما مدى سهولة الحصول على عرض صور محسّن أو تدويل أو أي من هذه الأشياء الممتعة.
00:18:12هنا Next.js يقوم بعمل أفضل بالتأكيد.
00:18:15لديه مكون الصورة المدمج ولديه دعم التدويل المدمج و10-stack start ليس لديه أي من ذلك.
00:18:24لست متأكداً إذا كان مخططاً له ولست متأكداً إذا كان مهماً بالنسبة لك فهو بالتأكيد ليس شيئاً تحتاجه هناك بدائل أخرى وحزم من طرف ثالث يمكنك استخدامها وربما لا تريد حتى الأشياء المدمجة لكن إذا كان هذا شيئاً تهتم به أو تقلق بشأنه فإن Next.js هو على الأرجح الخيار الأفضل هنا.
00:18:43وبعد ذلك ماذا عن النشر؟
00:18:45هذا موضوع صعب.
00:18:48Next.js مبني بواسطة Vercel بالطبع وإذا قمت بنشره على Vercel فهو سهل وسلس للغاية.
00:18:56كل شيء محسّن لذلك.
00:18:58تاريخياً كان من الصعب بعض الشيء نشره على خوادمك الخاصة على سبيل المثال لكن لكي أكون منصفاً فإن فريق Next.js قام فعلاً ببعض العمل لجعل ذلك أسهل وكتابة توثيق أفضل ولذلك في الوقت الحاضر أقول أنه يمكنك بالتأكيد نشره على خدمات أخرى دون الكثير من المشاكل أيضاً.
00:19:17لذا هذا علامتان أو ثلاث علامات إيجابية، ثلاث علامات إيجابية إذا كنت تستخدم Vercel وعلامتان على الأرجح إذا كنت تستخدم مزودين آخرين كما أقول.
00:19:28بالنسبة لـ 10-stack start سأذهب لعلامتين هنا الآن لكن يمكنني أيضاً أن أعطيه ثلاث علامات.
00:19:36السبب الرئيسي لإعطائي علامتين هو أنه في الوقت الذي أسجل فيه هذا لا يزال توثيق الاستضافة صعباً بعض الشيء.
00:19:45هناك شركاء مدعومون رسمياً مثل Cloudflare وNetlify الذين لديهم توثيق جيد جداً وحيث يكون النشر على الأرجح سلساً جداً، لكنني لم أستخدم تلك رغم ذلك.
00:19:56إذا كنت تريد تشغيله على VPS الخاص بك على سبيل المثال مع BUN هناك بعض التعليمات هنا لكنني وجدت صعوبة بعض الشيء في اتباعها أو واجهت بعض المشاكل التي كانت جميعها قابلة للحل لكنها بالتأكيد استغرقت مني بعض الوقت.
00:20:12أعتقد أنه بمجرد وجود دليل جيد لنشر 10-stack start مع BUN أو Node على VPS سيصبح النشر بالتأكيد أسهل خاصة إذا تضمن هذا الدليل توصيات بشأن بعض أفضل الممارسات التي يجب عليك اتباعها أو المخاطر المحتملة التي قد تواجهها.
00:20:29لكن كما ذكرت يمكنك بالتأكيد أيضاً أن تذهب لثلاث علامات إيجابية هنا اعتماداً على كيفية نظرك لذلك.
00:20:34كما ذكرت هذا كله شخصي وهو فقط تجربتي وأفكاري وبالطبع أنا أيضاً مهتم بسماع أفكارك.
00:20:42إذا قمت بالتبديل أو ما رأيك في Next.js و T3 Stack، إذا كنت تفكر في التبديل أو إذا كنت لا تستخدم أيًا منهما وتستخدم بدلاً من ذلك خيارًا آخر.