Hầu hết các công cụ lập trình được đánh giá thấp [đóng]


35

Chúng tôi có nhiều công cụ tuyệt vời giúp ích rất nhiều khi lập trình, chẳng hạn như trình soạn thảo văn bản tốt, IDE, trình gỡ lỗi, hệ thống kiểm soát phiên bản, v.v ... Một số công cụ ít nhiều phải có "công cụ" để hoàn thành công việc (ví dụ: trình biên dịch) .

Vẫn luôn có những công cụ giúp ích rất nhiều, nhưng vẫn không được chú ý nhiều, vì nhiều lý do, chẳng hạn, khi chúng được phát hành, chúng đã đi trước thời đại và bây giờ ít nhiều bị lãng quên.

Loại công cụ lập trình bạn có nghĩ là những ai đánh giá thấp nhất? Thúc đẩy câu trả lời của bạn.


3
Bộ não của chúng ta? - -
Trufa

Được rồi, ai muốn thêm mục Lisp? * cười *
Đánh dấu C

Câu trả lời:


70

Một con vịt cao su. Vâng thật đấy.

http://en.wikipedia.org/wiki/Rubber_duck_debugging

Cao su gỡ lỗi vịt , ducking cao su , và kiểm tra duckie cao su là những thuật ngữ chính thức được sử dụng trong công nghệ phần mềm để đề cập đến một phương pháp gỡ lỗi mã. Cái tên này ám chỉ đến một câu chuyện về ngày tận thế có khả năng trong đó một lập trình viên chuyên gia giấu tên sẽ giữ một con vịt cao su ở bàn của mình mọi lúc, và gỡ lỗi mã của mình bằng cách buộc mình phải giải thích nó, từng dòng một, cho con vịt.

Để sử dụng quy trình này, một lập trình viên giải thích mã cho một đối tượng vô tri, chẳng hạn như một con vịt cao su, với mong muốn khi đạt được một đoạn mã không chính xác và cố gắng giải thích nó, lập trình viên sẽ nhận thấy lỗi. Khi mô tả những gì mã được cho là phải làm và quan sát những gì nó thực sự làm, bất kỳ sự không thống nhất giữa hai điều này trở nên rõ ràng ...


6
Tôi làm điều này mọi lúc với chồng. Là một người hỗ trợ công nghệ chỉ với một chút khả năng lập trình, anh ta hiểu khoảng 60% những gì tôi nói nhưng buộc tôi phải giải thích 40% mà tôi cũng không hiểu. Số lần nó hoạt động thực sự khá ấn tượng.
Ethel Evans

1
Bạn cười. Tôi đã có một đồng nghiệp thực sự có một con vịt cao su trên bàn của cô ấy.
Berin Loritsch

57
Tôi đã thử nó, nhưng con vịt cao su của tôi dường như không thể tập trung vào vấn đề. Tôi có thể tìm một con vịt cao su đủ tiêu chuẩn ở đâu với sự quan tâm thực sự đến lập trình?
Steve314

3
Tôi sử dụng tạp chí của tôi cho việc này. Đôi khi tôi có những cuộc thảo luận khá dài với bản thân về nó. Đôi khi tôi ước mình có thể khiến bản thân hiểu ý tôi. Viết điều này vào một tạp chí đôi khi giúp ích rất nhiều về sau, khi tôi tự hỏi tên ngốc đã viết mã tôi đang làm gì đang nghĩ gì.
Lars Wirzenius

1
@Steve: Các nhà nghiên cứu Nhật Bản đang nghiên cứu về nó, nhưng tôi không nghĩ họ ở gần nhau: youtube.com/watch?v=3g-yrjh58ms
Rei Miyasaka

42

Bút và vở.

  1. Công trình không có điện.
  2. Di động.
  3. Doodle trên / trong khi buồn chán trong các cuộc họp
  4. Lưu trữ thông tin hữu ích.
  5. Nếu nó được viết ra, mọi người coi trọng nó hơn.
  6. Những người khác có thể đọc nó và học hỏi.

Vào thời xa xưa của các tập đoàn lớn, các kỹ sư và kỹ thuật viên sẽ được tặng những cuốn sổ tay kỹ thuật trống, nơi họ sẽ viết tất cả những thứ chúng ta có xu hướng nhét vào các tệp khác nhau trên ổ cứng. Khi sổ ghi chép được lấp đầy, chúng sẽ được gửi đến kho lưu trữ an toàn và chống cháy. Nếu bất cứ ai cần có quyền truy cập vào những ghi chú đó, họ có thể kiểm tra sổ ghi chép.
oosterwal

3
Người Nga đã sử dụng bút chì.
Công việc

@Job Hah, mình vẫn dùng lọ mực! (... Chà, chỉ dành cho thư pháp, nhưng vẫn còn. :))
Mateen Ulhaq

Máy tính bảng thì sao?
Mateen Ulhaq

1
@Job: đào và vodka!
Spoike

38

Các công cụ khác nhau dường như không được sử dụng khi so sánh các đầu ra nhật ký hoặc dữ liệu trong các tệp văn bản phẳng. Hoặc có thể đó chỉ là một ngách? Tôi dường như thấy nó rất hữu ích và hữu ích cho việc gỡ lỗi để so sánh các bản ghi thực thi chương trình khổng lồ và xác định một hoặc hai chi tiết đã thay đổi.

Các công cụ định hình hiệu suất cũng rất tốt để có, đặc biệt là khi bạn chạm vào một nút thắt quan trọng, nhưng có vẻ như rất ít người quen thuộc với chúng (và tôi thừa nhận mình có bằng cấp trong danh mục này).

Các công cụ XML tốt là rất quan trọng - nếu bạn đang làm việc với các tệp XML hơn một chục hoặc nhiều lược đồ. Đôi khi bạn cần nhiều hơn chỉ là cú pháp cơ bản làm nổi bật các trình soạn thảo khác cung cấp. Ngoài ra khi làm việc với XML, học XSL có thể rất hữu ích. Nhiều lần tôi thấy những gì có thể được thực hiện trong một biến đổi XSL đơn giản được thực hiện trong nhiều dòng trong mã của ứng dụng. Mặc dù cần làm rõ: Tôi không gợi ý rằng chính XML là một "công cụ lập trình được đánh giá thấp"; Tôi đề nghị rằng giá trị của các trình soạn thảo XML tốt được đánh giá thấp, từ những gì tôi đã thấy.


1
++ Hoàn toàn diffkhông được đánh giá cao. Về vấn đề hồ sơ, bạn không đơn độc khi nghĩ rằng chúng phải hữu ích, nhưng bản thân bạn không biết làm thế nào. Kiểm tra điều này.
Mike Dunlavey

Vâng, tôi đã nghĩ về việc thực sự học một công cụ định hình, nhưng chưa bao giờ hiểu điều đó
Anto

23
+1 cho định hình, +1 cho các công cụ tìm khác biệt, -1 cho các công cụ XML. Một số người, khi gặp vấn đề, nghĩ rằng "Tôi biết, tôi sẽ sử dụng XML." <Problem:Worsening> <Problem:TimeDescription>Now</Problem:TimeDescription> <Problem:Posessive>they have</Problem:Posessive> <Problem:Quantity>many, many</Problem:Quantity> <Problem:WorseningDescription>more problems</Problem:WorseningDescription></ProblemWorsening>
Mason Wheeler

2
@Mason: XML dễ thương.
Mike Dunlavey

10
@Mason Wheeler: Tôi không đề xuất XML như một công cụ để giải quyết vấn đề, tôi đã đề xuất Công cụ XML tốt - khi bạn phải làm việc với XML, hãy đảm bảo rằng bạn có một trình soạn thảo / công cụ rất tốt. Một cái gì đó có thể thực hiện các truy vấn Xpath, xác thực lược đồ, chuyển đổi, so sánh giá trị so với cấu trúc (một loại công cụ khác biệt tôi đoán), v.v ... Các trình soạn thảo đơn giản với làm nổi bật chỉ không thể cắt nó khi mọi thứ trở nên lộn xộn - chúng thường làm mọi thứ tệ hơn (btw Tôi thích mã XML của bạn;)).
Thất vọngWithFormsDesigner

37

Biểu thức chính quy

Họ chỉ là rất hữu ích. Chúng giúp ích khi tìm kiếm thông qua các tệp nhật ký, phân tích văn bản, v.v. Chúng chỉ cực kỳ hữu ích.

Tôi thấy thật kỳ lạ khi có nhiều người tôi biết rằng họ chưa từng sử dụng chúng bởi vì có một chút đường cong học tập liên quan đến họ. Rất nhiều lần tôi thấy mọi người làm mọi thứ một cách khó khăn (Lưu ý: trước regex tôi đã làm mọi thứ một cách khó khăn) khi một regex đơn giản có thể nhanh chóng hạ gục nó.


8
Hãy nhớ rằng Biểu thức chính quy không phải là con dao của quân đội Thụy Sĩ ngay cả khi chúng rất tuyệt khi được áp dụng đúng cách.
Anto

10
Vô cùng hữu ích - nhưng thường bị lạm dụng, dẫn đến mã không thể nhầm lẫn. Câu nói "bây giờ bạn có hai vấn đề" cũ có một số cơ sở trong thực tế.
Steve314

4
RegExes là một con dao quân đội Thụy Sĩ: Một công cụ thích hợp cho nhiều công việc nhanh chóng, mặc dù có lẽ không phải là công cụ phù hợp để xây dựng toàn bộ ngôi nhà.
JasonTrue

4
Hmm, vì một số lý do tôi luôn có ấn tượng regex còn lâu mới bị đánh giá thấp. Rất thường xuyên, tôi thấy mọi người tiếp cận với một regex trong đó một phân tách / vòng lặp đơn giản sẽ đủ hoặc khi các biểu thức đơn giản không phải là câu trả lời (ví dụ: phân tích cú pháp xml / html).
MAK

Tôi đã thấy cả hai hiện tượng: Regex? Nội dung đó không thể đọc được / chậm / chèn pejorative ở đây và "Cách tốt nhất để phân tích cú pháp (chèn ngữ pháp hoàn toàn không thông thường) với một regex?"
JasonTrue

24

Đồng đội của bạn. Khi bạn không có ý tưởng nóng bỏng nào đó và quên kết hợp nhóm của mình, bạn sẽ không bao giờ nghe thấy mối quan tâm hoặc ý tưởng của họ về lý do tại sao nó không hoạt động hoặc tại sao nó thậm chí còn tốt hơn.

Tôi nói điều này, bởi vì thật dễ dàng để nghĩ rằng lập trình là một thứ chống đối xã hội mà mọi người thực hiện ở các góc với những ý tưởng tuyệt vời của họ. Những người nghĩ rằng điều này đánh giá thấp giá trị của các đội và đồng đội của họ trong việc giúp thực hiện ý tưởng / dự án chìm / bơi.


Đồng đội tốt không bao giờ có thể được đánh giá cao hơn. Hầu hết các phần mềm và phần cứng có thể.
Loại ẩn danh

19

Google. Có rất ít vấn đề chưa được giải quyết và ghi lại. Một truy vấn Google được điều chỉnh tốt có thể tiết kiệm cho mọi người rất nhiều thời gian.


13
Một công cụ tốt nhưng tôi không chắc chắn tôi gọi nó là bị đánh giá thấp, ít nhất là không còn nữa (có lẽ tôi đã đồng ý 9 hoặc 10 năm trước).
Thất vọngWithFormsDesigner

12
Tôi xin lỗi, nhưng Google đánh giá thấp? Ít nhất Google cũng được đánh giá quá cao :)
eestein

2
Tôi biết rồi mà! Nhưng lý do của tôi khi nói rằng nó bị đánh giá thấp là một điều mà tôi nghi ngờ bạn sẽ đồng ý: ít nhất 75% câu hỏi được hỏi trên StackOverflow có thể dễ dàng trả lời được với Google, đúng không? Rõ ràng, ở một mức độ nào đó bị đánh giá thấp nếu nhiều người không sử dụng nó. Nếu lý do của tôi là thiếu sót, tôi sẽ xóa câu trả lời của tôi.
Adam Crossland

3
@Adam Crossland: 75% là tử tế. Tôi nghĩ nó cao hơn thế.
S.Lott

1
@adam @ s.lott vì vậy tôi đoán vấn đề là Google không được sử dụng đúng cách. Với điều đó tôi đồng ý. Vì vậy, nhiều câu hỏi có thể được trả lời (không cần phải hỏi) nếu mọi người biết cách Google đúng. Trân trọng.
eestein

16

Xa và xa công cụ được đánh giá thấp nhất để tìm "nút cổ chai" là Ctrl+ Choặc nút "Tạm dừng", trong trình gỡ lỗi.

Kiểm tra đoạn cuối của bài đăng này , và bài đăng này , và bài đăng này , để bắt đầu.

Rất nhiều lần tôi thấy / nghe thấy mọi người nói rằng "Chương trình quá chậm! Tôi có thể làm gì với nó? Tôi đã thử một hồ sơ (nếu họ đã làm), nhưng tôi không hiểu nó nói gì. Mọi người có đoán được không? Giúp tôi với! " Vâng, đoán chỉ là vậy. Những gì tôi đã luôn luôn làm, và những người khác cũng vậy, làm cho nó diễn ra, làm gián đoạn nó và kiểm tra ngăn xếp cuộc gọi. Nếu vấn đề thực sự tồi tệ, hãy chơi lô tô , nó ở ngay trước mặt bạn. Nếu vấn đề chỉ nhẹ, bạn làm điều đó nhiều lần. Bất cứ điều gì xuất hiện trên nhiều mẫu, mà bạn có thể tránh, là một nút cổ chai bạn có thể khắc phục.

Vâng, đây là downvote-mồi, nhưng nó hoạt động.


Người ta không nên đánh giá thấp các công cụ cùn. Rõ ràng đây không phải là câu trả lời đúng, nhưng nó có thể. Gọi nó là một xấp xỉ thứ tự đầu tiên, được tinh chỉnh bởi một hồ sơ thực sự nếu cần.
Kristof Provost

@Kristof: Thật hấp dẫn khi nghĩ như vậy, và có những vấn đề không thể xử lý được, và có những trường hợp mẫu không dễ lấy, nhưng trình biên dịch cũng không thể xử lý những trường hợp đó, ngoại trừ một loại nhất định, như Zoom và thậm chí sau đó chúng không thực sự tốt hơn theo nghĩa dẫn bạn đến đúng vấn đề.
Mike Dunlavey

@Kristof: Đây là loại vấn đề tạm dừng ngẫu nhiên không tốt ở đâu - nếu bạn chụp nhanh và nghiên cứu nó, bạn không thể biết lý do cho việc đó đang làm. Ví dụ: xử lý theo thông điệp, nơi bạn không thể biết tin nhắn được gửi từ đâu hoặc tại sao hoặc tần suất như thế nào. Một ví dụ khác: các giao thức không đồng bộ, nơi các thông điệp đang được trao đổi và có vẻ như chúng ta luôn chờ đợi anh chàng kia. Để xử lý đồng bộ, trình biên dịch có thể đo tốt hơn, nhưng tạm dừng ngẫu nhiên sẽ tốt hơn trong việc tìm kiếm .
Mike Dunlavey

14

Loại công cụ lập trình nào bạn nghĩ là bị đánh giá thấp nhất? Thúc đẩy câu trả lời của bạn.

Trình biên dịch.

Hầu hết mọi người không dành thời gian để hiểu trình biên dịch lựa chọn của họ làm gì. Họ chỉ cảm thấy rằng nó làm cho mã thành một chương trình có thể chạy được và đó là tất cả những gì họ đi. Trên hầu hết các cấu hình hiện đại, có một số cấu hình mà bạn có thể cung cấp cho nó để làm cho nó làm những gì bạn cần. Đây là một ví dụ, tôi cá rằng một nửa các nhà phát triển trong văn phòng của bạn không biết làm thế nào để đặt cảnh báo là mức lỗi (giả sử nó thực sự có một). Những tùy chọn để bạn có để xuất các biểu tượng gỡ lỗi? Những tối ưu hóa nào (hoặc mức độ nào) mà bạn muốn nó thực hiện. Danh sách cứ kéo dài.


3
@Kevin: và tôi sẽ thêm các cách để viết mã để trình biên dịch thực hiện kiểm tra cho bạn (đối với các ngôn ngữ được nhập tĩnh). Hầu hết các nhà phát triển sử dụng các loại giá (chẳng hạn như chuỗi) để thể hiện bất kỳ loại thông tin nào, trong đó họ có thể xác định các loại đơn giản nhưng không tương thích cho dữ liệu không liên quan ... và có trình biên dịch mà họ không gây rối khi truyền đối số.
Matthieu M.

@Matthieu M Đó cũng là một điểm tốt. Nhiều người quên những cách dễ dàng để giúp bạn.
kemiller2002

3
Mỗi cảnh báo biên dịch là một món quà quý giá. Đừng bỏ qua chúng! Yêu cầu thêm! -Werror nên là bắt buộc.
Kristof Provost

@Kristof: -pedantic -Wall -Wextra -Werror... mặc dù có thể khó xây dựng bất cứ thứ gì sau đó: p
Matthieu M.

Có lẽ đó chỉ là tôi, nhưng nếu "một nửa số nhà phát triển" không biết gì về biểu tượng gỡ lỗi "không phải là một sự cường điệu, thì điều đó khá đáng ngại.
kizzx2

10

Bộ não của bạn. Các công cụ khác sẽ không có nhiều ý nghĩa nếu không có nó.


4
Tôi đã kết xuất của tôi chủ yếu là không thể quan sát được trong dịp.
David Thornley

3
"ít nhiều bị lãng quên": -S

5
Tôi sẽ nói rằng nó bị đánh giá thấp. Quá nhiều người luôn tìm kiếm các phím tắt để họ không cần phải suy nghĩ. Không có sự thay thế cho lẽ thường và logic, và các công cụ không thể thay thế điều đó.
jnevelson

2
Tôi đồng ý với Jonathan, bộ não thường bị đánh giá thấp. Trong thực tế, có quá nhiều lập trình viên dựa vào một vài thủ thuật mà họ biết thay vì bước ra khỏi hộp và thỉnh thoảng viết một trường hợp kiểm tra bespoke (rẻ và bẩn, vứt bỏ lớp học) và công cụ kiểm tra để điều tra vấn đề trong tay. Trong nhiều trường hợp, tôi đã cho các nhà phát triển phương tiện để vượt ra khỏi trạng thái suy nghĩ và giải quyết vấn đề của họ không nhiều hơn một vài câu hỏi.
asoundmove

1
Một số ý kiến ​​đã khiến tôi thay đổi ý kiến ​​của mình, +1 :)
Anto

10

Tốt tuổi

print

Đôi khi, một trình gỡ lỗi hoặc trình lược tả hoặc sơ đồ luồng UML là hữu ích. Và đôi khi chúng làm bạn phát điên. Tôi luôn thấy mình rơi vào việc sử dụng các câu lệnh in (hoặc theo dõi hoặc NSLog hoặc những gì bạn có) chỉ để đảm bảo mã của tôi đang làm những gì tôi nghĩ nó đang làm khi tôi nghĩ nó đang làm điều đó.


Tôi nghĩ rằng điều này phụ thuộc vào ngôn ngữ và trình gỡ lỗi. Các loại trình gỡ lỗi được cung cấp bởi hầu hết các IDE tốt hiện nay cho các ngôn ngữ phổ biến cho phép bạn thực hiện mọi thứ dễ dàng hơn nhiều so với các bản in.
Billy ONeal

8

Các tập lệnh cũ đơn giản ... cho dù chúng tôi phát triển bao nhiêu ngôn ngữ thế hệ tiếp theo, chúng tôi vẫn chủ yếu dựa vào các tập lệnh cũng có thể đạt được hầu hết các nhiệm vụ hàng ngày bằng cách viết một vài dòng tập lệnh.


1
Xem .. tôi sẽ không đồng ý với điều này. Có, các kịch bản có thể tự động hóa một số nhiệm vụ. Nhưng thường thì họ đã vượt xa tầm quan trọng đến mức họ trở thành một mỳ spaghetti lớn.
Billy ONeal

1
Đúng, các kịch bản lớn rất khủng khiếp để xem xét và người ta có thể sử dụng perl hoặc python cho nó. Mặc dù họ vẫn rất tuyệt khi hoàn thành công việc nhỏ.
Gaurav Sehgal

@Billy Sử dụng trăn. Vấn đề Spaghetti đã được giải quyết :)
Evan Plaice

7

Bút và bảng trắng.

Bạn không thể đánh bại công nghệ thấp khi cố gắng giải thích điều gì đó.


3
Câu trả lời trùng lặp - programmers.stackexchange.com/questions/57148/...
ChrisF

Có thể là một câu trả lời trùng lặp, nhưng nó kiếm được phiếu bầu riêng của tôi cho bảng trắng.
Carson Myers

Hmm, khá chắc chắn rằng nó không phải là một bản sao khi tôi tạo ra nó, rất lạ. Tôi sẽ đổi nó thành Bút và Bảng trắng.
Andy Lowry

6

ack . Nó giống như grep -r, nhưng nó được thiết kế để tìm kiếm thông qua mã nguồn của bạn.


5

Perl và các ngôn ngữ kịch bản khác. Tuyệt vời cho các tác vụ hơi phức tạp đối với các công cụ GUI như Agent Ransack.


1
Tôi không chắc là họ bị đánh giá thấp ...
Anto

3
Chắc chắn bị đánh giá thấp ... đặc biệt là Perl. Đó là một lang. được thiết kế rất tốt với phương châm giữ mọi thứ đơn giản ... như vậy, nó là vô giá đối với các nhiệm vụ nhanh chóng chỉ cần hoàn thành.
Rook

@Rook: Tôi không chắc làm thế nào một ngôn ngữ có hơn 100 toán tử có thể được coi là "đơn giản". Hữu ích, có thể. Nhưng không "đơn giản".
Billy ONeal

@Billy - Đơn giản không loại trừ mạnh mẽ. Tôi thấy máy tính đơn giản. Tôi không biết một nửa trong số 300 chức năng của tôi làm gì, nhưng điều đó không làm giảm tính đơn giản của nó.
Rook

4

Phím tắt cho phép tái cấu trúc nhanh chóng, thường xuyên và an toàn. Tìm hiểu làm thế nào để trích xuất (hoặc nội tuyến, v.v.) các biến, phương thức, hằng hoặc các lớp khi nhấn một số khóa về cơ bản thay đổi cách tôi viết mã. Bạn sẽ chỉ tái cấu trúc thường xuyên (tức là đủ) khi chi phí là tối thiểu, do đó, làm cho các phím tắt này trở thành bản chất thứ hai là điều cần thiết để viết và duy trì mã tốt theo như tôi nghĩ.

Vì vậy, nói chung, sử dụng các công cụ tốt (IDE / trình soạn thảo) và tìm hiểu cách tận dụng tối đa các tính năng mà họ cung cấp.

Tiếp theo kiểm tra đơn vị và TDD, để giữ cho mã của bạn có thể kiểm tra được và ngăn ngừa sợ tái cấu trúc.

Sử dụng những thứ này và bạn sẽ dễ dàng chuyển sang viết mã bảo trì chính xác theo nguyên tắc DRY và tự ghi lại.


4

Kiểm thử đơn vị cung cấp các lợi ích sau:

  • Các nhà phát triển trở thành khách hàng đầu tiên của mã. Một lỗi được phát hiện càng nhanh thì càng ít tốn kém để sửa chữa. Lỗi có thể bị bắt trước khi xây dựng, cài đặt hoặc triển khai .
  • Kiểm tra thay đổi quan điểm của bạn về mã. Là thiết kế rõ ràng? Nó có xử lý các trường hợp góc?
  • Hiệu ứng Hawthorne sẽ cải thiện chất lượng, chỉ đơn giản bằng cách thông báo rằng một nhóm đang xuất bản các số liệu kiểm tra chất lượng / thử nghiệm.
  • Ngay cả khi các bài kiểm tra không được kiểm tra trong kiểm soát nguồn, chúng có thể là một cách tuyệt vời để khám phá và tìm hiểu địa hình mới.
  • Xác suất cao có ít lỗi hơn!

4

Máy phát mã

Trình tạo mã có thể tạo ra một lượng lớn mã hiệu quả và không có lỗi từ một định nghĩa đơn giản. Việc sử dụng loại ORM là rõ ràng nhất để tạo các lớp truy cập dữ liệu, nhưng có nhiều cách sử dụng tiềm năng hơn.

Hỗ trợ tạo mã dường như vẫn còn ở giai đoạn sơ khai cả từ quan điểm lập trình viên và khung công tác, nhưng tôi tin rằng đó là thứ chúng ta sẽ thấy ngày càng nhiều. Trong .NET, bạn có thể bắt đầu học hỏi với công cụ CodeDOM .


Tôi thích viết trình tạo mã, không phải là điều dễ nhất để làm đúng, nhưng thật hữu ích.
Zachary K

3

Tôi sử dụng AgentRansack rất nhiều. Nó là một trợ giúp rất lớn tìm kiếm thông qua hàng ngàn tệp rất nhanh chóng. Nó đã tiết kiệm cho tôi rất nhiều thời gian, nhưng tôi không biết nhiều lập trình viên biết hoặc sử dụng nó.


3

Phương pháp hình thức.

http://www.amazon.com/Discipline-Programming-Edsger-W-Dijkstra/dp/013215871X

http://www.amazon.com/Science-Programming-Monographs-Computer/dp/0387964800/ref=pd_sim_b_1

Thật khó để nói quá tầm quan trọng của họ. Mỗi vòng lặp và mọi câu lệnh if bắt đầu như một ý tưởng đòi hỏi một loại "bằng chứng" nào đó. Hầu hết các lập trình viên làm điều này bằng chứng hầu hết thời gian trong đầu của họ. Bạn hỏi câu lệnh if làm gì và chúng có thể nói rõ - một cách hợp lý và hợp lý - những lựa chọn là gì và tại sao các lựa chọn là hoàn chỉnh, nhất quán và độc quyền.

Nhưng một số chỉ có vẻ đoán ngẫu nhiên. Họ cần thêm trợ giúp và phương pháp chính thức có thể là loại trợ giúp họ cần.

Nó chỉ là đại số (và tính toán) cho mã. Không có gì quá phức tạp hay phức tạp.


Tôi đã thấy chúng thường hữu ích để có được những thứ đơn giản ngay để tôi có thể dựa vào nó trong khi gỡ lỗi những thứ phức tạp hơn. Kinh nghiệm của tôi là các phương pháp chính thức loại bỏ khá tốt các lỗi tinh vi, chỉ để lại các lỗi rõ ràng dễ bị bắt gặp khi thử nghiệm.
David Thornley

3

Các mẫu thiết kế vật lý như rời khỏi ghế để chạy bộ nhanh dưới ánh sáng mặt trời và không khí trong lành giữ cho bộ não của chúng ta chạy ở mức cao nhất.


3

Vâng, đó là Half Life 2 (chèn trò chơi yêu thích của bạn vào đây). Nếu tôi gặp vấn đề, tôi không thể giải quyết, tôi chỉ cần thoát ra và bắt đầu chơi với trò chơi yêu thích của mình và đột nhiên giải pháp xuất hiện trong tâm trí tôi. Vì vậy, thành thật mà nói, nó không phải là một trò chơi hoặc một cái gì đó tương tự mà là làm một cái gì đó khác . Tôi thường thấy mọi người ngồi trên một vấn đề trong nhiều giờ mà không giải quyết được và tất cả những gì họ nên làm là đưa bộ não của họ ngoại tuyến trong một khoảng thời gian ngắn.


3

Stack Overflow - trợ giúp chuyên gia nhanh chóng khi bạn bị mắc kẹt

trang web câu hỏi và trả lời cho các lập trình viên chuyên nghiệp và đam mê. Nó được xây dựng và điều hành bởi bạn như một phần của mạng Stack Exchange của các trang web Hỏi & Đáp. Với sự giúp đỡ của bạn, chúng tôi sẽ cùng nhau xây dựng một thư viện các câu trả lời chi tiết cho mọi câu hỏi về lập trình ...


+1, nhưng không thực sự bị đánh giá thấp nữa
MAK

4
thậm chí có thể đánh giá quá cao hoặc ít nhất là quá lạm dụng
Anto

3

Tôi nghĩ rằng nó là Notepad / TextPad / chương trình chỉnh sửa văn bản đơn giản. Mọi người đều có lúc họ cần một bản sửa lỗi nhanh mà không cần mở IDE và chỉ cần chỉnh sửa nhanh. Và tất cả các máy tính có một số loại chương trình chỉnh sửa văn bản đơn giản.


2

Khẳng định và một alwaysAssert()chức năng tốt . IMHO những điều này quan trọng hơn các bài kiểm tra đơn vị, bởi vì các bài kiểm tra đơn vị chỉ có thể tìm thấy lỗi trong các trường hợp cụ thể mà bạn nghĩ sẽ kiểm tra. Nếu cùng một lập trình viên viết mã và các bài kiểm tra, anh ấy / cô ấy có thể sẽ bỏ lỡ các trường hợp cạnh giống nhau trong cả hai. Hơn nữa, đôi khi kiểm thử đơn vị là không thực tế vì môi trường trong đó các thành phần chức năng và / hoặc dữ liệu mà nó hoạt động quá phức tạp để đưa ra một trường hợp kiểm tra giả định.

Vẻ đẹp của các khẳng định nằm ở khả năng ghi lại các giả định và kiểm tra chúng trên các đầu vào không bị tước đoạt . Nếu bất kỳ giả định nào trong số này là sai, mã của bạn sẽ thất bại lớn thay vì "làm việc" nhưng tạo ra kết quả không chính xác. Nó cũng thất bại gần với gốc rễ của vấn đề hơn là không có sự khẳng định. Trong thực tế, nếu bạn nêu rõ các giả định đủ về một đoạn mã và tất cả các giả định này đều đúng thì mã thường đúng.

Một nắm bắt phổ biến về khẳng định là chúng có thể được tắt. IMHO mọi ngôn ngữ hoặc thư viện chuẩn phải có alwaysAssert()chức năng hoặc tương đương thô có chức năng tương tự assertnhưng không thể tắt được. Điều này có thể được sử dụng để kiểm tra các giả định trong các lĩnh vực quan trọng của mã không thực hiện, trong đó lợi ích của việc tắt các xác nhận là không đáng kể.


Đã đồng ý. Nhưng thật không may, đơn giản, nhưng hiệu quả, các công cụ như thế này thường không được đánh giá cao.
Peter Mortensen

2

Phím F1. - Hữu ích cho các chương trình bạn không biết và cho các chương trình bạn đang làm việc. (Giả sử rằng đó là một ứng dụng lớn.)

Mạnh mẽ để lọc ra các vấn đề là người dùng báo cáo lỗi dựa trên cách giải thích của họ về cách phần mềm nên hoạt động. Tất nhiên, có thể là bản thân thiết kế đã bị lỗi. Nhưng nó là một câu chuyện khác.


2
Cả hai đều bị đánh giá thấp và cũng bị đánh giá thấp.
Loại ẩn danh

Rất bị đánh giá thấp bởi các nhà phát triển ứng dụng bạn đang sử dụng ngay bây giờ; như vậy sự giúp đỡ chứa ít hoặc không có thông tin hữu ích.
chọc

2

Các tiện ích lõi UNIX khác nhau, nhưng chủ yếu findvà đôi khi grephoặc ed. Khả năng tìm thấy mọi thứ trong các tập tin sâu là vô giá, đặc biệt khi bạn đột nhiên thừa hưởng một cơ sở mã và phải sửa nó. Ngay cả khi mã được nói là tài liệu tốt, bạn có thể sẽ phải săn, và một sự hiểu biết mạnh mẽ về việc findgiết chết nó.


2

Tò mò

Gọi nó là "Câu đố về lập trình." Một công cụ so với người sử dụng nó là gì? Mong muốn biết làm thế nào và tại sao một cái gì đó làm hoặc không hoạt động mở rộng kiến ​​thức của một người nhiều hơn bất kỳ công cụ cụ thể nào và điều đó đúng ngoài lập trình.


2
Ctrl + C    
Ctrl + V

Tiết kiệm vô số giờ trên toàn thế giới!


1

Đuôi

Tail có thể được sử dụng để theo dõi tập tin đầu ra của chương trình trong thời gian thực. Nó đã giúp ích rất nhiều khi phát triển cho các hệ thống không cung cấp cho người khác phương tiện đọc nhật ký.

Chương trình ví dụ là;


Mac OS X là một hệ thống UNIX. Không cần phải đề cập đến nó một cách riêng biệt.
đúng

0

Tôi đã kết hợp một trình tạo đồ thị cuộc gọi Perl một lần. Nó cực kỳ hữu ích, nhưng lại vất vả với các mã không theo thủ tục hoặc các thói quen ngoài tệp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.