Gdy szef każe pisać wbrew naukom Wujka Boba.

Gdy szef każe pisać wbrew naukom Wujka Boba.
Gdy szef każe pisać wbrew naukom Wujka Boba
pisałbym tak jak chce szef nawet jak byłaby to kaszana
13%
13% [6]
próbowałbym przekonać szefa
13%
13% [6]
pisałbym dalej po swojemu i miał w d.
35%
35% [17]
zwolnił się
40%
40% [19]
Julian_
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:1703
0

Szef mówi mi, m.in. że:

  1. funkcje powinienem pisać tak jak on na 50 - 100 linijek i tworzyć osobną funkcję tylko jeśli coś użyję gdzieś indziej (do innego problemu). Uważa, że zagnieżdżenia są złe i każda funkcja powinna być płaska. Jego funkcje robią 5 rzeczy np.: wyliczają coś, przekształcają coś, pobierają, zapisują, zapisują logi do bazy. Czepia się, mnie że piszę zbyt małe funkcje. Moje funkcje robią po 1 rzeczy: 1 na wyliczanie, jedna na przeksztalcenie, jedna na pobieranie, jedna na zapis, inna na zapis logów do bazy itd.

  2. jak potrzebuję fragmentu kodu z jego 50 linijkowej funkcji to nie powinienem tworzyć osobnej funkcji na ten frafment i użyć w obu miejscach wywołania funkcji tylko powinienem przekopiować ten fragment kodu który chce użyć do swojego skryptu.

  3. piszę za dużo funkcji np.:
    była funkcja, która robiła coś takiego:

Kopiuj
foo <- function(myDate, daysAdd = 10) {
  fromDate <- myDate - daysAdd
  toDate <- myDate + daysAdd
  #
# odtąd leci kod
# ...
}

uznałem, że lepiej będzie mi tym sterować jak zrobię funkcję taką o:

Kopiuj
fooNew <- function(fromDate, toDate) {
  #
# odtąd leci kod
# ...
}

a żeby działało to jego poprzednie dorobiłem:

Kopiuj
foo <- function(fromDate, toDate) {
  fromDate <- myDate - daysAdd
  toDate <- myDate + daysAdd
  fooNew (fromDate, toDate)
}

to kazał mi wyciąć ten fooNew, bo po co tak dużo pisać.

Co byście zrobili na moim miejscu?

edytowany 3x, ostatnio: Julian_
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
2

Pewnie bym próbował przekonać, ale koniec końców to on jednak Ci płaci i jeśli chce, abyś pisał w jakiś konkretny sposób, to trzeba się tego trzymać ;-)


Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:36 minut
  • Postów:6627
6

Zwolnij go ;)


🕹️⌨️🖥️🖱️🎮
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
4

Już to przerabiałem na początku kariery. Uciekaj jak najszybciej - każdy dzień to dzień stracony na kopanie się z koniem.
Wyznawcy kupy - paste się nie przeskoczy.


jeden i pół terabajta powinno wystarczyć każdemu
edytowany 1x, ostatnio: jarekr000000
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
1

Ostatni gasi światło.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
12

Pamiętam żelazną logikę kupistów: jak masz kod w jednej funkcji wiele razy użytej to jak coś zmienisz (i zrobisz błąd) to potem się wywali w 100 miejscach. Jak masz błąd w copy paste to możesz zawsze tylko ten jeden fragment kodu spokojnie zmieniać - wywali się tylko jeden kawałek :)

Na ten argument miałem co prawda kontrę, że przecież nie robimy błędów, bo mamy zabronione ( projekt managier wydał taki zakaz). Ale nie przekonałem :/


jeden i pół terabajta powinno wystarczyć każdemu
Pipes
Dobrze, że to wyszedłeś z tego cało.
S9
  • Rejestracja:ponad 10 lat
  • Ostatnio:5 miesięcy
  • Lokalizacja:Warszawa
  • Postów:3573
1

Ja w poprzedniej pracy mówiłem że stosujemy nadmiar dziedziczenia (tzn. uwazam że czasami dziedziczenie jest dobre, ale bardzo rzadko) i lepiej stosowac kompozycje to jeden z najbardziej odpowiedzielnych developerów powiedział że kompozycja ogranicza tak samo jak dziedziczenie. Wspominalem o tym żeby stosowac niemutowalne DTOsy, to zaczeli mnie dla beki nazywać "Immutable Man" a ja mam to w dupie, ich strata. Będa się grzebac w jakimś gównie a ja mam czyste sumienie


"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"
Julian_
problem w tym, że Ty też się będziesz grzebać w gównie, a to co napiszesz podpisujesz swoim nazwiskiem, a nie szef tak mi kazał
jarekr000000
Nie mówią na Ciebie funkyjny hipster aby?
S9
@jarekr000000: stosowanie niemutowalności to jest jeszcze wyznacznik fanatyzmu funkcyjnego, tym bardziej że to niemutowalne obiekty są podstawą PF nie znacza równiez że PF ma na nie monopol. I ja często stosuje PF, ale równie często OOP i nie przesadzam ani z jednym ani z 2 :D
Pipes
"Immutable Man" spoko brzmi :D
0

Dowiedz się dlaczego każe Ci pisać w taki sposób: z racjonalnego (i.e. rzeczywiście myśli że to jego sposób sprawi że końcowy produkt będzie lepszy) czy z emocjonalnego (i.e. boi się zmian, chce uchować swój autorytet, ...) powodu?
Poza tym, co leży w obowiązkach tego 'szefa'? To liniowy? Czy on rzeczywiście koduje?

Julian_
z tego powodu, że wg niego tak jest przejrzyściej i mniej kodu.
xDevil2
copy pasta daje mniej kodu?
Spine
  • Rejestracja:prawie 22 lata
  • Ostatnio:36 minut
  • Postów:6627
0

Ja w sumie też tak kiedyś miałem, że wolałem mieć kod całego procesu/algorytmu w jednym miejscu, żeby przy śledzeniu działania nie skakać po funkcjach i innych klasach. Np. mamy buble sort, to po kiego pisać jakąś tam funkcję swap itp., skoro "można" to zrobić w pętli + komentarz :D

Także, rozumiem, że ktoś bez doświadczenia takie coś robi i nikt od niego nie wymaga zmiany nawyków (bo to szef) - przecież dlatego założył własną firmę, bo nikt by go nie przyjął z takimi przekonaniami :D


🕹️⌨️🖥️🖱️🎮
edytowany 4x, ostatnio: Spine
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:2 minuty
  • Postów:8398
0

Szef mówi mi, m.in. że:

Kim jest "szef"? Jeśli przez szefa masz na myśli jakiegoś PMa, czy kogoś innego, bardziej biznesowego, to nie rozumiem, czemu ingeruje w to, co piszesz, i że w ogóle ma czas na to.

Chyba, że "szef" to lead developer, senior, czy po prostu programista z zespołu, który lubi się rządzić i szefować, to jeszcze rozumiem, że próbuje coś narzucić. Ale z drugiej strony czy to faktycznie twój oficjalny przełożony? Czy odpowiadasz przed nim i czy musisz się go faktycznie słuchać? Niektórzy ludzie się rzucają i szefują, nawet jeśli nie mają realnego wpływu.

Jego funkcje robią 5 rzeczy np.: wyliczają coś, przekształcają coś, pobierają, zapisują, zapisują logi do bazy.
Czepia się, mnie że piszę zbyt małe funkcje.

Dobra, doczytałem tutaj i widzę już, że dałem się wkręcić. Przecież to brzmi jak jakaś pasta z Wykopu o programistach...
Coś jak "Mój szef jest wielbicielem dużych funkcji".


edytowany 1x, ostatnio: LukeJL
Julian_
zapraszam Cię do Warszawy to pokażę Ci jak wygląda mój kod a jak kod szefa, jeśli nie wierzysz. Szef jest bezpośrednim przełożonym i on tworzył większość skryptów, ale programistą nie jest. Ma bardzo dużą wiedzę branżową, menedżerską i negocjatorską.
somekind
No, ale jak pisał kod, to chyba w jakimś stopniu jest "programistą".
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 19 godzin
  • Lokalizacja:Wrocław
0

Nie ma tam innych programistów? Jeśli są, to też piszą po "szefowemu"?

Julian_
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:1703
0
somekind napisał(a):

Nie ma tam innych programistów? Jeśli są, to też piszą po "szefowemu"?

piszą tak jak szef, z tą różnicą, że szef przynajmniej pisze przejrzyście - patrzysz i widzisz o co chodzi, a reszta gmatwa i zagnieżdża ify.

No, ale i tak jest lepiej niż w poprzedniej pracy, gdzie kod pisali doktoranci matematyki. Funkcje mające po kilka tysięcy linijek i nieużywanie pakietów tylko odkrywanie koła na nowo.

edytowany 1x, ostatnio: Julian_
0

A jak wyglądają unit testy do tych funkcji co robią pięć rzeczy na raz? Możesz szefowi powiedzieć że małe funkcje się łatwiej testuje ;)

Julian_
testuje?! jakie testy?! Tu nikt nie pisze żadnych testów.
TA
  • Rejestracja:ponad 9 lat
  • Ostatnio:około rok
  • Postów:315
1

@Julian_: ja bym tam wstal wyprostowal sie, strzelil kosciami i powiedzial ze ma prawo miec inne zdanie, jest juz dorosly i moze popelniac bledy kiedy chce, ale niech mi nie kaze tego robic skoro moje rozwiazanie dziala (u mnie w projekcie pare osob tak pisze - tyle ze ich kod dziala i robia to szybko wiec moge z tym zyc (jedyny problem jak sa na urlopie i mam jakis blad w ich kodzie znalezc :))). Zreszta nie masz tak zle - metoda do 100 linijek jest jeszcze do ogarniecia.

vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
2

@Julian_: dobrze myślisz z tą funkcją / lambdą fooNew (R?).
To co opisałeś to najprostszy refaktoring typu proceduralnego. Nawet człowiek który zna tylko C lub Pascala powinien go zrozumieć.

Ja myślę, że tu nie kod jest problemem tylko ten człowiek - Twój szef.
Jest masa ludzi którym się wydaje że już wszystko umieją po 5 latach pracy (sam byłem w tym miejscu). I nie przetłumaczysz im niczego "nowego".
Jeśli to osoba która ma ponad 40 lat to nie liczyłbym na jego (pozytywną) zmianę.
Daj sobie rok na oddolną poprawę sytuacji w firmie i w tym czasie się rozwijaj. A jak nic się nie poprawi to zmiataj stamtąd.

"Pisałbym po swojemu" - można próbować, ale może się skończyć tym że Ciebie wywalą, na Twoim kodzie zrobią refucktoring a potem będą sobie jeszcze robić jaja między sobą że mieli w zespole gościa który chciał pisać po książkowemu.

edytowany 2x, ostatnio: vpiotr
Julian_
szef kazał mi to usunąć, bo za dużo kodu. Chciałbym iść na javowca, ale nie umiem jeszcze springa, a ostatnio w ogóle nie mam czasu by przysiąść nad tym w domu.
Prędki_Lopez
@Julian_ Nie martw się w Javie zdarzają się tez takie kwiatki ja musiałem walczyć z metodami na 300 linii (wciąż w javie), na szczęście tylko 2 miesiące.
Julian_
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:1703
0

Znacie jakieś książki/dobre artykuły o tym jak ma wyglądać paradygmat programowania funkcyjnego?

żeby przesłać szefowi jak znów coś wymyśli dziwnego. (poza clean code)

0

moja rada, po prostu zmień pracę :)

ajgoron
  • Rejestracja:ponad 9 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Rzeszów
  • Postów:91
1

Ja w pracy ostatnio trafiłem na niezły pasztet. Algorytm pewnych przeliczeń dla różnych grup użytkowników i wielu parametrów rozwleczony na ifowisku o rozpietości ponad 1k linii + odwołania do innych metod. I weź coś zmieniaj w algorytmie jak dochodzi do określanie zmiennych jako "w" lub inne skróty...

Edit : powoli szukam nowej pracy bo większość kolegów w pracy nie widzi w takim postępowaniu nic złego. A mają po ok. 8 lat doświadczenia. ;-)


"Jedna robótka - miesiąc wódka" - Ojciec Pijo
edytowany 2x, ostatnio: ajgoron
Pipes
Uciekaj! To przeciwnicy dobrego kodu!
ZA
1K linii to jeszcze nie jest rozmiar nie do ogarnięcia. Koledzy nie widzą w tym nic złego, bo od 8 lat na niego patrzą i znają go na wyrywki. Pewnie sami go napisali i makaron powstawał krok po kroku. Zamiast od razu się zwalniać, spróbuj refaktorować po kawałku, Dopiero kiedy natrafisz na twardy opór, to się zwalniaj. Ale najpierw spróbuj.
3

Ja zauważyłem, że z każdą zmianą pracy trafiam na gorszy kod, więc bądź ostrożny :)

vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
0
Mały Ogrodnik napisał(a):

Ja zauważyłem, że z każdą zmianą pracy trafiam na gorszy kod, więc bądź ostrożny :)

Być może dlatego że czasy gdy do tej pracy zatrudniano tylko inżynierów minęły a ci co byli powoli odchodzą na dobre z IT?
Jak wytłumaczyć komuś zasady "Clean Code" jeśli nie ma za sobą co najmniej 10 tys. linii kodu?
Pomyśli sobie że jesteś ekstremistą, albo że to fajna idea i tyle.

Julian_
10 tys. lini kodu to każdy ma po 3 miesiącach pracy. Chyba 100tys.
Pipes
10 tys. linii kodu to ja w jednej klasie widziałem...
vpiotr
Jak to jest jedna klasa to też słabo trochę :)
1

kurde od stażysty wymaga sie clean codów,testów i innych dupereli i po co jak regularzy/ seniorzy piszą taka kaszanke.

zyxist
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 6 lat
  • Postów:101
2

To zależy czy szef się czepia czy nie :).

Jak się nie czepia, to piszę "po swojemu" i uzasadniam taką, a nie inną drogę. Grunt to pisać DUŻO więcej kodu niż szef tak, by powstała masa krytyczna :).

A jak się czepia i uzasadnienia nie działają, to szybka zmiana projektu.


raveltravel
raveltravel
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 5 lat
  • Postów:111
0
Julian_ napisał(a):

to kazał mi wyciąć ten fooNew, bo po co tak dużo pisać.

Co byście zrobili na moim miejscu?

Oczekujesz rzeczy niemożliwych, czyli pisania czystego i wydajnego kodu w branży data science. To tak jakby oczekiwać, że byk nam sie ocieli;) Duża część analityków danych nie ukończyła informatyki, a raczej studia związane z socjologią, statystyką czy fizyką i inne STEM. Osobiście znam tylko jedną osobę, która ma background programistyczny i zajmuję się data science.

Rozwiązaniem dla ciebie może być znalezienie nowej pracy, gdzie spektrum specjalizacji jest większe i osoby w zespole pomagają sobie nawzajem dbać o kod, a nie robi tego szef (mimo, że ma dobre intencje).

Julian_
najgorszy kod jaki widziałem należał do matematyków po doktoratacie. Tam funkcje były na tysiące linijek + szerokie na 200 znaków
PI
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 3 lata
  • Postów:171
0

Pytanie czy on faktycznie na to zwraca uwagę czy tylko Ty dopytujesz się jak to ma wyglądać. Bo jeśli on na to nie patrzy, a ty nie możesz zdecydować czy pisać tak jak on chce czy po swojemu to ja osobiście miałbym to w dupie.

Julian_
ja siedziałem cicho, on mi zwrócił uwagę, że źle piszę wg niego
ajgoron
  • Rejestracja:ponad 9 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Rzeszów
  • Postów:91
2

Dodaj w ankiecie łączoną odpowiedź. Ja próbowałem przekonać szefa i kolegów (nie za bardzo się to udało), teraz piszę po swojemu i mam w dupie plus będę szukał nowej pracy. ;-)


"Jedna robótka - miesiąc wódka" - Ojciec Pijo
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4707
7

Co do pisania po swojemu: It is often easier to ask for forgiveness than to ask for permission. It is often easier to ask for forgiveness than to ask for permission. Sami znajdźcie kto to powiedział i kiedy. IMO działa.


jeden i pół terabajta powinno wystarczyć każdemu
Pipes
Szacun, że ktoś powiedział dokładnie to samo zdanie dwa razy ;)
LS
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 6 lat
  • Postów:990
0

Jeśli odpada możliwość sprzeciwu to zostaje ostatni wspólny mianownik - czy rekompensata za utratę zdrowia jest wystarczająca. Ostatecznie w pracy zespołowej i tak wcześniej czy później musisz zrobić coś przeciwko sobie - a wtedy patrz wyżej ;)


--
Annuit Coeptis
Fantazjatyk
  • Rejestracja:ponad 8 lat
  • Ostatnio:prawie 3 lata
  • Postów:133
1

Pytanie co Ciebie motywuje aby stosować SOLID.
Czy chcesz tworzyć mniej kosztowne i problematyczne oprogramowanie... czy też może kieruje Tobą ego, potrzeba udowodnia twojej wyższości nad innymi członkami zespołu?

Jeżeli zależy ci na poprawieniu jakości oprogramowania, które tworzy twoja firma, to może powinieneś zamiast tego pogadać z szefem i uzasadnić dlaczego tak robisz, co nie powinno być problemem, jeżeli naprawdę wiesz na czym polega SOLID.
Zrobić meeting na ten temat i tak dalej...

edytowany 1x, ostatnio: Fantazjatyk
LS
Pytanie co Ciebie motywuje aby stosować SOLID. - solidna wypłata :D
Julian_
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 4 lata
  • Postów:1703
0
Fantazjatyk napisał(a):

Pytanie co Ciebie motywuje aby stosować SOLID.
Czy chcesz tworzyć mniej kosztowne i problematyczne oprogramowanie... czy też może kieruje Tobą ego, potrzeba udowodnia twojej wyższości nad innymi członkami zespołu?

Jeżeli zależy ci na poprawieniu jakości oprogramowania, które tworzy twoja firma, to może powinieneś zamiast tego pogadać z szefem i uzasadnić dlaczego tak robisz, co nie powinno być problemem, jeżeli naprawdę wiesz na czym polega SOLID.
Zrobić meeting na ten temat i tak dalej...

SOLID to raczej do obiektowego... ja chcę pisać zgodnie z paradygmatem funkcyjnym, bo sprawia mi przyjemność. A klepanie g.* nie sprawia mi przyjemności.

Pipes
Niektórym ludziom przyjemność sprawia lizanie pędów sosny i weź im wytłumacz, że to bez sensu. Programowanie funkcyjne nie jest dla przyjemności (chociaż w istocie jest przyjemne, jak się ogarnia temat dobrze), a dla wydajności, unikania problemów dla programowania współbieżnego, bardziej czytelnego i łatwiejszego do testowania kodu.
PI
Skoro nie sprawia to sam sobie odpowiedziałeś, prawda? :)
V-2
  • Rejestracja:prawie 8 lat
  • Ostatnio:9 miesięcy
  • Postów:671
1
Julian_ napisał(a):

Uważa, że zagnieżdżenia są złe i każda funkcja powinna być płaska.

No to akurat pod tym względem ma sporo racji. Duża liczba zagnieżdżeń nie świadczy dobrze o kodzie (wysoka złożoność cyklomatyczna).


Nie ma najmniejszego powodu, aby w CV pisać "email" przed swoim adresem mailowym, "imię i nazwisko" przed imieniem i nazwiskiem, ani "zdjęcie mojej głowy od przedniej strony" obok ewentualnego zdjęcia. W drugiej firmie której już pracuję mam palących marihuanę programistów [...] piszą kod "leniwie", często nie wysilając się, rozwlekając ten kod, unikając np. programowania funkcyjnego (mówię tutaj o lambdach w javie).
Julian_
to jak pogodzić single responsibility z małą ilością zagnieżdżeń?
V-2
A czemu uważasz, że między jednym a drugim zachodzi sprzeczność @Julian_? Jest raczej odwrotnie: duża liczba zagnieżdżeń sugeruje, że kod robi zbyt wiele rzeczy naraz i warto by go zmodularyzować..
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)