افضل template engine قمت باستخدامه مع NodeJS ولماذا؟ وهل monogDB افضل فى الاستخدام من MySql
1- ما هو افضل template engine قمت باستخدامه فى مشاريعك او قمت بتجربته مع NodeJs ولماذا ؟
EJS بسيط وسهل وسريع، ويعمل في أي مكان (لا يتطلب بيئة NodeJS شرطًا)، أستخدمته في عدّة مشاريع منها مدونتي المبنية على Github pages ولم أواجه معه أي مشاكل أو تعقيدات.
2- برأيك الافضل استخدام MongoDB او MySql ؟
على حسب المشروع يتحدد هل ستحتاج إلى قاعدة علاقية أم لا أجبت على هذا سابقًا:
EJS بسيط وسهل وسريع، ويعمل في أي مكان (لا يتطلب بيئة NodeJS شرطًا)
اراه ايضاً رائع ولكن رأيت express-generator يستخدم pug افتراضى
على حسب المشروع يتحدد هل ستحتاج إلى قاعدة علاقية أم لا
هل MongoDB غير علاقية؟
يستخدم pug افتراضى
لم أسترح له -تو متش هيبرد، أفضل Syntax شبيه لـHTML تقليدي، وأتحسس من الـBlocks المبنية على الفراغات.
هل MongoDB غير علاقية؟
نعم.
انظر الرابط التالى يتحدث عن العلاقات من الموقع الرئيسى
ام ماذا تقصد بغير علاقية
ام ماذا تقصد بغير علاقية
NonSql document-oriented database، ومانجو تستخدم نظام شبيه بـJSON، هي جيّدة جدًا في مجالها، لكن بعض الأشياء التي تطلب قاعدة بيانات علاقية كموقع بمستخدمين بتعليقات هي ببساطة Does not scale، لا التخطيط (schema) مساعد، ولا صيغة BSON مساعدة؛ غبية وبطيئة عند البحث بين بيانات بحجم معقول (10000 حقل مثلا)، ولا نظام الـIndexing، حتى مع تلك كل الهاكات في مانجو مع البيانات العلاقية، مثلًا ستحتاج إلى سطرين من الاستعلامات للحصول على تعليقات لمستخدم (الأول ترجع الـId والثاني تأتي التعليق) في حين Mysql بسطر استعلام واحد تقوم بالأمر.
في NodeJS دائما استخدم MongoDB ما عدا إذا احتجت حفظ علاقية (بيانات مرتبطة ببعضها) حينها استخدم أي قاعدة بيانات SQL..
express-generator يمكنك ان تختار ال template engine الذي تريده
بالنسبة لي ejs بعد ان جربت handlebars pug واخرون
ما هو افضل template engine قمت باستخدامه فى مشاريعك او قمت بتجربته مع NodeJs ولماذا؟
لايوجــد الأفضل حقيقــة، حسب تجربتي يعتمــد على المشروع ذاتــه، مثــلاً لن تلجــاً إلى إستخدام Express-generator مع مشــروع Client-side تبنيــه بـ Angular طالمــا في الأخيــرة نظام القوالب الخاص بهــا.
برأيك الافضل استخدام MongoDB او MySql؟
لا يوجــد الأفضل إستخــدام بين الأثنتنيــن وغيرهمــا، هناك أيضاً Real-time database مثل RethinkDB، فيعتمــد على حسب إحتياجك للمشــروع. في معظــم المشاريع Relational database مثل MySQL هي المفضلــة والمستخدمــة، كنظم البنوك، ونظــم البحــث المتســق مثل تطبيقات ونــظم الإجرة كـ Uber.
حســب خبرتي تستخدم non-relational database عندما يكون لديك تصميم غير مترابــط، والترابط لايعنــي فقط العلاقــة بين جدولين، بل يعني أيضـــاً علاقة المــدخل (Record) بالجدول نفســـة. مثــلاً لو كان لدينــا Collection أسمه users لو قمــت بإدخال قيمــة يكون فيها إسم المستخــدم String وقيمة أخرى يكون فيها أسم المستخــدم Integer، لن تعاني من مشاكل في أي تصميم يعتمــد على non-relational database. لأن المدخل الأول ليس له علاقة في المــدخل الآخــر لا بأسماء، أو ترتيب أو عدد الـ Key, values المدخــلة.
أهم ميزة في non-relational database هي كما يقال Scalability القــدرة على التوسع بتكلفة بسيــطة. كمثال لو أردت أضافة حــقل جديد في جــدول قديــم فيه بيانات في قاعدة بيانات علائقيـــة، ستضظر إلى جعل قيمة هذا الحقل لكل السجلات NULL أو قيمة إفتراضية أخرى، بينمــا في Mongo سوف يكون الحقــل مضاف في السجــلات التي تحتاجهــا فقط. ولن تحتاج إلى جعل قيمة إفتراضية للسجلات الأخرى.
وأهم عيــب هو (المخاطرة العاليــة). أي قــد تفقــد بعض المعلومــات بسبب عدم إتباع قواعــد ثابتـــه.
رغم أني أفضــل Relational Database في أغلب المشاريع، لكن، في بعض المشاريــع تحتاج إلى العكــس، مثــلاً في المشاريــع التي تحتــاج تخزيــن أنطباعات مختلفــه من المستخدمين على حسب الزمان والمكــان ومعايير أخــرى.
الي بيقلك ان Mongodb مافيها رليشن بين الداتابيس بيكون هو موفاهم mongodb صح , يعني ماشرط الريليشن تكون متل ال sql حتى نقول عنها ريليشن ممكن يكون في طرق تانية متل ما عملوا جماعة ال mongoose, لو انت شغال على ال node.js إقرأ عن ال populate('') , الريليشن الموجودة في ال mongodb اقوى من ال sql .
هي رابط شارح ماهي الطريقة لتعمل ريليشن اقوى من ال sql .
-- ما هو افضل template engine
استخدم هذه المجموعة لأنها الأكثر إنتشاراً
التعليقات