2009-07-19 40 views
7

Tôi đang sử dụng Firebug để giúp tìm ra những gì đang xảy ra trong mã JavaScript (+ JQuery) của tôi. Tôi chủ yếu sử dụng nó để in ra tấn của console.log báo cáo. Đây có lẽ không phải là cách hiệu quả nhất để ở lại đầu dự án. Vì nó đã phát triển từ chỉ một vài chức năng đến hơn một trăm, tôi bắt đầu bối rối về cách mọi thứ phù hợp với nhau. Ý tôi là, nó hoạt động bằng cách nào đó nhưng khi tôi nhìn vào đoạn mã bây giờ tôi gần như cảm thấy như ai đó đã viết nó bởi vì nó rất khó hiểu.Làm thế nào để bạn ở lại trên đầu trang của một dự án JavaScript phức tạp?

Hiện tại, tôi có một số lượng phát biểu là console.log xuất hiện trong bảng điều khiển bất cứ khi nào tôi chạy ứng dụng của mình trong Firebug và tôi đã để nó ở đó vì tôi luôn tạo lại nó khi tôi lấy một số. Điều này làm cho mọi thứ trở nên khó hiểu hơn, tôi nghĩ, hơn là nếu tôi không đăng nhập. Tôi chưa bao giờ thực sự khám phá sự gỡ rối thực sự - các điểm ngắt, các biến quan sát, v.v. - đó có phải là một cách tốt để lấy lại quyền kiểm soát dự án này hay không có công cụ nào khác có thể giúp đỡ?

Tôi đã nghĩ đến việc vẽ sơ đồ tất cả CSS của mình và cố gắng vạch ra các lớp và ID cho các hàm tương ứng trong JavaScript của tôi. Dự án này sử dụng rất nhiều tương tác phong phú và chức năng hiển thị/ẩn dựa trên một tập hợp phức tạp các trạng thái ứng dụng, gần hơn với những gì bạn sẽ tìm thấy trong ứng dụng Flash/Flex.

Bất kỳ đề xuất nào về các công cụ hoặc phương pháp có thể giúp lấy lại quyền kiểm soát dự án này sẽ được đánh giá cao. Khi tôi bắt đầu dự án này tôi cảm thấy thực sự tốt về nó bởi vì nó trông rất tốt và mọi người sẽ cho tôi lời khen về sự tuyệt vời của nó nhưng bây giờ nó chỉ cảm thấy thất bại vì tôi không nghĩ rằng tôi có thể giải thích nó hoạt động như thế nào phỏng vấn xin việc nếu tôi phải làm.

+5

Định dạng luôn được đánh giá cao. Điều này thực sự là tường-o-văn bản. –

+2

Đồng ý. Tôi đã đâm vào một số đoạn ngắt. – Nosredna

Trả lời

1

Nếu nó trở nên quá phức tạp, bạn phải làm quá nhiều để giữ nó đơn giản (ví dụ: chia thành các khối có thể quản lý và tái sử dụng để thay vì có một Titanic bạn có nhiều thuyền cứu sinh nhỏ gọn). Đây có thể là lời khuyên phi kỹ thuật tốt nhất mà bất kỳ ai cũng có thể cung cấp cho bạn - và nó hợp lệ.

+1

Chẳng hạn như 'làm quá nhiều', bạn cần làm những gì bạn cần làm. –

+1

Cậu bé rất vui vì Bricklin và Franston đã không ngừng hoạt động khi mã VisiCalc bắt đầu trở nên phức tạp. – Nosredna

4

Bạn có thể muốn giới thiệu các bài kiểm tra đơn vị thực tế vào mã của mình. Có nhiều nền tảng thử nghiệm đơn vị javacscript có sẵn, chẳng hạn như fireunit. Nếu bạn đã có FireBug cài đặt này là một bước nhảy khá ngắn đến vùng thoải mái hạnh phúc!

Cung cấp cho nó một shot, thậm chí một lượng nhỏ phạm vi kiểm tra đơn vị sẽ giúp giảm bớt tâm trí của bạn!

11

Giữ mã của bạn được sắp xếp. Sử dụng không gian tên để chia nhỏ thành các mô-đun logic. Nó cũng có thể là khôn ngoan để tìm kiếm các mẫu tương tác phổ biến và phát triển mã tái sử dụng chung.

Tôi cố gắng viết mọi tính năng mới dưới dạng plugin jQuery. Điều đó buộc tôi phải viết mã tái sử dụng mà không phải là như vậy cùng với phong cách và đánh dấu.

+0

Đây là một nhận xét tuyệt vời, tuy nhiên tôi chỉ sợ những người khởi xướng javascript thực sự sẽ đánh giá cao nó! +1 – Thunder3

3

Bất kỳ khi nào một chương trình bắt đầu trượt khỏi bạn, bạn cần phải dừng lại và xem kỹ cách chia nhỏ nó thành nhiều phần. Hãy suy nghĩ về việc chia nhỏ các js thành các tệp riêng biệt, do đó bạn không phải giữ toàn bộ nội dung trong đầu mình cùng một lúc. Bất cứ điều gì bạn có thể coi là "thực hiện" có thể được thực hiện vào một giao diện mà bạn không quan tâm về ruột của nó nữa.

Đó là tất cả về việc ẩn mớ hỗn độn. Cho dù đó là OO hay thủ tục. Nhiều người có cùng một vấn đề với PHP và C như bạn đang gặp phải với JavaScript, vì vậy bạn có thể tìm kiếm "PHP spaghetti" và nhận được một số mẹo hay.

1

Sử dụng trình gỡ lỗi JavaScript tốt như Firebug và báo cáo trình gỡ lỗi để thêm điểm ngắt vào JavaScript của bạn. Chỉ cần cẩn thận để loại bỏ chúng sau khi bạn đã hoàn tất.

8

Tôi đã làm việc trong Web2.0 với nhiều javaScript và v.v.I `ll cung cấp cho một số lời khuyên đó đã giúp tôi:

Hãy thử aptana, giúp với mã hoàn chỉnh, hợp lệ, vv (đã ext-je, plugin jquery)

Hãy thử JSLint, giúp tôi phân phối để giải quyết vấn đề đặc biệt khi giao dịch với Internet Explorer.

Hãy thử YSlow để xem điểm trang web của bạn.

Hãy thử WATIR, công cụ bạn có thể tạo nhiều trường hợp thử nghiệm như: nhấp vào bất kỳ nơi nào chờ đợi một số văn bản xuất hiện ở đâu đó, viết một số chuỗi vào một số trường, tạo nhật ký.

Hãy nhớ đặt Id`s ở mọi nơi bạn có thể.

Xác định quy ước mã có thể hữu ích. (link1-link2)

[Cập nhật] tôi đang tìm kiếm trong bookmark của tôi và tìm thấy một video rất tuyệt vời về: Maintainable JavaScript có một cái nhìn.

Hy vọng những mẹo đơn giản này có thể hữu ích!

Chúc mừng!

1

Bạn có thể muốn suy nghĩ về việc sử dụng GWT.

  • Hỗ trợ cao cấp.
  • Lớp học
  • Khả năng tái cấu trúc.
  • Không có quy ước về không gian tên - sử dụng các gói.

Để biết danh sách "lý do" toàn diện hơn, hãy đọc những danh sách do nhóm GWT đưa ra.

1

Một điều đã giúp tôi có được xử lý trên cơ sở mã JavaScript phức tạp mà tôi đã kế thừa là AOP package in dojo.. Sử dụng nó, bạn có thể nhận được một đường dẫn thực thi được định dạng độc đáo của mã của bạn (loại giống như hồ sơ của Firebug nhưng trong một danh sách theo thứ tự các phương thức được gọi).

Tôi không biết jQuery có gì tương tự hay không, nhưng nó có thể đáng để xem xét vì nó đánh bại sự bóc lột của cơ sở mã của bạn với các câu lệnh tường trình mà bạn có thể (hoặc có thể không phụ thuộc) phải xóa.

Khi bạn biết mọi thứ đang hoạt động như thế nào, bạn có thể sắp xếp lại nó bằng cách sử dụng một số mẹo tuyệt vời tại đây.

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