2010-07-31 23 views
8

The Pragmatic Programmer là rất cao recommended bởi nhiều người. Tôi vừa đọc xong nó, và tôi có thể thấy lý do tại sao mọi người giới thiệu nó, mặc dù tôi sẽ chỉ ra rằng Code Complete bao gồm gần như tất cả các tài liệu giống nhau ở độ sâu hơn nhiều.Các tác giả của Lập trình viên thực dụng có quên đi YAGNI không?

Tuy nhiên, một điều khiến tôi bị lỗi là cách các tác giả không bao giờ đề cập đến bất kỳ nhược điểm nào về tính linh hoạt, tổng quát và rời khỏi phòng để phát triển trong tương lai. Tất cả những khái niệm đó đều rất tốt, nhưng điều gì đã xảy ra với nguyên tắc YAGNI (Bạn không cần nó), điều này ngăn cản các nhà phát triển lãng phí thời gian của họ trong việc triển khai tính linh hoạt mà sẽ không bao giờ được sử dụng?

Một tìm kiếm của SO cho thấy 400 câu hỏi về YAGNI, vì vậy tôi nghi ngờ khái niệm quá tối nghĩa cho các tác giả. Tôi, tất nhiên, không nơi nào gần như có kinh nghiệm như họ, vậy tại sao họ không đề cập đến bất kỳ sự kiềm chế nào trong cuốn sách?

Cảm ơn.

+2

Bạn thực sự phải hỏi họ, mặc dù tôi cho rằng lý do là nói rằng YAGNI không bán sách. – Oded

Trả lời

2

Họ không gọi nó là YAGNI, nhưng có từ khóa trên trang 11 có ít nhất là cùng tập trung:

Biết Khi nào thì dừng lại!

+2

Tôi không nghĩ đó thực sự là điều tương tự. Việc biết khi nào nên ngừng sử dụng mã của bạn khác với việc biết khi không thiết kế tính linh hoạt quá mức vào hệ thống. Có lẽ tôi đang bối rối như những gì YAGNI là về mặc dù. – Dijkstra

+0

Tôi chỉ có thể đoán nếu Hunt & Thomas có "YAGNI" trong tâm trí khi họ viết đoạn văn đó, nhưng tôi có cảm giác mạnh mẽ ý định của họ là theo cùng một hướng. –

0

Họ không quên. Tôi nghĩ rằng cuốn sách chỉ có trước YAGNI trở nên nổi tiếng.

0

[YAGNI] ngăn chặn các nhà phát triển lãng phí thời gian của họ thực hiện linh hoạt đó là không bao giờ được sử dụng

Thực hiện linh hoạt không nhất thiết phải mất nhiều thời gian hơn. Theo kinh nghiệm của tôi, đó là điều có thể (và nên) là một phần trong phong cách lập trình tự nhiên của bạn. Mã IMHO không linh hoạt thường do thực hành lập trình kém.

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