اذهب إلى المحتوى

مقارنة بين Bootstrap و Tailwind CSS


Mohamed Lahlah

مع سرعة تطور الإنترنت والويب وزيادة اعتماد الشركات على الويب تجلت أهمية التصميم المرن والتخطيط سريع الاستجابة والأنماط التفاعلية مع المستخدم والتخطيط الشبكي لصفحات الويب والكثير من الأمور الأخرى، وبدأت تظهر جدلات آنذاك بين أهمية التصميم أم المحتوى؟ ولكن لا يمكننا النظر إلى هذين العنصرين على أنهما متنافسين بقدر ما هما متكاملين لأنه في الحقيقة ومع أن المحتوى هو العمود الفقري لأي موقع إنترنت إلا أن التصميم ما هو إلا أداة إيصال هذا المحتوى للمستخدم لذلك أهميته توازي أهمية المحتوى لأن واجهة الموقع ذات التصميم السهل تخلق انطباعًا أوليًا رائعًا في أذهان المستخدمين، وهذا هو سبب زيادة تركيز مطوري الويب على تطوير واستخدام أدوات تساعدهم في الوصول تصاميم رائعة بأقل مجهود ووقت ممكن.

لذلك بدأت تظهر في السنوات القليلة الماضية أدوات ومكتبات وأطر عمل تسرع من عملية تطوير وواجهات المستخدم ويُعرفُ إطار العمل Framework في البرمجة على أنه أداة توفر مكونات أو حلول جاهزة لتخصيصها من أجل أي مشروع بهدف تسريع عملية التطوير، ويمكن أن يشتمل الإطار على مكتبة أو مكتبات مساعدة، كما يوفر إطار العمل الدوال القياسية منخفضة المستوى لتمكن المطورين من التركيز على صلب المشروع وعدم إضاعة وقتهم في الأمور المتكررة.

من بين التي الأطر التي ذاع صيتها نذكر Bootstrap و Skeleton و Bulma و Tailwind CSS و Materialize. تتعددُ أهداف هذه الأدوات والأطر المخصصة للواجهات الأمامية فمنها ما تركز على بناء مكتبة مكونات كبيرة جاهزة للاستخدام في المشاريع، ومنها ما تركز على إتاحة الأساسيات لتمكن المطورين تخصيص مواقعهم، هذا التنوع جعل كل مطور يتجه إلى الإطار الذي يناسب متطلباته، ولكن من بين الأطر الذي ذاع صيتها في الآونة الأخيرة Bootstrap و Tailwind CSS سنحاول في هذا المقال تسليط الضوء على هذين الإطارين وسنطلع على سر قوة وشعبية Bootstrap والاهتمام السريع والمتزايد لإطار Tailwind CSS ولنستكشفُ بعدها أيهما أفضل Tailwind CSS أم Bootstrap.

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

نبذة موجزة عن Bootstrap و Tailwind CSS

في ظل التطور السريع لتقنيات الويب يجب على المطورين دومًا تحليل أي تقنية جديدة من خلال الاطلاع على إيجابياتها وسلبياتها قبل اعتمادها في عملهم ومشاريعهم الجديدة، منذ ظهور إطار العمل Bootstrap عام 2011 أصبح عنصرًا أساسيًا من عناصر تطوير الويب، ولكن في الآونة الأخيرة ظهر إطار عمل جديد وسرعان ما حظي باهتمام كبير في مجتمع المطورين وهذا الإطار هو Tailwind CSS. لنفهم ماهية كل من هذين الإطارين بالتفصيل.

ما هو Bootstrap؟

بحسب تعريف الموقع الرسمي لإطار Bootstrap هو إطار عمل للواجهات الأمامية لمواقع الويب مجاني ومفتوح المصدر، طوّر هذا الإطار اثنان من المبرمجين وهما مارك أوتو Mark Otto وجاكوب ثورتون Jacob Thorton في مسابقة داخلية في شركة تويتر Twitter في أغسطس 2011، وهو يتكون من شيفرات برمجية بلغة HTML و CSS وجافاسكربت، وصمم خصيصًا لتسهيل عملية تطوير الويب لمواقع الويب المتجاوبة والتي تعتمد على التصميم للهواتف المحمولة أولًا Mobile First Design من خلال توفير مجموعة من المكونات تعمل على جميع أحجام الشاشات، بل إن هذا الإطار قائمًا على المكونات إذ يأتي مع مجموعة من المكونات الجاهزة للاستخدام وذلك لتسريع تصميم موقع الويب، كما أن الشيفرة البرمجية الخاصة بملفات التنسيق CSS موجه للكائنات، وهو يعمل مع معظم المتصفحات من بينها متصفح غوغل كروم Chrome وإنترنت إكسبلور Internet Explorer …إلخ.

يعد إطار العمل Bootstrap سهل التعلم لأي شخص مبتدئ بلغة CSS، كما تتوافر الكثير من الدورات التعليمية عبر الإنترنت لمساعدتك على البدء. ولا تتطلب مكوناته سوى معرفة أساسية بلغة HTML و CSS و جافاسكربت لتعديلها. يأتي إطار العمل Bootstrap بنظام شبكة محدد مسبقًا يتكون من صفوف وأعمدة، مما يتيح للمطور إنشاء شبكة داخل شبكة بالإضافة إلى ذلك، يجعل نظام الشبكة واجهات الموقع أكثر وضوحًا للمستخدمين والمطورين. ومكونات هذا الإطار متوافقة مع أحدث إصدارات المتصفحات الشائعة. كما يمكنك أيضًا استخدام مكوناته في تصميمات أنظمة إدارة المحتوى الشائعة مثل ووردبريس WordPress وجوملا غيرها.

ما هو Tailwind CSS؟

هو إطار عمل CSS أول من نوعه يقدم أدوات مساعدة بالدرجة الأولى Utility-First أكثر مما يقدم مكونات جاهزة إذ يتيح لك إنشاء واجهات مستخدم مخصصة مع الحد الأدنى من الشيفرة البرمجية لملفات تنسيق CSS. كما يمنحك تحكمًا كاملًا في واجهة واجهة المستخدم الخاصة بك من خلال الأصناف Classes الموجودة فيه.

يساعد إطار عمل Tailwind CSS في السيطرة على التصميم ويجعله فريدًا لأن الإطار لا يفرض سمة افتراضية يجب عليك استخدامها مثل أطر CSS الأخرى. فمثلًا يمكنك إعطاء كل مشروع مظهرًا مختلفًا حتى إذا كنت تستخدم نفس العناصر (لوحة الألوان والحجم وما إلى ذلك). لذلك فهو من أطر العمل القليلة التي لا تفرض طريقة معينة لتصميم مشروعك. بل إنه من أسرع الأطر عندما يتعلق الأمر بدمج التصاميم مع ملفات HTML.

بناءً على ما سبق، يمكنك بسهولة إنشاء تخطيطات لعناصر الواجهات الأمامية من خلال آلاف الأصناف المضمنة التي لا تتطلب منك سوى استدعائها في التنسيق للعنصر. لذلك لا يتعين عليك كتابة قواعد التنسيق CSS بنفسك. تعد أصناف CSS هذه هي السبب الرئيسي وراء سرعة البناء والتصميم باستخدام Tailwind، بالإضافة إلى ذلك يمكن إزالة جميع أصناف CSS غير المستخدمة عبر أداة PurgeCSS والتي تساعدك على إبقاء الشيفرة البرمجية لملفات التنسيق CSS النهائية صغيرة الحجم.

مقارنة بين Tailwind CSS vs Bootstrap

لندخل أكثر في التفاصيل ولنطلع على أهم الفروقات بين هذين الإطارين.

المجتمع والتطوير

لننظر أولًا في المجتمع لتقييم تطوير هذه الأطر، عندما نرى أن الإطار حصل على الكثير من التحديثات فهذا أمر إيجابي ويشير إلى أن تطوير هذه الأطر مستمر على قدم وساق. دعونا نلقي نظرة على مجتمعات Tailwind CSS vs Bootstrap فيما يتعلق بالإحصاءات الموجودة في مستودعات GitHub الخاصة بها ونؤكد أن هذه الأرقام حتى تاريخ كتابة المقال.

وجه المقارنة إطار العمل Bootstrap إطار العمل Tailwind CSS
الموقع الرسمي Bootstrap Tailwindcss
تاريخ أول إصدار 2011 2017
رقم الاصدار v4.6.1 v3.0.18
عدد المراقبين 7 آلاف شخص 567 شخص
عدد النجوم 155 ألف نجمة 53.3 ألف نجمة
عدد التفريعات 76.1 ألف مستودع مشتق 2.6 ألف تفريعة
عدد المساهمين 1274 مساهم 214 مساهم

يلعبُ قِدم إطار Bootstrap والذي يصل عُمره لأكثر من 12 سنة دورًا مهمًا في شعبيته ومن الطبيعي أن نجد له مجتمعًا كبيرًا من المطورين والأدوات والمنتديات وما إلى ذلك. أما إطار Tailwind CSS فلا يزال جديدًا وينمو بسرعة كبيرة ويتزايد مستخدميه ومطوريه يوميًا، ولنتذكر دومًا بأن المجتمع الأكبر للمطورين يمكن أن يساعدك في الحصول على المساعدة بصورة أسرع عند مواجهة أية مشكلة في التنفيذ.

المكونات الجاهزة وقابلية التخصيص

يوجد العديد من المكونات الجاهزة للاستخدام في إطار Bootstrap إذ يوجد أكثر من 40 عنصرًا جاهزًا مثل الشريط الرأسي للموقع Headerbar وعناصر التنقل Navigation وتذييل الموقع Footer والاستمارات Forms والنوافذ الشرطية Modals والعديد من مكونات واجهة المستخدم الأخرى. يتميز Bootstrap إطار بأسلوب مرئي متسق وتحتوي غالبية مواقع الويب التي تستخدم هذا الإطار على نفس عناصر التنقل والهيكل والتصميم، مما يجعلها تبدو غير احترافية. ولكن الأمر المفيد هو أنه إذا كنت مبتدئًا ولا تعرف الكثير عن لغة CSS فمن السهل جدًا استخدام الإطار وإنشاء قالب موقع ويب جيد.

بالمقابل لا نجد ذلك مع إطار Tailwind CSS فلا يوجد مكونات جاهزة سواء من الإطار بحد ذاته ولكن يوجد القليل من المكونات المقدمة من المجتمع، وفي الحقيقة يجد المطورون بأن أفضل ميزة في Tailwind CSS هو أنه يقدم أدوات مساعدة بدلًا من مكونات جاهزة، ولذلك فأنه تتيح قابلية التخصيص بدرجة كبيرة أي أنه يمكنك إنشاء تصاميم وواجهات مستخدم مخصصة بطريقة ممتازة باستخدام الأصناف Classes التي يوفرها إطار العمل وبدرجة مقبولة من المجهود في كتابة الشيفرة البرمجية. يمكنك بسهولة الاستفادة من تصميم كل مكون على حدة بالطريقة التي تتطلبها واجهة المستخدم الخاصة بك.

بنية الشيفرة البرمجية

يعمل إطار Tailwind بطريقة مختلفة عن معظم أطر عمل CSS إذ يمزج بين قواعد الأنماط مع ملفات HTML الخاصة بك أي أن الشيفرة البرمجية الخاصة بالتنسيق باستخدام الأصناف ستكون موجودة بالكامل مع شيفرة HTML، وهذا يتعارض مع مبدأ "فصل الاهتمامات" Separation Of Concerns أو اختصارًا SoC، الذي هو أحد المفاهيم الرئيسية في علوم الحاسوب وهو تحديدًا من مبادئ تصميم الشيفرة البرمجية والتي تنص على فصل الشيفرات البرمجية لبرامج الحاسوب إلى أقسام متميزة وكل قسم يعالج مشكلة منفصلة.

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

أما في إطار العمل Bootstrap فنجد أن قواعد التنسيق مفصولة عن الهيكل الأساسي للصفحة وبالرغم من أن هنالك بعض المبرمجين يخطئون ويدمجون قواعد التنسيق داخل ملفات HTML إلا أن الإطار بحد ذاته لا يشجع على هذه الممارسات.

بالإضافة إلى ذلك هنالك الفرق بين مبادئ التصميم في Bootstrap و Tailwind CSS فإطار العمل Bootstrap يستخدم منهجية Object Oriented CSS أو اختصارًا OOCSS لأنه يستخدم كائنات مثل عناصر التنقل والاستمارات …إلخ، وطرقًا لتفاعل المستخدم مع تطبيقات ومواقع الويب. بينما يوفر Tailwind CSS مجموعة أصناف يمكنك إضافتها أو إزالتها أو تحريرها في ملف الإعداد Tailwind.config.js الخاص بالإطار حتى تتمكن من تخصيص التصميم الخاص بك، كما يوجد أصناف لجميع أنواع الهوامش والحشو والخلفيات وأحجام الخطوط ومجموعات الخطوط والموضع ومن بعض الأمثلة عن هذه الأصناف نذكر flex و pt-4 و text-center و rotate-90 وغيرها، وإليك هذا المثال لفهم هذه الاختلافات.

<!DOCTYPE html>
<html>

<head>
    <!-- Tailwind CSS -->
    <link href=
"https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css"
        rel="stylesheet">
    <title>Tailwind CSS</title>
</head>

<body style="background-color: gray;">

    <!--Card 1-->
    <div class=" w-full lg:max-w-full lg:flex">
        <div class="border-r border-b border-l
            border-gray-400 lg:border-l-0
            lg:border-t lg:border-gray-400 bg-white
            \rounded-b lg:rounded-b-none lg:rounded-r
            p-4 leading-normal">
            <p class="text-gray-700 text-base">
                This Card is made using Tailwind CSS.
            </p>
        </div>
    </div>
</body>

</html>

بينما لاحظ كيف ستكون نفس الصفحة ولكن بإطار عمل Bootstrap:

<!DOCTYPE html>
<html>

<head>
    <!-- BOOTSTRAP -->
    <link rel="stylesheet" href=
"https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
        integrity=
"sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"
        crossorigin="anonymous">
    <title>BOOTSTRAP</title>
</head>

<body style="background-color: gray;">
    <div class="card">
        <div class="card-body">
            This Card is made using BOOTSTRAP.
        </div>
    </div>
</body>

</html>

في الحقيقة هذه النقطة من أكثر النقاط إثارة للجدل على مستودع إطار العمل في موقع Github ولكن مع ذلك نشهد زيادة كبيرة في الإقبال على هذا الإطار الأمر الذي يدل على وجود محبين لهذه الطريقة من الشيفرات البرمجية.

دعم المتصفحات

قد لا يلتفت الكثير إلى هذه النقطة ولكن قد يضطر المبرمج في مرحلة أو مشروع ما إلى النظر لأمر دعم المتصفحات، فيدعم إطار العمل Bootstrap أحدث الإصدارات لغالبية المتصفحات المدمجة في الأنظمة الأساسية مثل نظام التشغيل ويندوز ومتصفح إنترنت إكسبلورر Internet Explorer 10-11 (يذكر أن هذا المتصفح سينتهي دعمه في 22 حزيران عام 2022) أو مايكروسوفت إيدج Microsoft Edge، وإذا كنت بحاجة لدعم النسخ القديمة من المتصفحات مثل مايكروسوفت إكسبلورر IE8-9، فننصحك باستخدام الإصدار Bootstrap 3.

بالنسبة لإطار العمل Tailwind CSS فهو يدعم أيضًا أحدث الإصدارات من المتصفحات مثل كروم Chrome وفيرفوكس Firefox ومايكروسوفت إيدج وسفاري Safari. ولكن لا يدعم Tailwind CSS v3.0 أي إصدار من متصفح إنترنت إكسبلورر IE وإذا أردت دعم المتصفح IE 11 فنوصي باستخدام Tailwind CSS v1.9، والذي لا يزال خيارًا جيدًا ومنتجًا للغاية بالمقارنة مع الطرق القديمة لكتابة الشيفرات الخاصة لملفات التنسيق CSS.

السرعة والأداء

في إطار العمل Bootstrap يوجد عدد هائل من المكونات والوظائف وهذا يعني تضمين ملفات كبيرة الحجم إلى تبعيات المشروع. يمكن أن يؤدي استخدام الإطار في مشروعك إلى إبطائه وزيادة وقت تحميل الموقع وبالطبع إثقال كاهل الخادم أيضًا. لتجنب هذه المشكلة تأكد من إضافة الأصناف التي تحتاجها فقط واستخدم الإصدار المصغر أو المضغوط gzip من الملفات الإطار.

بالمقابل بما أن إطار Tailwind CSS ليس به أي مكونات مُعدة مسبقًا الأمر الذي ينعكس على صغر حجم الملفات والتبعيات الخاصة به، وعمومًا إذا لم تكن بحاجة إلى مجموعة كبيرة من المكونات والوظائف التي توفرها Bootstrap فإن إطار Tailwind هي الخيار الأفضل للمشاريع البسيطة وخفيفة الوزن.

سهولة التعلم للمبتدئين

يعد إطار العمل Bootstrap سهل الاستخدام لديه منحنى تعليمي بسيط في البداية ويمكن أن يستغرق الأمر بعض الوقت لتعلم كافة الأصناف والمكونات المتاحة كما أنه يوجد العديد من الدورات والمقالات الفيديوهات المتاحة عن هذا الإطار الأمر الذي يجعل رحلة التعلم سهلة نسبيًا.

يتطلب إطار Tailwind CSS وقتًا أطول للتعلم، وحتى بالنسبة للمطورين ذوي الخبرة، يمكن أن يكون من الصعب تعلم كيفية استخدام الأصناف المُعدة مسبقًا والاستفادة منها بالطريقة المثلى، ولكن كما هو الحال مع أي تقنية جديدة فإن الممارسة وكثرة الاستخدام ستُمكننا من الاستفادة من كافة المميزات، بالإضافة إلى ذلك يفتقر إطار Tailwind CSS للمقالات والدروس والفيديوهات التعليمية وبالرغم من أنها قطعت شوطًا كبيرًا كتقنية ناشئة إلا أنها لا تزال متخلفة عن المنافسين مثل Bootstrap، بعبارة أخرى ضع في اعتبارك أن هذا سيؤدي لاستهلاك وقت إضافي لحل المشاكل.

بيئات العمل ودعم اللغات في محرر الشيفرات

يزيد عمر إطار العمل Bootstrap عن 12 سنة لذلك نجد بأن معظم محررات الشيفرات البرمجية مثل Sublime و Visual Studio Code و JetBrains تدعمه، وبالمقابل لا نجد هذا الدعم ضمني بالنسبة لإطار Tailwind CSS ولكن يمكن للمحررات المشهورة أن تدعمه من خلال تنزيل إضافة Tailwind CSS IntelliSense لمحرر Visual Studio Code والتي تقدم ميزات متقدمة مثل الإكمال التلقائي وتمييز بعض الجمل والفحص والتحقق من الكتابة الصحيحة في الحقيقة العديد من المحررات الأخرى لديها إضافات أو حلول شبيهة لدعم هذا الإطار.

أيهما أفضل Tailwind CSS vs Bootstrap؟

المشكلة الأساسية في إطار العمل Bootstrap هي أن المواقع التي تستخدمه تبدو متشابهة إلى حد ما، وذلك لأن إطار العمل Bootstrap جرّد إنشاء المكونات لدرجة أنه أجبر المطورين على استخدام الأنماط المتوفرة فقط. الشيء نفسه ينطبق على أطر عمل أخرى من نفس المجموعة، ويمكن أن يجادل البعض بأنه يمكن تجاوز الإطار بتخصيص ملفات قواعد التنسيق CSS الخاصة بنا، ولكن مهلًا إذا تجاوزنا إطار العمل كثيرًا، فعندها نعود إلى نقطة مهمة وهي هل هناك فعلًا فائدة من استخدام هذا الإطار؟ لأننا فعليًا سننشئ تنسيقات خاصة بنا ولذلك سيكون إطار العمل مجرد تبعيات إضافية للموقع. أليس كذلك؟!

بالمقابل لا يعيق إطار العمل Tailwind CSS قدرتنا على الإبداع في بناء واجهات مستخدم معقدة وإنما يتيح ذلك بسهولة دون فرض تصميم معين على جميع المواقع. كما أن استخدام مجموعة من أصناف الأدوات المساعدة التي تتيح لك العمل مع ما تحتاج إليه بالضبط، وعدم القلق أبدًا بشأن التغييرات التي تطرأ على عنصر معين لأنه التغييرات ستبقى على ذلك العنصر ولن تؤثر على العناصر الأخرى المشابهة. أي لا مزيد من التنقل جيئة وذهابًا بين ملفات HTML وملفات قواعد التنسيق في المحرر الخاص بك، وبعض المبرمجين لا يفضلون ذلك لأن الشيفرة البرمجية الخاصة بصفحات HTML ستكون فوضوية للغاية، وبالمقابل تكون الشيفرة البرمجية لإطار Bootstrap منظمة ونظيفة كما أن إطار Bootstrap يدعم التفاعل بالاعتماد على لغة جافاسكربت فيوفر مثلًا شرائط تنقل وقوائم وحقول إدخال جاهزة الأمر الذي يسهل دخول المبتدئين ويسرّع من العمل على المشروع إن لم يتطلب تخصيصًا.

في الحقيقة يمكن أن يكون استخدام إطار Bootstrap مناسبًا أكثر للمبتدئين أو للمطورين الشاملين Full Stack وبالمقابل يكون إطار Tailwind CSS مناسبًا أكثر للخبراء ومطوري الواجهات الأمامية Front End Developer.

متى نستخدم Tailwind CSS و Bootstrap؟

يسهل إطار العمل Bootstrap عملية تصميم المواقع على المصممين المبتدئين والذين يسارعون إلى بناء نموذج أولي من الموقع أو تطبيق الويب باستخدام مكتبة ضخمة تحتوي على عدد هائل من المكونات والمشاريع المُقدمة من قبل المجتمع، ولكن بمجرد أن يتطور التطبيق وتتعقد تصاميمه ومتطلباته يحدُ الإطار من عملية التصميم ومرونتها ويصبح عبئًا بدل أن يكون مساعدًا.

بالمقابل يعدُ إطار Tailwind CSS حلًا ممتازًا للمطورين المطلعين على لغة CSS والذين يرغبون في تسريع عملية الإنشاء والتصميم على المدى الطويل. ولا يحبذ استخدام الإطار إذا لم تكن معتادًا على لغة CSS أو لا ترغب في قضاء الوقت في تعلم التفاصيل الدقيقة لها.

وبالتأكيد أن الأمر يتعلق باحتياجات المشروع وحجمه وإمكانيات الفريق، يمكن أن يساعدك الإطار في توفير وقت التصميم وخصيصًا للمطورين الذين لا يفضلون استخدام المكونات الجاهزة، وبالتالي فإن قضاء الوقت في اختبار هذا الإطار أمر مفيد. وعمومًا إذ سنح لك الوقت في يوم من الأيام فأنصحك بتجربة إطار Tailwind CSS وخصيصًا إذا كنت مطور واجهات أمامية.

الخاتمة

تعرفنا في هذا المقال على لمحة سريعة عن سرعة تطور واجهات الويب واطلعنا على تسارع تطوير الأدوات والأطر المساعدة لتحقيق السرعة والإنتاجية في عملية التصميم في هكذا أجواء كما تعرفنا على أشهر إطاري عمل وهما Bootstrap و Tailwind CSS كما نظرنا إلى الاختلاف بينهما في المجتمع والتطوير وفي المكونات الجاهزة وقابلية التخصيص وفي بنية الشيفرة البرمجية ودعم المتصفحات لهذه الأطر والسرعة والأداء لكل إطار وسهولة التعلم للمبتدئين وبيئات العمل ودعم اللغات في محررات الشيفرات البرمجة لنختم المقال بفهم أي الإطارين أفضل ومتى نستخدم كل واحد منها.

وختامًا يُتوقع من كل إطار عمل أن يسهل من عملية بناء المشاريع البرمجية من خلال توفير بنية أساسية للشيفرات البرمجية المتكررة، وجعل تركيز المبرمج على بناء وإعداد المميزات الإضافية الخاصة بالمشروع هذا هو الهدف وإذا شعرت بأن الإطار أصبح عبئًا على المشروع فعندها لا بد أنك تستخدم الإطار الخاطئ وعندها لا بد من البحث عن الحلول البديلة.

المصادر

اقرأ أيضًا


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...