Wpis z mikrobloga

#programowanie #automatyka #it #lua

Mirki doświadczone w programowaniu w IT!

Będę się zajmował urządzeniami, na których się skrypty pisze w języku Lua, i muszę to robić na poziomie mistrzowskim. Podstawy jego już znam, coś tam już nawet napisałem, ale muszę wejść na wyższy poziom. I teraz pytanie - w co warto iść, chcąc pisać lepiej? Jestem automatykiem, więc pytanie nie tylko do znających Lua, ale do każdego bardziej doświadczonego programisty w #it.

Lua jest językiem wieloparadygmatowym, gdzie można korzystać z:
1. Strukturalny - Wiadomo, najprostszy.
2. OOP - Miałem na studiach, więc jako tako wiem o co kaman. Lua sam w sobie nie ma mechanizmów OOP, tylko trzeba implementować na około.
3. Programowanie funkcyjne - Dla mnie nowość, bo na studiach nie miałem. Wydaje się ciekawe, a dla Lua po prostu naturalne.

Skrypty które będę pisał to będą raczej biblioteki i funkcje mające pojedyncze zadanie, np. agregacja danych z wielu urządze dla celów transmisji dalej do systemu nadrzędnego, obróbka danych pod raporty, tłumaczenie protokołów komunikacyjnych, obsługa wizualizacji procesów przemysłowych. Myślę, że rzadko kiedy przekroczą 1000 linijek kodu, zwykle zdecydowanie mniej. Do tej pory mało kiedy nawet mi się chciało biblioteki pisać, chociaż będziemy pisać coraz większe rzeczy.

I pytania do Was:
1. Warto pchać się na moje potrzeby w OOP? To jest przerost formy nad treścią czy zawsze warto korzystać z OOP bo zawsze warto? Tym bardziej że samo Lua wymaga trochę kombinowania pod tym względem.
2. Warto postudiować programowanie funkcyjne? Wydaje się że fajnie upraszcza pewne problemy, ma zastosowanie nawet dla małych programów, w Lua to coś naturalnego. Z jakiegoś powodu jednak mimo wszystko programowanie funkcyjne w profesjonalnym programowaniu nie jest popularne z tego co czytałem. Dlaczego?
3. A może warto trochę OOP i trochę funkcyjnego, czyli hybryda? Albo dać sobie spokój i poprzestać na paradygmacie strukturalnym?
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Wegrzynski
1. Ja bym się nie pchał odrazu w OOP od początku, choć to zależy od wielkości projektu/zadania. Nie zawsze opłaca się tworzyć klasę gdzie funkcja będzie wystarczająca.
2. Zawsze będzie warto choć może nie skorzystasz teraz to innym razem będziesz miał szerszy wachlarz potencjalnych rozwiązań.
3. Jak w pierwszym punkcie, dostosuj rozwiązanie do problemu. Jest sens tworzyć klasę utils czy może moduł z funkcjami wystarczy?

Ja ze swoich gotcha w
  • Odpowiedz
@Wegrzynski tool for the job. Najpierw problem, potem zastanawiać się jak go rozwiązać.

1. Jeśli klasy i obiekty poprawiają czytelność, abstrakcja obiektowa ułatwia projektowanie - to tak. Dla samej obiektowości nie warto, zwłaszcza że język jej nie wymaga.

2. Czemu uważasz że nie jest popularne? Erlang czy scala jak najbardziej są używane profesjonalnie. Warto poznać.

3. Zależy od konkretnego przypadku. Co do zasady - rób tak żeby jak najłatwiej było to
  • Odpowiedz