REST API w Clojure

REST API w Clojure
Pangeon
  • Rejestracja:prawie 10 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Łódź
  • Postów:163
0

Witam, mamy pytanie do doświadczonych programistów. Co sądzicie o LISP-ie pod JVM Clojure ? Coraz częściej zastanawiam w jak głupi sposób, bez zrozumienia czegokolwiek robi się aplikacje webowe w Springu. Narzędzie może poznać każdy ale nie każdy napisze klarownie wyglądający program, mnie osobiście wychodzą potwory. Rozumiem działanie tych wszystkich feature'ów, nie zawsze jednak umiem to wszystko ładnie złożyć. Nie lubię nadmiaru, dużej ilości instrukcji zaciemniających działanie pewnych mechanizmów. Chciałbym zacząć rozwiązać przy pomocy nad narzędzi, wkurza mnie obecny trend, by uczyć się frameworka tylko dlatego bo jest popularny i podobno łatwy :) Gdzie tu logika?


Sukces jest progresywną realizacją wartościowej idei w ramach cierpliwego wymiaru czasu.
OtoKamil
Gdzie tu logika? - w tym, że znajdziesz pracę
lion137
  • Rejestracja:około 8 lat
  • Ostatnio:43 minuty
  • Postów:4935
1

semicolon
To są biblioteki. Z frameworków to: http://book.fulcrologic.com/ a pozostałe rozwiązania to bardziej zbiory bibliotek.
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Silesia/Marki
  • Postów:5505
6
Pangeon napisał(a):

Coraz częściej zastanawiam w jak głupi sposób, bez zrozumienia czegokolwiek robi się aplikacje webowe w Springu.

Jak ci się nie podoba framework to nie musisz od razu zmieniać języka, wystarczy zmienić framework. Może to nie których zszokuje, ale można pisać w Javie bez Springa


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
Charles_Ray
  • Rejestracja:około 17 lat
  • Ostatnio:około 4 godziny
  • Postów:1875
1

Coraz częściej zastanawiam w jak głupi sposób, bez zrozumienia czegokolwiek robi się aplikacje webowe w Springu.

Tzn. chciałbyś zainwestować więcej czasu w development, ponieważ w Springu jest zbyt łatwo? :D


”Engineering is easy. People are hard.” Bill Coughran
edytowany 1x, ostatnio: Charles_Ray
UglyMan
  • Rejestracja:około 6 lat
  • Ostatnio:ponad 3 lata
  • Postów:2206
1
Pangeon napisał(a):

Chciałbym zacząć rozwiązać przy pomocy nad narzędzi, wkurza mnie obecny trend, by uczyć się frameworka tylko dlatego bo jest popularny i podobno łatwy :) Gdzie tu logika?

Czego?

danek
  • Rejestracja:ponad 10 lat
  • Ostatnio:7 miesięcy
  • Lokalizacja:Poznań
  • Postów:797
2

Dlaczego więcej?

Z tego co zauważyłem, to zysk jest głównie na początku, bo faktycznie postawić hello worda w springu jest szybciej. Ale też spring pozawala na pokusy "skracania" sobie drogi (tu się dorzuci zależność, tu adnotacje), o których z czasem się zapomina i nagle po jakimś czasie jest problem. I tak, można spędzać czas nad czytaniem dokumentacji jak to dokładnie działa, ale gdzie tu wtedy oszczędność czasu? ;)


Spring? Ja tam wole mieć kontrole nad kodem ᕙ(ꔢ)ᕗ
Haste - mała biblioteka do testów z czasem.
edytowany 1x, ostatnio: danek
Charles_Ray
  • Rejestracja:około 17 lat
  • Ostatnio:około 4 godziny
  • Postów:1875
0

Wy chyba nie piszecie na poważnie? O_o to lepiej zamienić adnotacje na nawiasomanie? Kto to będzie potem utrzymywał?


”Engineering is easy. People are hard.” Bill Coughran
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 4 godziny
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
3
Charles_Ray napisał(a):

Wy chyba nie piszecie na poważnie? O_o to lepiej zamienić adnotacje na nawiasomanie? Kto to będzie potem utrzymywał?

Jedno i drugie -> Ja.
Nawiasomania działa dobrze nawet po latach - jak coś nie gra to się nie skompiluje.
Adnotacje niestety potrafią jakos działać nawet na serwerze testowym, ale na produkcji to już nic nie znaczy. (Ten aspekt sie poprawi jak znikną porypane zewnętrzne application serwery - wtedy przynajmniej na produkcji będzie ten dokładnmie sam zestaw jarów i rypać będzie się tak samo).

Zaznaczam na wykładach - moja osobista niecheć do Springa i podobnych wynika z pewnością z dużej mierze z tego, że lubię pracę detektywa i archeologa systemów -> utrzymanie.
Fakt, dość łatwo znajduje w takich projektach springowych co jest źle zrobione i zwykle szybko osaczam błedy. Bardzo rzadko (jednak) mogę po dłuższej analizie powiedzieć, że taki projekt jest dobry, prawie zawsze znajduje dodatkowe tony zblaszczeń, które jakimś cudem działają na produkcji.... chociaż wg specyfikacji nie powinny. I co wtedy??? (chyba z raz w tygodniu mam taki dylemat).

Bonus:
To właśnie spakowane książki od jendego klienta (w biurze), od dawna mówiłem, żeby wywalili.
Nie dość , że przestarzałe, to nawet jak były na czasie to nikt ich nie czytał - naprawdę zabawne, (całkiem czasem losowe) kombinacje adnotacji w kodzie potwierdzaja to regularnie.
books.jpg
To jedno z trzech pudeł - rozwalone, bo robiliśmy challenge - znajdź użyteczna książkę (była jedna podstępnie podrzucona).


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 7x, ostatnio: jarekr000000
P2
nieładnie tak rzucać książkami
lion137
  • Rejestracja:około 8 lat
  • Ostatnio:43 minuty
  • Postów:4935
0

@Charles_Ray:

Wy chyba nie piszecie na poważnie? O_o to lepiej zamienić adnotacje na nawiasomanie? Kto to będzie potem utrzymywał?

O co chodzi z tą nawiasomanią?


edytowany 1x, ostatnio: lion137
Zobacz pozostałe 10 komentarzy
jarekr000000
Bo niestety poziom Undefined Behavior w JavaEE/ JPA i podobnych jest całkiem podobny do tego w C, tylko występuje na innym poziomie.
Charles_Ray
Problematyczna migracja nie jest immanentną cechą JPA, tylko tony zależności, które się podbija. Zresztą nawet migracja na Javę 8 pamietam, że nie była ot tak.
jarekr000000
Migracje na jave 8 były trywialne w systemach, gdzie nie było Magii, tylko wtedy to była rzadkość. Obecnie jest podobnie z 11 lub 13 ( z tym, że przynajmniej sam Spring obecnie trzyma poziom i sam z siebie nie przeszkadza, albo jeszcze nie widziałem problemu...)
Charles_Ray
Ale magia jest i trzeba się nauczyć z nią żyć i rozumieć, co się dzieje pod maską. Samodzielne zarządzanie encjami itp nie wchodzi dla mnie w grę, nie zepnie mi się bilans zysków i strat :)
jarekr000000
@Charles_Ray: fałszywa alternatywa. Albo kwestia definicji magii.
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 4 godziny
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
1

Zamiana runtimowych adnotacji w JAVIE na normalne programowanie funkcyjne kończy się serią nawiasów w javie i takim sobie kodem. Wyglada jak mityczny LISP.
Dlatego, warto sie przesiadać na Kotlina co najmniej, Scalę (może) lepiej. Clojure to inna para kaloszy, nie mogę sie w temacie wypowiedzieć - za krótko pisałem i nic dłuższego nie utrzymywałem.


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 1x, ostatnio: jarekr000000
semicolon
  • Rejestracja:ponad 5 lat
  • Ostatnio:prawie 5 lat
  • Postów:114
1

Wy chyba nie piszecie na poważnie? O_o to lepiej zamienić adnotacje na nawiasomanie? Kto to będzie potem utrzymywał?

Jeśli chodzi o to, że jest dużo nawiasów to fakt. To może być problem, ale te nawiasy są znane od lat i istnieją na nie różne sposoby, choćby structural editing https://cursive-ide.com/userguide/paredit.html który sprawia, że przestajesz myśleć o nawiasach, ponieważ one same się dodają / usuwają na skutek wcięć jakie stosujesz. Wcięcia ma Python i to nie jest powod, by z tego powstał Ci nieutrzymywalny kod.

Używanie nawiasów też ma pewien cel i właściwości, tak samo jak głupkowaty zapis w stylu, że kot to kot:

Cat cat = new Cat();

Ale jak się zastanowisz to zwykle chodzi o jakąś kontrolę nad kodem. Deklarowanie typów narzuca Twoim danym pewną strukturę i pozwala kompilatorowi sprawdzać czy wszystko co robisz w jej obrębie ma sens. Używanie nawiasów ułatwia wyprowadzenie makr, które pozwalają rozbudować język w jakim piszesz. Takie rzeczy pozwalają zmienić perspektywę i sposób układania programu w głowie. Użycie makr nierzadko może dać Ci lepszy rezultat niż pchanie projektu przez jakieś ograniczone ramy.

Charles_Ray
Fajny przykład z tym kotkiem, ale może kawałek większego programu? :)
semicolon
przecież napisałem, że typowanie też ma swoje zalety
Tasmanian Devil
Hej! Twój post prawdopodobnie zawiera niesformatowany kod. Użyj znaczników ``` aby oznaczyć, co jest kodem, będzie łatwiej czytać. (jestem botem, ta akcja została wykonana automatycznie, prawdopodobieństwo 0.9999889)
jarekr000000
Co do przykładu z new Cat Bruce Eckel na geeconie fajnie pojechał po tym new, jako absurdzie javy (spadek po c++, który dopiero w kotlinie jest wywalony).
S9
  • Rejestracja:ponad 10 lat
  • Ostatnio:6 miesięcy
  • Lokalizacja:Warszawa
  • Postów:3573
2
Charles_Ray napisał(a):

Wy chyba nie piszecie na poważnie? O_o to lepiej zamienić adnotacje na nawiasomanie? Kto to będzie potem utrzymywał?

Kod możesz debugować adnotacji nie. Nie mówie koniecznie o porzuceniu adnotacji i nawet Springa ponieważ uważam że w odpowiedni sposób użyty jest dobry dla projektu, tylko żeby nie przesadzać, np. logikę biznesową mieć wolną od tych wchystkich @Compoment/@Service/@Autowired, a beanami niech bedą fasady.


"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.