Jaki sposoby na REST API oprocz Springa

Jaki sposoby na REST API oprocz Springa
WhiteLightning
  • Rejestracja:prawie 14 lat
  • Ostatnio:3 dni
  • Postów:3168
0

Znacie jakies fajne sposoby na postawienie prostego REST API bez uzycia Springa czy Spring Boota ? Chetnie w swiecie JVM ale niekoniecznie.

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

Ktor, ratpack, javalin


Spring? Ja tam wole mieć kontrole nad kodem ᕙ(ꔢ)ᕗ
Haste - mała biblioteka do testów z czasem.
KA
Ktor u nas odpoadł produkcyjnie odrzucony przez jakiś zespół
DA
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 2 miesiące
  • Postów:176
3

Micronaut jest świetny.

jarekr000000
Spring z ludzą twarzą :-)
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 7 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4706
3

jeden i pół terabajta powinno wystarczyć każdemu
KA
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:594
1

Uważam, że framework ma małe znaczenie i wszystko jest do siebie bardzo podobne.

Uważam, że niszowe frameworki to głupota i najczęściej zwykły hype i większe zło bo nagle ten nie-spring jest jeszcze gorszy niż sam Spring.

Biorą później te wszystkie reactive-sreactive i nie mają pojęcia jak tego używać.

edytowany 1x, ostatnio: karsa
WhiteLightning
zaloz sobie watek we flamie jak Cie to boli...
KA
Nie rozumiem. Wyrażam swoje zdanie i tyle. Dla mnie folklor to minor, a ich różnorodność wprowadza większe complexity.
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 7 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4706
1

Uważam, że framework ma małe znaczenie i wszystko jest do siebie bardzo podobne.
spuszczam na Ciebie hejt. Co to za herezje?
Czemu nie piszesz w Visual Basicu?

Poza tym jedyny niszowy framework w tym wątki jak na razie to chyba javalin. (ale może się nie znam).


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 1x, ostatnio: jarekr000000
woolfik
bo za VB nie płacą tyle co za jave :D
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:12 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
1

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
KA
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:594
1
jarekr000000 napisał(a):

Uważam, że framework ma małe znaczenie i wszystko jest do siebie bardzo podobne.
spuszczam na Ciebie hejt. Co to za herezje?
Czemu nie piszesz w Visual Basicu?

Bo nie jest w javie Panie "Folklor 4programmers"
Żadne herezje, wrzucanie gdzies na proda jakiegoś http4s gdy 10 innych zespołów używa Springa to delikatnie mówiąc "niezbyt mądre".

Fixowanie się na frameworkach gdy jest tysiąc innych ważniejszych rzeczy jest po prostu słabe.

edytowany 1x, ostatnio: karsa
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 7 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4706
2
karsa napisał(a):

Bo nie jest w javie Panie "Folklor 4programmers"
Żadne herezje, wrzucanie gdzies na proda jakiegoś http4s gdy 10 innych zespołów używa Springa to delikatnie mówiąc "niezbyt mądre".

Fixowanie się na frameworkach gdy jest tysiąc innych ważniejszych rzeczy jest po prostu słabe.

Właśnie prezentujesz fixowanie się na frameworkach.
Przy okazji, jeśli 10 zesołów używa springa to wręcz krytyczne jest, zeby czasem użyć czegoś innego.
Jeśli tego nie zrobisz to będziesz myślał, że nie ma różnicy między frameworkami.

Spring też kiedyś był niszowy.


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 2x, ostatnio: jarekr000000
KA
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:594
0
jarekr000000 napisał(a):

Właśnie prezentujesz fixowanie się na frameworkach.
Przy okazji, jeśli 10 zesołów używa springa to wręcz krytyczne jest, zeby czasem użyć czegoś innego.

Spring też kiedyś był niszowy.

To będą sami z tym frameworkiem bez żadnego wsparcia na produkcji.
Lepszy jeden solidny stack niż anarchia.

Co w tym krytycznego by użyć czegoś innego? Jakiż to inżynieryjny argument za tym stoi poza jarkową nienawiścią do Springa?

edytowany 1x, ostatnio: karsa
NN
NN
  • Rejestracja:około 5 lat
  • Ostatnio:około 4 lata
  • Postów:239
1

Żadne herezje, wrzucanie gdzies na proda jakiegoś http4s gdy 10 innych zespołów używa Springa to delikatnie mówiąc "niezbyt mądre".

Czemu nie jest zbyt mądre? To, co robią inne zespoły nie powinno nas za bardzo interesować, najwyżej jakiś manago pomarudzi, że wdrażanie ludzi przy zmianie zespołu trwa miesiąc dłużej. No i Spring ze Scalą (bo piszesz o http4s ) ...

edytowany 1x, ostatnio: null null
superdurszlak
  • Rejestracja:prawie 7 lat
  • Ostatnio:około 3 godziny
  • Lokalizacja:Kraków
  • Postów:1999
4

@karsa ostatnio w co drugim wątku wyskakujesz z czapy z bulgotem jacy to programiści są źli bo cośtam, teraz padło na złych programistów którzy nie chcą klepać w Springu? :D

Pójdź za radą @WhiteLightning i załóż sobie wątek we Flame do hejtowania wielkich panów inżynierów klepaczy crudów, nikomu nie będziesz przeszkadzał a niejeden się chętnie dołączy

A w temacie to nie JVM, przestałem śledzić i nie wiem czy się jeszcze rozwija, ale kiedyś we Flasku można było najprostsze API w paru(nastu) linijkach sklecić


edytowany 1x, ostatnio: superdurszlak
KA
wypisz mi proszę to w co drugim wątku
BraVolt
  • Rejestracja:prawie 6 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Warszawa
  • Postów:2918
1
karsa napisał(a):

Żadne herezje, wrzucanie gdzies na proda jakiegoś http4s gdy 10 innych zespołów używa Springa to delikatnie mówiąc "niezbyt mądre".

Mądre/nie mądre to się dopiero okaże przy dobieraniu nowych ludzi do tego zespołu (wszędzie jest naturalna rotacja).

a) Spoko, niszowego frameworka nauczy się w pracy
b) MUSI mieć komercyjne doświadczenie rok, najlepiej 2 lata, w naszym niszowym frameworku na którym jedziemy.

Nic trudnego wrzucić coś niszowego i na tym bazować. Sztuka to później normalnie utrzymać i rozwijać.


"Kiedy wiedzieć czy zacząć nauke Springa? bo w czystej Javie to nic ciekawego nie zrobie chyba"
Ein Volk, ein Reich, ein Kwa-Kwa ***** ***
edytowany 2x, ostatnio: BraVolt
KA
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:594
1
null null napisał(a):

Żadne herezje, wrzucanie gdzies na proda jakiegoś http4s gdy 10 innych zespołów używa Springa to delikatnie mówiąc "niezbyt mądre".

Czemu nie jest zbyt mądre? To, co robią inne zespoły nie powinno nas za bardzo interesować, najwyżej jakiś manago pomarudzi, że wdrażanie ludzi przy zmianie zespołu trwa miesiąc dłużej.

Spytaj wszystkich dev(opsów) lub platform engineers z większych firm to się dowiesz. Nie tylko programiści żyją w tym światku.
Zespoły produktowe muszą używać pewnego rodzaju platformy. Nawet w Netflixie wiekszość to teraz już Spring jezeli chodzi o JVM, a niby firma taka uprawiająca autonomie...

Ludzie biorą sobie jakiś nowy framework i później braki w:

  • observability
  • resilience
  • integracje z różnego rodzaju toolingiem

Bo coś co było np. w springu z paczki to zespół nie raczył pomyśleć, że coś trzeba jednak doklepać.

edytowany 1x, ostatnio: karsa
jarekr000000
I to jest dobry argument. Aczkolwiek to nie jest tak, że musisz dużo naklepać - spring ma tylko gotowy glue - odpalany z automatu do różnych integracji, zipkin, hystrix itd. Ale to nie jest tak, że trzeba się dużo naklepać, żeby to mieć. Biblioteki nadal są i normalnie się z nich korzysta.
KA
No nie musisz dużo naklepac ale pytanie czy ktos pomysli o tym by dorzucic jakas libke i zrobic samemu. Czesto w firmach masz jakis template z włączonymi rzeczami na springowym actuatorze bo skopiowali to z firmowego templatu i magicznie dziala, ale nawet nie zdaja sobie sprawy.
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 7 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4706
1
karsa napisał(a):

To będą sami z tym frameworkiem bez żadnego wsparcia na produkcji.
Lepszy jeden solidny stack niż anarchia.

To nie jest anarchia, to jest postęp.
Ktoś kiedyś użył C++, jak wszystkim starczało C.
Ktoś użył Javy, jak w modzie był visual basic, Pascal i C++.
Jakiś heretyk wdrożył Springa jak wszytko było Java EE (i to nawet niedawno).

Co w tym krytycznego by użyć czegoś innego? Jakiż to inżynieryjny argument za tym stoi poza jarkową nienawiścią do Springa?

Główny argument to taki, że bardzo trudno, wręcz niemożliwe, jest znalezienie kogoś kto tego Springa ogarnia. Framework pole minowe - konkretne narzekania już wielokrotnie prezentowałem.
Osobiscie znam ludzi, którzy pracują ze Springiem od wersji 1.x i kompletnie nie ogarniają (co bardzo boli na produkcji).


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 1x, ostatnio: jarekr000000
KA
język programowania a framowrk to coś zupełnie innego. C dalej się swietnie sprawdza tam gdzie ma sens.
jarekr000000
Dla mnie zbliżona sprawa, bo Spring to właśnie tak naprawdę osobny, niekompatybilny z normalną javą język, taki troche mix między javą, a javascript. Frameworki takie są.
KA
w ogóle nie jest zbliżona sprawa, gdzie C/C++ porównywać do Javy, to nie ma sensu.
KA
Guess what. Ludzi co piszą w niszowych frameworkach jest... jeszcze mniej albo wcale ;) To tak jak w firmie szukalismy ludzi do Golanga - z tym jest jeszcze gorzej. Bo z frameworkiem jeszcze ludzie jakos sobie poradza a z językiem trudniej.
jarekr000000
No tak, ale springowiec jest jeden - Jurgen Hoeller i niestety jest dość zajęty.
KA
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:594
1
BraVolt napisał(a):
karsa napisał(a):

Żadne herezje, wrzucanie gdzies na proda jakiegoś http4s gdy 10 innych zespołów używa Springa to delikatnie mówiąc "niezbyt mądre".

Mądre/nie mądre to się dopiero okaże przy dobieraniu nowych ludzi do tego zespołu (wszędzie jest naturalna rotacja).

a) Spoko, niszowego frameworka nauczy się w pracy
b) MUSI mieć komercyjne doświadczenie rok, najlepiej 2 lata, w naszym niszowym frameworku na którym jedziemy.

Nic trudnego wrzucić coś niszowego i na tym bazować. Sztuka to później normalnie utrzymać i rozwijać.

Oraz będziesz beta testerem bo pierwszy się przekonasz najprawdopodobniej jak coś się wywali na produkcji. Jak w przypadku kotlinowego http4k gdzie były jeszcze deadlocki na http cliencie w 2019 roku. Wielu też nie bierze pod uwagę, że czegoś najprawdopodobniej będzie brakować i będzie trzeba to doklepać samemu lub zwyczajnie zintegrować.

http://boringtechnology.club/

edytowany 2x, ostatnio: karsa
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 7 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4706
3
karsa napisał(a):

Oraz będziesz beta testerem bo pierwszy się przekonasz najprawdopodobniej jak coś się wywali na produkcji. Jak w przypadku kotlinowego http4k gdzie były jeszcze deadlocki na http cliencie w 2019 roku. Wielu też nie bierze pod uwagę, że czegoś najprawdopodobniej będzie brakować i będzie trzeba to doklepać samemu.

Chciałem się tylko spytać czy OP napisał, że wrzuca na produkcję, bo właśnie przepisywać będzie Netflixa?

Sorry, ale to normalne, że zanim się z czymś pójdzie na produkcję to się testuje na małych projektach. Czasem rok, czasem dwa. Robi load testy, DOSy itd.
Jest się beta testerem (choć serio - w przypadku większości tu wymienionych to raczej tylko nazywanie tego beta testami to ignorancja).
Dla mnie ważne jest przetestowanie w pracy zespołowej - bo w zgranym, jednososobowym zespole wszystko idzie zwykle dobrze.

Ale oczywiście można to olać, bo przecież jest Spring - nic już lepszego nie powstanie, po co się męczyć.


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 1x, ostatnio: jarekr000000
KA
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:594
0
jarekr000000 napisał(a):
karsa napisał(a):

Oraz będziesz beta testerem bo pierwszy się przekonasz najprawdopodobniej jak coś się wywali na produkcji. Jak w przypadku kotlinowego http4k gdzie były jeszcze deadlocki na http cliencie w 2019 roku. Wielu też nie bierze pod uwagę, że czegoś najprawdopodobniej będzie brakować i będzie trzeba to doklepać samemu.

Chciałem się tylko spytać czy OP napisał, że wrzuca na produkcję, bo właśnie przepisywać będzie Netflixa?

Sorry, ale to normalne, że zanim się z czymś pójdzie na produkcję to się testuje na małych projektach. Czasem rok, czasem dwa. Robi load testy, DOSy itd.
Jest się beta testerem (choć serio - w przypadku większości tu wymienionych to raczej tylko nazywanie tego beta testami to ignorancja).
Dla mnie ważne jest przetestowanie w pracy zespołowej - bo w zgranym, jednososobowym zespole wszystko idzie zwykle dobrze.

Ale oczywiście można to olać, bo przecież jest Spring - nic już lepszego nie powstanie, po co się męczyć.

Oczywiscie i sie zgadzam.
Ja osobiscie też najpierw bawie sie sam i waliduje coś by ewentualnie w ogole pomyslec o wdrożeniu.
Ale większosc ludzi realnie testuje dopiero na produkcji.

Chyba jeszcze nie padło, u mnie w firmie jest jeszcze Vert.x - chociaż byłem przeciwny z powodów powyższych i brakowało dobrego rationale.

Osobiście spędziłem trochę czasu na poznanie trochę języków i frameworkow. Miało to sens tylko tam gdzie coś się różniło diametralnie.

Ale w przypadku frameworkow, ich nauka to się wydaje po prostu stratą czasu.
Lepiej się pouczyć Linuxa, Clouda, http, TCP itp.

edytowany 2x, ostatnio: karsa
WhiteLightning
  • Rejestracja:prawie 14 lat
  • Ostatnio:3 dni
  • Postów:3168
1

@jarekr000000: zadna produkcja totalnie dla zabawy i eksperymentowania.

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 7 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4706
1

Może napisz więcej co chciałbys zrobić i jakie języki Ci pasują. To można będzie konkretniej doradzić.


jeden i pół terabajta powinno wystarczyć każdemu
KA
  • Rejestracja:prawie 11 lat
  • Ostatnio:około 2 lata
  • Postów:594
2

Jeżeli znasz Javę to może Scala i może akka-http lub ten http4s.

Jeżeli chodzi o pracę to prędzej kotlin, to i tak warto zobaczyć jak to działa ze Spring lub jakiś http4k, ktor, Vert.x.

Lub zupełnie inny biegun Go, samo sdk lub z go-chi.

Lub Elixir z phoenix.

imo i tak lepiej się skupić na czymś innym.

edytowany 2x, ostatnio: karsa
Zobacz pozostałe 2 komentarze
KA
Observability, alerting, tracing to też sporo do ogarnięcia
KA
infra as a code
WhiteLightning
tego mam po korek w pracy i nie chce mi sie nad tym po godzinach siedziec...
KA
Spoko, imo jednak zysk z zabawy frameworkami jest generalnie niski, nie czuje generalnie by mnie to czegoś wielce nauczylo
WhiteLightning
  • Rejestracja:prawie 14 lat
  • Ostatnio:3 dni
  • Postów:3168
0

@jarekr000000: chce pobawic sie narzedziami testowymi pod katem performance, testy backendu, end to end itp. Kladac nacisk wlasnei na strone testowa. Wiec chce sobie postawic prosty serwis restowy, do ktorego bede sie dobijal z poziomu testow. Moze sie z tego cos wiecej wykluje, moze nie. W Springu wiem jak to zrobic i mam go w pracy stad chce sie pobawic czyms innym. Co do jezykow -> najchetniej cos z JVM, przy czym chetnie sie dowiem jesli ktos zna fajne rozwiazania w innych jezykach (najprawdopodobniej nie uzyje, ale bede wiedzial ze takie cos istnieje).

jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 7 godzin
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4706
2

Do takiej zabawy chyba niezły będzie Ratpack:

  • bije wszystko co znam (poza może gołym Apache HTTP) pod wzlędem odporności na obciążenie,
  • umożliwia niezłą kontrolę nad przetwarzaniem - np. zrobienie takiego głupiego serwera, który przyjmie na twarz 10 tys requestów... poczeka 2 minuty, i dopiero odpowie,
  • non blocking,

Wady:

  • jest w javie,
  • nie wspiera HTTP2.0

Ktor kotlinowy jest zbliżony, ale bardziej sophisticated, i tak sobie zdokumentowany. więc mimo fajniejszczego jezyka muszę przejrzeć kod serwera, aby dowiedzieć się jak niektóre sztuczki zrobić.
Tu przykład dziwnego testu, który miał pokazać czy ktor jest faktycznie non-blocking:
https://github.com/neeffect/nee/blob/master/nee-ctx-web-ktor/src/test/kotlin/pl/setblack/nee/ctx/web/KtorThreadingModelTest.kt


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 3x, ostatnio: jarekr000000
IN
co w tym złego, że w javie?
jarekr000000
@Inari W sumie to bez sensu napisałem.
nowyworek
  • Rejestracja:prawie 5 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:świat
  • Postów:174
3

Do takich małych rzeczy używamy niekiedy
http://sparkjava.com/


Julian
KE
Spark jest fajny, też używałem do małych rzeczy.
lambdadziara
  • Rejestracja:ponad 6 lat
  • Ostatnio:3 minuty
  • Postów:442
1

jax-rs, implementacje - resteasy, jersey itp

AK
  • Rejestracja:ponad 6 lat
  • Ostatnio:około rok
  • Postów:3561
2

A o biednej Javie EE / Jakarcie zapomnieliście?
https://eclipse-ee4j.github.io/jakartaee-tutorial/jaxrs002.html#GILIK

Kopiuj
package jakarta.tutorial.hello;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;

/**
 * Root resource (exposed at "helloworld" path)
 */
@Path("helloworld")
public class HelloWorld {
    @Context
    private UriInfo context;

    /** Creates a new instance of HelloWorld */
    public HelloWorld() {
    }

    /**
     * Retrieves representation of an instance of helloWorld.HelloWorld
     * @return an instance of java.lang.String
     */
    @GET
    @Produces("text/html")
    public String getHtml() {
        return "<html lang=\"en\"><body><h1>Hello, World!!</h1></body></html>";
    }
}



Bo C to najlepszy język, każdy uczeń ci to powie
edytowany 1x, ostatnio: AnyKtokolwiek
Zobacz pozostałe 6 komentarzy
KA
Adam Bien byłby dumny
KA
@jarekr000000: w czasach Springa 3 i beanach w XML to ta JEE wcale nie była taka zła. I ogolnie to może być całkiem lightweight, mnie najbardziej wkurzało tam CDI - Weld, bo zmuszało by mieć wszystko publiczne
jarekr000000
W czasach Springa 3.0 to mi się wydawało, że Beany, Adnotacje i Serwery Aplikacji to jest dobry pomysł (-‸ლ)
KA
wyczuwam tęsknotę za jakims websphere albo weblogic ;>
AK
a co do adnotacji, te z Jakarty są wg mnie sensowne (zależnie czy ktoś akceptuje adnotacje w ogóle), z jasnym przeznaczeniem, w niezbyt dużej liczbie. Spring już dawno poszedł, wymyśliło mi się to słowo przy radiu, w populizm @NaprawToAPotemZróbKawe
PA
  • Rejestracja:około 6 lat
  • Ostatnio:około 2 lata
  • Postów:426
3

Servant to bardzo przyjemna biblioteka.
Jego głównym celem jest stworzenie abstrakcji do opisu api. To punktuje głównie wtedy, kiedy robisz frontend w haskellu i masz out of the box integracje z abstrakcjami frontendu (np. https://github.com/imalsogreg/servant-reflex) + statyczne typowanie na cały projekt.

edytowany 2x, ostatnio: part
CS
  • Rejestracja:ponad 6 lat
  • Ostatnio:4 minuty
  • Postów:296
1

@WhiteLightning: Gdybyś między dobrym a łatwym chciał wybrać to drugie to może... Express ;-). Ostatecznie JS to najbardziej naturalny język do REST-a.

VD
Rozwiniesz ostatnie zdanie? Ciekawy jestem :)
stivens
@VeloxDigitis: pewnie chodzilo o JSON-a
KA
Nie ma Dżejsona
CS
lambdadziara
  • Rejestracja:ponad 6 lat
  • Ostatnio:3 minuty
  • Postów:442
1

robie teraz klienta do API w react router i jest to calkiem proste i wygodne w obsludze, nie wiem jak ludzie mogli sie meczyc z tym JSF (albo piseli klienta w jquery?)

nowyworek
  • Rejestracja:prawie 5 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:świat
  • Postów:174
0
lambdadziara napisał(a):

robie teraz klienta do API w react router i jest to calkiem proste i wygodne w obsludze, nie wiem jak ludzie mogli sie meczyc z tym JSF (albo piseli klienta w jquery?)

W jsfie wszystko kreci sie wokol ajaxa


Julian
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)