Code

Marcin Biegała

2 minute read

I was moving few of the sites I manage to HTTPS lately. I’ve messed up on one of the sites and I had to revert back to plain HTTP. Ok, so I revert hosting configuration, enter url into Chrome address bar and…. Chrome shows errors and I see my site address over https. Refresh, same thing. Hard refresh, still same. Remove “s” from “https” in the address bar, still same situation.

Marcin Biegała

2 minute read

I’m a ‘console guy’. I usually prefer any type of console/text based interface over sweet and colorful UI. Same applies to my favorite source control - GIT. But there is nothing that prevents us to get fancy in our terminals. Meet diff-so-fancy. GIT is great for handling your code, showing repository log in any way you want, but when it comes to showing a diff, we’re basicly stuck with the standard patch format.

Marcin Biegała

3 minute read

Handling errors is not something new, it was always part of good practices. But from simple, monolithic applications where in huge number of cases we could think of scenario that will throw exception, we are now moving to complex architectures, with many independent components talking with each other over the network. That means, we need to cover for a lot more situations related to intermittent issues (it could be temporary network failure or just some component being down or upgraded).

Marcin Biegała

5 minute read

Dziś wreszcie pojawi się trochę kodu :)
Mam nadzieję, że o zyskach przy okazji pisania testów jednostkowych, czy stosowaniu TDD nie muszę pisać. Jednak te z reguły możemy docenić dopiero w dłuższej perspektywie pracy z projektem. Tu i teraz, w chwili pisania kodu, nie oszukujmy się – jest to dodatkowa praca.
Ale nawet jeśli staramy się trzymać dobrych praktyk, zasad SOLID, a nasze metody są krótkie i przemyślane, zdarzają się projekty gdzie operujemy na rozbudowanych modelach danych, z dużą ilością pól i właściwości.

To odbija się czkawką podczas pisania testów w dwojaki sposób:
– aby przetestować nasze metody, potrzebujemy model wypełniony danymi, już możemy sobie wyobrazić te kilka, kilkanaście linii kodu tylko po to, by odtworzyć pewien stan obiektu i przekazać go do naszej metody w teście
– potrzebujemy porównać czy nasze modele są sobie równe, w rozumieniu że wszystkie ich właściwości są sobie równe.
Oba problemy wydają się trywialne, ale w pewien sposób ‘zatruwają’ nasz kod. Albo nasze testy rozrastają się o kilkanaście linijek nie związanych z ‘intencją’ naszego testu, albo zaczynamy tworzyć całą strukturę, a wręcz framework do naszych testów jednostkowych, żeby w jakiś sposób wyekstrahować ten powtarzalny kod poza pliki testów.
Całość może się odbić negatywnie na naszym zaangażowaniu w testy, bo po prostu nie będzie nam się chciało pisać tego całego dodatkowego kodu, bo przecież zaraz kończę pracę, a sam kod aplikacji już napisałem.

Jak możemy sobie pomóc ? Otóż stosując dwie proste biblioteki: NBuilder i Compare .NET Objects

Marcin Biegała

2 minute read

Szczerze, myślałem że taka sytuacja jest niemożliwa. Ale, że sam siebie wpakuje w takie bagno, to już mogłem się spodziewać.Brak możliwości logowania do SQLServer

Otóż, nie wiem czy wszyscy zdają sobie sprawę, ale można mieć instancję SQL Server (w tym przypadku Express), do której nie można się zalogować :)
Jak można już wywnioskować nie jestem bazodanowym magiem, ba nawet czeladnikiem nie jestem. Próbując wyłączyć dostęp do bazy przez Windows Integrated Login, skończyłem z serwerem do którego zalogować się nie sposób (użytkownikom windowsowym odebrałem prawo, a jak się okazało sa go nie miał…).
No to klops myślę. Niby to nie była baza produkcyjna, ale i tak danych szkoda, czasu szkoda. No i tak reinstalować od razu ? Tak bez walki ?

Okazało się, że jest rozwiązanie takiego impasu. I to stosunkowo proste.