W nawiązaniu do mojego wcześniejszego wpisu: Klik
Zrobiłem prosty program konsolowy, który pyta użytkownika o dane logowania, potem wyświetla komunikat o poprawności logowania i potem w zależności od wyniku wyświetla coś albo nie daje dostępu do czegoś.

Main
BusinessLogic
EnteredUserData
UserDataBase

Podzieliłem logikę na 3 metody. Czy to tak powinno wyglądać czy coś byście zmienili?
#programowanie #programista15k #naukaprogramowania #csharp
w sumie za dużo się tu nie dzieje, ale na pewno ponazywałbym bardziej konkretnie te obiekty.

SignInBusinessLogic / SignInUseCase / SignInService

EnteredUserData -> czy ma znaczenie tu entered? UserData byłoby bardziej przejrzyste imo

UserDataBase -> zamiast dziedzieczyc po tym, lepiej wrzucic to jako zaleznosc do tego BusinessLogic

IsEnteredDetailsCorrect -> AreUserDetailsValid ? znow, raczej nie obchodzi programu ze to zostalo "entered" + plural, bo detale
  • Odpowiedz
@Edelner:
No nie do końca. BusinessLogic jest GodClass. Umie wszystko. Od pobierania danych logowania, przez ich uwierzytelnienia, po autoryzację i wyświetlanie danych.
Ja bym tu zrobił trzy klasy:
1) CredentialRetriever (albo coś takiego), generalnie klasa, której zadaniem jest pobranie credentiali od usera, niezależnie w jaki sposób to robi. Zwrócić powinien jakąś klasę typu EnteredCredentials albo coś w tym guście.
2) CredentialAuthentication - tutaj masz metodę sprawdza czy dana osoba jest
  • Odpowiedz
Ogół prawa powinien być zawarty w jednym repozytorium git.

Inicjatywa ustawodawcza = tworzenie nowej gałęzi
Komisje sejmowe = commity
Poprawki Senatu = commity
Przekazanie do Prezydenta = pull request
Podpis Prezydenta = approval tego pull requestu
Wejście w życie = merge

Profit:
– całe prawo w jednym miejscu
– tekst jednolity dowolnej ustawy bez wysiłku człowieka
– łatwa przeszukiwalność
– dziecinnie proste sprawdzenie stanu prawnego w konkretnym dniu
– łatwa analiza poprawek
@tomasztomasz1234: kodeks prawny jest rzeczą, która wybitnie nadaje się do uproszczenia i uporzadkowania przy pomocy szeroko pojętej informatyzacji. W ogóle jest czymś w rodzaju skryptu, to po prostu zbiór reguł, który powinien być systematycznie refaktoryzowany. Pomyśl jednak o tych wszystkich prawnikach, którzy nagle zostaliby bezrobotni, kiedy prawo stałoby się czytelne dla przeciętnego Kowalskiego ( ͡° ͜ʖ ͡°) poza tym na pewno pojawiłyby się jakieś wątpliwości dotyczące bezpieczeństwa,
  • Odpowiedz
Mireczki pytanie o szeroko rozumiane web services na bazie SOAP:
Jeżeli chcę "skonsumować" usługę wystawiona przez kogoś innego to zaopatruję się w WSDL'a, mogę sobie na jego podstawie wygenerować klasy i działać.
A jak to się odbywa w drugą stronę?
Załóżmy, że to ja chcę udostępnić SOAP'em usługę.
Muszę ręcznie stworzyć WSDL'a wybierając jedno z podejść:
- contract first
- contract last

W przypadku contract last najpierw piszę kod, potem IDE magicznie
Czy ktoś jest mi w stanie wytłumaczyć jednym zdaniem dlaczego w #java podczas używania Scannera, gdy użyję metody 'nextInt()' a następnie 'nextLine', to jest ono pomijane? Podczas użycia 'next()' jest ok, natomiast pobiera on Stringa tylko do spacji to mnie nie ratuje.

Po wykonaniu poniższego kodu, wpisuję w konsolę '2' jako 'k', zatwierdzam enterem, a następnie wpisuję Stringa "wykop" który zamiast być przypisany do zmiennej 'text1' to trafia do 'text2', pobranie i
@pabl0esc0bar: Nie czytało się javadoca, oj nie. ( ͡° ͜ʖ ͡°)

Po podaniu liczby kolumn i słowa, masz na wejściu:

2134\n
wykop
Metoda nextInt() pobiera z wejścia 2134. Na wejściu zostaje:

\n
wykop
Metoda next() pobiera następne słowo z wejścia (słowa są rozdzielone białymi znakami), co oznacza, że pobierasz słowo wykop.

Jeśli zamiast tego użyjesz metoda nextLine(), to pobierze ona linię do końca, co przy \n
  • Odpowiedz
Mireczki potrzebna porada.

Mam api graphql'owe które zwraca tablicę obiektów.
Jest zrobiona swego rodzaju paginacja by per request zwracało tylko tyle obiektów ile front chce wyświetlić (by nie przesyłać wszystkiego na front i tam nie decydować co ma być wyświetlone na której stronie).

Potrzebuję dodatkowo (poza np. 5 elementami z 25) przesłać informację ile jest ich wszystkich. Po stronie backendu jest ta informacja wyciągnięta (data jpa - Page) ale graphql tak czy
  • Odpowiedz
Co powinien umieć Junior C++ w 2020 roku?
Moja wstępna lista wygląda tak:
- Podstawy pracy z GIT
- Ogarnianie środowiska programistycznego pod linuksem
- angielski
- C++/boost/SQL/Qt

Mam kilka pytań, może ktoś mógłby na nie odpowiedzieć?
1. Jak dobrze trzeba znać C++?
a) Czy trzeba ogarniać wszystkie standardy C++11/C++17/C++20? Jeśli tak, to w jakim stopniu? Trzeba znać wszystkie nowe funkcjonalności czy skupić się na najbardziej przydatnych rzeczach?

b) Czy boost to
@SredniDystans: w c++ zawodowo nie siedzę ale jako programista HTML mogę poradzić

- Ogarnij Conan lub inny menadżer. Znajomość cmake też się przyda.
- 1 a) te standardy ułatwiają programowanie w c++ np. praca że wskaźnikami. Dobrze by było poznać temat.
b) chociaż testy jednostkowe imao
2. Rekruter nie rozumie projektów na GH ale mi to więcej mówi niż rozmowa kwalifikacyjna. Imo warto. To nie musi być nie wiadomo co ale
  • Odpowiedz
@TMBRK: YAML jest fajny, bo prosty i przejrzysty, ale tylko o ile masz plugin do IDE, który zapewni Ci podpowiadanie składni dla tego konkretnie pliku (np. routingu konkretnie w symony). Z tego powodu, jak wyżej kolega wspomniał, odchodzi się od niego na rzecz innych formatów, w tym znienawidzonego XMLa, któremu wystarczy zapodać XSD, aby IDE było w stanie podpowiadać strukturę takiego pliku. ;-)

Natomiast to, czy używać tu adnotacji, to trochę
  • Odpowiedz
Mam w vue komponent, który jest osadzany w dwóch rodzicach, którzy są zgodni w 80%. Czy jeżeli większość obu komponentów rodziców jest taka sama to, czy lepiej je scalić i dyrektywami uzależnić od aktualnej strony, czy osobno, żeby nie było tam zamieszania?
#naukaprogramowania
  • Odpowiedz
@wytrzzeszcz: https://stackoverflow.com/a/47684920/12755962 wg tego rozróżnienia Staged to nie jest to samo co HEAD.

Innymi słowy w Staged będze plik z nowszymi zmianami niż w HEAD - czyli lepiej dokończyć commita i potem zrobić checkout z HEAD.
HEAD to referencja na obecny commit, a nie na Staged (alias Cached, alias Index), więc podejrzewam, że git checkout HEAD przywróci nie tą wersję, co jest w Staged.

Swoją drogą zawsze lepiej mieć więcej commitów
  • Odpowiedz
@Edelner: Wiesz, prędzej czy później będziesz musiał i tak wywołać to w jednej metodzie. Ogólnie idealne dla mnie API to takie, którego nie da się użyć źle. W tym przypadku masz API w postaci - sign_in(name, password), które zwraca obiekt sesji albo nie, to jak w środku będzie to rozwiązane, to już zupełnie inna sprawa.

Ogólnie w przypadku API, które jest podstawą bezpieczeństwa to mniejsza konfigurowalność i mniej metod do
  • Odpowiedz
@Edelner: w tym wypadku na pewno chcesz rozdzielić IO od logiki. Jak masz to zagmatwane to potem bardzo ciężko takie coś testować i używać w innym kontekscie. Podział na metody też brzmi średnio, bo metody są związane z konkretną klasą. W twoim wypadku dowolny punkt można zamienić np. pobranie z pliku, użycie sprawdzarki A i zapisanie do pliku, albo przeczytanie z konsoli, użycie sprawdzarki B i zapis do konsoli. Wszystkie te
  • Odpowiedz
@wytrzzeszcz: jak jest lokalny to git rebase -i master, jak jest spushowany to po tej operacji jeszcze git push -f, ale przed tą operacją upewnij się że nikt inny nie pracuje na tym branchu
  • Odpowiedz
20i21/100 #stodnizeswiftem

Gra w zgadywanie flagi cz. 2 i podsumowanie projektu
Wczoraj zrobiłem to, co było zaplanowane, ale kompletnie zapomniałem o zrobieniu wpisu. Nauczyłem się generować losowe ułożenie w tablicy i losowe liczby w danym zakresie, a potem zrobiłem pożytek z przycisków, które sprawdzały poprawną odpowiedź, zmieniały wynik i wyświetlały alert. Test podsumowujący projekt rozwiązany na 12/12. Pytania bardzo łatwe - jednokrotnego wyboru, dwie odpowiedzi.
Samodzielne zadania do projektu:
1. Wyświetlenie wyniku
i.....m - 20i21/100 #stodnizeswiftem

Gra w zgadywanie flagi cz. 2 i podsumowanie p...

źródło: comment_1601933075ksGqF56Y2hg1Y7VoziGBC8.jpg

Pobierz