2012-08-02 36 views
17

Tôi đã thấy cụm từ trong số in this question. Tôi nghĩ rằng tôi có một ý tưởng, nhưng không chắc chắn nếu điều này là một thuật ngữ địa phương hoặc nếu có ý nghĩa lan rộng cho thuật ngữ này.Chương trình shotgun/voodoo là gì?

Shotgun sẽ implie rằng ông có thể (trên) sử dụng một công cụ hay kỹ thuật cồng kềnh nhiều hay clunkier hơn một giải pháp đơn giản, thanh lịch hơn có thể được tìm thấy. Và voodoo?

+0

http://catb.org/jargon/html/V/voodoo-programming.html – DGH

+0

http://en.wikipedia.org/wiki/Shotgun_surgery – DGH

+0

Ngoài ra [shotgun debugging] (http://catb.org /jargon/html/S/shotgun-debugging.html) – Borodin

Trả lời

22

Shotgun ngụ ý phân tán một cách mù quáng một triệu mẩu nhỏ rác trên tất cả các vấn đề, như viên nén trong vỏ súng săn; hy vọng một chút đánh dấu. Nó cố gắng công cụ cho đến khi một cái gì đó hoạt động, thay vì sau đó hiểu những gì đang xảy ra.

Voodoo ngụ ý làm điều gì đó vì niềm tin ma thuật, hoặc cụ thể hơn, làm điều gì đó không rõ nguyên nhân, đặc biệt là điều gì đó quá phức tạp: "Tôi luôn làm theo cách này, tôi không biết tại sao nó hoạt động. "

Không có đặc điểm nào tâng bốc: chúng ngụ ý sự thiếu hiểu biết và không đủ năng lực.

+2

Tôi luôn gọi chương trình Shotgun là "Hack and Slash" bởi vì bạn chỉ là một loại thay đổi hoang dã về vấn đề này. Điều đó và đôi chút tốt đẹp entender của "hack". –

+7

Câu trả lời hay, nhưng tôi chỉ muốn thêm rằng hầu hết các lập trình viên, khi chọn một ngôn ngữ mới, có ít sự lựa chọn nhưng phải dựa vào chương trình shotgun và voodoo cho đến khi họ quen với ngôn ngữ; họ không grok ngôn ngữ, mặc dù họ về mặt lý thuyết có thể hiểu được cấu trúc của nó. Một khi họ đã quen với ngôn ngữ, họ có thể mất thói quen lập trình xấu. Theo nghĩa đó, tôi muốn thêm vào các định nghĩa đó các từ "khi lập trình viên nên biết rõ hơn". – Palladium

+0

@Palladium Rất đẹp nội tâm –

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