Akurat to, co autor przytoczył, to nie są bugi kodu, tylko budowanie (mniej lub bardziej) poprawnego algorytmu. Podejrzewam, że właśnie niezrozumienie ważności wstępnej logiki powoduje powstawanie bugów, gdyż wówczas (jak pokazano na przykładzie) kod przepisywany jest sto razy. Konia z rzędem każdemu, kto zapamięta podczas setnego razu, co robiło się wcześniej. Dla kontrastu określenie oraz formalne utrwalenie jasno założonych algorytmów (logiki działania) pozwala na zmniejszenie bugów logicznych do zera. Ale czego wymagać
"Project Manager - człowiek który uważa, że gdy weźmie 9 kobiet to mu urodzą dziecko w miesiąc". Znajomy kiedyś opowiadał, że po zmianie menadżera, nazwy dni tygodnia z Monday, Tuesdey, zminiły się na Asap-y ( ͡°͜ʖ͡°)
"Słuchajcie, ja wiem, że jest piątek i miało już nie być takich akcji, ale to jest wyjątkowa sytuacja. Krzysiu zrobisz na szybko code review i wrzućcie to na deva i szybko przetestujcie. Staging pominiemy, bo szkoda czasu, a ten moduł płatności musi być dzisiaj o 17tej na prodzie, bo nas klient zaj3bie."
Ja przez lata kodowania wypracowalem sobie wlasna definicje co to jest programowanie. "Rozwiązywanie problemów które nie istnieją za pomocą nowych problemów" I tak to wyglada. Czesto slysze "Jedno Pan naprawil a zepsul drugie" ( ͡°͜ʖ͡°)
"Nic prostszego, prawda? No to ustawmy budzik i przetestujmy… Ups, nie działa. Czemu? Ano temu, że w budziku ustawiamy tylko godzinę i minutę, a w zegarku są jeszcze sekundy – a dla komputera 7:00:00 to nie to samo co 7:00, więc warunek nie jest spełniony. Poprawmy:"
@kuba-sierzega: W pierwszej wersji zwracał uwagę na sekundy, bo sprawdzał 'czas' - można się domyślić, że chodzi o standardową strukturę czasową np. DateTime, która zapamiętuje też ułamki sekund.
W drugim przypadku sprawdzał wyłącznie godziny i minuty i tak jest w zapisanym przez autora algorytmie.
dalej autor już tylko komplikuje coś co faktycznie
Z treści artykułu wyłania się moim zdaniem największy problem większości programistów. Po otrzymaniu zadania od razu siadają do klepani kodu. Dlaczego? Bo to jest łatwe. Nie trzeba głową ruszyć. Stack Overflow i jazda ;) A jaki błąd popełniają najczęściej? Nie zastanowili się na początku co ten klient od mnie chce? Jak to ma działać? A przede wszystkim nie rozważyli wszystkich warunków brzegowych. I to na na poziomie całej funkcjonalności jaki i na
Komentarze (23)
najlepsze
@WhiskyRomeo: menedżment, który stwierdza że to co mówią programiści to za długo i musi być szybciej.
Podejrzewam, że właśnie niezrozumienie ważności wstępnej logiki powoduje powstawanie bugów, gdyż wówczas (jak pokazano na przykładzie) kod przepisywany jest sto razy. Konia z rzędem każdemu, kto zapamięta podczas setnego razu, co robiło się wcześniej.
Dla kontrastu określenie oraz formalne utrwalenie jasno założonych algorytmów (logiki działania) pozwala na zmniejszenie bugów logicznych do zera.
Ale czego wymagać
Bo każdy robi. A w dziedzinach ścisłych czy technicznych jest to bardziej widoczne, bo szybko i (relatywnie mocno) obiektywnie weryfikowalne.
Komentarz usunięty przez moderatora
"Rozwiązywanie problemów które nie istnieją za pomocą nowych problemów"
I tak to wyglada. Czesto slysze "Jedno Pan naprawil a zepsul drugie" ( ͡° ͜ʖ ͡°)
"Nic prostszego, prawda? No to ustawmy budzik i przetestujmy… Ups, nie działa. Czemu? Ano temu, że w budziku ustawiamy tylko godzinę i minutę, a w zegarku są jeszcze sekundy – a dla komputera 7:00:00 to nie to samo co 7:00, więc warunek nie jest spełniony. Poprawmy:"
akapit niżej:
"Testujemy
W pierwszej wersji zwracał uwagę na sekundy, bo sprawdzał 'czas' - można się domyślić, że chodzi o standardową strukturę czasową np. DateTime, która zapamiętuje też ułamki sekund.
W drugim przypadku sprawdzał wyłącznie godziny i minuty i tak jest w zapisanym przez autora algorytmie.