Mam silne doświadczenie w Javie / Groovy i zostałem przydzielony do zespołu, który utrzymuje dość dużą bazę kodu C dla oprogramowania administracyjnego.
Niektóre problemy, takie jak radzenie sobie z kroplami w bazie danych lub generowanie raportów w plikach PDF i Excel, zostały przeniesione na zewnętrzną usługę Java.
Jednak jako programista Java jestem nieco zdezorientowany niektórymi aspektami kodu:
- jest pełny (szczególnie w przypadku „wyjątku”)
- istnieje wiele ogromnych metod (wiele ponad 2000 metod linii)
- nie ma zaawansowanych struktur danych (bardzo tęsknię za Listą, Setem i Mapą)
- brak rozdzielenia problemów (SQL jest z radością mieszany w całym kodzie)
W rezultacie czuję, że biznes jest ukryty w tonach kodu technicznego, a mój mózg, w kształcie Object Oriented i szczypta programowania funkcjonalnego, nie jest spokojny.
Dobrą stroną projektu jest to, że kod jest prosty: nie ma frameworka, nie ma manipulacji kodem bajtowym w czasie wykonywania, nie ma AOP. A serwer może jednocześnie odpowiadać ponad 10000 użytkownikom za pomocą jednego komputera, zużywając mniej pamięci niż java musi wypluć „witaj świecie”.
Chcę nauczyć się pisać kod C zgodnie z powszechnie przyjętymi nowoczesnymi zasadami. Czy istnieją powszechnie akceptowane zasady dotyczące pisania i struktury nowoczesnego języka C?
Coś trochę jak odpowiednik książki „Effective Java”, ale dla C.
Edytuj w świetle odpowiedzi i komentarzy:
- Spróbuję dostosować mój sposób myślenia do kodu C i nie będę próbował kopiować go do OOP.
- Zacząłem czytać i czytać zalecane przewodniki po stylach kodowania z komentarza (Standardy kodowania GNU i Styl kodowania jądra systemu Linux).
- Spróbuję następnie zaproponować ten styl kodu moim współpracownikom. Najtrudniejszą częścią może być przekonanie współpracowników, że ogromną metodę można podzielić na mniejsze części i że powtórzenie tych samych 4 wierszy kodu obsługi błędów można uniknąć za pomocą metody.