У мене сильний Java / Groovy фон, і я був призначений до команди, яка підтримує досить велику базу коду С для адміністративного програмного забезпечення.
Деякі больові моменти, як, наприклад, робота з кровотоком у базі даних або генерування звітів у форматі PDF та Excel, були екстерналізовані до веб-сервісу Java.
Однак, як розробник Java, мене трохи бентежать деякі аспекти коду:
- це багатослівний (особливо якщо мова йде про "виняток")
- є багато величезних методів (багато 2000+ рядків метод)
- немає вдосконалених структур даних (я дуже сумую за списком, набором та картою)
- немає розлуки (SQL радісно змішується навколо коду)
Як результат, я відчуваю, що бізнес прихований у тоннах технічного коду, і мій мозок, сформований з об'єктно-орієнтованим та дрібкою функціонального програмування, не є легким.
Хороша сторона проекту полягає в тому, що код прямо вперед: немає ні рамки, ні байтових маніпуляцій кодом під час виконання, ні AOP. І сервер може одночасно відповідати на 10000+ користувачів за допомогою однієї машини, використовуючи менше пам’яті, ніж потрібно Java, щоб виплюнути «привіт світ».
Я хочу навчитися писати код C відповідно до загальноприйнятих сучасних принципів. Чи існують загальноприйняті принципи щодо того, як слід писати та структурувати сучасний C?
Щось схоже на еквівалент книги "Ефективна Java", але для C.
Редагуйте у світлі відповідей та коментарів:
- Я спробую адаптувати своє мислення до коду С, а не намагатись віддзеркалити його до OOP.
- Я почав сканувати та читати рекомендовані посібники стилю кодування з коментаря (Стандарти кодування GNU та Стиль кодування ядра Linux).
- Тоді я спробую запропонувати цей стиль коду своїм колегам. Найскладнішою частиною може бути переконання колег, що величезний метод можна розділити на більш дрібні частини і що повторити ті самі 4 рядки коду обробки помилок можна уникнути за допомогою методу.