JavaScript تستطيع أن تُنظّف أطباقك!
معجب بالمقال .. وانا كذلك منتقل حاليا من الواجهه الى الخلفية ليس لذات السبب لكن التقليل من حجم صانع الواجهة لدينا في السوق وسعره الزهيد
الامر الآخر التعصب اعتقد مفيد جدا للغة لان يدفعها لتقدم والتطور وايجاد الحلول والتحايل كذالك ، لماذا استقريت في الجافاسكريبت لانها ستبقيني ادور حول الفلك الذي ارتاح له وهو تطبيقات الويب سواء الواجهة او الخلفية ، نعم لهذه اللغة عيوب ككل اللغات وتبقى مهارتك هي التي ستدفع اللغة الى الامام , بالاضافة الى ان النسخة السادسة ستعمل على تحسين اللغه ، التجوال بين اللغات سيكلفك وقتا امضيت سنه بين اطر عمل البايثون والروبي لكن تصميم تلك اللغات لم اتجاوب معاه كما مع الجافاسكريبت فأظن اختيار اللغه يعتمد على اريحية المبرمج مع تصميم اللغه وطرق عملها وهذا يختلف من شخص الى اخر ، لكن يبقى الاهم هل ستعتمد عليها في بناء المشاريع ؟ نعم هذه التقنية اعتمد عليها في بناء تطبيقات لدى google , twitter ,paypal , ebay
لذا هي احد الخيارات التي يجب ان تطلع عليها ؟
استمتعنا بتنظيف الاطباق ! :)
JavaScript هي عالم من الفوضى إن تغاضينا عن التنظيم الممتاز في Node.js ونظرنا إلى بيئة المتصفّحات... كم مرّة عانى مطوّرو الويب من عدم التوافق... المتصفّح الفلاني يوفّر الميزة الفلانية
لم تذكر في مقالتك حلول هذه الفوضى وايضا حل عدم التوافق، وهي المنصات (MVC) التي ضهرت حديثا:
Angular.js (وهي احسنهم حسب بحثي)
Backbone.js
Ember.js
... وغيرها
لا أعتقد أن أطر العمل هذه تسعى لحل الفوضى التي قصدتها، ما قصدته هو وجود حاجة لإضافة عدة مكتبات غير متوافقة مع بعضها لتحقيق توافق بين المتصفحات، بعض هذه المكتبات يتبع نمط AMD والآخر يتبع نمط Common JS وبعضها يُعرّف متغيراته في النطاق العام... الفوضى عارمة وأطر العمل وُجدت لتحلّ مشكلات من نوع آخر. لا يسعني إلا أن أذكّر بتجربتي المريرة مع Angular.js التي يبدو أنها الأبطأ بين كل أطر العمل (انظر
، نصيحة لكل من يريد استعمال Angular لتطوير تطبيقات على الهواتف الذكية: لا تفعل!
على سطح المكتب تُعتبر Angular جيّدة وتوفّر الكثير من الخدمات التي تحتاج معظمها لبناء تطبيق ويب متقدّم. ما يعيبها هو اعتمادها على ما يُسمى Dirty checking للتحقّق من التغييرات في العناصر والكائنات وتطبيقها على الصفحة، ويبدو أنّ هذا مصدر سوء الأداء؛ هذا الأمر سيتغيّر في Angular 2.0 (التي لا تزال بعيدة) باعتماد Object.observe التي بالتأكيد سُتغير من أدائها نحو الأفضل بشكل ملحوظ. لم أجرّب Vue.js ولكن يبدو أن أسلوب استعمالها سهل وشبيه بـAngular.js.
البديل أن تدرس جيّدًا ما سيحتاجه تطبيقك بالذات وتفكر إن كان بالإمكان الاعتماد على JavaScript "سادة" (أي بدون أطر عمل)، غالبًا لن تحتاج jQuery مثلاً فهي ثقيلة وفيها الكثير من الخصائص التي صمّمت لتحل مشاكل قديمة، ربّما ترغب باستخدام مجموعة من المكتبات الصغيرة الحجم التي يؤدّي كلّ منها عملاً محدّدًا بدل أن يحاول أن يكون إطار عمل يقدّم كل شيء بدءًا من التوجيه (routing) مرورًا بطلبات AJAX وإلقولبة (templating)... هذا النهج ذكره المطوّر Rob Ashton في مدوّنته (
ولكنّك إن لم تدرس حاجات برنامج فستقع في مشكلة فوضى المكتبات ثانية وعليك أن تجد حلولًا لاختلاف طريقة استخدامها.
لا حاجه لتعقيد الامر واظن يعتمد على طريقتك في تصميم البرنامج قبل ان تشرع في كتابة الاكواد كل ماتحتاجه هو تنظيف وتبسيط البرنامج هذا المقال سيفيدك
التعليقات