Cechą, którą chciałbym opracować, jest napisanie bardziej zwięzłego kodu. Przy pisaniu bardziej zwięzłym, przynajmniej moim zdaniem, możliwość dodawania błędów do kodu jest mniejsza. Łatwiej jest odczytać kod dla innych.
Moje pytanie brzmi, czy jest to coś, co po prostu pochodzi z doświadczeniem, czy też jest to coś, co można zrobić wyraźnie, aby poprawić tę jakość?
Odpowiedzi:
Powiedziałbym, że ogólnie rzecz biorąc, jest to coś, co przychodzi z czasem i doświadczeniem, ale może się okazać, że jeśli pracujesz w bardziej zwięzłych językach, przywrócisz tę jakość do normalnych języków roboczych.
Z pewnością po roku lub dwóch pracując z Ruby zauważyłem, że mój C # stał się znacznie niższy. Myślę, że gdybym lepiej zrozumiał programowanie funkcjonalne (ciągła ambicja), prawdopodobnie wziąłbym od tego więcej.
Istnieją również wskazówki, które mogą pomóc - na przykład, jeśli napiszesz te same dwa wiersze więcej niż raz, podziel je na własne metody. Jest to prosta wytyczna, ale szybko ogranicza wiersze kodu oraz programuje wycinanie i wklejanie, którego większość z nas jest czasami winna.
Jeśli rozumiesz dziedziczenie, często możesz zaoszczędzić na powtarzaniu tego samego kodu w różnych miejscach, zapewniając wspólną funkcjonalność klasom nadrzędnym. Zasadniczo jest to oczywiste, ale w praktyce często czegoś brakuje.
Może istnieć różnica między pisaniem mniejszej ilości kodu a posiadaniem mniejszej ilości kodu w swojej aplikacji - czasami możesz użyć generowania kodu, aby uniknąć konieczności powtarzania się, więc piszesz tylko kilka wierszy kodu, ale te generują dla ciebie całą masę innego kodu - które mogą dać ci dużą dźwignię. Zobacz, co robi narzędzie Rails lub Entity Framework w tym zakresie, aby zrozumieć, jak przydatne może być. Wyjaśnij jednak, że jest to potrzebne, i pomyśl dwa razy, trzy razy, a następnie czterokrotnie o generowaniu własnego kodu - które mogą wylądować w piekle YAGNI.
Poznaj swój język, interfejs API i narzędzia. Ponownie wydaje się to oczywiste, ale z biegiem lat napisałem tyle kodu, że później zdałem sobie sprawę, że to funkcja reprodukcji, którą mogłem odziedziczyć po API lub użyć funkcji języka w celu uproszczenia, że zdałem sobie sprawę, że po kilku godzinach czytania dokumentacja interfejsu API, z którym pracuję, pozwoli mi zaoszczędzić wiele godzin na kodowaniu lub debugowaniu w przyszłości. Podobnie większość platform, z którymi pracujesz, ma ziarno - naucz się pracować w sposób, jakiego oczekują, a Twoje życie będzie znacznie łatwiejsze. Poświęć trochę czasu na znalezienie kierunku najmniejszego oporu dla platformy, z którą pracujesz, a wszystko będzie znacznie lepiej.
Jeśli zastanawiasz się, czy istnieje lepszy sposób na zrobienie czegoś, prawdopodobnie jest i zawsze warto dowiedzieć się, jak to zrobić lepiej.
źródło
Jednym świetnym sposobem na napisanie mniejszej liczby kodów jest uniknięcie ponownego wymyślania koła i użycie istniejących składników oprogramowania, jeśli są dostępne.
Jedną wspólną odpowiedź otrzymuję, gdy pytam, dlaczego ludzie zrobili własną ORM, własny silnik rejestrujący, własne komponenty interfejsu użytkownika lub swoje własne wszystko:
Uważam, że to stwierdzenie jest prawidłowe w większości przypadków, ale w większości przypadków negatywny wpływ na zwrot z inwestycji jest bardzo duży. Twoja mama robi najlepsze dania, prawda? Ale nie możesz prosić mamy, żebyś wracała do domu i przygotowywała je codziennie.
Dlatego uważam, że programiści powinni być zainteresowani wpływem finansowym swoich wyborów. Niektórzy z nich są:
Lubię myśleć, że ci dostawcy komponentów to twój rozszerzony zespół pracujący dla Ciebie za niewielką część tego, co zapłaciłbyś za samodzielne zbudowanie, utrzymanie i ulepszanie.
Lepiej jest, aby cała firma osiągnęła maksymalny zwrot z inwestycji , niż pracować nad maksymalizacją zadowolenia z własnego ja;) Im więcej pieniędzy zdobędzie Twoja firma, tym bardziej prawdopodobne jest, że warunki pracy i wynagrodzenie wzrosną.
źródło
Moim zdaniem, pisanie mniejszej ilości kodu można zrobić na kilka sposobów:
Nie będziesz go potrzebował . Nie koduj czegoś, czego jeszcze nie potrzebujesz. Kod określają tylko wymagania. W ten sposób zmniejszymy kod potrzebny do pisania.
Nie powtarzaj się . Uważam, że użycie CMS, frameworka lub biblioteki innej firmy jest jednym ze sposobów na zastosowanie zasady DRY.
Abstrakcja . I na koniec, programowanie abstrakcji może również znacznie zredukować kod. Po wyodrębnieniu kodu szansa na ponowne użycie kodu wzrośnie, ponieważ zmniejsza duplikację.
źródło
Poza rozumieniem języka programowania, myślę, że zrozumienie problemu i znalezienie dobrego rozwiązania ma z tym wiele wspólnego. Istnieje wiele rozwiązań większości problemów, nie wszystkie są optymalne. Możesz jechać z miasta A do miasta B różnymi drogami - jedna może zająć dwie godziny, druga może zająć podwójnie. To ten sam pomysł w programowaniu. Być może znasz język bardzo dobrze, ale możesz wymyślić rozwiązanie, które zajmuje, powiedzmy, dwie strony kodu, podczas gdy ktoś inny wymyśli rozwiązanie, które można zaimplementować w ćwiartce połowy kodu. Wiele razy to widziałem.
Upewnij się, że dobrze rozumiesz problem. Przeanalizuj go, wymyśl rozwiązanie (rozwiązania), rozważ zalety i wady (oczywiście „rozwiązania za pomocą„ s ”będą się znacznie różnić w zależności od problemu - ogólnie mówiąc tutaj.) Następnie jest implementacja wybranego rozwiązania, które to jest miejsce, w którym zaczniesz rozumieć język (i ramy, jeśli ma to zastosowanie).
źródło
Można powiedzieć, że cała sztuka programowania sprowadza się do tego.
Możesz uczyć się języków, które tradycyjnie kładą nacisk na jasność i zwięzłość (np. Haskell, Scheme, Python), a nawet bardziej paradygmatów, takich jak Factor i inne języki konkatenatywne, ale ostatecznie wszystko, co wybierzesz, powinno ostatecznie przyczynić się do ułatwienia pisania krótszych , mniej zbędny kod.
źródło
Jak wszystkie inne dolegliwości, jeśli nie przyznasz się do problemu, nie będziesz szukać rozwiązania. Doświadczenie zaczyna być czynnikiem, gdy dowiesz się, jak wygląda mniej kodu. Kiedy ponownie odwiedzisz swój kod, nadszedł czas, aby sprawdzić, czy możesz ponownie użyć kodu lub zrefaktować go, aby zmniejszyć kod. Microsoft był w stanie poprawić prędkość drukowania w systemie Windows 2000, NIE buforując go dwukrotnie (cytat od pracownika Microsoft na jednym z ich darmowych pokazów).
źródło
Powtórz ad libitum. I witaj w piekle.
źródło
Pomóc może rozwój oparty na testach. Korzystając z tego, piszesz tylko minimalny kod wymagany do zdania tego testu.
źródło