Coffeescript wygląda całkiem fajnie. Czy ktoś go użył? Jakie są jego wady i zalety?
Coffeescript wygląda całkiem fajnie. Czy ktoś go użył? Jakie są jego wady i zalety?
Odpowiedzi:
Zaczęliśmy używać CoffeeScript w naszym produkcie - niepublicznej stronie internetowej, która jest w zasadzie aplikacją do przeglądania określonych rodzajów danych. Używamy CoffeeScript jako kompilatora wiersza poleceń (nie na serwerze, co ostatecznie chcielibyśmy zrobić).
Co ważne, w każdej chwili możemy zawrócić. Nasz kompilator coffeescript tworzy po prostu czytelny skrypt javascript, więc jeśli ktoś zmieni zdanie lub nie będzie mógł czegoś zrozumieć, możemy po prostu wrócić do korzystania z javascript, który utworzył coffeescript - i dalej kodować.
this
lub wysłałeś niewłaściwego typu do funkcji? Myślę, że nie zrobiłeś jeszcze nic interesującego, jeśli nie musiałeś niczego debugować.
-m
i jesteś dobry.
Używamy coffeescript do wszystkich skryptów javascript w BusyConf . Duża część BusyConf to aplikacja po stronie klienta, która działa w przeglądarkach, w tym obsługuje tryb offline.
Cały nasz kod Coffeescript jest w pełni przetestowany. Same testy są napisane w coffeescript i wykorzystują framework Qunit (który jest napisany w javascript). Napisaliśmy również rozszerzenie do frameworka Qunit, które sprawia, że testy są przyjemniejsze. Rozszerzenie Qunit zostało napisane w języku CoffeeScript . Nasza aplikacja posiada mobilną wersję napisaną w CoffeeScript i wykorzystuje framework Sencha Touch (napisany w javascript).
Wynika z tego, że możesz swobodnie mieszać zależności javascript w swojej aplikacji, ale cały kod, który piszesz (kod aplikacji, testy itp.) Może (i powinien!) Być Coffeescript.
Prawie rok później warto opublikować aktualizacje:
Najbardziej ostateczna lista projektów CoffeeScript znajduje się na stronie In the Wild w wiki CoffeeScript .
Powiedziałbym, że większość dotychczasowego wykorzystania CoffeeScript do produkcji odbywa się w połączeniu z Appceleratorem do tworzenia aplikacji na iPhone'a / Androida. (Wynn Netherland z The Changelog zamieścił w mojej książce notkę, opisując CoffeeScript jako „moją tajną broń do tworzenia aplikacji mobilnych na iOS, Androida i WebOS”), ale będzie dużo więcej zastosowań w produkcyjnych aplikacjach Railsowych - i mam nadzieję, że gdzie indziej - w nadchodzących miesiącach.
Coffeescript został użyty w czytniku Ars Technica dla iPada http://arstechnica.com/apple/news/2010/11/introducing-the-ars-technica-reader-for-ipad.ars
Obecnie naprawdę uwielbiam Coffeescript. Zasadniczo cała aplikacja HotelTonight na iPhone'a jest w nim napisana (przy użyciu Appcelerator Titanium, który pozwala pisać „natywne” aplikacje w JavaScript - nie są to aplikacje internetowe, powiedzmy jak Phonegap). W tym przypadku zdecydowałem się użyć Coffeescript, ponieważ znacznie ułatwia to organizowanie i utrzymywanie dużej ilości JS. Uważam też, że pisanie kodu w Coffeescript jest o wiele przyjemniejsze (w porównaniu z JavaScriptem). Używamy również Coffeescript dla JS w naszej aplikacji Rails, ale jest to niewiarygodnie mała / mała ilość kodu w stosunku do całej aplikacji na telefon.
Zalety przeważnie mają do czynienia z byciem ładniejszą składnią, ale także z tym, że standaryzuje mechanizm OO, a następnie dodaje kilka fajnych dodatków (listy składane, niektóre zakresy itp.).
Dla mnie minusy są prawie zerowe. Podstawową jest to, że jest to dodatkowa warstwa do debugowania. Będziesz musiał spojrzeć na wygenerowany JS (który jest BARDZO czytelny i ładny), a następnie zmapować go na swój kod Coffeescript. Dla nas to wcale nie był problem, ale YMMV.
Ostatecznie, moim zdaniem, nie ma żadnego ryzyka, jeśli chodzi o używanie go w aplikacji produkcyjnej, więc nie pozwól, aby to było blokerem. Następnie spróbuj. Napisz z nim jakiś kod, porównaj to z tym, co napiszesz w JS, spójrz na wygenerowany kod, aby zobaczyć, czy jesteś w stanie czytać go na potrzeby debugowania. Spędzaj czas w IRC #coffeescript, ludzie są tam dobrzy. I na koniec zobacz, jak zintegrowałby się z twoją aplikacją, np. Jaki jest twój proces „budowania” (np. Dla Railsów, wypróbuj Baristę, dla czegoś samodzielnego, po prostu użyj dołączonego „coffee -w” itp.).
Coffeescript naprawdę po prostu ułatwia pisanie JS. Otrzymujesz czystszy i wydajniejszy kod.
Biorąc to pod uwagę, nadal możesz robić tylko to, co możesz zrobić w waniliowym JS. Kiedy użyjesz wystarczająco coffeescript, pisanie (dobrego) JS stanie się o wiele łatwiejsze.
Więc jeśli nie korzystałeś zbyt wiele z JS, sugerowałbym zamiast tego naukę Coffescript. Otrzymasz lepszy, czystszy i mniej błędny kod. Jeśli jesteś już naprawdę biegły w JS, może nie być dobrym pomysłem, aby zacząć używać coffeescript w „prawdziwej” aplikacji.
(Co więcej, coffeescript trochę mnie irytuje, ponieważ wydaje się zachęcać do raczej „paskudnego” kodu. Nie wiem, czy to dobrze, czy źle, ale wydaje się, że jest to skrajny przypadek TMTOWTDI)
Zauważ, że chociaż istnieje kompilator, nie otrzymujesz statycznego sprawdzania ze względu na dynamiczną naturę JavaScript. Jak napisano w FAQ:
Analiza statyczna
CoffeeScript używa prostego kompilatora typu source-to-source. Nie jest wykonywane żadne sprawdzanie typów i nie możemy ustalić, czy zmienna w ogóle istnieje, czy nie. Oznacza to, że nie możemy implementować funkcji, które inne języki mogą wbudować w sposób natywny bez kosztownych kontroli środowiska wykonawczego. W rezultacie żadna funkcja, która opiera się na tego rodzaju analizie, nie będzie brana pod uwagę.
Obsługa IDE jest mniej dojrzała niż w przypadku JavaScript (Cloud9 obsługuje podświetlanie składni, ale Eclipse JSDT ma refaktoryzacje i nie tylko): /programming/4084167/ide-or-its-add-in-for-coffescript -programowanie