WikiDer > CoffeeScript - Википедия
| Парадигма | Мультипарадигма: прототипке негізделген, функционалды, императивті, сценарий |
|---|---|
| Жобалаған | Джереми Ашкенас |
| Әзірлеуші | Джереми Ашкенас |
| Бірінші пайда болды | 13 желтоқсан 2009 ж |
| Тұрақты шығарылым | 2.5.1 / 31 қаңтар 2020 ж[1] |
| ОЖ | Кросс-платформа |
| Лицензия | MIT лицензиясы |
| Файл атауының кеңейтімдері | .кофе, .кофе[дәйексөз қажет] |
| Веб-сайт | кофе жазбасы |
| Әсер еткен | |
| Хаскелл, JavaScript, Перл,[дәйексөз қажет] Python,[2] Рубин, ЯМЛ[3] | |
| Әсер етті | |
| MoonScript, LiveScript, JavaScript | |
CoffeeScript компиляциялайтын бағдарламалау тілі болып табылады JavaScript. Ол қосады синтаксистік қант шабыттандырды Рубин, Python және Хаскелл JavaScript-тің қысқалығы мен оқылуын жақсарту мақсатында.[4] Арнайы қосымша мүмкіндіктерге жатады тізімді түсіну және тағайындау.
CoffeeScript қолдауы қосылған Rails on Rails 3.1 нұсқасы[5] және Framework ойнаңыз.[6] 2011 жылы, Брендан Эйх CoffeeScript-ті оның JavaScript болашағы туралы ойына әсер ету ретінде сілтеме жасады.[7][8]
Тарих
2009 жылдың 13 желтоқсанында, Джереми Ашкенас бірінші жасады Гит түсініктеме бар CoffeeScript-ті жасаңыз: «құпия тілді бастапқы жасаңыз».[9] Құрастырушы Ruby-де жазылған. 24 желтоқсанда ол алғашқы таңбаланған және құжатталған 0.1.0 шығарылымын жасады. 2010 жылы 21 ақпанда ол Ruby компиляторын а-ға ауыстырған 0.5 нұсқасын жасады өзін-өзі орналастыру таза кофе скриптіндегі нұсқасы. Сол уақытқа дейін жоба бірнеше басқа салымшыларды тартты GitHubжәне тәулігіне 300-ден астам парақ алған.
2010 жылдың 24 желтоқсанында Ashkenas 1.0.0-ге дейін тұрақты шығарылым туралы жариялады Хакер жаңалықтары, жоба алғаш рет жарияланған сайт.[10][11]
2017 жылғы 18 қыркүйекте 2.0.0 нұсқасы енгізілді,[12] ол «CoffeeScript-ті заманауи JavaScript дәуіріне кіргізуге, JavaScript-пен үйлесімділік арасындағы олқылықтарды жоюға және CoffeeScript-тің ерекше белгісі болып табылатын таза синтаксисті сақтауға бағытталған.»
Синтаксис
Барлығы дерлік, мысалы, CoffeeScript-тегі өрнек егер, қосқыш және үшін өрнектер (JavaScript-те қайтару мәні жоқ) мән береді. Сол сияқты Перл, бұл бақылау мәлімдемелерінде постфикстің нұсқалары бар; Мысалға, егер да жазылуы мүмкін егер шарт болса форма.
Көптеген қажетсіз жақшалар мен жақшалар алынып тасталуы мүмкін; мысалы, кодтар блоктарын жақшалардың орнына шегініспен белгілеуге болады, функционалдық шақырулар жанама болып табылады және объектілік әріпсандар көбінесе автоматты түрде анықталады.
Есептеу үшін дене салмағының индексі, біреу істей алады (мұнда.) JavaScript):
const масса = 72const биіктігі = 1.78const BMI = масса / биіктігі ** 2егер (18.5 < BMI && BMI < 25) { ескерту('Дені сау!') }CoffeeScript көмегімен интервал тікелей сипатталады:
масса = 72биіктігі = 1.78BMI = масса / биіктігі**2ескерту 'Дені сау!' егер 18.5 < BMI < 25Есептеу үшін ең үлкен ортақ бөлгіш екі бүтін санның эвклидтік алгоритм, JavaScript-те әдетте а керек уақыт цикл:
gcd = (х, ж) => { істеу { з = х % ж х = ж ж = з } уақыт (ж !== 0) қайту х}CoffeeScript-те қолдануға болады дейін тағайындау[13] орнына:
gcd = (х, у) -> [х, ж] = [ж, х%ж] дейін ж болып табылады 0 хКез келген үшін циклды а-мен ауыстыруға болады тізімді түсіну; оннан кіші оң тақ сандардың квадраттарын есептеу үшін (яғни, қалған модулі 2-ді 1-ге тең сандар) мынаны істеуге болады:
ескерту n*n үшін n жылы [1..10] қашан n%2 болып табылады 1Сонымен қатар:
ескерту n*n үшін n жылы [1..10] арқылы 2A сызықтық іздеу кілт сөзін пайдаланып, бір сызықты көмегімен жүзеге асырылуы мүмкін:
аттары = [«Иван», «Джоанна», «Николай», «Михаела»]lineearSearch = (іздеу аты) -> ескерту(аты) үшін аты жылы атаулар қашан аты болып табылады іздеу атыThe үшін ... жылы синтаксис массивтің үстінде цикл жасауға мүмкіндік береді ... үшін синтаксис нысандар бойынша цикл жасауға мүмкіндік береді.
The ? кілт сөзі айнымалының болуын тез тексереді нөл немесе белгісіз :
personCheck = -> егер емес адам? содан кейін ескерту(«Адам жоқ») басқа ескерту(«Адам бар»)адам = нөладам тексеріңіз()адам = «Иван»адам Тексеру()Бұл айнымалы болса, «Адам жоқ» деген ескерту жасайды нөл немесе белгісіз және егер ол жерде бірдеңе болса, «адамға ие бол».
-Ды қолданатын жалпы JavaScript үзіндісі jQuery кітапхана:
$(құжат).дайын(функциясы() { // инициализация коды осында орналасқан})Немесе тек:
$(функциясы() { // инициализация коды осында орналасқан})CoffeeScript-те функциясы кілт сөзі ауыстырылады -> белгісі, ал шегініс басқалар сияқты бұйра жақшалардың орнына қолданылады сыртқы ереже Python және Haskell сияқты тілдер. Сондай-ақ, жақшаны функцияны немесе блокты белгілеу үшін шегініс деңгейін пайдаланып, алып тастауға болады. Сонымен, жоғарыдағы үзіндіге CoffeeScript баламасы:
$(құжат).дайын -> # Инициализация коды осында орналасқанНемесе жай:
$ -> # Инициализация коды осында орналасқанРубин стиліндегі интерполяция CoffeeScript-ке енгізілген. Екі тырнақшаға жолдар интерполяцияланған мәндерге жол береді, олар # {...} мәнін пайдаланады, ал бір тырнақшалар әріптік болып табылады.[14]
автор = «Витгенштейн»дәйексөз = «Сурет - бұл факт. #{ автор }"сөйлем = "#{ 22 / 7 } π «-ның лайықты жақындауыCoffeeScript әдеттен тыс сценарийлері үшін сынға алынды.[15][16] Атап айтқанда, бұл мүлдем тыйым салады ауыспалы көлеңке бұл кодтау туралы ойлауды қиындатады және кейбір негізгі бағдарламалау үлгілерінде қатеге бейім, содан бері қабылданған және қабылданған процедуралық бағдарламалаупринциптері анықталды.
Мысалы, JavaScriptone-де келесі код үзіндісімен сырттан қараудың қажеті жоқ {}- мүмкін емес екеніне сенімді болуға тыйым салыңыз ақымақ сыртқы ауқымдағы айнымалы кездейсоқ түрде алынып тасталуы мүмкін:
// ... функциясы баз() { var ақымақ = «бар» консоль.журнал(`foo = ${ақымақ}`) } // ...}CoffeeScript-те айнымалының ауқымы блокпен шектелетінін немесе блоктың сыртына қарамай-ақ анықтауға мүмкіндік жоқ.
Әзірлеу және тарату
CoffeeScript құрастырушысы болды өзін-өзі орналастыру 0.5 нұсқасынан бастап және а түрінде қол жетімді Node.js утилита; дегенмен, негізгі компилятор Node.js-ке сенбейді және кез келгенінде іске қосылуы мүмкін JavaScript қоршаған орта.[17] Баламасының бірі Node.js утилитасы - бұл Coffee Maven Plugin, плагин Apache Maven құрылыс жүйесі. Плагин Мүйізтұмсық JavaScript қозғалтқышы жазылған Java.[дәйексөз қажет]
CoffeeScript.org ресми сайтында мәзір жолағында «CoffeeScript қолданып көріңіз» батырмасы бар; оны басу арқылы модальдық терезе ашылады, онда пайдаланушылар CoffeeScript-ті енгізе алады, JavaScript нәтижелерін көреді және оны тікелей шолғышта іске қосады. Js2coffee[18] сайт екі бағытты аударманы ұсынады.
Соңғы қосымшалар
- Бастапқы карталар пайдаланушыларға CoffeeScript кодтарын қателіктерді жоюға мүмкіндік береді, бұл CoffeeScript бақылау уақытының қателіктерін бақылауды қолдайды.
- CoffeeScript формасын қолдайды Сауатты бағдарламалау, пайдаланып
.coffee.mdнемесе.кофефайл кеңейтімі. Бұл CoffeeScript бастапқы кодын жазуға мүмкіндік береді Markdown. Компилятор кез-келген шегініс блоктарын (Markdown-тың бастапқы кодын көрсету тәсілі) код ретінде қарастырады, ал қалғанын түсініктеме ретінде ескермейді.
Кеңейтімдер
Iced CoffeeScript - бұл екі жаңа кілт сөзді қосатын CoffeeScript-тің жоғарғы жиынтығы: күту және кейінге қалдыру. Бұл толықтырулар асинхронды басқару ағынын жеңілдетеді, бұл кодты а-ға ұқсас етеді процедуралық бағдарламалау қоңырау шалу тізбегін алып тастайтын тіл. Оны сервер жағында және браузерде қолдануға болады.[19]
Бала асырап алу
2012 жылғы 13 қыркүйекте, Dropbox олардың браузер жағындағы кодтық базасы қайта жазылғанын хабарлады JavaScript CoffeeScript-ке,[20] дегенмен ол көшірілді TypeScript 2017 жылы.[21]
GitHubІшкі стильдер нұсқаулығында «CoffeeScript-ке жаңа JS жазыңыз» деген болатын, ал енді жоқ болса, стиль нұсқаулығындағы барлық кеңестерде қалай жақсы CoffeeScript жазуға болатындығы айтылады,[22] және олардың Atom мәтіндік редакторы тілде де жазылған.[23]
Сондай-ақ қараңыз
- Хакс
- Nim (бағдарламалау тілі)
- Amber Smalltalk
- Clojure
- Дарт (бағдарламалау тілі)
- Котлин (бағдарламалау тілі)
- LiveScript
- Опа (бағдарламалау тілі)
- Қарағаш (бағдарламалау тілі)
- TypeScript
- PureScript
Әдебиеттер тізімі
- ^ «GitHub - jashkenas / coffeescript: Unfancy JavaScript». 27 қазан 2019 - GitHub арқылы.
- ^ https://coffeescript.org/ «CoffeeScript Python-дан тізбектелген салыстырулар алады»
- ^ Хеллер, Мартин (18 қазан 2011). «Дартқа мұрныңды көтеріп, CoffeeScript иісін сез». InfoWorld. Алынған 2020-07-15.
- ^ Alex MacCaw (қаңтар 2012). CoffeScript-тегі кішкентай кітап. O'Reilly Media. ISBN 978-1-4493-2105-5.
- ^ Джош Пик (13 сәуір, 2011). «Tweet by Rails Core Team мүшесі».
- ^ «AssetsCoffeeScript - 2.5.x». www.playframework.com. Алынған 2016-10-31.
- ^ Эйх, Брендан. «Менің армандарым үйлесімі"
- ^ Эйх, Брендан. «Менің JSConf.US презентациясы"
- ^ Github. 'құпия тілдің алғашқы әрекеті'
- ^ Хакер жаңалықтары. CoffeeScript 1.0.0 хабарландыру Джереми Ашкенастың 2010 жылдың 24 желтоқсанында жариялаған
- ^ Хакер жаңалықтары. CoffeeScript хабарландыруының түпнұсқасы Джереми Ашкенас 2009 жылдың 24 желтоқсанында жариялады
- ^ coffeescript.org CoffeeScript 2 туралы жариялау
- ^ CoffeeScript мұны атайды «үлгілерді сәйкестендіру», бұл сол терминнің стандартты емес қолданылуы.
- ^ «Ресми CoffeeScript парағы». Алынған 20 қараша 2013.
- ^ «CoffeeScript-тегі анықталмаған ауқым». Алынған 2018-10-13.
- ^ «CoffeeScript-ті қолдану - ессіздік». Алынған 2018-10-13.
- ^ CoffeeScript Мұрағатталды 2012-04-27 сағ Wayback Machine. Jashkenas.github.com. 2013-07-21 аралығында алынды.
- ^ Ста-Круз, Рико. «js2coffee». Алынған 11 мамыр 2014.
- ^ «IcedCoffeeScript ресми сайты».
- ^ Уилер, Дэн; Махковец, Зига; Варенхорст, Крис (13 қыркүйек 2012). «Dropbox CoffeeScript-ке сүңгіп кетеді». Алынған 11 мамыр 2013.
- ^ Голдштейн, Дэвид (13 мамыр 2020). «2017 жылғы типтік көшуге керемет кофе скрипті». Dropbox.Tech. Алынған 30 маусым 2020.
- ^ «JavaScript · Styleguide · GitHub». Github.com. Архивтелген түпнұсқа 2013-08-15. Алынған 2015-11-30.
- ^ Атомның бастапқы коды. github.com. 2015-07-22 аралығында алынды.
Әрі қарай оқу
- Ли, Патрик (14 мамыр 2014). Әрекеттегі кофе скрипті (Бірінші басылым). Manning басылымдары. б. 432. ISBN 978-1617290626.
- Гросенбах, Джеффри (2011 ж. 12 мамыр). «CoffeeScript-пен танысу» (Бірінші ред.). PeepCode. Журналға сілтеме жасау қажет
| журнал =(Көмектесіңдер) - Бейтс, Марк (31 мамыр 2012). CoffeeScript-те бағдарламалау (Бірінші басылым). Аддисон-Уэсли. б. 350. ISBN 978-0-321-82010-5.
- MacCaw, Алекс (31 қаңтар, 2012). CoffeeScript туралы кішкентай кітап (Бірінші басылым). O'Reilly Media. б. 62. ISBN 978-1449321055.
- Бернхэм, Тревор (3 тамыз, 2011). CoffeeScript: жеделдетілген JavaScript әзірлеу (Бірінші басылым). Прагматикалық кітап сөресі. б.138. ISBN 978-1934356784.