Month: April 2019

[GIT] Jak poradziś sobie ze znakami końca linii (.gitattributes)

Posted on Updated on

Już kiedyś o tym pisałem tylko z tamtego wpisu muszę wywalić że autocrlf.true jest dobre: Rozwiązanie CRLF dla git (znaki końca linii w Windows)

Na różnych systemach znaki końca linii są inne (Windows – CRLF, Unix – LF, Mac – CR).

Więc podczas zapisywania historii plików potrzebna jest standard jak to zapisywać. Tym standardem jest LF. Podczas wyciągania takich plików z repo na dysk następują na Windowsie zmiana na CRLF a na Macu na CR. Podobnie w drugą stronę, pliki na Windowsie edytowane z CRLF podczas zapisu do repozytorium zostaną zamienione na LF.

Kiedyś, żebo to zrobić to ustawiało się opcję autocrlf.true globalnie dla systemu. Teraz już tak nie należy robić, trzeba to zrobić w repozytorium. Żeby to dobrze zrobić na dziś dzień korzysta się z plików .gitattributes.

Poniżej taki plik jako gist, którego sobie będę utrzymywał:

Advertisements

Chcę wrzucić commita na nie mój projekt na githubie

Posted on

– Forkuję ten projekt.
– clonuję mojego forka.
– ustawiam nowy remote wskazujący na oryginalne repo (to tak bardziej na przyszłość) – nazywam go upstream
– tworzę brancha (konwencją dowolna, byle się nazywał podobnie jak Pull Request który zrobię)
– wrzucam moje zmiany
– robię Pull Request z mojego brancha na mastera w oryginalnym repo.
– gdy master oryginalny posuwa się do przodu to się z nim synchronizuję: ‘git checkout master; git reset –hard upstream/master’

!!! nie działa w C:\Work\GitHub\Tellurium\.git – nie wiem jak zrobić update do upstream/master

ZoomIt – powiększanie i rysowanie na ekranie

Posted on

ZoomIt to bardzo przydatne narzędzie do prowadzenia szkoleń i prezentacji (pod Windows, od Sysinternals). Ma 3 proste feature’y:

zoomit features

  • Timer – prosty licznik w dół, przydaje się podczas przerw, aby pozostały czas był widoczny. To pomaga się zorganizować grupie.
  • Draw – Pozwala rysować na ekranie. Najlepszym kolorem jest niebieski, który widzą osoby nawet mające problemy z kolorami (czerwonego nie widzą) – takie w przybliżeniu info.
  • Zoom – Wygodnia lupa, gdy już wejdziemy w tryb lupy, to scrolem możemy powiększać/pomniejszać. Możemy też wtedy wejść w tryb rysowania.

A to wszystko dostępne pod intuicyjnymi skrótami Ctrl + 1 do Ctrl + 4

Sekwencyjne guidy

Posted on

Unikalność Guidów jest ich istotą. Pojawia się jednak problem gdy taki guid ma być kluczem głównym w tabeli bazy danych. Wtedy jest gorzej przy INSERTowaniu rekordów. Więc jest coś takiego jak “Sekwencyjne Guidy” które rozwiązują ten problem.

WIP.

https://stackoverflow.com/questions/1752004/sequential-guid-generator

https://stackoverflow.com/questions/170346/what-are-the-performance-improvement-of-sequential-guid-over-standard-guid?noredirect=1&lq=1

http://developmenttips.blogspot.com/2008/03/generate-sequential-guids-for-sql.html

Jak powinna wyglądać prosta CRUDowa aplikacja

Posted on Updated on

Często gdy omawiane są dobre podejścia typu DDD (czasem z Event Sourcingiem) oraz architektura heksagonalna to wspomina się “ale gdy jest prosty kawałek CRUDowy to zrób to CRUDowo”. Osobny kontekst osobna subdomena.

Tylko co to znaczy w tym przypadku sławne “encje na twarz i pchasz”? Nie miałem takiej potrzeby więc trochę posiłkuję się rozmowami z 125. Spotkanie WG.NET – Unconference i doświadczeniem.

CQRSa bym zdecodowanie dodał. Rozdzielenie Commandów od Queries ma bardzo dużo zalet nawet gdy baza jest prosta. CQRS sam w sobie nie mówi nic o tym jak ma wyglądać baza, czy mają być encje, agregaty w modelu DDD, czy może jeszcze Event Sourcing.

Więc:
Query pobiera sobie dane/widok skomponowany z kilku tabel.
Command robi Inserty/Updaty w bazie (w najprostszym przypadku nawet przenosząc klasy bazodanowe na FE, a może tylko DTO które jest 1 do 1 z modelem bazy).

Bez skomplikowanych Agregatów, bez przekombinowanego Event Sourcingu.

PS, jeszcze nie oglądałem w całości, ale Kamil którą tą rozmowę zainicjował wrzucił swoje repozytorium warte uwagi: https://github.com/kgrzybek/sample-dotnet-core-cqrs-api