Programowanie imperatywne a deklaratywne (funkcyjne) | Jest dobrze, ale chcemy lepiej. Tworzymy własne zrozumiałe polecenia


Aplikacja działa, ale tak naprawdę zarządzamy nią za pośrednictwem poleceń z języka JavaScript, które poznaliśmy i które musimy zapamiętać... Podejrzewam, że z tym zapamiętaniem każdej metody może być na razie problem...

Podejrzewam też, że możesz się zastanawiać: "Co to za aplikacja? Gdzie są przyciski, pola do wpisywania zadań, checkboxy do odhaczania i ładna lista zadań?". Jeśli takie pytanie przeszło Ci przez myśl, to bardzo dobrze - to znaczy, że chcesz więcej! Powiem więcej - zrobisz to i nawet stosunkowo niedługo, ale jest jeszcze trochę nauki przed Tobą. W tym celu będziesz musiał/a poznać nie tylko kolejne podstawowe zagadnienia JavaScript, ale także minimalne podstawy HTML i CSS oraz sposoby na dostęp JavaScript do HTML (DOM). Wszystko w swoim czasie.

Na razie natomiast będziemy zarządzać zadaniami w konsoli za pomocą poleceń, ale... nie tych, które wypisaliśmy powyżej 😅. Kod, którego używamy na razie do zarządzania naszymi zadaniami, jest kodem w stylu imperatywnym. Styl programowania imperatywnego skupia się głównie na tym, w jaki sposób możemy osiągnąć określony rezultat za pomocą kodu. Taki styl wymaga dużej ilości komentarzy (spójrz, ile ich jest w dotychczasowym kodzie), żeby zrozumieć, co się dzieje w kodzie. Taki kod jest mało czytelny nawet dla osoby, która go stworzyła.

W kolejnych lekcjach natomiast stworzymy swoje własne, czytelne i zrozumiałe polecenia w stylu deklaratywnym (funkcyjnym), jak np.:

  • showTasks(), które wyświetli zadania,
  • addTask(), za pomocą którego będziemy dodawać zadanie,
  • deleteTask(), za pomocą którego będziemy usuwać zadania,
  • i wiele innych!

Nazwy z powyższej listy wyglądają chyba lepiej i łatwiej je zapamiętać, niż np. tasks.push(), tasks.splice() itd.? Też tak myślę. To jest przykład stylu programowania deklaratywnego (funkcyjnego). Styl programowania deklaratywnego (funkcyjnego) skupia się na tym, by sama składnia (nazwy zmiennych, funkcji, ale także metod) mówiła sama za siebie (co się dzieje w kodzie) oraz by szczegóły działania poszczególnych fragmentów były określone i wyizolowane gdzie indziej. W programowaniu funkcyjnym tworzymy dużo małych i dobrze nazwanych funkcji, z których powstaje program.

Innymi słowy, nawet jeśli nie masz żadnego pojęcia o programowaniu (a Ty już jakieś masz 😎), to jeśli zobaczysz w kodzie taki zapis: showTasks(), to raczej domyślisz się, że to "coś" ma coś wspólnego z pokazywaniem/ wyświetleniem zadań; na pewno jest to bardziej czytelne od console.log(tasks) czy splice(1, 0, "coś tam").

Dlatego za chwilę poznamy kolejne fundamentalne zagadnienie w programowaniu - funkcje - i "opakujemy" nasze dotychczasowe trudne do zapamiętania JavaScriptowe metody (ale i tak część z nich trzeba będzie zapamiętać, chociaż wystarczy po prostu często pisać kod) we własne, łatwe, zrozumiałe i reużywalne polecenia. W ten sposób powstanie wersja 1.0 naszej aplikacji.

Do dzieła!