Jest to bardzo trudne do wyjaśnienia, ponieważ proste nie oznacza dla wszystkich tego samego.
Przykład. Niektórzy deweloperzy uważają, że ?:to proste, ale inni uważają, że ifstwierdzenie jest lepsze. Gdy spadnie do tego poziomu, nie możesz zadowolić wszystkich.
Ogólnie rzecz biorąc, proste środki bez złożoności . Aby zrozumieć prostotę, musimy zrozumieć złożoność.
Istnieją dwa rodzaje złożoności:
Zasadnicza złożoność odnosi się do sytuacji, w której wszystkie rozsądne rozwiązania problemu muszą być skomplikowane (i być może mylące), ponieważ „proste” rozwiązania nie rozwiązałyby właściwie problemu. - Wikipedia
Przypadkowa złożoność to złożoność pojawiająca się w programach komputerowych lub ich procesie rozwoju (programowaniu komputerowym), która nie jest niezbędna do rozwiązania problemu. - Wikipedia
Podstawową złożoność można sprawdzić, zadając następujące pytania:
Czy to rozwiązanie jest proste? Czy mogę wyjaśnić to moim rówieśnikom w ciągu kilku minut, a oni to rozumieją? Czy istnieje prostsze rozwiązanie problemu? Jeśli tak, czy są jakieś kompromisy między skomplikowanym rozwiązaniem a prostym? Czy możemy żyć z tymi kompromisami? Na przykład wielu programistów popełnia błąd polegający na mikrooptymalizowaniu wszystkiego, a ich rozwiązanie (a także kod) staje się zbyt skomplikowane.
Sprawdzanie przypadkowej złożoności:
Czy kod jest prosty? Jeśli wrócę do tego za trzy miesiące, ile czasu zajmie mi zbudowanie kontekstu w mózgu, aby mógł dokonać zmian, których muszę dokonać? Czy wszystko w moim kodzie źródłowym ma wyraźny cel i skutecznie przekazuje ten cel mnie i innym programistom ? Jak trudno jest przetestować mój kod? Zwykle im bardziej skomplikowany jest kod, tym trudniej jest przeprowadzić test jednostkowy, więc zwykle używam tego jako miary złożoności. Zwykle potrzebujesz małych, dobrze nazwanych i skoncentrowanych klas i metod. Wzory projektowe zwykle pomagają również je osiągnąć.
Jeśli chcesz użyć wzorca projektowego tylko dlatego, że po prostu o nim przeczytasz, prawdopodobnie wprowadzi on przypadkową złożoność. Jeśli chcesz coś włożyć, bo myślisz, że jest „mądry”, prawdopodobnie wprowadzi przypadkową złożoność.
Mam nadzieję, że to pomaga i nie zapominam: proste nie oznacza ŁATWE .