Tôi có nền tảng Java / Groovy mạnh mẽ và tôi đã được chỉ định vào một nhóm duy trì cơ sở mã C khá lớn cho một phần mềm quản trị.
Một số điểm đau, như xử lý blob trong cơ sở dữ liệu hoặc tạo báo cáo trong PDF và Excel đã được đưa ra ngoài dịch vụ web java.
Tuy nhiên, là một nhà phát triển Java, tôi hơi bối rối bởi một số khía cạnh của mã:
- đó là dài dòng (đặc biệt là khi xử lý 'ngoại lệ')
- có rất nhiều phương thức lớn (nhiều phương pháp hơn 2000 dòng)
- không có cấu trúc dữ liệu nâng cao (tôi nhớ Danh sách, Bộ và Bản đồ rất nhiều)
- không tách rời mối quan tâm (SQL được trộn vui vẻ xung quanh mã)
Kết quả là tôi cảm thấy việc kinh doanh bị ẩn giấu trong hàng tấn mã kỹ thuật và bộ não của tôi, được định hình bằng Định hướng đối tượng và một chút lập trình Chức năng, không hề dễ dàng.
Mặt tốt của dự án là mã thẳng về phía trước: không có khung, không có thao tác mã byte khi chạy, không có AOP. Và máy chủ có thể đồng thời trả lời cho hơn 10000 người dùng với một máy bằng cách sử dụng ít bộ nhớ hơn java cần phải nhổ "hello world".
Tôi muốn học cách viết mã C phù hợp với các nguyên tắc hiện đại thường được chấp nhận. Có bất kỳ nguyên tắc thường được chấp nhận về cách viết và cấu trúc C hiện đại không?
Một cái gì đó hơi giống với cuốn sách 'Java hiệu quả', nhưng đối với C.
Chỉnh sửa theo ánh sáng của câu trả lời và ý kiến:
- Tôi sẽ cố gắng điều chỉnh suy nghĩ của mình thành mã C và không cố gắng phản chiếu nó thành OOP.
- Tôi đã bắt đầu quét-đọc các hướng dẫn về kiểu mã hóa được đề xuất từ nhận xét (Tiêu chuẩn mã hóa GNU và Kiểu mã hóa hạt nhân Linux).
- Sau đó tôi sẽ cố gắng đề xuất kiểu mã này cho các đồng nghiệp của tôi. Phần khó nhất có thể là thuyết phục đồng nghiệp rằng phương pháp khổng lồ có thể được chia thành các phần nhỏ hơn và việc lặp lại cùng 4 dòng mã xử lý lỗi có thể tránh được nhờ sự trợ giúp của phương pháp.