2009-09-26 25 views
55

Tôi đang tìm cách bắt đầu viết một ứng dụng tinh vi trong JavaScript để chạy trên web. Tôi đã viết một chút code throwaway trong JavaScript trước đây, sử dụng DOM trực tiếp và một chút jQuery. Nhưng đây là lần đầu tiên tôi tìm cách viết một ứng dụng chính thức để chạy trong trình duyệt.Có gì trong chuỗi công cụ JavaScript của bạn?

Vì vậy, tôi tự hỏi những công cụ mà mọi người thích làm cho phát triển nghiêm túc trong JavaScript. Cụ thể, tôi quan tâm đến những điều sau đây, cùng với một số thông tin về lý do bạn chọn các thành phần bạn đã làm và cách chúng khớp với nhau trong quy trình làm việc của bạn:

  • Trình chỉnh sửa/chế độ/trình chỉnh sửa của trình chỉnh sửa và biên tập nào sử dụng? Tôi thường là người dùng Emacs và đang sử dụng js2.el vào lúc này, nhưng tôi quan tâm đến việc nghe về các thiết lập khác.
  • Bạn có sử dụng bất kỳ loại IDE nào (Aptana, Dashcode hoặc các loại tương tự) không?
  • Bạn sử dụng thư viện hoặc khung công tác JavaScript nào?
  • Bạn có sử dụng bất kỳ ngôn ngữ nào biên dịch thành JavaScript (GWT, haxe, Objective-J) không?
  • Bạn sử dụng khung kiểm tra đơn vị nào? Làm thế nào để bạn gọi chúng? Chúng có thể được gọi từ trình soạn thảo/IDE của bạn, từ dòng lệnh, từ trình duyệt trong một trang web, từ trình gỡ lỗi JavaScript của bạn không?
  • Bạn sử dụng công cụ kiểm tra giao diện người dùng tự động nào (chẳng hạn như Selenium, Watir, Sahi)? Một lần nữa, làm thế nào có thể được gọi? (Có thể gọi kiểm tra đơn vị và kiểm tra giao diện từ dòng lệnh sẽ rất hữu ích, để chạy buildbots)
  • Bạn sử dụng công cụ chất lượng mã nào khác (JSlint, công cụ bảo vệ mã hoặc bất kỳ thứ gì sắp xếp)?
  • Bạn sử dụng gì cho môi trường gỡ lỗi của mình (Firebug, thanh tra WebKit, v.v)? Liệu nó có bất kỳ tích hợp với trình soạn thảo của bạn hoặc IDE?
  • Bạn xử lý hậu kỳ nào trên mã của mình trước khi triển khai (obfuscators, minifiers, bất kỳ loại trình tối ưu hóa nào)?
  • Bạn có bất kỳ loại công cụ nào để quản lý phụ thuộc vào mô-đun hoặc tải mã động khi cần thiết không? Ứng dụng tôi đang viết sẽ làm việc với một lượng lớn mã và tôi muốn giữ thời gian tải xuống, vì vậy các công cụ để theo dõi những mô-đun nào cần hoặc tải mã theo yêu cầu sẽ hữu ích.
  • Có bất kỳ công cụ thiết yếu nào khác trong chuỗi công cụ của bạn (cụ thể cho phát triển JavaScript cho các ứng dụng dựa trên trình duyệt không; Tôi đã có một hệ thống kiểm soát phiên bản hoàn hảo, trình theo dõi lỗi, v.v)?

Tôi ít quan tâm đến danh sách "đây là một loạt những thứ bạn có thể sử dụng" (tôi biết rất nhiều công cụ có sẵn) và hơn thế nữa trong ngăn xếp mà bạn thực sự sử dụng thực hành và làm thế nào nó phù hợp với nhau. Tôi hy vọng phát triển chủ yếu như ứng dụng phía máy khách, với máy chủ chỉ được sử dụng để xác thực và lưu trữ và truy xuất dữ liệu, vì vậy tôi không quan tâm đến khung bên máy chủ nào bạn sử dụng, trừ khi nó là không thể thiếu với khách hàng mã phụ theo một cách nào đó.

chỉnh sửa: Tôi đặc biệt quan tâm đến các đơn vị và khung kiểm tra giao diện người dùng và cách bạn tự động hóa chúng. Tôi thích có thể chạy một nhiệm vụ "kiểm tra" hoặc "kiểm tra rake" đơn lẻ từ dòng lệnh để chạy tất cả các thử nghiệm cho các dự án và trả về trạng thái tùy thuộc vào sự thành công hay thất bại của các thử nghiệm. Điều này sẽ cho phép tích hợp dễ dàng hơn nhiều với buildbots. Ngoài ra, tôi quan tâm nếu có ai đó viết bài kiểm tra đơn vị có thể chạy bên ngoài trình duyệt (bằng Rhino, spidermonkey, v8 hoặc tương tự) cho mã không phụ thuộc vào trình duyệt, để quay vòng nhanh hơn trên một tập hợp con của bạn kiểm tra.

Trả lời

29

plugins/chế độ/script nào bạn sử dụng biên tập gì và biên tập viên? Tôi là thường là người dùng Emacs và đang sử dụng js2.el vào lúc này, nhưng tôi là muốn nghe về các thiết lập khác.

Tôi thường sử dụng Textmate (với JavaScript, jQuery, và Prototype bó). Khi thực hiện phát triển front-end nặng, nơi tôi đang tabbing nhanh chóng giữa các tệp HTML, CSS và JavaScript, tôi sẽ chọn không tham gia chế độ xem bảng phân chia của vim. Khi làm như vậy, tôi hoặc sử dụng macvim hoặc Thiết bị đầu cuối + Visor, tùy thuộc vào tâm trạng của tôi. Rõ ràng, tôi là một người dùng Mac.

Bạn có sử dụng bất kỳ loại IDE nào (Aptana, Dashcode hoặc các loại tương tự) không?

No. Tôi đã từng sử dụng Coda, nhưng tính năng soạn thảo văn bản của nó để lại nhiều điều mong muốn. Tôi cũng đã chơi đùa với Espresso, điều thú vị ... nhưng meh.

Bạn sử dụng khung thư viện JavaScript nào hoặc ?

Tôi sử dụng cả hai jQueryPrototype, tùy thuộc vào nhu cầu của dự án. Để minh họa cho từng thế mạnh của khung tương ứng, tôi muốn tham khảo jQuery dưới dạng khung thao tác DOM và Thử nghiệm khung kịch bản lệnh. Theo đó, tôi có xu hướng sử dụng jQuery trên các dự án tập trung vào đánh dấu và thử nghiệm trên các dự án kiểu ứng dụng, kịch bản nhiều hơn.

Bạn có sử dụng bất kỳ ngôn ngữ nào biên dịch sang JavaScript (GWT, haxe, Mục tiêu-J)?

Tuyệt đối không - tôi có những hiểu biết triết học với các khuôn khổ như vậy. Không giống như mã phía máy chủ, mã front-end đang được chạy trong trình duyệt của người dùng, trong một môi trường mà bạn không thể kiểm soát. Do đó, tôi thấy trách nhiệm của nhà phát triển JavaScript là tạo ra mã tốt nhất có thể. Mã dưới tối ưu có thể có phân nhánh hiệu suất và JavaScript được biên dịch bởi các ngôn ngữ như Objective-J (chỉ là một trong danh sách mà bạn đã sử dụng) sẽ không bao giờ chặt chẽ như mã được tạo bởi nhà phát triển JavaScript mạnh.

Bạn sử dụng khung kiểm tra đơn vị nào? Làm thế nào để bạn gọi chúng? Họ có thể được gọi là từ trình soạn thảo/IDE của bạn không, từ dòng lệnh , từ trình duyệt trong trang web , từ trình gỡ lỗi JavaScript của bạn?

Tôi là người hâm mộ lớn của QUnit, khung kiểm tra đơn vị jQuery. Dojo DOH Unit Testing cũng rất hay.

Đừng bỏ lỡ FireUnit, tiện ích Firebug tiện lợi để kiểm tra đơn vị.

Đồng thời xem Razor.

gì công cụ tự động sử dụng thử nghiệm giao diện nào bạn sử dụng (chẳng hạn như Selenium, watir, Sahi)? Một lần nữa, làm cách nào để các yêu cầu này được gọi là ? (Có thể gọi đơn vị kiểm tra và thử nghiệm giao diện từ dòng lệnh sẽ rất hữu ích, ví buildbots chạy)

Khi cần thiết tôi sử dụng Selenium, nhưng điều này là hiếm.

gì khác mã chất lượng công cụ để bạn sử dụng (JSLint, dụng cụ đang bảo hiểm, hoặc bất cứ điều gì trong những loại)?

Tôi sử dụng và yêu thích JSLint.

Firebug có số đẹp code coverage extensionHRCov được coi là giống tốt nhất. Tôi không tìm thấy nhiều việc sử dụng cho phạm vi mã trong hầu hết công việc JavaScript hàng ngày của tôi.

Bạn sử dụng gì để gỡ lỗi môi trường (Firebug, WebKit thanh tra, v.v ...)? Liệu nó có tích hợp với trình soạn thảo hoặc IDE của bạn không?

Theo như tôi quan tâm, Firebug là ứng dụng sát thủ để phát triển JavaScript. Một số tính năng gỡ lỗi hữu ích:

  • tooltips Biến
  • Breakpoints và breakpoint có điều kiện
  • Performance profiler
  • Một cực kỳ tiện lợi console API
  • Xem biểu
  • stack dấu vết
  • plugin hữu ích như Jiffy, FireCookieFireQuery.

Thanh tra WebKit đẹp, như DragonFlyDebug Bar rất hữu ích để theo dõi lỗi IE ... nhưng FireBug là tiện ích cho tôi.

gì sau xử lý để bạn chạy trên mã của bạn trước khi triển khai nó (obfuscate, minifiers, bất kỳ loại tối ưu hóa)?

Tôi rất cố tình không sử dụng bất kỳ công cụ hậu xử lý nào - một trong những khía cạnh tuyệt vời của JavaScript là tính mở của nó và tôi muốn làm cho các nhà phát triển JavaScript non trẻ khó học hỏi từ công việc của tôi. Chưa kể rằng nó rất đơn giản để tái tạo lại JavaScript bị xáo trộn.

Chỉ có một trường hợp mà tôi cần để rút gọn JavaScript để tiết kiệm băng thông. Trong trường hợp đó, tôi thiết lập một SVN post-commit hook để chạy tuyệt vời của Doug Crockford JSMin.

Có bất kỳ công cụ thiết yếu khác trong toolchain của bạn (mà là đặc trưng cho phát triển JavaScript cho trình duyệt các ứng dụng dựa, tôi đã có một phiên bản hoàn toàn tốt hệ thống điều khiển, theo dõi lỗi, vv)?

  • Các alert() chức năng;)
  • Ngoài ra, một đẹp JSON validator là hữu ích.
  • Visual Event rất hữu ích cho sự kiện gỡ lỗi
  • jsfuzzer, cho fuzzing
  • Tôi đã không cần thiết để sử dụng nó, nhưng Crosscheck là trong bộ công cụ của tôi.
+3

Câu trả lời hay! Rất nhiều thông tin hữu ích. Một vài nhận xét: "JavaScript được biên dịch bởi các ngôn ngữ như Objective-J sẽ không bao giờ chặt chẽ như mã được tạo bởi một nhà phát triển JavaScript mạnh" - có vẻ như việc loại bỏ các ngôn ngữ cấp cao của lập trình viên lắp ráp. Tôi đã nghe nói rằng GWT thực hiện một số tối ưu hóa khá ấn tượng mà sẽ khó làm bằng tay. "Tôi ghét làm cho các nhà phát triển JavaScript non trẻ khó học hỏi từ công việc của tôi" - Tôi ở cùng bạn ở đây, nhưng chúng tôi có thể sẽ có nhiều mã, vì vậy việc rút gọn có thể cần thiết (và mã sẽ là mã nguồn mở). –

+1

Tương tự lắp ráp không nhất thiết phải là một công bằng, vì bạn luôn có thể tin tưởng vào sự trừu tượng của lắp ráp đang chạy trong cùng một môi trường. Số lượng các môi trường có thể (trình duyệt/kết xuất/nền tảng) mà cùng một mã JavaScript có thể chạy rất lớn. Kêu gọi mở nguồn cho công việc của bạn, thật tuyệt vời khi nghe. Nếu bạn cần giảm thiểu, tôi khuyên bạn nên rút gọn JavaScript của mình dưới dạng móc hậu sau khi tôi đề xuất trong câu trả lời của tôi. –

+0

Tính đến tháng 2 năm 2011, có một nhánh thú vị của JSLint, có một số lợi ích từ cộng đồng JS: http://jshint.com/ – dermatthias

1
  • Editor: Notepad hoặc bất kỳ trình soạn văn bản khác với cú pháp nổi bật

  • IDE: có thể Dreamweaver, Aptana, Netbeans - lên đến sở thích cá nhân của bạn.

  • Javascript Framework: Tôi được sử dụng nhiều hơn để jQuery và tôi vẫn khuyên bạn nên jQuery.
    bạn có thể xem xét thêm một số "plugin" vào jQuery. một số thực sự tuyệt vời. như Facebox (http://famspam.com/facebox) - một hộp bật lên giống như Facebook giống như Facebook rất dễ sử dụng. hoặc plugin jQuery Cookie

  • Gỡ lỗi: Firebug (FireCookie, Trang Tốc độ, YSlow) - không tích hợp với IDE nhưng là ảo thuật trên trình duyệt. Nếu bạn cần gỡ lỗi trình duyệt chéo, bạn có thể sử dụng Firebug Lite.

    Bạn có thể dễ dàng sử dụng console.log() để gỡ lỗi thay vì cảnh báo (đặc biệt là khi bạn đang thực hiện javascript với số lượng lớn gọi lại, hẹn giờ, AJAX, v.v.) Bạn không muốn tuyên bố cảnh báo để phá vỡ nó ban đầu nên

  • Post-chế biến: Packer - http://dean.edwards.name/packer/

+1

Bạn có sử dụng bất kỳ IDE nào trong số những IDE đó không? Hoặc Notepad? Như tôi đã nói, tôi muốn biết những gì bạn thực sự sử dụng, không phải những gì tôi có thể sử dụng. Cảm ơn bạn đã đề cập đến các công cụ khác, tôi sẽ xem xét các công cụ đó. –

+7

Notepad và Dreamweaver? Bạn nghiêm túc chứ? –

+0

Tôi thực sự sử dụng chúng. Tôi đã chết nghiêm trọng về notepad. im có thể mã các trang web (hoàn thành và một tay) trong notepad. im không được sử dụng để IDE. do đó ghi nhớ (hoặc đề cập đến) hướng dẫn là quan trọng đối với tôi. – mauris

2

tôi đã không viết bất cứ điều gì lớn trong Javascript chưa (khoảng 3000 dòng trong dự án mới nhất của tôi), nhưng tôi làm JSLint tôi. mã và rút gọn/kết hợp nó với tất cả các thư viện tôi cần trong kịch bản triển khai/xây dựng của mình. thay đổi HTML từ việc nhập trực tiếp các tập lệnh và thư viện, để nhập mã nén sản xuất. Bằng cách đó bạn không phải chạy kịch bản xây dựng để xem những thay đổi trong phát triển cần thiết.

YUI Compressor là khá chậm, đặc biệt là kể từ khi nó khởi động JVM để chạy, nhưng nó được thực hiện công việc. Một số loại rút gọn trong kịch bản triển khai của bạn là điều cần thiết để loại bỏ tất cả các nhận xét và nếu bạn tránh các biến toàn cầu, bạn sẽ nhận được số lượng có ý nghĩa về độ dài tên của quá trình nén, mặc dù không có nhiều lợi ích sau gzip. Có thể bạn sẽ muốn một bước khác để gỡ bỏ các dòng console.debug và mã gỡ lỗi khác.

Để gỡ lỗi, FireBug. Tôi chắc chắn rằng trình gỡ lỗi webkit cũng tốt.

Để phát triển, vim với tập lệnh thụt lề js được cải thiện và ctags với một số sửa đổi js. Tôi không chắc chắn những gì lợi thế một IDE thực sự có nhưng tôi chắc chắn có một số. Vim không làm nổi bật cú pháp của HTML bên trong chuỗi javascript theo mặc định, nhưng là apparently it can be configured to.

JSLint chạy trong tê giác dễ dàng, nhưng spidermonkey được thực hiện khoảng 3x nhanh vì nó không cần khởi động JVM. Crockford không hỗ trợ sự sắp xếp đó nhưng tôi đã cố gắng làm cho nó hoạt động bằng cách nào đó.

+0

Cảm ơn lời khuyên! Tôi tò mò về những gì bạn sử dụng cho kịch bản xây dựng/triển khai của mình; có gì đó chung chung hay chỉ là thứ bạn đã tự nấu? –

+0

Đó là một hỗn hợp của bash và python, không có gì đặc biệt thực sự. – gravitation

2

Tôi đang trên một chồng nghệ hơi khác nhau (asp.net MVC), nhưng ở đây nó đi:

  • IDE: Visual Studio 2008 + ReSharper, Asp.MVC Net
  • Editor: Notepad ++ (hầu hết thời gian của tôi là trong VS, nhưng Notepad ++ có cú pháp tốt hơn làm nổi bật cho JavaScript)
  • Dev Trình duyệt: FireFox + Firebug + YSlow + Tốc độ + Firecookie Ngoài ra thêm Developer Toolbar
  • khác Trình duyệt: IE8, Chrome 3, Safari, Opera (hiếm khi được sử dụng) và IE6 và IE7 thông qua các máy ảo (các hình ảnh PC ảo miễn phí có thể tải xuống từ Microsoft).
  • Xử lý hậu kỳ: Máy nén JLint và YUI. Tôi có một nhiệm vụ xây dựng làm phần máy nén YUI.
  • Javascript Framework: JQuery + JQuery UI
  • thứ khác: JQuery Validation, JSON2
+0

Cảm ơn! Không có vấn đề gì với việc có một chồng công nghệ khác; Tôi sử dụng Visual Studio cho phát triển Windows C++ của mình, vì vậy tôi đã quen thuộc với nó, và câu hỏi này cũng có nghĩa là hữu ích cho những người khác đang tìm kiếm các toolchains. Cảm ơn câu trả lời! –

3
  • IntelliJ IDEA/RubyMine để chỉnh sửa.
  • jQuery + Plugin vì sự giống nhau của nó với Ruby
  • Bạn có sử dụng bất kỳ ngôn ngữ nào biên dịch thành JavaScript (GWT, haxe, Objective-J) không?
  • JSUnit với Blue Ridge (Rails gói), nhưng phụ thuộc nhiều vào Selenium kiểm tra
  • Không công cụ chất lượng mã ngoài lập trình cặp và kiểm tra
  • Debug với Firebug chủ yếu
  • Dựa trên nén gzip để giảm không gian
  • Tạo nhiều tệp JS mô-đun nhỏ
  • Sử dụng đường ray để kết hợp tĩnh và tự động bao gồm các tệp này nếu cần. Đây là mã tùy chỉnh, nhưng tôi đã viết blog về nó. Điều này cho phép bạn để giữ cho mọi thứ mô-đun như phát triển phát triển
  • Build khá một vài plugin jQuery để quản lý các widget trên trang web
3

Chỉ cần bắt đầu sử dụng RubyMine như một IDE JavaScript, hoàn toàn là sự hỗ trợ JavaScript, mà là khá tốt . Nó giống như trong IntelliJ IDEA.

Để gỡ lỗi, Firebug rõ ràng là phải có, mặc dù gần đây tôi đã xuống dốc một chút.Tôi có xu hướng sử dụng đăng nhập nhiều hơn một trình gỡ lỗi, vì vậy tôi tìm thấy log4javascript rất hữu ích (mặc dù tôi có lẽ nên chỉ ra rằng tôi đã viết nó). Tôi cũng sử dụng thingK thanh tra của WebKit và trình gỡ rối IE 8 đôi khi, và trình gỡ rối của Visual Studio với các phiên bản IE trước đó.

Đối với chất lượng mã, tôi sử dụng JSLint theo cách thủ công và đôi khi vì tôi không đồng ý với một số đề xuất của nó. RubyMine/IntelliJ cũng có rất nhiều "kiểm tra" JS phân tích mã của bạn khi bạn viết nó và tạo ra các cảnh báo bên cạnh mã của bạn, mà tôi thấy hữu ích.

Tôi có xu hướng phát triển trên một vài trang phát triển bao gồm các tập lệnh riêng lẻ, chưa được sửa đổi và khi tạo bản dựng, tôi chạy tập lệnh xây dựng (của riêng mình, được viết bằng Ant) để kiểm tra mã của tôi khỏi điều khiển phiên bản. , loại bỏ ghi nhật ký và gỡ lỗi cuộc gọi, giảm thiểu/nén (sử dụng JSMin hoặc YUICompressor) mã và chạy các kiểm tra đơn vị. Kịch bản thử nghiệm đơn vị của tôi là của riêng tôi và không có gì ồ ạt ưa thích.

Nó hoạt động khá tốt nhưng không hoàn hảo.

1

Google wave is powered by GWT để nó có vẻ là một lựa chọn tốt cho các ứng dụng lớn hơn.

+0

Cho đến khi bạn thực sự cố viết một ứng dụng với cách tiếp cận kín đáo. – rxgx

7

Tại thời điểm đặt câu hỏi này, Google’s closure compiler không có tranh chấp.
Đây là một công cụ nghiêm túc giúp giảm thiểu JavaScript tốt hơn so với nhiều người khác. Bạn có thể chạy nó với page speed để phân tích các trang web hiện có. Nó có rất nhiều chức năng khác được tích hợp sẵn, như phát hiện mã chết, tài liệu tham khảo, v.v.

+0

Làm cách nào để thực hiện trên các thư viện khác với thư viện Đóng cửa? Cuối cùng tôi nghe nói, nó có một số lỗi khi chạy trên jQuery. Nó chắc chắn là một công nghệ khá đẹp; tốt hơn nhiều so với trình tối ưu hóa trung bình của bạn. –

+0

Đã sửa lỗi, đang chờ tích hợp http://code.google.com/p/closure-compiler/issues/detail?id=1&can=1#c2 – Cherian

1

Tôi sử dụng Dashcode để phát triển Mac Widgets và cho rằng nó là "ok" và có nhiều tính năng định hướng tiện ích nhưng cho mọi thứ khác , TextMate

1

Web Tech đã di chuyển dọc theo một chút vì vậy tôi nghĩ rằng tôi muốn đề cập đến một số công cụ hiện đại đẹp và khuôn khổ cho bất cứ ai nhìn thấy câu hỏi này trong 2017.

gì biên tập viên và biên tập viên plugins/chế độ/script làm bạn dùng?

Atom là trình soạn thảo văn bản được chọn và khi tôi ở trong hệ sinh thái MS, Visual Studio 2013 là IDE tôi sử dụng, mặc dù tôi tránh VS để phát triển JavaScript. Tôi hầu như tất cả phát triển JavaScript của mình chỉ dành riêng cho Atom ở bất cứ đâu tôi có thể.

Tôi có một số plugin công bằng giúp luồng công việc của tôi.

  • atom-beautify mà tôi sử dụng để làm sạch bất kỳ vấn đề phong cách tôi có thể giới thiệu, nó thực hiện điều này trên tiết kiệm để làm cho mọi thứ dễ dàng cho tôi khi tôi tiết kiệm và check-in thường xuyên.
  • atom-easy-jsdoc cho phép tôi chèn nhận xét jsdoc bằng cách sử dụng tổ hợp phím nóng , điều này rất tuyệt vì nó cho phép tôi tự động tạo tài liệu cho mã, đặc biệt hữu ích cho việc phát triển API.
  • atom-ternjs là gói tôi sử dụng để hoàn thành mã JavaScript, tôi không cần điều này thường xuyên nhưng rất tiện lợi để có.
  • minimap là một plugin cho phép tôi xem đường viền chi tiết thấp của tất cả các mã trong một tài liệu cụ thể, tôi thấy việc sử dụng dễ dàng hơn thanh cuộn . YMMV.
  • pigments là một plugin hiển thị màu sắc khi phát hiện màu hex bằng CSS phía sau văn bản. Hữu ích nếu bạn cần điều chỉnh và xem kết quả một cách nhanh chóng.

Bạn có sử dụng bất kỳ loại IDE nào (Aptana, Dashcode hoặc các loại tương tự) không?

Xem ở trên :)

gì thư viện JavaScript hoặc các khuôn khổ nào bạn sử dụng?

Tôi có xu hướng sử dụng RequireJS cho dự án nhà và trình tải mô-đun trong nhà tại nơi làm việc. Tôi thường không sử dụng các thư viện và khung công tác trong các dự án của mình, mặc dù khi tôi làm tôi khá một phần với AngularJS (1.x). Tất cả phụ thuộc vào những gì tôi đang làm.

Bạn có sử dụng bất kỳ ngôn ngữ nào để biên dịch sang JavaScript (GWT, haxe, Mục tiêu-J) không?

Không.

Bạn sử dụng khung kiểm tra đơn vị nào? Làm thế nào để bạn gọi chúng? Họ có thể gọi số từ trình soạn thảo/IDE của bạn không, từ dòng lệnh, từ trình duyệt trong trang web, từ trình gỡ lỗi JavaScript của bạn?

tôi sử dụng Node.js với Karma kiểm tra Á hậu là người chạy kiểm tra (who'da thunk nó?), Jasmine như khung thử nghiệm của tôi và sinonJS như stubbing tôi/chế giễu thư viện để phát triển thử nghiệm.

Karma có thể được định cấu hình để xem hệ thống tệp để thay đổi (hoặc nhân viên nhiệm vụ như grunt với plugin xem tệp cũng hoạt động) và tôi thực thi tất cả các kiểm tra mỗi khi tệp được lưu. Nó có thêm lợi ích của việc có thể chạy thử nghiệm của bạn đối với nhiều trình duyệt đồng thời. Vì vậy, nó sẽ kiểm tra JS chống lại IE, Edge, Chrome, Firefox, PhantomJS vv ​​... Đó là cực kỳ hữu ích.

Tôi có các dự án js được thiết lập để chạy các tác vụ grunt. Tôi thường chỉ cần thực hiện 'grunt devmode' từ một dấu nhắc lệnh/thiết bị đầu cuối và đó là nó, thử nghiệm của tôi chạy. Đối với tích hợp liên tục trên cam kết tôi có một nhiệm vụ grunt riêng biệt mà chỉ chạy các bài kiểm tra một lần. Đối với sử dụng nhà tôi có TravisCI chạy nhiệm vụ đó bất cứ khi nào một sự cố xảy ra.

gì khác mã chất lượng công cụ để bạn sử dụng (JSLint, dụng cụ đang bảo hiểm, hoặc bất cứ điều gì trong những loại)?

Tôi sử dụng JSHint vì nó ít cầu kỳ hơn JSLint. Đối với bảo hiểm mã tôi sử dụng Istanbul mà tình cờ chạy bất cứ khi nào kiểm tra đơn vị của tôi chạy, đó là siêu hữu ích.

Bạn sử dụng gì cho môi trường gỡ lỗi của mình (Firebug, WebKit thanh tra, v.v ...)? Liệu nó có bất kỳ tích hợp với trình soạn thảo của bạn hoặc IDE?

Tôi sử dụng bất kỳ trình duyệt web nào đang gặp sự cố. Nếu đó là phía máy chủ, ví dụ:Nút, tôi sử dụng node-debugger vì tôi có thể gỡ lỗi trực tiếp từ Atom.

Bạn xử lý hậu xử lý nào trên mã của mình trước khi triển khai mã (obfuscators, minifiers, bất kỳ loại trình tối ưu hóa nào)?

Tôi thường không làm điều này, điều đó nói rằng đối với các dự án web lý tưởng là trình chỉnh sửa và công cụ làm mờ.

Bạn có bất kỳ loại công cụ nào để quản lý phụ thuộc vào mô-đun hay tải mã động khi cần thiết không? Đơn đăng ký tôi đang viết sẽ hoạt động với số lượng lớn mã và tôi muốn giữ thời gian tải xuống, vì vậy các công cụ để theo dõi những mô-đun nào cần hoặc tải mã theo yêu cầu sẽ hữu ích.

Yep! Tôi sử dụng triển khai thực hiện AMD RequireJS. Tôi sử dụng npm là người quản lý gói của tôi lựa chọn, mặc dù nếu tôi đang sử dụng Visual Studio, tôi sẽ sử dụng nuget.

Có bất kỳ công cụ thiết yếu khác trong toolchain của bạn (mà là cụ thể để phát triển JavaScript cho các ứng dụng dựa trên trình duyệt, tôi đã có một hệ thống hoàn toàn tốt phiên bản kiểm soát, theo dõi lỗi, vv)?

Không chắc chắn tôi hiểu câu hỏi, nhưng tôi sử dụng Git cho các dự án nhà và TFS tại nơi làm việc, GitHub làm máy chủ lưu trữ của tôi, TravisCI để tích hợp liên tục và Coveralls (trình bao phủ mã cho kho Git).

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