Коришћење колача у ЦоффееСцрипт

Преглед садржаја
ЦоффееСцрипт је језик који нам омогућава да напишемо бољи ЈаваСцрипт код, обједињујући га и уоквирујући га у исту структуру, где ћемо бити сигурни да је ЈаваСцрипт код који је направио ЦоффееСцрипт од другог програмера биће идентичан нашем.
Али ово није све што нуди ЦоффееСцрипт, додатно има и алатку тзв Торта, слично Грунт -у који нам омогућава да дефинишемо једноставне задатке који ће нам помоћи у нашим пројектима, будући да је могуће да нам је потребан задатак за покретање тестова или једноставно један за прављење датотека, а све то можемо да урадимо са Торта кроз датотеку под називом Цакефиле.
ЗахтевиДа бисмо довршили овај водич, морамо имати функционалну инсталацију ЦоффееСцрипт, такође нам требају дозволе за писање датотека и извршавање ЦоффееСцрипт на рачунару на коме радимо водич. Потребан нам је уређивач текста попут Узвишени текст да бисте могли да напишете код наших примера и никада не шкоди да погледате прошле водиче језика.
Пре почетка важно је напоменути да не морамо да инсталирамо Торта, у време наше прве инсталације ЦоффееСцрипт алатка је инсталирана на исти начин, тако да не морамо да радимо ништа додатно да бисмо почели да радимо са њом.
Знајући ово, можемо почети са радом Торта, али морамо схватити да се сви задаци које креирамо морају налазити у датотеци под називом Цакефиле, који од тада мора имати потпуно исти назив цакефиле то ће бити потпуно друга датотека и компајлер га неће препознати.
Ова датотека мора бити у корену нашег пројекта и изузетно је важно да њен садржај буде само код ЦоффееСцрипт. Када смо ово разјаснили, хајде да видимо како да направимо наш први задатак Торта.
Креираћемо фасциклу под називом цакефиле_екампле и тамо ћемо створити датотеку под називом Цакефиле.цоффее и садржаће следећи садржај:
 задатак "поздрав", "Поздравимо велику заједницу Солветиц", -> цонсоле.лог "Здраво, Свет!"
Пре него што објаснимо наш код, саставићемо га и видети садржај генерисан у ЈаваСцрипт -у, то није потребно јер овај код никада нећемо видети, али овај пут бисмо га могли искористити да боље разумемо шта ради ЦоффееСцрипт, да видимо излаз:

ЕНЛАРГЕ

Пошто смо у контексту, можемо објаснити наш код, прво дефинишемо задатак са функцијом задатак који се аутоматски додаје свакој датотеци Цакефиле. Први аргумент функције је назив задатка, у овом случају то је то Поздрав и ми ћемо га користити у командној конзоли за извршавање задатка, други аргумент може бити опционалан и представља опис задатка који ће се појавити на листи доступних задатака. Последњи аргумент који шаљемо у функцији задатак то је још једна функција коју ће задатак извршити и ту ће бити смештена већина наше логике.
Претходни пример је био само да проверимо шта компајлер ради, али наша датотека Цакефиле не сме имати никакво проширење. Додатно можемо видети које задатке имамо на располагању помоћу команде колач У командној конзоли да видимо како то изгледа:

Као што видимо, можемо видети назив нашег задатка, као и опис. Сада за извршавање одређеног задатка користимо наредбу цаке праћену именом задатка, да завршимо да видимо излаз из конзоле:

Већ знамо како креирати задатак и покренути га, али шта ако желимо да му пренесемо неке аргументе? На пример, шта ако желимо да наш поздрав буде потпуно персонализован према вредности коју шаљемо? Ово је прилично лако учинити, да видимо.
Прва ствар коју морамо да урадимо у свом задатку је да дефинишемо опцију, то радимо са функцијом опција на располагању Торта. Ова функција има три аргумента, први је кратки облик опције, други је дугачак образац и задњи је опис онога што опција ради, нешто важно ако се развијамо као тим и желимо документирати своје задатке. Затим ћемо извршити измене у нашем задатку да бисмо дефинисали опцију:
 опција '-н', '--име [НАМЕ]', 'име за поздрав' задатак "поздрав", "Поздравимо некога", (опције)-> порука = "Здраво", ако оптионс.наме? мессаге + = оптионс.наме елсе мессаге + = "Ворлд" цонсоле.лог порука
Као што видимо пре дефиниције задатак ми имамо своју функцију опција, након чега следи кратак облик који би био -н, онда имамо дугачак облик који би био -наме који специфицира да ће очекивати вредност и на крају опис. Извршићемо наредбу цаке и видети излаз у нашој конзоли:

Као што видимо, имамо назив нашег задатка, опис и испод њега имамо доступне опције за њега, кратке и дуге опције као и опис. Покренимо наш задатак са кратком опцијом и видимо излаз са конзоле:

За извршавање задатка са опцијама важно је да прво наведемо аргументе, а затим и назив задатка, јер ако не наиђемо на грешку, то не говори много о томе шта се може догодити са нашом датотеком Цакефиле, онда да видимо како извршавање користи другу опцију:

Овде се дешава нешто необично, а то је да пре извршавања задатка користимо опцију са једном скриптом, што нам даје грешку и то је исправна ствар јер смо у свом задатку дефинисали опцију као --- име уместо -наме, чиме се демонстрира ефикасност ЦоффееСцрипт за рад задатака.
Додатно, можемо да дефинишемо да ли је опција потребна и то радимо у дефиницији задатка проверавајући да ли вредност постоји и ако не направимо грешку, да видимо како овај код изгледа:
 опција '-н', '--име [НАМЕ]', 'име које желите поздравити' задатак "поздрав", "Проверите да ли опција постоји", (опције)-> баци нову грешку ("[НАМЕ] је потребна вредност ") осим оптионс.наме? цонсоле.лог "Здраво, # {оптионс.наме}"
Покренимо онда наш задатак, али овај пут занемарујући опцију као аргумент и погледајте одговор са конзоле:

Као што видимо, приказана је грешка коју смо укључили у датотеку, чиме смо могли да потврдимо да се опције за наше задатке прослеђују као аргументи када је то потребно.
Пошто смо већ видели како да креирамо своје задатке и дефинишемо опције за њих, важно је видети како можемо да извршавамо задатке који се налазе у другима. На пример, можемо имати два заједничка задатка у пројекту где је један од задатака задужен за чишћење директоријума које смо изградили за пројекат, а други за састављање и изградњу, да видимо како ће ова два задатка која управо смо завршили како изгледа. опишите:
 задатак "цлеан", "Овај задатак обавља чишћење директоријума", -> цонсоле.лог "чишћење директоријума …" таск "буилд", "Направи и компајлирај датотеке за пројекат", -> цонсоле.лог "зграда …"
Извршићемо наредбу колач и да видимо одговор кроз конзолу:

Осим тога, за заједничко извршавање оба задатка можемо користити команду цаке иза које следе оба назива наших задатака:

Као што видимо, у нашим задацима нема ничег чудног, али ако смо посматрачи, схватамо да прво морамо извршити задатак чишћења увек пре нашег грађевинског задатка, али шта ако желимо трећи задатак који се зове паковање, који ће онда запаковати пројекат за нас? Зато га морамо прво изградити, уверити се да су директоријуми чисти и на крају направити.
Проблем је у томе што ово решење није оптимално, ако из неког разлога заборавимо да позовемо чисти задатак или још горе, наш задатак изградње ће имати проблема са нашим трећим задатком, на срећу Цаке нам омогућава да позовемо један задатак у другом са функцијом призивати, онда да видимо како изгледа наша датотека Цакефиле са новим задатком и изменама:
 задатак "цлеан", "Овај задатак обавља чишћење директоријума", -> цонсоле.лог "чишћење директоријума …" таск "буилд", "Направи и компајлирај датотеке за пројекат", -> цонсоле.лог "буилдинг …" таск "пацк", "цлеан, буилд анд спаке оур пројецт", -> инвоке "цлеан" инвоке "буилд" цонсоле.лог "пацкинг …"
Сада само морамо позвати нашу амбалажу и на тај начин ћемо се побринути да се друга два потребна задатка позову без проблема, погледајмо излаз у командној конзоли:

Важно је напоменути да задаци који користе функцију призивати изводе се асинхроно, тако да немамо гаранцију да ће се задатак чишћења извршити пре изградње и паковања, па морамо бити опрезни у њиховој употреби.
Овим закључујемо овај водич у којем смо научили стварати своје задатке, извршавати их, давати им могућности, па чак и како се позивати на друге задатке у другима, проширујући тако наше знање у овом ефикасном језику који доприноси најбољим праксама било којег развоја.Да ли вам се допао и помогао овај водич?Можете наградити аутора притиском на ово дугме да бисте му дали позитиван поен
wave wave wave wave wave