Jestem programistą z wieloletnim doświadczeniem. Uświadomiłem sobie, że mam pewien nawyk. Nie jestem pewien, czy to naprawdę zły nawyk, czy nie.
Dostaję listę zadań do wykonania dla rozwiązania, nawet małych małych zadań, na przykład
- Zmień zasoby tej kontroli użytkownika
- Zmień rozmiar innego
- Dodaj trochę kodu HTML i kodowania do innej kontrolki użytkownika
Wszystkie te zadania są małe. Mam na myśli, że można to zrobić w ciągu 10 minut, ale mam nawyk robienia niewielkich zmian, a następnie testowania ich raz po raz w przeglądarce internetowej . Czy to dobra praktyka?
Czy powinienem wykonać je wszystkie naraz, a następnie przetestować je razem?
Jeśli to naprawdę zły nawyk, to jak to naprawić, skoro masz ochotę tracić czas na testowanie drobnych zmian w kółko?
programming-practices
coding-style
Matematyka
źródło
źródło
Odpowiedzi:
źródło
What you see is what you get
narzędzi dla programistów pracujących z HTML, CSS, widżetem itp.Wprowadzanie wielu drobnych zmian i testowanie każdego z nich nie jest złą rzeczą. Pozwala zobaczyć efekt każdej zmiany, a następnie, gdy jedna zmiana powoduje problem, o wiele łatwiej jest wiedzieć, która zmiana spowodowała problemy - najnowsza!
Jeśli masz listę zadań z 10 elementami i wykonujesz je wszystkie jednocześnie, a następnie testujesz stronę, a następnie zauważasz, że strona wygląda nieprawidłowo, może być trudniej dowiedzieć się, która zmiana spowodowała uszkodzenie strony.
Oczywiście możliwe jest podejście do skrajności. Znalezienie równowagi jest kluczem, a to wiąże się z lepszym zrozumieniem tego , co zmieniasz i jak zmiany mogą na siebie wpływać.
źródło
Twoje pytanie składa się z dwóch części:
Zakładam, że używasz VCS .
Aby śledzić, jakie zadania zostały wykonane, warto rozdzielić listę zadań do listy zatwierdzeń: jedno zadanie, jedno zatwierdzenie .
Ułatwia to zarządzanie różnymi wersjami bieżącej bazy kodu; możesz wrócić do poprzedniego stanu, wybrać zmiany, które chcesz wprowadzić do głównego pnia itp.
Odpowiedź jest jasna:
Nie, wprowadzaj zmiany tylko jeden po drugim - jedno zadanie jedno zatwierdzenie .
Jest to dobra praktyka, aby kod test / UI niezależnie , ale to nonsens, aby zrobić to w kółko w przeglądarce. Istnieją narzędzia, które zrobią to automatycznie dla Ciebie ( Selenium, PhantomJS / Casper, ZombieJS )
Odpowiedź na ten przypadek to:
Tak, dobrą praktyką jest testowanie oprogramowania więcej niż raz, ale korzystanie z automatyzacji
źródło
W przypadku każdego nawyku, który ma deweloper, istnieją 2 główne pytania:
Jeśli odpowiedź na oba pytania brzmi „To czyni to lepszym”, nawyk nawyk, naucz go innych!
Jeśli odpowiedź na jedno z nich brzmi „Lepiej”, a druga „Gorzej” - jest to styl i musisz być tego świadomy. Nie zawsze ma to zastosowanie i od czasu do czasu może być konieczne staranie się go stłumić.
Jeśli odpowiedź na oba pytania brzmi „Negatywne” - masz poważny problem.
Oczywiście w pierwszych 2 przypadkach należy również pomyśleć o „Czy pozytywny efekt może być w jakiś sposób zautomatyzowany lub zinstytucjonalizowany?”. Może lepiej napisać test niż za każdym razem wypróbowywać różne przeglądarki? (Uwaga: wiem, że nie jest łatwo przetestować odpowiedni układ w tworzeniu stron internetowych, nie twierdzę, że jest to zawsze możliwe lub warte czasu).
W tym konkretnym przypadku wydaje mi się, że jakość jest podwyższona, wydajność może zostać zmniejszona. W przypadku małych zmian jest to prawdopodobnie trochę złe (szczególnie jeśli zmiany są ze sobą powiązane), w przypadku większych - jest to trochę dobre. Tak długo, jak testujesz również wynik końcowy (unikaj „każdy moduł został przetestowany i działa, więc wszystko działa również, nie trzeba go testować!”).
Dlatego - o ile 90% dnia pracy nie robi naprawdę drobnych zmian - to doskonały nawyk. Jeśli taki jest twój dzień pracy, być może warto przejrzeć swój styl pracy (lub miejsce pracy).
źródło
To zależy od domeny. Układ strony internetowej będzie działał dobrze i możesz uzyskać natychmiastową informację zwrotną (możesz to zrobić nawet bezpośrednio w przeglądarce!). Podobnie działałoby dobrze w przypadku wszystkiego, co nie wymaga długiego czasu inicjalizacji. Jest to preferowane, ponieważ utrzymuje niskie obciążenie psychiczne i zmniejsza prawdopodobieństwo błędów.
Jednak w przypadku naprawdę dużych projektów, w których konieczne jest skompilowanie kodu, a czas potrzebny na wykonanie zadania nie jest trywialny (kilka minut), może to spowodować wiele przestojów, dlatego często musisz uciekać się do:
(Prawdopodobnie są też inne sposoby.)
źródło
Jak stwierdzili inni, zdecydowanie nie jest to zły nawyk. Generalnie wolę wprowadzić tylko kilka modyfikacji na raz. Jedynym wyjątkiem jest sytuacja, gdy mam dużą listę zmian, które nie wpływają na siebie nawzajem (np. Zmiany w mniejszych stylach lub kopiowaniu, zmiany na różnych stronach itp.). Jeśli modyfikujesz układy, staraj się wprowadzać zmiany pojedynczo, abyś mógł sprawdzić, czy wszystko jest w 100% we wszystkich obsługiwanych przeglądarkach, zanim przejdziesz do następnego problemu.
źródło