Wiele razy zapominam o mojej aplikacji. Nie zapamiętywam nazw tabel ani tego, co zrobiło zapytanie, i szukam tego, czego chcę. Mój lider zespołu powiedział mi, że mam zapamiętać nazwy tabel, których używam.
Czy programista musi zapamiętać nazwy tabel w bazie danych, nazwy klas itp.? A jeśli odpowiedź brzmi „Tak, cały czas”, co powinienem zrobić, aby zapamiętać te rzeczy?
Odpowiedzi:
Nie powinieneś jawnie zapamiętywać tych rzeczy. Rozumiem przez to, że usiądź i naucz się ich, tak jak listy słów do testu pisowni. Po pierwsze, nazwy powinny być niezapomniane i możliwe do odkrycia , abyś mógł je znaleźć bez większego wysiłku.
Powinieneś także mieć dostęp do narzędzi, które pomogą ci tutaj z autouzupełnianiem i tym podobne.
W dużym systemie ponad 100 tabel nie można oczekiwać, że zapamiętasz każdą nazwę tabeli i nazwę każdej kolumny, jednak dzięki pamiętnym, wykrywalnym nazwom i regularnemu używaniu powinieneś pamiętać najważniejsze szczegóły i te, z których korzystasz dzień.
źródło
Einstein powiedział „nigdy nie zapamiętuj tego, na co możesz spojrzeć [w książkach]”, i całkowicie się z tym zgadzam.
Wykorzystaj swoją pamięć na rzeczy abstrakcyjne (techniki i zasady rozwoju), a nie na fakty, które możesz znaleźć, kiedy ich potrzebujesz.
źródło
Żenujące przyznać - używam C od prawie 30 lat, ale nigdy nie pamiętam, jak zadeklarować wskaźniki funkcji - zawsze muszę wyjść z K&R, aby sprawdzić składnię.
Jeszcze bardziej zawstydzające, muszę naprawdę mocno przemyśleć, jak działa typedef - czy to:
lub
To są moje osobiste martwe punkty. Nie martwiłbym się, jeśli masz podobne.
źródło
Komputery dobrze pamiętają rzeczy. Komputery są również dobre w znajdowaniu rzeczy, które wcześniej zapamiętały.
Kluczową umiejętnością jest więc używanie komputera jako rozszerzenia pamięci. Napisz czysty kod, dokumentuj, naucz się efektywnie korzystać z narzędzi wyszukiwania, skonfiguruj środowisko programistyczne, aby łatwo było znaleźć rzeczy itp.
Przyjemnym efektem ubocznym jest to, że ułatwisz również innym czytanie twojego kodu.
źródło
Pamięć jest ważna
Silna pamięć jest rzeczywiście jednym z najlepszych talentów, jakie może posiadać programista; właściwie każdy może to mieć. To naprawdę wyjątkowa rzecz, której zazdroszczę i podziwiam błogosławionych. Z pewnością może pomóc osobie stać się silniejszym programistą, prawnikiem, mechanikiem lub (wstaw tutaj wybraną pracę).
Ile powinno być wymagane?
Ale nie sądzę, aby wymaganie zapamiętywania wszystkich rzeczy było słusznym wymogiem. Wierzę, że zaczniecie zapisywać rzeczy w pamięci jako naturalną część robienia rzeczy. Dlatego czytanie książki o języku i używanie jej w środowisku produkcyjnym to nie to samo. Gdy codziennie pracujesz z czymś (niektórzy nazywają to „praktyką”), zaczniesz nadawać niektórym rzeczom drugą naturę.
Podobnie jak w przypadku innych plakatów, wierzę, że zapamiętanie kluczowych części aplikacji pomaga. Jednak nie jestem pewien, czy inwestowanie w zapamiętywanie tego wszystkiego jest warte inwestycji, gdy możesz skorzystać z funkcji takich jak Intellisense, która jest coraz bardziej powszechna w nowoczesnych narzędziach.
Jak możesz poprawić?
Nie jestem ekspertem od pamięci, ale niektórzy uważają, że rzeczywiście można poprawić pamięć poprzez ćwiczenia umysłowe, takie jak gry mózgowe (krzyżówki, sudoku, łamigłówki itp.). Teoria jest taka, że twój mózg jest jak mięsień i jeśli użyjesz go na różne sposoby i ćwiczysz, możesz go wzmocnić.
Interesujące byłoby zbadanie, w jaki sposób rzeczy takie jak wykonywanie gier mózgu, programowanie i interaktywne działania wpłynęłyby na mózg z czasem. Czy takie rzeczy mogłyby pomóc w walce z początkiem utraty pamięci spowodowanym wiekiem lub demencją?
źródło
Tam, skąd pochodzę, jest takie stare powiedzenie, które w języku angielskim brzmi mniej więcej tak: „Głupiec zapamiętuje, pisze mądry człowiek”. Zasadniczo, bez względu na to, jak dobra jest twoja pamięć, zapomnisz . Jesteś tylko człowiekiem. A to powoduje, że poleganie na ludzkiej pamięci ... no cóż, zawodne. Nawet jeśli uważasz, że pamiętasz te nazwy tabel, czy możesz być w 100% pewien? Potrzebujesz kilku sekund, aby wyszukać nazwy tabel, ale możesz potrzebować godzin, a nawet dni, aby wyśledzić błędy spowodowane błędną pisownią.
Podsumowując, nie, jest to absurdalny wymóg, szczególnie w przypadku dużych projektów, które mogą mieć tysiące tabel i klas.
źródło
Jeśli jest to coś, nad czym pracujesz i jest to zadanie długoterminowe, to tak, powinieneś dążyć do nauki i móc pamiętać różne nazwy tabel i kolumn, klasy, zmienne i metody. To będzie coś, co nadejdzie w czasie, gdy będziesz z nimi pracować. Nie nauczysz się ich wszystkich z dnia na dzień, ale powinieneś starać się wiedzieć jak najwięcej o systemie, nad którym pracujesz. Ponadto w dużym systemie nie ma możliwości zapamiętania wszystkiego, ale nie ma powodu, aby nie uczyć się i zapamiętywać jak najwięcej.
Ciągłe sprawdzanie wszystkiego to tylko hit wydajności - jeśli pracujesz nad zadaniem i musisz się zatrzymywać i sprawdzać co kilka minut, to jest przerwa w koncentracji. Użyj odpowiednich narzędzi, aby Ci pomóc, i naucz się / zapamiętuj, co potrafisz. To znacznie poprawi Twoją wydajność.
źródło
Czy warto zapamiętać dokładne nazwy klas? Nie wydaje mi się
Czy warto wiedzieć, jakich terminów używa twój projekt w nazwach klas, abyś mógł je szybciej wyszukiwać? Zdecydowanie.
źródło
Nie zgadzam się, że powinieneś zapamiętać nazwy tabel, ale powinny być łatwe do odgadnięcia. Aby ułatwić odgadnięcie, bądź konsekwentny. W ten sposób nie będziesz pytać siebie: „Hmm .. czy tabela foo jest w liczbie mnogiej czy pojedynczej? Czy identyfikator klucza podstawowego lub RID czy FooRID?”
źródło
Nie wiem, w jaki sposób można zapytać bazę danych w dowolnym momencie, nie znając głównych nazw tabel i krytycznych nazw kolumn (ale na pewno nie wszystko). Wiem, że ludzie, którzy znają te rzeczy, bez konieczności ich rozgryzania, za każdym razem stają się bardziej wartościowi dla organizacji i stają się ludźmi „idź do”, gdy inni utkną.
Często stwierdzam, że kiedy ludzie nie zaczynają się tego uczyć, popełniają błędy w zapytaniach, nie zdając sobie z tego sprawy. Błędy, które często zauważam natychmiast w recenzjach kodu, ponieważ rozumiem naszą strukturę bazy danych i to, jak tabele odnoszą się do siebie oraz jakie są najważniejsze reguły biznesowe bez konieczności ich sprawdzania.
Osobiście uważam, że ludzie, którzy nie zawracają sobie głowy poznawaniem struktury, często pozostają na poziomie początkującym w zapytaniach do tej konkretnej bazy danych. Mają też tendencję do nie przetrwania zwolnień. Myślę, że twój szef próbuje wyświadczyć ci przysługę, abyś zwrócił większą uwagę.
źródło
Bardziej niż mocna pamięć, ta, która bardzo pomaga, to projektowanie oparte na domenie i przestrzeganie łatwych konwencji, takich jak nazwy tabel i klas, aby były takie same. Jeśli właściciel firmy mówi ci o tym wymaganiu, w kodzie powinny znajdować się warunki specyficzne dla domeny. W takim przypadku nie musimy pamiętać mapowań między warunkami handlowymi a nazwami w kodzie. Ten nawyk zajmuje trochę czasu, ale jest bardzo przydatny, ponieważ zmniejsza również błędy tłumaczeń tam iz powrotem między właścicielami firm i programistami.
Wraz z tym, jeśli czas trwania projektu jest bardzo długi, wygodne korzystanie z bazy kodu przez pewien czas podświadomie pomoże pamięci.
źródło
domain driven design
?