Czy zapomniałeś również kodu po wykonaniu zadania? [Zamknięte]

13

Jestem nowym programistą i chcę zapytać starszych programistów (programistów, którzy mają pewne doświadczenie w prawdziwym świecie).

Wykonuję swoją pracę i po kodowaniu mój projekt jest ukończony, ale szczerze mówiąc, nie pamiętam kodu, klas i ram oraz ich właściwości.

Czasami nawet wątpię w to, że to zrobiłem?

Czy to normalne u wszystkich programistów, czy też jestem najgłupszym programistą, który nie pamięta kodu i nazw klas / właściwości?

Edytować:

Myślę, że wielu programistów źle mnie tutaj myli. Powiedziałem, że zapomniałem nazw frameworków, nazw klas, nazw właściwości, ale zaczynam zapamiętywać własny kod, gdy zacznę ponownie nad nim pracować. Moje pytanie brzmi: czy pamiętasz nazwy składni i klas / właściwości itp.?

martwy
źródło

Odpowiedzi:

24

Szczerze mówiąc, nie wiem, jak można być długoterminowym programistą bez możliwości „zapomnienia” kodu, nad którym pracowałeś. Ilość projektów i wynikowy kod ostatecznie doprowadziłyby do przeciążenia czystą informacją.

Uważam jednak tę sytuację za argument wspierający czysty, logiczny projekt. Nadejdzie czas, kiedy będziesz musiał obsługiwać własny kod. Jeśli wybrałeś mocne i logiczne konwencje kodowania, twój czas na zapoznanie się zostanie znacznie skrócony. Dodatkowo teoretycznie skróciłoby to czas wymagany do przeprowadzenia faktycznej konserwacji.

Poszukiwacz rzeczy
źródło
Spotkałem dwóch programistów z pamięcią fotograficzną, którzy pamiętają, co myśleli, pracując nad jakimś fragmentem kodu. Ponieważ moje zdolności zapamiętywania są poniżej średniej, z pewnością jestem zmuszony do wykonania najlepszej pracy, jaką mogę zrobić, aby kod był czysty i udokumentowany.
Job
Myślę, że masz rację tylko dlatego, że „zapomniałem” kod, który mogę zaprogramować na 3-4 różnych platformach!
zepsuty
9

Zapamiętywanie całej składni i interfejsu API dla projektu nie jest tak ważne, jak pamiętanie koncepcji, które przyczyniły się do jego budowy. Po zdobyciu doświadczenia możesz przeczytać kod i dowiedzieć się, jak to jest czytać te posty.

Z biegiem czasu znajdziesz, jeśli aktywnie poprawiasz, to, że zobaczysz wady tego, co napisałeś w przeszłości, po prostu czytając stary kod (który zalecam). Dzięki tej praktyce łatwiej jest to zrobić; tak jak każda inna umiejętność.

Prawdopodobnie napisałem już ponad milion linii kodu w mojej karierze i nie ma mowy, żebym to wszystko zapamiętał. Pamiętam jednak projekty i to, co próbowali rozwiązać (i techniki, które je rozwiązały).

jmq
źródło
5

Zapomniałem wielu rzeczy po ich użyciu, ale zapominam o nich inaczej.

Przez lata obserwowałem siebie i doszedłem do wniosku, że nasz mózg (dobrze, mój mózg) stosuje pewną strategię buforowania:

  • Nowe informacje są przyswajane, wykorzystywane, a następnie umieszczane w kolejce przedawnienia. Za kilka tygodni zniknęło.

  • Powtarzający się dostęp do tych informacji raz zdobytych nie później niż kilka miesięcy wstecz promuje je w jakiś sposób, tak aby można je było zapamiętać przez wiele miesięcy, ale dopiero wtedy wygasają.

  • Powtarzający się dostęp do bloków wiedzy w ciągu kilku lat, z lukami w użytkowaniu przez kilka miesięcy, promuje je do pewnej pamięci priorytetowej, w której przechowywano je przez lata.

PS Podejrzewam, że pierwszy pomysł na pamięć podręczną z aplikacją na komputery przyszedł od kogoś, kto obserwuje, jak ludzie uczą się i zapamiętują różne rzeczy. Więc niczego nie wymyśliliśmy, po prostu wzięliśmy to, co już zostało w nas wbudowane.


źródło
2

Często. Komentarze stały się passe ”, ale zwykle mogę rozpoznać kod po komentarzach.

EDYCJA: Nie mówię, że zgadzam się z tym trendem. Mówię tylko, że dzisiaj jest to trend. Jak podkreśla Dave, z pewnością jest punkt krytyczny. Jest tu doskonale cudowna dyskusja: „Komentarze to zapach kodu” . Zgadzam się z obozem „Komentarze dotyczą dostarczania informacji o świecie POZA bazą kodów (wymagania, zmiany biznesowe itp.)”.

Michael Blackburn
źródło
Komentarze są passé? Po prostu nieprawda.
Steve
1
Och, zgadzam się; Mówię tylko, że wydaje się, iż istnieje tendencja, by komentarze nie były wymagane. Przeprowadziłem wywiady z ludźmi, którzy nalegali, aby nazwa metody była wszystkim, czego potrzebujesz. Oczywiście pracują w mitycznym miejscu, w którym wymagania biznesowe nie zmieniają się co pół roku.
Michael Blackburn,
2
Argumentowałbym, że chociaż PullContractDataFromProfileAndDetermineZipRadiusFromCurrentLocation () ma charakter opisowy, powoduje także, że kod jest nieczytelny, ponieważ niszczy przepływ.
Dave Wise,
1
Uzgodnione x100. Gdybym nie zapisał dokładnie tego, co myślę i dlaczego podjąłem decyzje poprzez starannie sformułowane komentarze, nie miałbym absolutnie pojęcia, co się dzieje, kiedy wróciłem do czytania kodu napisanego kilka miesięcy temu. Próbowałem już wcześniej przedstawić ten argument astronautom architektury, którzy twierdzą, że komentarze to hałas, przelot lub przestarzałe, ale nikt nigdy nie słuchał. Wszyscy zakładają, że jestem złym programistą, ponieważ muszę pisać komentarze w kodzie źródłowym. Ale nie mam nic przeciwko. Pomaga mi i wszystkim innym po mnie.
Cody Gray
@Dave: Chociaż zgadzam się z tobą, masz metodę z dwoma obowiązkami. Twoja pokuta to 4 gradobicia i 2 GangOfFours.
Michael Blackburn
1

Składnia Zasadniczo pamiętam po kilku zastosowaniach. Na przykład, kiedy po raz pierwszy zacząłem używać generycznych lub linq, miałem pewne trudności z poprawną składnią.

IntelliSense zdecydowanie ułatwia moją pracę w zapamiętywaniu nazw właściwości i metod.

Michael Blackburn
źródło
1

Kiedy byłem testerem, główny deweloper firmy powiedział mi kiedyś, że kod został napisany 6 miesięcy temu, żaden z moich ludzi nie może zostać pociągnięty do odpowiedzialności. Wtedy mnie to zszokowało. Teraz, kiedy przeszedłem na programistę, rozumiem. Nie pamiętam szczegółów kodu, wiem, że nad nim pracowałem, ale szczegółów nie ma.

Erin
źródło
0

Prawie zawsze. Mój najnowszy (bardzo mały) projekt był testem moich (rdzewiejących) umiejętności. Zmusiłem się do napisania zestawu kodu proceduralnego w bardzo prostym stylu C, a następnie przekształcenia go w kod Java przy użyciu pewnych wzorców projektowych i utrzymując każdą metodę do nie więcej niż ośmiu wierszy, jeśli to możliwe.

Odkładam kod na około miesiąc. Kiedy wróciłem do tego, minęła godzina, zanim zdałem sobie sprawę, że to napisałem. Szczerze mówiąc, nawet gdybym wpisał swoje nazwisko w polu komentarza, nie jestem pewien, czy to by mnie przekonało.

mfe
źródło