28 lutego 2012

Zostać lepszym programistą

Stagnacja


Od dłuższego czasu chodziła mi po głowie kwestia mojego rozwoju zawodowego (nie mylić z ścieżką kariery, chodzi o zawód "programista"). Ciągła nauka nowych/starych technologii nie przynosiła oczekiwanych rezultatów. W końcu uczenie się właściwości produktu, konfiguracji plików XML'owych, nowego API ect. nie niesie ze sobą jakiegoś szczególnego wyzwania dla ludzkiego umysłu (poza zapamiętaniem i zrozumieniem tego).

W poprzednim roku w celu przebudzenia się ze stagnacji rozpocząłem krucjatę technologiczną. Zacząłem prowadzić bloga, założyłem dwa projekty na codeplex'ie, uaktywniłem się na kilku forach technologicznych. Zauważyłem pewną poprawę, ale bez rewelacji. W "pracy" płacą człowiekowi za to, że wie jaką metodę której klasy wywołać z której przestrzeni nazw, z której wersji CLR'a aby w jednej linijce kodu sciągnąć plik z FTP'a. Mniejsza o to, czy rozumie się stos TCP/IP, ważne, że nie rzuca wyjątkiem. W tym roku stwierdziłem, że to za mało. Trzeba trochę inaczej podejść do problemu rozwoju swojego rzemiosła. Ponieważ łatwo się zniechęcam i rezygnuje z podjętych pomysłów, zacząłem od czegoś prostego.

11 stycznia 2012

Code review, lubię to!

Czy na pewno code review to strata czasu?


Cóż może być nudniejsze i bardziej kosztowne niż przeglądanie cudzego kodu źródłowego? Chyba już tylko poprawnianie w nim błędów. Jeszcze kilka lat temu koncepcja przeglądania mojego kodu przez kolegów z zespołu była dla mnie totalną abstrakcją. Aczkolwiek, z czasem zrozumiałem, że w tym szaleństwie jest metoda. W kilku punktach chciałbym przedstawić benefity, które może wprowadzić Code Review do Twojego ekosystemu projektowego drogi Czytelniku.

29 listopada 2011

SQL Tipsy (3) – deklaracja i inicjalizacja zmiennych w MS SQL Server 2008

Można prościej


Pewnie większość programistów SQL Server'a już zapoznała się ze zmianami w sposobie deklarowania i inicjalizacji zmiennych w wersji MS SQL Server 2008. Aczkolwiek, dla tych którzy jeszcze o tym nie czytali przygotowałem krótkie demo (dzisiaj 289 sekund, więc trochę długo), w którym przepisuje kod napisany w stylu T-SQL'a z MSSQL 2000 na wersję 2008.




25 listopada 2011

Dwie instancje webpart'ów oraz IsClosed

Tańcowały dwa webpart'y


Praca z webpart'ami od strony SharePoint API może być czasami frustrująca. Kilkukrotnie zdarzyło mi się exportować konfigurację, usuwać instancję, zmieniać właściwości webpartów. Przynajmniej trzy razy byłem zaskoczony tym, że strona wyświetla np. jednego webpart'a a kolekcja Webparts z obiektu SPLimitedWebPartManager zwraca więcej instancji, często tego samego typu.

Pewnie domyślacie się, że te dodatkowe instancje webpart'ów to zamknięte, a nie usunięte webparty'y. Rezydują sobie one szczęśliwe w kontentowej bazie danych, aczkolwiek nie są wyświetlane w UI.

Wszystko byłoby wporządku, gdybym już trzeci raz o tym nie zapomniał, że jeżeli modyfikuje widoczne webpart'y, to muszę wziąć pod uwagę też te niewidoczne instancje.

Moim zadaniem było usunięcie duplikatów webpartów, niestety z "jakiegoś" powodu zawsze usunwałem tylko widocznego webpart'a, a niewidoczny zostawał na stronie. Nie mogłem też zrozumieć skąd w kolekcji WebParts jest tyle elementów.