Ngoài câu trả lời tuyệt vời của @ DocBrown, tôi nghĩ rằng đáng để nhận ra rằng không ai viết mã "tốt" mọi lúc. Mã hóa đang tạo ra sự đánh đổi và thường thì tốt hơn là chấp nhận rằng bạn đã viết một cái gì đó sạch sẽ hơn một chút so với bạn muốn và quay lại sau. Tái cấu trúc là quá trình cải thiện mã theo thời gian - và theo kinh nghiệm của tôi, đó là điều tạo nên một cơ sở mã tốt, chứ không phải "lấy nó ngay lần đầu tiên".
Và bạn đánh giá mã ở cấp độ của ứng dụng, chứ không phải cấp độ của các phương thức / dòng mã riêng lẻ. Vì vậy, nếu bạn có một phương thức phức tạp, nhưng nó được đặt tên rõ ràng, tôi không nghĩ bạn có mã "xấu" miễn là phương thức đó được gắn kết.
Đặt tên là vũ khí lớn nhất bạn có để làm cho mã trở nên dễ hiểu - đặt tên cho phương thức của bạn cho phép mọi người đọc mã của bạn bỏ qua phần thân nếu họ cần. Đặt tên cho các biến của bạn, v.v ... theo cách có nghĩa là người đọc có thể thấy những gì họ đại diện mà không cần phải đọc các câu lệnh gán của họ.
Điều tiếp theo là đảm bảo phương thức của bạn thực sự chỉ làm một điều - tác dụng phụ làm cho mã khó hiểu. Vì vậy, nếu phương thức của bạn trả về dữ liệu cho định dạng đầu ra, thì nó cũng không nên cập nhật trạng thái cơ sở dữ liệu của bạn thành "đã in" hoặc bất cứ điều gì.
Phân lớp / thành phần hóa là điều tiếp theo bạn có thể làm - nếu bạn có một loạt các phương thức phức tạp tạo ra kết quả ORM, hãy kết hợp chúng lại với nhau để người đọc mã của bạn có thể cho rằng tất cả chúng đều hoạt động theo cùng một cách, không có tác dụng phụ, v.v.