TG Telegram Group & Channel
Web Development Code | United States America (US)
Create: Update:

Framework vs Library
المقارنة اللى مش هتحتاج تدور على مقارنات تاني بعدها 😉

هتلاقى مقارنات كتير بتقول ان المكتبة بتضم فانكشنز بتساعدك تنجز مهامك بشكل اسرع ... لكن اطار العمل كذلك برضو ، ف دا مش وجه مقارنة اطلاقا.

كذلك هتلاقى حاجة زى ان اطار العمل كافي لانشاء تطبيقات كاملة لكن المكتبة غير كافية ... و دا غلط طبعا دا احنا ممكن نعمل تطبيقات كاملة بدونهم هم الاتنين.

و هتلاقى كلام عن ان اطار العمل افضل من المكتبة ، او ان اطار العمل مكون من عدة مكتبات ... و دا لا يمت للواقع بصلة.

و هتسمع انك لو عملت فانكشن فى ملف ، كدا انت عملت مكتبة مش اطار عمل ... يؤسفنى اقولك ان دا برضو غلط ، و الامر معتمد على وظيفة الفانكشن دى.

خلينا متفقين ان كل الامور اللى فوق دى هى فروق خاطئة بين المكتبة و اطار العمل.

طب اى الفرق الحاسم بين المكتبة و اطار العمل ؟
• شايف كلمة "اطار عمل" ، معناها ايه ؟ معناها انه اطار هتكتب الكود بداخله.
• طب شايف كلمة "مكتبة" ، معناها ايه ؟ معناها مكان نقدر ناخد منه اكواد و نستخدمها.
• بس كدا الامر انتهى ، فى ابسط من كدا ؟ انزل تحت بقا عشان نتكلم بتفاصيل اكتر.

المكتبة احنا بنربطها بالتطبيق بتاعنا ، عشان نقدر نستخدم محتواها ، ف مثلا jQuery تعتبر مكتبة.

لكن اطار العمل احنا بنربط بيه التطبيق بتاعنا ، عشان هو يقدر يستخدم محتوى التطبيق دا ، ف مثلا Vue تعتبر اطار عمل.

المكتبة لازم تكون مكتوبة بطريقة معينة عشان نقدر نستخدمها.

لكن اطار العمل لازم نكون كاتبين التطبيق بتاعنا بطريقة معينة عشان هو يقدر يستخدمه.

تعالى ناخد مثال جامد جدا عن jQuery ، هل هى بتجبرك تعمل اى حاجة فى التطبيق بتاعك عشان تقدر تستخدمها ؟ لا خالص ، مجرد انك تربطها بالتطبيق فقط و هتقدر تستخدم كل حاجة فيها.

تعالى نشوف مثال اجمد عن Vue ، هل هى بتجبرك تعمل اى حاجة فى التطبيق بتاعك عشان تقدر تستخدمها ؟ دى مش بس بتجبرك دى ممكن تيجى تكتب التطبيق بدالك لانها عارفة ان المفروض نعمل object جديد من الVue class و نبعتله حاجات معينة ، و لو عاوزين نظهر اى بيانات فى الصفحة لازم نستخدم الtemplate الخاص بيها ، غير كدا مش هتقدر تستفيد من Vue ، ف هى اجبرتك انك تمشى بstandard معين.

طب هل React بتجبرك زى Vue كدا ؟ هتلاحظ انه لا و ان ال template اللى react app بيبدء بيه ممكن يتحذف كله و يتعمل تاني على مزاجك.

اثبتى بقا ان React مكتبة لكن Next اللى مبنية فوقها تعتبر اطار عمل ! هنسأل نفس السؤال "هل Next بتجبرك تمشى بstandard معين ؟" ، اه لازم تعمل صفحاتك فى مكان معين عشان Next تقدر تستخدمها و تعمل auto routing ، و غيره.

بما ان المكتبة بتسيبك تشتغل براحتك (و عادى جدا تشتغل بشكل عشوائي) ، لكن اطار العمل بيخليك تمشى على standard معين ، نقدر نقول ان اطر العمل مفضلة عن المكتبات اثناء انشاء مشاريع كبيرة ، كدا انت عرفت ليه بنفضل Angular عن React فى المشاريع الكبيرة.

ف الملخص ان المكتبة بيتم استخدامها بواسطة تطبيقك ، لكن اطار العمل هو اللى بيستخدم تطبيقك.

حتى هتلاقى ناس بتقول :
Your code calls a library, but a framework calls your code.
و دا معناه ان الكود بتاعك بينادى على المكتبة (بالتالى الكود بتاعك عارف مسارها) ، لكن اطار العمل بينادى على الكود بتاعك (بالتالى اطار العمل عارف مسار الكود بتاعك ، و لو اتغير مش هيشوفه)

Framework vs Library
المقارنة اللى مش هتحتاج تدور على مقارنات تاني بعدها 😉

هتلاقى مقارنات كتير بتقول ان المكتبة بتضم فانكشنز بتساعدك تنجز مهامك بشكل اسرع ... لكن اطار العمل كذلك برضو ، ف دا مش وجه مقارنة اطلاقا.

كذلك هتلاقى حاجة زى ان اطار العمل كافي لانشاء تطبيقات كاملة لكن المكتبة غير كافية ... و دا غلط طبعا دا احنا ممكن نعمل تطبيقات كاملة بدونهم هم الاتنين.

و هتلاقى كلام عن ان اطار العمل افضل من المكتبة ، او ان اطار العمل مكون من عدة مكتبات ... و دا لا يمت للواقع بصلة.

و هتسمع انك لو عملت فانكشن فى ملف ، كدا انت عملت مكتبة مش اطار عمل ... يؤسفنى اقولك ان دا برضو غلط ، و الامر معتمد على وظيفة الفانكشن دى.

خلينا متفقين ان كل الامور اللى فوق دى هى فروق خاطئة بين المكتبة و اطار العمل.

طب اى الفرق الحاسم بين المكتبة و اطار العمل ؟
• شايف كلمة "اطار عمل" ، معناها ايه ؟ معناها انه اطار هتكتب الكود بداخله.
• طب شايف كلمة "مكتبة" ، معناها ايه ؟ معناها مكان نقدر ناخد منه اكواد و نستخدمها.
• بس كدا الامر انتهى ، فى ابسط من كدا ؟ انزل تحت بقا عشان نتكلم بتفاصيل اكتر.

المكتبة احنا بنربطها بالتطبيق بتاعنا ، عشان نقدر نستخدم محتواها ، ف مثلا jQuery تعتبر مكتبة.

لكن اطار العمل احنا بنربط بيه التطبيق بتاعنا ، عشان هو يقدر يستخدم محتوى التطبيق دا ، ف مثلا Vue تعتبر اطار عمل.

المكتبة لازم تكون مكتوبة بطريقة معينة عشان نقدر نستخدمها.

لكن اطار العمل لازم نكون كاتبين التطبيق بتاعنا بطريقة معينة عشان هو يقدر يستخدمه.

تعالى ناخد مثال جامد جدا عن jQuery ، هل هى بتجبرك تعمل اى حاجة فى التطبيق بتاعك عشان تقدر تستخدمها ؟ لا خالص ، مجرد انك تربطها بالتطبيق فقط و هتقدر تستخدم كل حاجة فيها.

تعالى نشوف مثال اجمد عن Vue ، هل هى بتجبرك تعمل اى حاجة فى التطبيق بتاعك عشان تقدر تستخدمها ؟ دى مش بس بتجبرك دى ممكن تيجى تكتب التطبيق بدالك لانها عارفة ان المفروض نعمل object جديد من الVue class و نبعتله حاجات معينة ، و لو عاوزين نظهر اى بيانات فى الصفحة لازم نستخدم الtemplate الخاص بيها ، غير كدا مش هتقدر تستفيد من Vue ، ف هى اجبرتك انك تمشى بstandard معين.

طب هل React بتجبرك زى Vue كدا ؟ هتلاحظ انه لا و ان ال template اللى react app بيبدء بيه ممكن يتحذف كله و يتعمل تاني على مزاجك.

اثبتى بقا ان React مكتبة لكن Next اللى مبنية فوقها تعتبر اطار عمل ! هنسأل نفس السؤال "هل Next بتجبرك تمشى بstandard معين ؟" ، اه لازم تعمل صفحاتك فى مكان معين عشان Next تقدر تستخدمها و تعمل auto routing ، و غيره.

بما ان المكتبة بتسيبك تشتغل براحتك (و عادى جدا تشتغل بشكل عشوائي) ، لكن اطار العمل بيخليك تمشى على standard معين ، نقدر نقول ان اطر العمل مفضلة عن المكتبات اثناء انشاء مشاريع كبيرة ، كدا انت عرفت ليه بنفضل Angular عن React فى المشاريع الكبيرة.

ف الملخص ان المكتبة بيتم استخدامها بواسطة تطبيقك ، لكن اطار العمل هو اللى بيستخدم تطبيقك.

حتى هتلاقى ناس بتقول :
Your code calls a library, but a framework calls your code.
و دا معناه ان الكود بتاعك بينادى على المكتبة (بالتالى الكود بتاعك عارف مسارها) ، لكن اطار العمل بينادى على الكود بتاعك (بالتالى اطار العمل عارف مسار الكود بتاعك ، و لو اتغير مش هيشوفه)


>>Click here to continue<<

Web Development Code




Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)