Đây có thể là một câu hỏi khó vài năm trước, nhưng IMO không còn khó để loại bỏ sự phức tạp tình cờ ngày nay.
Điều mà Kent Becksaid nói về bản thân, tại một số điểm: "Tôi không phải là một lập trình viên tuyệt vời; tôi chỉ là một lập trình viên giỏi với những thói quen tuyệt vời."
Hai điều đáng chú ý, IMO: anh ta coi mình là một lập trình viên , không phải là một kiến trúc sư, và trọng tâm của anh ta là thói quen, không phải kiến thức.
Cách giải quyết vấn đề khó khăn của Feynman là cách duy nhất để làm điều đó. Mô tả không nhất thiết phải rất dễ hiểu, vì vậy tôi sẽ mổ xẻ nó. Đầu của Feynman không chỉ chứa đầy kiến thức, mà còn chứa đầy kỹ năng để áp dụng kiến thức đó. Khi bạn có cả kiến thức và kỹ năng để sử dụng nó, giải quyết một vấn đề khó không khó cũng không dễ. Đó là kết quả duy nhất có thể.
Có một cách viết mã sạch hoàn toàn phi ma thuật, không chứa sự phức tạp ngẫu nhiên và nó gần giống với những gì Feynman đã làm: thu thập tất cả kiến thức cần thiết, đào tạo để làm quen với việc đưa nó vào hoạt động, thay vì bỏ đi ở một số góc của bộ não của bạn, sau đó viết mã sạch.
Bây giờ, nhiều lập trình viên thậm chí không nhận thức được tất cả các kiến thức cần thiết để viết mã sạch. Các lập trình viên trẻ hơn có xu hướng loại bỏ kiến thức về các thuật toán và cấu trúc dữ liệu và hầu hết các lập trình viên lớn tuổi có xu hướng quên nó. Hoặc ký hiệu O lớn và phân tích phức tạp. Các lập trình viên cũ có xu hướng loại bỏ các mẫu hoặc mùi mã - hoặc thậm chí không biết rằng chúng tồn tại. Hầu hết các lập trình viên thuộc bất kỳ thế hệ nào, ngay cả khi họ biết về các mẫu, không bao giờ nhớ chính xác khi nào nên sử dụng và trình điều khiển các bộ phận. Rất ít lập trình viên thuộc bất kỳ thế hệ nào liên tục đánh giá mã của họ theo các nguyên tắc RẮN. Nhiều lập trình viên trộn tất cả các mức độ trừu tượng có thể ở khắp mọi nơi. Hiện tại, tôi không biết về một lập trình viên đồng nghiệp, liên tục đánh giá mã của anh ta chống lại mùi hôi thối được mô tả bởi Fowler trong cuốn sách tái cấu trúc của anh ta. Mặc dù một số dự án sử dụng một số công cụ số liệu, số liệu được sử dụng nhiều nhất là độ phức tạp, loại này hay loại khác, trong khi hai số liệu khác - khớp nối và gắn kết - phần lớn bị bỏ qua, ngay cả khi chúng rất quan trọng đối với mã sạch. Một khía cạnh khác mà hầu hết mọi người bỏ qua là tải nhận thức. Rất ít lập trình viên coi các bài kiểm tra đơn vị là tài liệu, và thậm chí ít người biết rằng khó viết hoặc đặt tên cho các bài kiểm tra đơn vị là một mùi mã khác, thường chỉ ra bao thanh toán xấu. Một nhóm thiểu số nhỏ bé nhận thức được câu thần chú của thiết kế hướng tên miền để giữ cho mô hình mã và mô hình miền kinh doanh càng gần nhau càng tốt, vì sự khác biệt bị ràng buộc tạo ra vấn đề. Tất cả những điều này cần phải được xem xét, mọi lúc, nếu bạn muốn mã của mình sạch sẽ. Và nhiều hơn nữa mà tôi không thể nhớ ngay bây giờ. số liệu được sử dụng nhiều nhất là độ phức tạp, loại này hay loại khác, trong khi hai số liệu khác - khớp nối và gắn kết - phần lớn bị bỏ qua, ngay cả khi chúng rất quan trọng đối với mã sạch. Một khía cạnh khác mà hầu hết mọi người bỏ qua là tải nhận thức. Rất ít lập trình viên coi các bài kiểm tra đơn vị là tài liệu, và thậm chí ít người biết rằng khó viết hoặc đặt tên cho các bài kiểm tra đơn vị là một mùi mã khác, thường chỉ ra bao thanh toán xấu. Một nhóm thiểu số nhỏ bé nhận thức được câu thần chú của thiết kế hướng tên miền để giữ cho mô hình mã và mô hình miền kinh doanh càng gần nhau càng tốt, vì sự khác biệt bị ràng buộc tạo ra vấn đề. Tất cả những điều này cần phải được xem xét, mọi lúc, nếu bạn muốn mã của mình sạch sẽ. Và nhiều hơn nữa mà tôi không thể nhớ ngay bây giờ. số liệu được sử dụng nhiều nhất là độ phức tạp, loại này hay loại khác, trong khi hai số liệu khác - khớp nối và gắn kết - phần lớn bị bỏ qua, ngay cả khi chúng rất quan trọng đối với mã sạch. Một khía cạnh khác mà hầu hết mọi người bỏ qua là tải nhận thức. Rất ít lập trình viên coi các bài kiểm tra đơn vị là tài liệu, và thậm chí ít người biết rằng khó viết hoặc đặt tên cho các bài kiểm tra đơn vị là một mùi mã khác, thường chỉ ra bao thanh toán xấu. Một nhóm thiểu số nhỏ bé nhận thức được câu thần chú của thiết kế hướng tên miền để giữ cho mô hình mã và mô hình miền kinh doanh càng gần nhau càng tốt, vì sự khác biệt bị ràng buộc tạo ra vấn đề. Tất cả những điều này cần phải được xem xét, mọi lúc, nếu bạn muốn mã của mình sạch sẽ. Và nhiều hơn nữa mà tôi không thể nhớ ngay bây giờ. trong khi hai số liệu khác - khớp nối và gắn kết - ở một mức độ lớn bị bỏ qua, ngay cả khi chúng rất quan trọng đối với mã sạch. Một khía cạnh khác mà hầu hết mọi người bỏ qua là tải nhận thức. Rất ít lập trình viên coi các bài kiểm tra đơn vị là tài liệu, và thậm chí ít người biết rằng khó viết hoặc đặt tên cho các bài kiểm tra đơn vị là một mùi mã khác, thường chỉ ra bao thanh toán xấu. Một nhóm thiểu số nhỏ bé nhận thức được câu thần chú của thiết kế hướng tên miền để giữ cho mô hình mã và mô hình miền kinh doanh càng gần nhau càng tốt, vì sự khác biệt bị ràng buộc tạo ra vấn đề. Tất cả những điều này cần phải được xem xét, mọi lúc, nếu bạn muốn mã của mình sạch sẽ. Và nhiều hơn nữa mà tôi không thể nhớ ngay bây giờ. trong khi hai số liệu khác - khớp nối và gắn kết - ở một mức độ lớn bị bỏ qua, ngay cả khi chúng rất quan trọng đối với mã sạch. Một khía cạnh khác mà hầu hết mọi người bỏ qua là tải nhận thức. Rất ít lập trình viên coi các bài kiểm tra đơn vị là tài liệu, và thậm chí ít người biết rằng khó viết hoặc đặt tên cho các bài kiểm tra đơn vị là một mùi mã khác, thường chỉ ra bao thanh toán xấu. Một nhóm thiểu số nhỏ bé nhận thức được câu thần chú của thiết kế hướng tên miền để giữ cho mô hình mã và mô hình miền doanh nghiệp càng gần nhau càng tốt, vì sự khác biệt bị ràng buộc tạo ra vấn đề. Tất cả những điều này cần phải được xem xét, mọi lúc, nếu bạn muốn mã của mình sạch sẽ. Và nhiều hơn nữa mà tôi không thể nhớ ngay bây giờ. Một khía cạnh khác mà hầu hết mọi người bỏ qua là tải nhận thức. Rất ít lập trình viên coi các bài kiểm tra đơn vị là tài liệu, và thậm chí ít người biết rằng khó viết hoặc đặt tên cho các bài kiểm tra đơn vị là một mùi mã khác, thường chỉ ra bao thanh toán xấu. Một nhóm thiểu số nhỏ bé nhận thức được câu thần chú của thiết kế hướng tên miền để giữ cho mô hình mã và mô hình miền kinh doanh càng gần nhau càng tốt, vì sự khác biệt bị ràng buộc tạo ra vấn đề. Tất cả những điều này cần phải được xem xét, mọi lúc, nếu bạn muốn mã của mình sạch sẽ. Và nhiều hơn nữa mà tôi không thể nhớ ngay bây giờ. Một khía cạnh khác mà hầu hết mọi người bỏ qua là tải nhận thức. Rất ít lập trình viên coi các bài kiểm tra đơn vị là tài liệu, và thậm chí ít người biết rằng khó viết hoặc đặt tên bài kiểm tra đơn vị là một mùi mã khác, thường chỉ ra bao thanh toán xấu. Một nhóm thiểu số nhỏ bé nhận thức được câu thần chú của thiết kế hướng tên miền để giữ cho mô hình mã và mô hình miền doanh nghiệp càng gần nhau càng tốt, vì sự khác biệt bị ràng buộc tạo ra vấn đề. Tất cả những điều này cần phải được xem xét, mọi lúc, nếu bạn muốn mã của mình sạch sẽ. Và nhiều hơn nữa mà tôi không thể nhớ ngay bây giờ. câu thần chú để giữ cho mô hình mã và mô hình miền doanh nghiệp càng gần nhau càng tốt, vì sự khác biệt bị ràng buộc để tạo ra các vấn đề trên đường. Tất cả những điều này cần được xem xét, mọi lúc, nếu bạn muốn mã của mình sạch sẽ. Và nhiều hơn nữa mà tôi không thể nhớ ngay bây giờ. câu thần chú để giữ cho mô hình mã và mô hình miền doanh nghiệp càng gần nhau càng tốt, vì sự khác biệt bị ràng buộc để tạo ra các vấn đề trên đường. Tất cả những điều này cần được xem xét, mọi lúc, nếu bạn muốn mã của mình sạch sẽ. Và nhiều hơn nữa mà tôi không thể nhớ ngay bây giờ.
Bạn muốn viết mã sạch? Không có phép thuật cần thiết. Chỉ cần tìm hiểu tất cả những gì cần thiết, sau đó sử dụng nó để đánh giá mức độ sạch của mã của bạn và tái cấu trúc cho đến khi bạn hài lòng. Và tiếp tục học hỏi - phần mềm vẫn là một lĩnh vực non trẻ, và những hiểu biết và kiến thức mới được tiếp thu với tốc độ nhanh.