Tło / scenariusz
Zacząłem pisać aplikację CLI wyłącznie w C (mój pierwszy właściwy program w C lub C ++, który nie był „Hello World” ani jego odmianą). Mniej więcej w połowie pracowałem z „ciągami znaków” wprowadzanymi przez użytkownika (tablice znaków) i odkryłem obiekt streamera ciągów znaków C ++. Widziałem, że mogę zapisać kod, używając ich, więc użyłem ich za pośrednictwem aplikacji. Oznacza to, że zmieniłem rozszerzenie pliku na .cpp i teraz kompiluję aplikację g++zamiast gcc. Opierając się na tym, powiedziałbym, że aplikacja jest teraz technicznie aplikacją C ++ (chociaż 90% + kodu jest napisane w tym, co nazwałbym C, ponieważ istnieje wiele skrzyżowań między tymi dwoma językami, biorąc pod uwagę moje ograniczone doświadczenie w dwójka). Jest to pojedynczy plik .cpp o długości około 900 linii.
Ważne czynniki
Chcę, aby program był darmowy (jak w pieniądzu), mógł być swobodnie dystrybuowany i użyteczny dla wszystkich. Obawiam się, że ktoś spojrzy na kod i pomyśli coś z efektem:
Och, spójrz na kodowanie, to okropne, ten program nie może mi pomóc
Gdy potencjalnie może! Inną kwestią jest efektywność kodu (jest to program do testowania łączności Ethernet). Nie powinno być żadnych części kodu, które byłyby tak nieefektywne, że mogłyby poważnie utrudnić działanie aplikacji lub jej wyników. Myślę jednak, że to pytanie dotyczy przepełnienia stosu, gdy prosi o pomoc w zakresie określonych funkcji, metod, wywołań obiektów itp.
Moje pytanie
Posiadanie (moim zdaniem) mieszania C i C ++ tam, gdzie być może nie powinienem. Powinienem spróbować przepisać to wszystko w C ++ (mam na myśli implementację większej liczby obiektów i metod C ++, w których być może kodowałem coś w stylu C, które można skondensować przy użyciu nowszych technik C ++), lub usunąć użycie obiektów do streamingu łańcuchów i przywrócić to wszystko z powrotem do kodu C? Czy jest tu właściwe podejście? Jestem zagubiony i potrzebuję wskazówek, jak zachować tę aplikację „dobrą” w oczach mas, aby mogli z niej korzystać i czerpać z niej korzyści.
Kod - aktualizacja
Oto link do kodu. To około 40% komentarzy, komentuję prawie każdą linię, dopóki nie poczuję się bardziej płynnie. W kopii, do której odsyłam, usunąłem prawie wszystkie komentarze. Mam nadzieję, że nie utrudni to czytania. Mam jednak nadzieję, że nikt nie powinien tego w pełni rozumieć. Jeśli jednak popełniłem fatalne wady projektowe, mam nadzieję, że powinny być łatwe do zidentyfikowania. Powinienem także wspomnieć, że piszę kilka komputerów stacjonarnych i laptopów Ubuntu. Nie zamierzam przenosić kodu do innych systemów operacyjnych.
LICENSEpliku. Możesz uzyskać ciekawe informacje zwrotne.