Użytkownik czy użytkownicy? Jak nazywać klasy – moje doświadczenia.

Dobra nazwa

Szukałem porad w sprawie trudnej czynności jaką jest nazywanie .NET DEVELOPERS POLAND – facebook Co prawda w innym temacie, ale warto przeczytać aby uświadomić sobie jaka to ciężka praca. Także człowiek szuka i myśli i próbuje.

Próby

W ramach swoich poszukiwań i eksperymentowania z tworzeniem najlepszego i najczystszego kodu, najlepiej nazwanego i cacy. Dotarłem do takiej sytuacji, gdzie chciałem posiadać osobne klasy (kontrolery, serwisy, repo, co tam jeszcze) które rozróżniały operacja na pojedynczych obiektach lub na kolekcjach obiektów. Tworzyłem osobne klasy dla UserOperation jak i UsersOperation, ChannelService i ChannelsService. Koncepcja jak papier wszystko przyjmie. Niestety dosyć szybko zaczęło to boleć, bolało nawet dwa razy podobnie jak ostra papryczka. Continue reading

Konwencje w autofacu

Część z nas jest mniej lub bardziej leniwa. Części może przeszkadzać taki zapis, a części nie.

Szczególnie część, gdzie powtarzają się różnego rodzaju serwisy i repozytoria (@7-@14) oraz (@21-@27). Co czynić, jak zrobić to samo za mniej? Konwencje i autoskanowanie assembly’ów. Jak? Poniżej prosta ściągawka: Continue reading

Czytaj kod jak książkę

Czytakpisanyblogbyłbyczytelnydlawas?
CzyMożeTakBędzieCzytelniej?
A_Może_Część_Z_Was_Preferuje_Taki_Zapis?
MgSZłŻITkLpjBdzZCztlnscNzTrz. (Aktualnie już nie pamiętam co tutaj napisałem)

Dlaczego gdy piszemy do ludzi potrafimy używać pełnych wyrazów, pełnych zdań, samogłosek i spółgłosek i nie skracamy. Natomiast gdy tylko siada jeden z drugim (ja nie jestem święty), piszemy P=ObsłużW(1,false, new Coś());
NIE MA SZANSY ŻE KTOŚ TO ZROZUMIE. NIE-MA.

Czy to jest wstyd pisać czytelny kod? Czy panuje u nas takie zdanie, że jak jesteś pro, to twojego kodu nikt nie może zrozumieć? Dostaje czasem jakiś kod do przejrzenia, żeby powiedzieć czy warto czy nie warto. Zdarzają się rozwiązania zadań oparte na if-else-if-else-if-else i globalnych zmiennych. Albo stringi wszędzie, czy 1,2,3,4,5,6 zamiast sensownego enuma.

Czemu tak jest? Lenistwo? Lans? Czy może tak jak napisał kiedyś mój dobry kolega Hanselman piszemy taki kod żeby czuć się nie zastępowalnymi. To totalny absurd! Ja chcę skoczyć i zmienić swój projekt, albo przez dowiezienie go do końca albo oddanie komuś po drodze. Staram się za wszelką uczynić go tak prostym żeby każdy mógł go przejąć.  Nie zmarnować nawet godziny na niepotrzebne tłumaczenie co i jak zrobiłem.  Gdzie jest to a gdzie jest inne coś.  Marzy mi się ze przychodzi ktoś w zastępstwo i mówi: wypas wszystko jasne, nie musisz niczego tłumaczyć, pokazywać czy demonstrować.  Wzorce są tam gdzie są potrzebne. Albo nawet ich nie ma. Bo może aplikacja była prosta.

Ale wiecie jest najważniejsze NAZWY.  Klasy, metody, warunki, zmienne, wszystko nazywa się zgodnie z tym co ma reprezentować robić i oznaczać.  Tak bym chciał.  Tak mi się marzy.  Wiem że droga jeszcze daleka ale nie podaje się i poprawiam.  Patrzę i czytam to co napisałem i się zastanawiam czy ja to jeszcze rozumiem czy to ma sens.  Czy ktoś to zrozumie?

Zmiany w ITAN są nie uniknione! #dajsiępozać

Przepowiedziana obsługa elementów w jQuery.on

Jak jest

Zdarza się, nawet często się zdarza, że część strony na którą wszedł użytkownik będziemy podmieniać dynamicznie. Nie mam na myśli jakiegoś SPA, tylko odrobina dynamiczności. W tej dynamicznej części mamy jakieś element(y), który chcemy obsłużyć w skryptach. Aby nie przesyłać za każdym razem HTML i skryptów do obsługi, można na początku wypluć kod javascript i od razu przypiąć się na wydarzenia generowane przez takie eventy. Jak?

jQuery

W jQuery – które ciągle żyje i ma się dobrze, pomimo wielu-wielu-WIELU frameworków które powstały i upadły w tym czasie, posiada metodę on(). Umożliwia ona dopięcie się do elementu na jakieś wydarzenie, na przykład on(“click”,…..) Pozwala także na dołożenie dodatkowego filtra dla pod elementu (nie wiem jak lepiej mogę to słownie wytłumaczyć), $(“.container”).on(“click”, “.button”,…..). Oznacza to, że mogę powiedzieć: chce słuchać na przykład kliknięć z mojego kontenera, w dodatkowym warunkiem że źródłem kliknięć musi być jakiś guzik. O ile w momencie przypinania obsługi on-click, sam kontener musi już być, o tyle guzik (pod-element) może pojawić się później.

Przykłady

Continue reading

Entity framework wspólna obsługa interfejsów modeli danych

Model

Czasami tak projektujemy naszą aplikacje, że każdy model ma jedną lub kilka cech wspólnych. Od najbardziej oczywistych, jak na przykład ID, poprzez czas i datę utworzenia, modyfikacji, czy-usunięty, czy-opublikowany i inne czy-?

W zależności od poziomu lenistwa cechy te definiowane i utrzymywane są w każdej z klas z osobna lub w jednym lub-lub w kilku interfejsach który jest implementowany przez modele.

Do momentu pisania posta byłem gościem, który posiadał jeden wspólny interface, ale właśnie teraz do mnie dotarło, że może lepiej mieć kilka interfejsów dla modeli danych, I-ID-able, I-Create-able, I-Update-able, I-cośtam-able – blogowanie rozwija!

Część wspólna

Co więcej, obsługa części wspólnej może być zaimplementowana na różne sposoby, to również zależy od poziomu lenistwa. Można to robić ręcznie w każdej metodzie repozytorium, w klasach generycznych/bazowych dla repozytoriów, można AOP, można także w klasie kontekstu. Ja aktualnie rozwiązuje to właśnie tam w samej klasie bazy danych.

Poniżej kawałek kodu:

Continue reading