Czym zajmuje się backend Dev?

Czym zajmuje się backend Dev?
J9
  • Rejestracja:prawie 3 lata
  • Ostatnio:około 2 lata
  • Postów:19
0

Od pewnego czasu uczę się programowania. Chciałbym ugruntować swój punkt widzenia i dowiedzieć się jak tak naprawdę wygląda praca backend programisty. Postaram się opisać moje wątpliwości wraz z pytaniami.

Przez dłuższy okres czasu uczyłem się programowania tworząc różnego rodzaju konsolowe aplikacje. Zacząłem pisać coraz bardziej rozbudowane aplikacje konsolowe z podłączeniem do baz danych i pełnym crudem.

Pytanie1: czy w pracy tworzy się w ogóle aplikacje konsolowe czy one służą głównie nauce programowania?

Pytanie2: czy to prawda, że najczęściej klepie się backend pod frontowe aplikacje? Jeżeli tak, to czy zwykle rola backendowca sprowadza się do stworzenia API z określonymi endpointami, zabezpiecza aplikacje i ogólnie robi z góry ustaloną logikę do webserwisu z której korzysta front?

Pytanie3. Jezeli np. do portfolio się robi (przykład) projekt typu mini serwis społecznościowy czy np. internetowy komunikator online to poza backendem suma sumarum powinno się do portfolio również stworzyć frontend co sprowadza się również do tego, że trzeba ogarnąć HTML CSS JS chociażby na poziomie podstawowym?

Jak tak naprawdę wygląda praca programisty backendu?

IA
  • Rejestracja:prawie 3 lata
  • Ostatnio:ponad rok
  • Postów:40
1

Ad1. Raczej konsolówki to nie... Chyba, że ma to być jakieś wewnętrzne narzędzie do "czegoś".

Ad2. To zależy od projektu. Można też np. robić API komunikujące się z urządzeniem i przesyłające dane do bazy.

Ad3. Nie koniecznie. Jeśli nie ogarniasz frontu to nie ma takiej potrzeby. Znam backendowców nie potrafiących dosłownie nic z frontu poza wstawieniem tabeli w HTML i mają się dobrze.

LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:6 minut
  • Postów:8406
3
Java91 napisał(a):

Pytanie1: czy w pracy tworzy się w ogóle aplikacje konsolowe czy one służą głównie nauce programowania?

Dziwne pytanie. Czym jest "aplikacja konsolowa" i czemu zasługuje na odpowiednią kategorię? (tzn. faktycznie jest taka kategoria programów, ale dziwi mnie porównanie)

Jeśli aplikacja konsolowa to taka, która pisze tekst na standardowe wyjście (np. konsolę) i przyjmuje input ze standardowego wejścia (np. klawiatury), to idąc tym nazewnictwem można by powiedzieć na backendzie zwykle tworzy się aplikacje portowe :D ponieważ taka aplikacja zwykle komunikuje się ze światem i wewnętrznymi usługami po odpowiednich portach https://en.wikipedia.org/wiki/Port_(computer_networking) nawiązując i akceptując różne połączenia sieciowe.

Czyli ogarnij trochę networking, bo to się przyda, żeby zrozumieć, jak działają takie aplikacje.


edytowany 3x, ostatnio: LukeJL
J9
  • Rejestracja:prawie 3 lata
  • Ostatnio:około 2 lata
  • Postów:19
0

@LukeJL: ok, chodziło mi o programy konsolowe Odpowiesz również na pyt2 i 3? Z góry dzięki

edytowany 1x, ostatnio: Java91
LukeJL
takie się nie tyle pisze (chyba, że jakieś skrypty Basha albo jakieś pomocnicze toole jak już było wspomniane), co używa gotowych, bo dużo narzędzi ma interfejs właśnie konsolowy/CLI.
SP
SP
  • Rejestracja:ponad 2 lata
  • Ostatnio:ponad 2 lata
  • Postów:33
2

w jednej firmie jak w ogólnie webowej apce mieliśmy batch joby to wystawialiśmy je jako konsolówki odpalane przez harmonogram zadań w windowsie

Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 2 godziny
  • Lokalizacja:Laska, z Polski
  • Postów:10056
4
Java91 napisał(a):

Pytanie1: czy w pracy tworzy się w ogóle aplikacje konsolowe czy one służą głównie nauce programowania?

Oczywiście ze się używa, praktycznie każde narzędzie z którym się pracuje ma interfejs konsolowy. Może nie działają one tak jak w szkole, typu "Podaj liczbę:", ale argumenty uruchomieniowe, opcje, statusty błędów, i wyjście standardowe wyjscie error, i stanard input jak najbardziej. Sam napisałem dziesiątki takich narzędzi do pracy. To najprostszy interfejs jaki możesz zaprojektować dla narzędzia, potem najpewniej będzie okienkowy, potem api, potem webowe, tak strzelam.

Pytanie2: czy to prawda, że najczęściej klepie się backend pod frontowe aplikacje? Jeżeli tak, to czy zwykle rola backendowca sprowadza się do stworzenia API z określonymi endpointami, zabezpiecza aplikacje i ogólnie robi z góry ustaloną logikę do webserwisu z której korzysta front?

Określenia "backend i frontent" z definicji odnoszą się do aplikacji webowych "web application back-end" oraz "web application front-end". Dodatowko, z takiego interfejsu serverowego mogą korzystać też aplikacje mobilne, tak naprawdę technologia klienta nie ma znaczenia.

Niestety 90% pracy na rynku programistycznym teraz, to są aplikacje webowe właśnie, z czego większość to crudy, więc zawód "backendowca" został sprowadzony własnie "tego co robi endpointy".

Pytanie3. Jezeli np. do portfolio się robi (przykład) projekt typu mini serwis społecznościowy czy np. internetowy komunikator online to poza backendem suma sumarum powinno się do portfolio również stworzyć frontend co sprowadza się również do tego, że trzeba ogarnąć HTML CSS JS chociażby na poziomie podstawowym?

Nie koniecznie. W mojej opinii do portofilio nadaje się cokolwiek, co wymaga jakiejś umiejętności do zrobienia, a nie faktyczny końcowy stan jakiegoś projektu. Jeśli ktoś zrobił tylko warstwę persystencji, i nic innego; ale w taki sposób, że zasługuje to na szacunek, to jaknajbardziej się nadaje do portfolio.

Jak tak naprawdę wygląda praca programisty backendu?

Nie tak jak prawdziwe programowanie, to na pewno.

Sporo pracy zostało sprowadzone do prostego algorytmu:

  • wbij na SU o 9:00, powiedz który endpoint robisz
  • dodaj endpointy, który nic nie robi tylko robi jednego calla do service'u, który nie robi nic oprócz jednego call'a do repozytorium, które nic nie robi, tylko kilka fetchy z bazy - nazwij to "onion architecture" (mimo że z architekturą nie miało to za wiele wspólnego)
  • miej ochotę napisać testy, ale nie napisz ich
  • odpal linter, popraw wszystko co sonar karze poprawić, bo on wie lepiej niż programista
  • dodaj dokumentację w stylu GET /users - get all users.
  • zrób commita który zawiera zero informacji oprócz ticketu w jirze, np FR-123 Added endpoint
  • zrób PR'a, poczekaj aż koledzy na "review" znajdą wszystkie literówki, dostań approve'a, zmerguj.
  • poczekaj aż QA strzeli z postmana w endpoint jeden raz i mu się nie wywali - dostałeś zielone światło na proda
  • módl się żeby się nic nie wyywaliło na produkcji
  • na każdym retro płacz jak bardzo dużo macie techdebt, ale nic z tym nie rób.

to tak w skrócie.

edytowany 3x, ostatnio: Riddle
SE
Wspolczuje pracy :(
R7
Prawdziwe programowanie skończyło się w momencie, kiedy do zrobienia czegoś użytecznego trzeba kilkunastu ludzi. Złożoność aplikacji wzrosła niesamowicie.
C1
  • Rejestracja:około 5 lat
  • Ostatnio:7 dni
  • Postów:37
1
  1. Niemal zawsze służą nauce programowania. Czasem jakiś tool bashowy lub wewnątrz firmowy tool jest w konsoli.
  2. Jak logika apliakcji jest prosta to rzeczywiście praca polega na tym, żeby dodać endpoint i serwis i 'done'. Często trzeba jednak wykminić, o co właściwie chodzi w taksu. Jak ma się to do obecnego stanu kodu, czy da się to w ogóle zrobić lub w jakim stopniu. Czasem trzeba przeprowadzić analizę jak zmodyfikować funkcjonalność i trzeba sprawdzić co może ewentulanie wybuchnąć, a po zaimplementowaniu trzeba się modlić, żeby coś jednak nie wybuchło - często coś o czym nie mieliśmy pojęcia. Są też zadania z analizą i poprawą performance'u.

Fajnie gdyby to tak wyglądało, że analityk / architekt wszystko ogarnęli, a code monkey ma tylko zaimplementować. Rzadko kiedy analityk będzie na tyle ogarnięty, żeby to tak działało. Najczęściej to co może zrobić, to forward maila od klienta.

  1. Zastanawiam się czy ktokolwiek patrzy w portfolio backendowca. Ale fajnie jak już zrobiłeś backend, żeby frontend nie wyglądał jak totalna kupa. Alternatywnie interaktynwy swagger do puszczania request'ów.
edytowany 1x, ostatnio: chomik123
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)