دعونا نواجه الأمر ، لم يكن جافا سكريبت دائما أفضل سمعة بين المطورين ، ومنذ تأسيس شركة CoffeeScript في عام 2009 هذه اللغة الصغيرة قد اتخذت العالم من مطوري جافا سكريبت من قبل العاصفة. بشكل رئيسي لأنها تتغلب على ما قد يقوله البعض أنه أسوأ جانب من جوانب جافا سكريبت: بناء جملة رمزها.
على الرغم من أن هذه لغة جديدة ، إلا أنك ستلتقطها بسرعة كبيرة بسبب إعادة تنسيق جافا سكريبت. انها اساسا أجمل ، وأبسط جافا سكريبت.
عند كتابة CoffeeScript ، لا تنس أنك تقوم بكتابة الكود الذي سيتم نشره قبل أن يتم نشره في JavaScript والذي يتبع أفضل الممارسات ويجتاز اختبار JSLint ، لذلك هذا أقل شيء يجب أن تقلق بشأنه. سيظل المخرج جافا سكريبت صالحًا ، ولن يواجه المتصفح مشكلة في القراءة. CoffeeScript هو جافا سكريبت ما هو SASS إلى CSS: طريقة لكتابة رمز أبسط وأكثر إنتاجية.
تعتبر CoffeeScript أداة مساعدة node.js لتثبيتها تحتاج إلى تثبيت node.js بالإضافة إلى مدير حزمة العقدة. بافتراض أنك قمت بتثبيت هاتين الحزمتين ، كل ما عليك فعله هو الانتقال إلى مطرافك وتثبيت CoffeeScript مع مدير الحزم باستخدام الكود:
npm install -g coffee-script
فقط مع ذلك ، تم تثبيت CoffeeScript على جهازك. لتجميع ملف .coffee في ملف JavaScript ، يجب كتابة:
coffee --compile script.coffee
سيقوم هذا بتجميع ملف script.coffee في script.js في نفس الدليل ولكنه لن يفعل ذلك إلا عندما تقوم بتشغيل الأمر ، إذا كنت تريد أن يقوم بالتجميع في كل تغيير تقوم به في ملف القهوة تحتاج إلى إضافة-ساعة قبل التجميع:
coffee --watch --compile script.coffee
مع إضافة هذا ، سيتم تجميع جافا سكريبت في كل مرة تقوم فيها بإجراء تغيير على ملف .coffee الخاص بك.
عند كتابة متغير جافاسكريبت ، يجب أن نضيف الكلمة الرئيسية var ، مع CoffeeScript أن الكلمة الرئيسية قد اختفت ، ويمكنك فقط كتابة المتغير وتعيينه لشيء ما. هناك شيء آخر يجب أن تبحث عنه هو أن CoffeeScript تستخدم الكثير من طرق المسافة البادئة لتجنب شبه الأعمدة ولأن اللغة تفهم أن بيان المتغير قد اكتمل فقط تحتاج إلى الانتقال إلى سطر جديد:
age = 21country = "Portugal"
في JavaScript ، سيكون عليك كتابة شيء مثل:
var age = 21;var country = "Portugal";
إنه مثال صغير ولكن يمكنك البدء في معرفة مدى قوة CoffeeScript عندما يتعلق الأمر بتبسيط التعليمات البرمجية.
تذكر كل هذا الوقت الذي استغرقته في حفظ مشغلات جافا سكريبت؟ تذكر أتساءل لماذا تحتاج إلى استخدام === بدلا من مجرد استخدام هو؟ حسنا حسناً يعتني كوفيكسكريبت بذلك. يقدم بعض الأسماء المستعارة لطيفة حقا للمشغلين:
شيء آخر يتخلص منه CoffeeScript من الأقواس المتعرجة. ويستخدم أسلوب الطعج للإعلان عندما تكون داخل بيان ، إذا كانت العبارات تعمل مثل JavaScript ولكنك لا تحتاج إلى الأقواس المتعرجة أو الأقواس. قم فقط بوضع مسافة بادئة للرمز الذي تريد تشغيله عندما تكون العبارة صحيحة:
if work > 24 and sleep < 8vacations()elsework()
سوف يتحول إلى JavaScript على النحو التالي:
if (work > 24 && sleep < 8) {vacations();} else {work();}
آمل أن تكون قد بدأت في رؤية فوائد CoffeeScript فقط مع هذه المظاهرات البسيطة التي توضح كيف يمكن أن تجعلها نظيفة من شفرتك ، والرمز الأنظف يعني رمزًا أكثر قابلية للإصلاح.
التكرار من خلال المصفوفات هو أحد الأشياء التي يجب عليك فعلها في كل تطبيق JavaScript تكتبه ، وبناء الجملة من خلالها في JavaScript ليس هو أبسط أو أنظف ، أعتقد أن هذا هو المكان الذي تشرق فيه CoffeeScript بالفعل. للحلقة عبر صفيف نستخدم حلقة for..in ، مثل:
tasks = ['Design','Code','Groceries']for task in tasksalert task
كل هذا الجزء من التعليمات البرمجية سوف يفعله هو قراءة كل الأشياء في الصفيف ثم التنبيه بعد ذلك واحدا تلو الآخر ، فقط لجعل الأشياء أكثر بساطة يمكنك حتى كتابة ... في حلقة في سطر واحد ، مثل:
tasks = ['Design','Code','Groceries']alert task for task in tasks
إنها ببساطة أكثر قابلية للقراءة وقابلية للصيانة من جافا سكريبت الفانيلا ، والتي يتحدث عن الكود الذي تنتجه شركة CoffeeScript لهذين الخطين:
var task, tasks, _i, _len;tasks = ['Design', 'Code', 'Groceries'];for (_i = 0, _len = tasks.length; _i < _len; _i++) {task = tasks[_i];alert(task);}
على الرغم من أن الحلقات مفيدة أيضًا عند إنشاء تطبيق جافا سكريبت ، إلا أن تطبيق CoffeeScript لا يفشل في تسهيل القراءة والكتابة أيضًا ، على سبيل المثال:
while sleep < 8sleep()
أو يمكنك كتابتها كلها على سطر واحد إذا كنت تفضل:
while sleep < 8 then sleep()
أو:
sleep() until sleep > 8
في جافا سكريبت نقية ، سيترجم هذا إلى:
//thenwhile (sleep < 8) {sleep();}
أو:
//untilwhile (!(sleep > 8)) {sleep();}
تعتبر الوظائف أيضًا جزءًا حيويًا آخر من أي لغة برمجة ، وبالرغم من أن الوظائف في جافا سكريبت ليست فوضويًا مثل بعض الأجزاء الأخرى ، فإن CoffeeScript تبسط هذا إلى الحد الأقصى أيضًا ، وهي وظيفة بسيطة تأخذ اسم شخص ما ثم تنبيهات يمكن كتابتها على هذا النحو :
sayHi = (name) ->return "Hello " + namealert sayHi('Sara')
كل ما عليك فعله هو اسم الوظيفة ، في هذه الحالة تسمى الوظائف sayHi ، ثم بعد علامة المساواة تحتاج إلى تحديد المعلمات. هنا الاسم هو المعلمة المفردة ، بعد تحديد قاعدة وظيفتنا ، يجب أن نكتب -> متبوعة في السطر التالي من خلال ما نريد أن تقوم به الوظيفة بحيث يعرف CoffeeScript أننا داخل الدالة. في هذه الحالة ، كل ما أريده هو إرجاع "مرحبًا" ثم اسم الشخص وأخيرًا استخدم تنبيهًا بسيطًا لاستدعاء الوظيفة بالاسم. يمكننا أيضًا كتابة هذا في سطر واحد مما يلغي الإدخال والتأخير فقط عن طريق كتابة ما ستقوم به الوظيفة بعد ->:
sayHi = (name) -> return "Hello " + name
سيتم تجميع مقتطف الشفرة الصغير هذا في جافا سكريبت التالية:
var sayHi;sayHi = function(name) {return "Hello " + name;};alert(sayHi('Sara'));
بالطبع كانت هذه وظيفة بسيطة فعلاً ، ولكن كما ترون أنها أنقذتنا 3 أسطر من الكود وبالطبع في JavaScript ، يمكننا فقط تسمية المتغير حيث نعلن الدالة مثل:
var sayHi = function(name) {return "Hello " + name;};alert(sayHi('Sara'));
الأمثلة التي قدمتها هنا هي ما يجمعه CoffeeScript ، وعلى الرغم من أنه في معظم الحالات هناك طرق أسهل لكتابة شيء ما ، فإن كل ملفات JavaScript التي تم تجميعها صحيحة ودلالية.
هذه مجرد بداية لما يمكن أن تقدمه لك CoffeeScript ، عندما تبدأ الأمور في التعقيد ، ستعطيك هذه اللغة القليل الكثير من النفوذ بالمقارنة مع JavaScript ، وأقل كود تحتاج إلى كتابته ، وكود أكثر قابلية للقراءة ، وأكثر قابلية للإصلاح كذلك. ، بحيث يمكنك العودة إلى موقع ويب بعد مرور عام وتعرف ما يحدث في جافا سكريبت.
ترقبوا الجزء الثاني من هذه السلسلة حيث سأوضح لكم كيفية دمج CoffeeScript مع jQuery و LocalStorage من أجل إنشاء تطبيق قائمة اتصال بسيط.
هل استخدمت CoffeeScript لتبسيط JavaScript؟ أي أجزاء من CoffeeScript تفضل استخدام Javascript؟ اسمحوا لنا أن نعرف في التعليقات.