2012-04-24 29 views
18

Vì vậy, về cơ bản tôi có một số mối quan tâm giữ tôi lại từ coffeescript:thời điểm thích hợp để sử dụng coffeescript

  1. Tôi không thực sự là một chuyên gia trong js nào, mặc dù tôi đang sử dụng nó cho khoảng 3 năm nay tôi vẫn cảm thấy như tôi đang thiếu một cái gì đó quan trọng về nó. Vì nó chủ yếu là một công nghệ hỗ trợ cho tôi, tôi không bao giờ tìm thấy thời gian để đi sâu trong js (mà, tôi thừa nhận, có thể là một thái độ sai).

  2. My js kiến ​​thức sẽ nhận được thậm chí tồi tệ hơn nếu tôi sẽ bắt đầu dùng coffeescript

  3. Tôi không chắc chắn nếu tôi thực sự có thể tin tưởng coffescript, có nghĩa là mã js nó biên dịch để

  4. lúc Tôi không hiểu mã coffeescript js biên dịch và thậm chí tệ hơn - tại sao nó biên dịch như thế.

Tôi muốn biết suy nghĩ của bạn về các điểm trên. Điều quan trọng là: Làm thế nào sử dụng coffeescript ảnh hưởng đến kiến ​​thức của bạn về js? Và làm thế nào quan trọng bạn nghĩ rằng đó là để hiểu đầy đủ js trước khi chuyển sang coffeescript?

+4

Câu hỏi hay nhất nên là _ "5. Kịch bản cà phê nào cung cấp cho chúng tôi ngoại trừ mã không đọc được" _! – gdoron

+0

Nếu công việc của bạn/nhu cầu làm việc tiềm năng mà bạn sử dụng coffeescript, sau đó tôi đoán đi cho nó. Nếu không, chỉ cần đi với js bình thường. –

+4

* "Tôi không thực sự là một chuyên gia trong js được nêu ra" * - sau đó tìm hiểu JS. đi lấy một cuốn sách và đọc. thử [VaporJS] (http://vaporjs.com/) trong khi bạn đang ở đó. tại sao phải trải qua tất cả các rắc rối khi sử dụng coffeescript? – Joseph

Trả lời

11

Bạn nên hiểu những vấn đề mà Coffeescript phải giải quyết. Và vì lý do đó, bạn nên có kiến ​​thức cơ bản về "các phần xấu" của javascripts. Tôi khuyên bạn nên đọc Douglas Crawford về điều đó (có một cuốn sách, nhưng cũng có rất nhiều resorces trên internet. Chỉ cần google "javascript phần xấu"). Về cơ bản, ý tưởng là "Bên dưới tất cả những dấu ngoặc và dấu chấm phẩy khó xử đó, JavaScript luôn có một mô hình đối tượng tuyệt đẹp trong trái tim của nó. CoffeeScript là một nỗ lực để phơi bày các phần tốt của JavaScript một cách đơn giản." (lấy từ trang của coffeescript).

Có một công cụ để giúp các lập trình viên tránh được những cạm bẫy javascript được gọi là jslint. Công cụ này phân tích mã của bạn và đưa ra cảnh báo về các lỗi phổ biến, chẳng hạn như biến toàn cục, chèn dấu chấm phẩy, ô nhiễm không gian tên, v.v ...

Coffeescript dịch sang javascript. Nhưng javascript nó tạo ra là một tập hợp con cannocical, rất phù hợp với jslint. Hơn nữa, nó tạo mã javascript hợp lệ trên tất cả các trình duyệt. Vì vậy, nó không chỉ là một lớp đường cú pháp đẹp, nó thực sự giúp tạo ra mã rắn.

1

Tôi nghĩ rằng điều quan trọng cần nhớ ở đây là javascript Coffeescript. Mỗi câu lệnh Coffeescript hoặc toán tử ma thuật có một biểu diễn cụ thể trong Javascript. Ví dụ: (x) -> x * x trong Coffeescript sẽ dịch trực tiếp thành function (x) { return x * x; }.

Bạn thực sự không thể viết Coffeescript mà không biết về Javascript mà nó sẽ tạo ra. Đối với một điều, Javascript được tạo ra là những gì bạn sẽ phải gỡ lỗi. Nếu bất cứ điều gì, tôi tin rằng viết Coffeescript có thể có thể cải thiện sự hiểu biết của bạn về Javascript, bởi vì nó buộc bạn phải đưa ra quyết định duy nhất cho Javascript. Ví dụ: khi trong Coffeescript, bạn quyết định sử dụng => thay vì -> trong thực tế bạn đang đưa ra quyết định về việc bạn có muốn ràng buộc this - một vấn đề Javascript thực sự hay không.

Khi nào (hoặc nếu) để bắt đầu sử dụng Coffeescript? Tôi nghĩ rằng câu trả lời cho điều này là nhiều hay ít tùy thuộc vào bạn. Hãy thử nó, và nếu bạn cảm thấy rằng nó được dễ dàng hơn để có được công việc của bạn thực hiện bằng cách sử dụng Coffeescript, sau đó dính vào nó. Nếu bạn thấy khó viết mã bằng một ngôn ngữ khác với ngôn ngữ chạy (và do đó bạn phải gỡ lỗi), sau đó quay lại Javascript.

6

Tôi muốn giải quyết các thắc mắc của bạn.

1) Nếu bạn đã sử dụng JS trong ba năm, bạn có thể có một sự hiểu biết khá vững chắc về JS. Nếu bạn chưa đạt được một sự hiểu biết vững chắc, có thể đã đến lúc bổ sung kiến ​​thức của bạn với một trong những cuốn sách JS tốt.

2) Coffee-script có thể sẽ không làm cho kiến ​​thức của bạn về JS tồi tệ hơn. Cách bạn thiết kế các ứng dụng Coffee-script giống như cách bạn sẽ thiết kế một ứng dụng JS (phần lớn), vì vậy các kỹ năng thiết kế mà bạn đạt được sẽ chuyển giao. Thiết kế chương trình, theo ý kiến ​​của tôi, là khía cạnh quan trọng nhất của lập trình.

3) Tại sao bạn không tin tưởng JS? Tại sao bạn tin tưởng bất kỳ trình biên dịch/trình biên dịch nào/các công cụ khác mà bạn sử dụng? Tôi nghi ngờ Coffee-script là lỗi miễn phí, nhưng nhiều người sử dụng nó cho nhiều mục đích. Điều này có nghĩa rằng một tập hợp lớn các hành vi đã được kiểm tra, thường trong sản xuất, vì vậy trường hợp sử dụng của bạn có thể đã được thử và thử nghiệm.

4) Tất nhiên JS được tạo ra bởi Coffee-script sẽ nhìn xa lạ với bạn, vì các quy tắc tạo ra nó không có khả năng đọc của con người là ưu tiên. Đọc nó, tuy nhiên, sẽ làm tăng kiến ​​thức của bạn về JS khi bạn thấy các chương trình được viết đặc biệt chạy như thế nào. Điều này đưa chúng ta trở lại điểm 1.

+0

Tôi đã bình chọn câu trả lời của bạn, nhưng tôi thường tin rằng khả năng đọc của con người thực sự là một ưu tiên (có thể không phải là cao nhất) của thiết kế trình biên dịch CoffeeScript. Tôi không thấy rằng tôi cần phải xem JavaScript được biên dịch rất thường xuyên nhưng khi tôi làm, tôi không gặp khó khăn khi kết nối nó với ý định của CoffeeScript của tôi. Điều đó nói rằng, quan điểm của bạn về việc đọc nó làm tăng kiến ​​thức JavaScript cũng được thực hiện ... như phần còn lại của câu trả lời của bạn. –

+0

+1 cũng ở đây, nhưng tôi cũng không đồng ý với điểm tìm kiếm/không thể đọc được ở nước ngoài. Coffeescript có các quy tắc rất rõ ràng về cách nó dịch sang Javascript, và nó khá dễ dàng để nhận ra mã được biên dịch. Các quy tắc là ngay tại đó, trên trang chủ của http://coffeescript.org/ – AHM

1

Vì vậy, đây là những gì tôi nghĩ về chủ đề:

  1. JS không phải là một công nghệ hỗ trợ (hỗ trợ để làm gì?). Nó là một ngôn ngữ chủ yếu được sử dụng trên front-end và có một xu hướng mới của việc sử dụng nó trên back-end. Vì trình duyệt không hỗ trợ CoffeeScript nguyên bản trừ khi bạn sử dụng nó như là một back-end thì tôi không nghĩ rằng có một điểm trong việc sử dụng CoffeeScript. Mặc dù học ngôn ngữ mới luôn là một ý tưởng hay.

  2. Không hề. Trên thực tế việc sử dụng CoffeeScript giống như sử dụng ngôn ngữ khác. Học tập không thể làm cho bạn dumber trong khác. Trừ khi bạn ngừng học cái kia.

  3. Không có bằng chứng nào cho thấy CoffeeScript biên dịch thành mã lỗi hoặc mã chậm. Thực ra tôi đang sử dụng CoffeeScript một thời gian và tôi không quan sát được bất kỳ lần truy cập hiệu suất nào.

  4. Thực ra bạn không cần phải hiểu lý do tại sao nó biên dịch như thế này. Nếu bạn đang sử dụng CoffeeScript trên back-end thì bạn thậm chí không cần phải xem mã mà nó biên dịch thành (bạn chỉ cần mã nguồn). Đối với việc sử dụng nó để làm cho các kịch bản trình duyệt sau đó có - nó có thể là một chút khó khăn để làm việc với nó (gỡ lỗi). Đó là lý do tại sao tôi luôn khuyên bạn viết bình thường JavaScript cho trình duyệt và sử dụng CoffeeScript trên back-end.

Bây giờ là câu hỏi cuối cùng: Tôi không nghĩ rằng CoffeeScript ảnh hưởng đến kiến ​​thức JS của tôi chút nào. Tôi đối xử với họ như những ngôn ngữ riêng biệt. Ngoài ra, bạn không cần biết JS để chuyển sang CoffeeScript (mặc dù bạn nên) trừ khi bạn muốn sử dụng CoffeeScript trên giao diện người dùng.

Cũng làm chủ JavaScript là luôn là một ý tưởng hay, bất kể là gì. :)

Các vấn đề liên quan