Nieczęsto, ale dość regularnie dostaję na maila prośby o porady w temacie poszukiwania pracy. Staram się pomagać wedle swojego doświadczenia, czego efektem była ostatnio taka wiadomość...
Strona głównaUżytkownik
gordon_shumway | użytkownik
Dużo się na ten temat pisze i dużo jest też pytań. Dla mnie kwestia jest dość prosta. Weźmy na przykład ten fragment kodu, który kiedyś popełniłem. Tak naprawdę patrząc na niego ciężko jest wywnioskować co on robi - nazwa funkcji, której nie podałem już powie trochę więcej. Ale jest to jakiś konkretny algorytm, który wykonuje konkretną pracę. Teraz jakie jest moje spojrzenie na dokumentowanie kodu...
Dzisiejszy post będzie trochę inny niż zwykle, a zainspirowany został pytaniami, jakie od czasu do czasu dostaję poprzez email, np.: „(...) przymierzam się do rozpoczęcia przygody z C# i technologiami .NET. Obecnie znam w stopniu średnio-zaawansowanym język XXX (...) Czy mógłbyś mi polecić jakieś książki lub artykuły, które pomogłyby mi na starcie?” „ (...) Niektórzy mówią, że dość dobrą książką, jeżeli znam C, jest książka XXXX. Może ją miałeś w ręce, co o niej sądzisz?” „ (...) Czy znasz jakiś dobry ...
Mercurial jest fajny (a Git jest git:) ) - znalezienie większości funkcjonalności, nawet jeśli nie znamy odpowiedniej komendy, zajmuje chwilę i nie wymaga przekopywania się przez długaśny manual. Wystarczy wpisać "hg help" i dostaniemy naprawdę zwięzłe, pomocne i konkretne opisy dostępnych poleceń.
Z tym typem mapowania miałem najwięcej bolączki - jest on naprawdę najgorszym z jakim przyszło mi pracować i głównie zastosowałem go tylko raz by sprawdzić czy się opłaca. Post ten więc raczej jest ku przestrodze a nie opisem sposobu mapowania obiektów.
Architektura 5143 dni, 23 godziny, 24 minuty temu 33 źrodło rozwiń
Rzadko to rzadko, ale czasami moja głupota mnie przeraża. Zdarza mi się utknąć nad jakimś kawałkiem kodu, który MUSI działać. Po prostu MUSI. A nie działa... Zwykle ma to miejsce po bardzo długiej sesji kodowania. Takiej jak ta, o której pisałem kiedyś. Podzielę się, chociaż mi wstyd:). Jedziemy...
Zwykle aplikacja potrzebuje spójnego UI - czyli kontrolek wyglądających i zachowujących się wg. ustalonego schematu. W programowaniu web mamy style css, asp.net ma mechanizm Control Adapters, WPF z tego co wiem także pozwala dość mocno ustandaryzować ten aspekt. W Windows Forms komercyjne pakiety kontrolek, jak np. Telerik, udostępniają możliwość swego rodzaju stylowania wyglądu kontrolek danego typu.
Architektura 5147 dni, 15 godzin, 17 minut temu 116 źrodło rozwiń
Ostatnio poznaję kontener DI Autofac i baaardzo mi się on podoba - nie tylko nazwa, funkcjonalność także. Ten post rozpoczyna paczkę kilku ciekawych (mam nadzieję:) ) postów pokazujących, jak przy pomocy Autofac zbudować "samoskładającą się" aplikację.
Architektura 5153 dni, 19 godzin, 48 minut temu 105 źrodło rozwiń
Xna 4.0 – kosmetyczne zmiany w konstrukcji projektu Jeśli mamy jakiekolwiek doświadczenia z Xna tworząc nowy projekt nie powinniśmy się zdziwić, ale za to raczej w większości z nas docenimy kosmetyczne zmiany w organizacji projektu. Moim zdaniem pomocne w poprawieniu przejrzystości projektu. Po pierwsze referencje. W Xna 4.0 jest więcej Assemblies rozbitych z poszczególną funkcjonalnością. Przy istniejącym projekcie z poprzednich wersji jest to jedna z rzeczy, która na dzień dobry nie pozwoli nam skompi...
Jak już wspominałem kilka postów temu, ponowna lektura części Strategic Design z książki Erica Evansa pomogła mi usystematyzować swoją aktualną wiedzę na temat DDD. Dziś chciałbym się z Wami podzielić dalszą częścią mojego odkrycia. Warstwa możliwości (capabilities) świetnie nadaje się do tworzenia encji warstwy operations. O co chodzi? Jakiś czas temu Udi Dahan pisał o tym, że nie powinniśmy tworzyć korzeni agregatów. Jego post wykorzystuje przykład sklepu internetowego. Za...
Architektura 5156 dni, 14 minut temu 95 źrodło rozwiń
Data końca projektu jest dla freelancera bardzo ważna. To dzień, w którym może świętować swój, bądź co bądź, sukces. To dzień, po którym może zacząć czytać nową książkę. Dzień, po którym wreszcie może pograć na komputerze. W oczekiwaniu na zapłatę wyjść na browar czy do kina. Albo planować kolejny projekt. Ostatni dzień kawowo-redbullowo-bezsennego maratonu.
Niestety. Pierwszy duży projekt jaki sobie napisałem w Xna GS 3.1 nie chciał się skompilować w 4.0. Po wielu godzinach zabawy zszedłem do jedynych 250 bledów spowodowanych głównie zmianami w API. Wszystkie zmiany są opisane tutaj. Jeśli wykorzystujecie shadery (via efekty) to przygotujcie się na zmianę każdego Begin() i End() na Apply(). Jeśli korzystaliście intensywnie z RenderState’ów to przygotujcie się na to, że zostały rozbite na wyspecjalizowane pod-kategorie...
Może nas czasami najść ochota na nazwanie jakieś zmiennej czy klasy słowem kluczowym, zarezerwowanym w C#...
Xna ze względu na wykorzystanie na Windows Phone Series staje się automatycznie coraz bardziej atrakcyjną platformą do tworzenia aplikacji. Przy okazji ogłoszeń na MIX10 coraz więcej osób związanych z rozwojem tej technologii wyeksponowało swoje nazwisko. Warto śledzić co piszą w sieci, znalazłem parę interesujących odnośników do ich blogów: http://blogs.msdn.com/shawnhar/ – Shawn Hargreaves – deweloper w grupie Xna, polecam jego prezentację na MIX10 na ...
Wiele ludzi zastanawia się jak rozwiązać używanie MessageBoxa w wpfie. Ja proponuje ( jeśli to możliwe) w ogóle go nie używać. Zwykły MessageBox jest dosyć ograniczony, mamy do wyboru tylko parę przycisków i obrazków. W samym wpfie dodatkowo dosyć trudno rozwiązać problem otwierania messageboxa z viewmodeli, z reguły owija się go wtedy dodatkową klasą. W wpfie proponuje zastąpić MessageBoxa przez Adornera z odpowiednią zawartością, który będzie p...
Architektura 5160 dni, 21 godzin, 19 minut temu 141 źrodło rozwiń
Pod jednym z moich ostatnich postów pojawił się komentarz zawierający m.in. taką treść: "Chyba potrzebuję mentora, który mógłby rzucić temat, a następnie sprawdzić jego realizację. Czy znajdzie się jakiś chętny? (...) nauka przez fun tworzenia. Ale czy to aby dobra droga?" Za mentora się bynajmniej nie uważam, ale pomyślałem - co tam, może być ciekawe doświadczenie. Kilka miesięcy temu podobny tekst wyczytałem na forum CodeGuru - wówczas też zgłosiłem się na ochotnika do takiej roli. Ale temat umarł po d...
W ubiegłym tygodniu odbyła się w Las Vegas wielka coroczna konferencja MIX. Mój ziom JJ miał okazję znajdować się właśnie tam już drugi rok z rzędu. Nasze zeszłotygodniowe konwersacje skłoniły mnie do poważniejszego zastanowienia się nad konferencjami programistycznymi... oraz sensem fizycznego udziału w tych wydarzeniach. Efekt owych rozmyślań przedstawiam poniżej.
Niedawno natknąłem się na StackOverflow interesujące pytanie dotyczące Domain-Driven Design. Chciałbym się z Wami podzielić moimi przemyśleniami. Pytanie dotyczyło zaprojektowania logiki biznesowej dla domeny składającej się z trzech obiektów: Książki (Book), Rozdziału (Chapter) oraz Strony (Page): Problem polega na tym, który element, z przedstawionych trzech, powinien być korzeniem agregatu?
Architektura 5167 dni, 5 godzin, 36 minut temu 96 źrodło rozwiń
Rzucam wyzwanie standardom kodowania. Postanowiłem po raz kolejny, na bazie nagromadzonych w ciągi ostatnich miesięcy doświadczeń, zrewidować swój sposób pisania kodu. Oto, co wymyśliłem.Var Jakiś czas temu przy okazji cyklu dotyczącego czytelności kodu pozwoliłem sobie dosyć mocno skrytykować słowo kluczowe var. Zgadnijcie co się stało? Zmieniłem zdanie. varjuż mnie nie straszy. Oswoiłem si...
Automapper oferuje coś takiego jak profile. Dokumentacja nie mówi nam o nich na dzień dzisiejszy zbyt wiele (link) (dla leniwych - nie mówi NIC:) ). Po czymś o nazwie "profil" spodziewałem się możliwości utworzenia mniejszych "podkonfiguracji" charakterystycznych dla konkretnego scenariusza. Na przykład gdybym chciał mapowanie int->string mieć wspólne dla całej aplikacji, to nie umieszczałbym go w żadnym profilu. Natomiast wspomniane kiedyś mapowanie z czasu UTC na czas lokalny mógłbym mieć w profilu o n...