Wiele się mówi na temat najlepszych praktyk 1 w zakresie tworzenia oprogramowania. Widziałem co najmniej trzy główne kwestie, które mają dużo dyskusji zarówno na temat SE, jak i gdzie indziej:
- Co kwalifikuje się jako najlepsza praktyka i dlaczego?
- Czy warto przede wszystkim omawiać najlepsze praktyki, ponieważ uzasadnione jest twierdzenie, że żadna praktyka nie jest „najlepszą” praktyką?
- Kiedy należy zrezygnować z najlepszej praktyki - a może większości najlepszych praktyk - albo dlatego, że wydaje się ona nie mieć zastosowania, albo z powodu ograniczeń zewnętrznych (czas, pieniądze itp.), Które sprawiają, że kompromis jest niepraktyczny?
Coś, co wydaje się pojawiać znacznie rzadziej, ale częściej niż nigdy, jest pojęciem zdrowego rozsądku w tworzeniu oprogramowania. Ostatnie doświadczenia sprawiły, że pojęcie to znów pojawiło się w mojej głowie.
Moje pierwsze wrażenie jest takie, że jest to dyskusja inna niż najlepsze praktyki, ale może z pewnym zapyleniem krzyżowym.
Kiedy ogólnie myślę o zdrowym rozsądku, myślę o zestawie zasad, które albo wychwyciłeś, albo których nauczyłeś, i które dają ci podstawy do uzasadnienia i podejmowania decyzji. Przestrzeganie zdrowego rozsądku to dobry sposób na uniknięcie zestrzelenia całej nogi. Ale poza dość niskim poziomem odniesienia zdrowy rozsądek ustępuje miejsca potrzebie podejmowania wykształconych decyzji, a wykształcone decyzje mogą nawet zastąpić zdrowy rozsądek, gdy dowody wydają się wystarczająco przekonujące. Być może bawię się trochę z definicją tutaj, ale myślę, że jest wystarczająco blisko, aby przewodzić mojemu przykładowi.
Kiedy myślę o zdrowym rozsądku w tworzeniu oprogramowania, myślę o wszystkich zasadach podstawowej higieny, aby zapobiec szybkiemu rozkładowi bazy kodu w niezrozumiały bałagan. Jako przykłady można wymienić: nieużywanie jednej globalnej struktury do utrzymywania i komunikowania stanu w nietrywialnym programie; niestosowanie nazw zmiennych / metod / klas, które są po prostu przypadkowym bełkotem; rzeczy, które prawdopodobnie bardzo dokładnie przypominają to, co nazywamy anty-wzorami. W przypadku stosowania najlepszych praktyk praktycznego odpowiednika wzorców uczenia się, stosowanie zdrowego rozsądku można postrzegać jako praktyczny analog uczenia się wzorców uczenia się.
Mając to na uwadze, chciałbym zadać kilka pytań, na które zapoznanie się z odpowiedziami innych osób mogłoby mi pomóc w przemyśleniu tego.
Czy inni uważają, że w tworzeniu oprogramowania panuje zdrowy rozsądek? Byłbym zainteresowany, znając uzasadnienie w obu przypadkach.
Jeśli tak, czy warto to omówić? Czy jest to coś, na co powinniśmy naciskać tak często, jak robimy to przy zastosowaniu najlepszych praktyk? Czy jest coś, co warto naciskać jeszcze mocniej?
Jeśli analogia do anty-wzorów wydaje się rozsądna, ogólną zasadą jest, że anty-wzory są stosowane tylko wtedy, gdy nie ma innego sposobu, a nawet tylko w bardzo ograniczonych okolicznościach. Jak elastyczna powinna być możliwość pozwalania bazie kodowej na odstąpienie od zdrowego rozsądku? Wydaje się nieuzasadnione, że odpowiedź brzmi „wcale”, ponieważ czasem celowość wymaga odchyleń. Ale wydaje się, że jest to inny rodzaj argumentu niż stosowanie „najlepszej praktyki”. Może nie jest; jeśli nie uważasz, chciałbym dowiedzieć się, dlaczego.
Jest to o wiele bardziej otwarte zakończenie i być może samo w sobie warte dalszego pytania, jakie rodzaje rekomendacji wskazałbyś na to , co wydaje się kwestią zdrowego rozsądku?
Inne myśli są również mile widziane.
1 Być może lepiej nazwałbym je „często powtarzającymi się wzorcami domen”, ale nazwa „najlepsze praktyki” jest na tyle powszechna, że wszyscy wiedzą, czym są, nawet jeśli się nie zgadzają. Jeśli przeszkadza ci „najlepsza” część, wyobraź sobie, że zastąpiłem „najlepsze praktyki” czymś mniej wiarygodnym.