Coffeescript 는 꽤 멋져 보입니다. 누군가 그것을 사용 했습니까? 장단점은 무엇입니까?
Coffeescript 는 꽤 멋져 보입니다. 누군가 그것을 사용 했습니까? 장단점은 무엇입니까?
답변:
우리는 기본적으로 특정 종류의 데이터를 검색하는 앱인 비공개 웹 사이트 인 제품에서 CoffeeScript를 사용하기 시작했습니다. 우리는 CoffeeScript를 명령 줄 컴파일러로 사용합니다 (결국 수행하고 싶은 서버가 아니라).
중요한 것은 언제든지 되돌릴 수 있다는 것입니다. 우리의 coffeescript 컴파일러는 읽을 수있는 자바 스크립트를 생성 할 뿐이므로 누군가 마음이 바뀌거나 무언가를 알아낼 수없는 경우 커피 스크립트가 생성 한 자바 스크립트를 다시 사용하고 코딩을 계속할 수 있습니다.
this
일 이 없었 거나 잘못된 유형을 함수에 보낸 적이 있습니까? "아무것도 디버깅"할 필요가 없다면 아직 흥미로운 일을하지 않았다고 생각합니다.
-m
좋습니다.
BusyConf의 모든 자바 스크립트에 대해 coffeescript를 사용 합니다. BusyConf의 대부분은 오프라인 모드 지원을 포함하여 브라우저에서 실행되는 클라이언트 측 애플리케이션입니다.
우리의 모든 coffeescript 코드는 완전히 테스트되었습니다. 테스트 자체는 coffeescript로 작성되며 Qunit 프레임 워크 (JavaScript로 작성 됨)를 사용합니다. 또한 테스트를 더 좋게 만드는 Qunit 프레임 워크에 대한 확장을 작성했습니다. Qunit 확장은 CoffeeScript 로 작성되었습니다 . 우리의 애플리케이션은 CoffeeScript로 작성된 모바일 버전을 가지고 있으며 Sencha Touch 프레임 워크 (JavaScript로 작성된)를 사용합니다.
여기서 빼놓을 수있는 점은 애플리케이션에서 자바 스크립트 종속성을 자유롭게 혼합 할 수 있지만 작성하는 모든 코드 (애플리케이션 코드, 테스트 등)는 커피 스크립트가 될 수 있다는 것입니다.
거의 1 년 후, 몇 가지 업데이트를 게시 할 가치가 있습니다.
CoffeeScript 프로젝트의 가장 확실한 목록은 CoffeeScript 위키의 In the Wild 페이지에 있습니다.
지금까지 CoffeeScript의 대부분의 프로덕션 사용은 Appcelerator와 함께 iPhone / Android 앱을 만드는 것입니다. (The Changelog의 Wynn Netherland는 CoffeeScript를 "iOS, Android 및 WebOS 모바일 개발을위한 나의 비밀 무기"라고 설명하면서 저의 책을 흐릿하게 표현했습니다.) 그러나 프로덕션 Rails 앱에서 훨씬 더 많이 사용될 것입니다. 그리고 다른 곳에서도 사용되기를 바랍니다. 앞으로 몇 달 안에.
Coffeescript는 iPad 용 Ars Technica 리더 http://arstechnica.com/apple/news/2010/11/introducing-the-ars-technica-reader-for-ipad.ars 에서 사용되었습니다.
요즘 저는 Coffeescript를 정말 좋아합니다. 본질적으로 전체 HotelTonight iPhone 응용 프로그램이 그 안에 작성됩니다 (Appcelerator Titanium을 사용하여 JavaScript로 "기본"응용 프로그램을 작성할 수 있습니다. Phonegap과 같은 웹 응용 프로그램이 아닙니다). 이 경우에는 많은 양의 JS를 훨씬 쉽게 구성하고 유지 관리 할 수 있으므로 Coffeescript를 사용하기로 선택했습니다. 또한 Coffeescript (대 JavaScript)로 코드를 작성하는 것이 훨씬 더 즐겁습니다. 또한 Rails 앱에서 JS에 Coffeescript를 사용하지만 이것은 전체 전화 앱과 관련하여 매우 사소하거나 적은 양의 코드입니다.
전문가들은 대부분 구문이 더 좋을뿐 아니라 OO 메커니즘을 표준화 한 다음 몇 가지 멋진 추가 사항 (목록 이해, 일부 범위 등)을 추가해야합니다.
단점은 거의 제로입니다. 가장 중요한 것은 디버깅 할 추가 레이어라는 것입니다. 생성 된 JS (매우 읽기 쉽고 멋짐)를 살펴본 다음이를 Coffeescript 코드에 매핑해야합니다. 우리에게 이것은 전혀 문제가되지 않았지만 YMMV.
결국, 제가 생각하는 것은 프로덕션 앱에서 사용하는 데있어 위험이 전혀 없다는 것입니다. 그러니 그것이 방해가되지 않도록하십시오. 그런 다음 시도해보십시오. 그것으로 코드를 작성하고, JS로 작성한 것과 비교하고, 생성 된 코드를보고 디버깅 요구를 위해 읽을 수 있는지 확인하십시오. 또한 #coffeescript IRC에서 시간을 보내세요. 마지막으로 앱과 어떻게 통합되는지 확인합니다. 예를 들어 "빌드"프로세스가 무엇인지 확인합니다 (예 : Rails의 경우 Barista를 사용해보고 독립형 인 경우 포함 된 "coffee -w"등을 사용).
Coffeescript는 실제로 JS 작성을 더 쉽게 만듭니다. 더 깨끗하고 효율적인 코드로 끝납니다.
즉, 여전히 vanilla JS에서 할 수있는 모든 작업을 수행 할 수 있습니다. coffeescript를 충분히 사용하면 (좋은) JS를 작성하는 것이 훨씬 쉬워집니다.
따라서 JS를 많이 사용하지 않았다면 대신 coffescript를 배우는 것이 좋습니다. 더 좋고, 깔끔하고, 버그가 적은 코드를 얻을 수 있습니다. 이미 JS에 능통하다면 "진짜"앱에서 coffeescript를 사용하는 것은 좋지 않을 수 있습니다.
(또한, coffeescript는 다소 "엉뚱한"코드를 장려하는 것 같다는 점에서 약간 짜증이납니다. 그것이 좋은 것인지 나쁜 것인지는 모르겠지만 TMTOWTDI의 극단적 인 경우 인 것 같습니다)
컴파일러가 있지만 JavaScript의 동적 특성으로 인해 정적 검사를받을 수 없습니다. FAQ에 쓰여진대로 :
정적 분석
CoffeeScript는 직접적인 소스 대 소스 컴파일러를 사용합니다. 유형 검사가 수행되지 않으며 변수가 존재하는지 여부를 확인할 수 없습니다. 이는 비용이 많이 드는 런타임 검사 없이는 다른 언어가 기본적으로 빌드 할 수있는 기능을 구현할 수 없음을 의미합니다. 결과적으로 이러한 종류의 분석에 의존하는 기능은 고려되지 않습니다.
IDE 지원은 JavaScript보다 덜 성숙합니다 (Cloud9에는 구문 강조 지원이 있지만 Eclipse JSDT에는 리팩토링 등이 있습니다) : /programming/4084167/ide-or-its-add-in-for-coffescript -프로그램 작성