tag:blogger.com,1999:blog-34951090387326089192024-02-07T07:35:33.517+01:00nandrew's blogA Software Engineer's TechblogUnknownnoreply@blogger.comBlogger20125tag:blogger.com,1999:blog-3495109038732608919.post-57272047641992680722013-11-11T11:41:00.003+01:002021-11-15T22:02:15.444+01:00Classic Books on Software Development - TOP 10 of must readCzęsto ktoś mnie pyta, jakie książki o programowaniu bym polecił na poziom wyższy niż klepanie kodu. Dlatego właśnie stworzyłem niniejszą listę. Jest to kompilacja podobnych enumeracji z Internetu, ale głównie opiera się na własnym doświadczeniu.
Poniższe książki to klasyka gatunku - przedstawiają one tak zwany Core*, czyli to, co jest stabilną częścią wiedzy w Inżynierii Oprogramowania. Uważam,Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3495109038732608919.post-43042827394613849232008-10-19T21:48:00.005+02:002008-10-26T19:17:09.753+01:00Python – pierwsze starcie <!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } --> "Języki typowane dynamiczne - wolność w popełnianiu błędów" Jestem znany z przywiązania do języków typowanych statycznie, jednak żeby się nie ograniczać postanowiłem poszukać czegoś dla siebie wśród języków z typowaniem dynamicznym*. Ostatecznie przekonało mnie do tego nowe podejście firmy Microsoft, która Unknownnoreply@blogger.com10tag:blogger.com,1999:blog-3495109038732608919.post-16771438742269560562008-07-25T21:23:00.006+02:002008-07-25T22:12:50.592+02:00Podsumowanie postów o zasadach projektowych"Software is not limited by physics, like buildings are. It is limited by imagination, by design, by organization. In short, it is limited by properties of people, not by properties of the world. 'We have met the enemy, and he is us' " -Ralph Johnson Ten post jest podsumowaniem poprzednich tekstów o zasadach projektowych, czyli mini przewodnik. Cała seria odpowiada na pytanie "co zrobić z Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3495109038732608919.post-17946732089034377272008-07-23T22:54:00.008+02:002008-07-25T22:12:58.890+02:00Pozostałe zasady projektowania obiektowego <!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } -->Zasady projektowe opisane przeze mnie w poprzednich postach były dość uporządkowanymi zbiorami, które można znaleźć w książkach do OOA/D. Istnieją też inne zasady (lub bardziej wskazówki czy strategie) które można do nich - tak jakby - dokleić. Mimo że nie tworzą całości z wzorcami GRASP czy Martina też są znane iUnknownnoreply@blogger.com5tag:blogger.com,1999:blog-3495109038732608919.post-2804558460104989502008-07-12T22:51:00.000+02:002008-07-12T22:52:32.048+02:00Zasady projektowania obiektowego – part2 <!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } --> Skoro opisałem poprzednio podstawowe zasady projektowania obiektowego (zebrane w książce „Agile Principles, Patterns, and Practices in C#”), to wypadałoby opisać pozostałe ;) Kolejne sześć dotyczą głównie podziału aplikacji na komponenty (czy pakiety, jak kto woli). Jeszcze zanim przejdę do meritum mała uwaga:Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3495109038732608919.post-30700621725056483542008-07-08T23:11:00.001+02:002008-07-08T23:14:42.026+02:00Zasady projektowania obiektowego – part1Dawno temu opisałem zasady projektowania klas według wzorców GRASP, opisujących sposoby przydzielania odpowiedzialności do klas. Teraz czas na bardziej zaawansowane zasady projektowania obiektowego – zebrane i opisane w książce „Agile Principles, Patterns, and Practices in C#” (dostępne jest już wydanie polskie).Ze względów praktycznych opis podzielony jest na dwa posty.Single-Responsibility Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3495109038732608919.post-46407929294697347202007-10-26T23:43:00.000+02:002007-10-27T00:07:38.019+02:00Jak zawalić projekt - link do artykułówNiedawno w pociągu przeczytałem sobie wydrukowany artykuł "Jak zawalić projekt informatyczny. Analiza wymagań" ze strony Mareka Rafałowicza - dot. prowadzenia projektów informatycznych. I w sumie artykuł uprzyjemnił mi czas ;) Niby w nim nic nowego (no prawie ;), a jednak daje do myślenia. Dlatego polecam do przeczytania.Pozwolę sobie wypisać tu kluczowe elementy odpowiedzialne według tego Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3495109038732608919.post-11272751359367127472007-10-17T22:45:00.000+02:002007-10-17T22:52:12.006+02:00Obliczanie wyrażeń arytmetycznych i logicznych a reguły biznesoweAbstract: opis sposobu na obliczenie wyrażeń arytmetycznych i logicznych na platformie .NET przy wykorzystaniu klasy XPath. Zastosowanie powyższego mechanizmu jako silnika reguł biznesowych.WstępJedną z zalet języków dynamicznych - typu Python, Ruby – w stosunku do języków typowanych statycznie jest możliwość prostej implementacji mechanizmów obliczania wartości wyrażeń arytmetycznych/logicznych.Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-3495109038732608919.post-69241173869786833652007-10-03T11:03:00.000+02:002007-10-03T12:06:46.770+02:00Książka "Patterns of Enterprise Application Architecture"Moje zainteresowanie programistyczne/projektowe skupiają się wśród aplikacji klasy Enterprise, dlatego nie mogłem nie przeczytać książki "Patterns of Enterprise Application Architecture" M. Fowler'a, która przyciąga samym tytułem ;) Jest to sławna, klasyczna nawet pozycja opisująca wzorce aplikacyjne (nie projektowe) dla systemów "zarządzania przedsiębiorstwem". IMHO można powiedzieć, że dla Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3495109038732608919.post-77955173968441284862007-09-25T14:35:00.000+02:002007-09-25T18:05:34.079+02:00Zasady projektowania obiektowego GRASP – część IIParę dni temu opisałem pierwsze pięć zasad projektowych GRAPS z książki „Applying UML and Patterns”. Nadszedł czas kontynuację tematu.Dla przypomnienia, GRASP to skrót od „General Responsibility Assignment Software Patterns”, czyli są to ogólne zasady projektowe dotyczące przydzielania odpowiedzialności/zadań do klas. Służą one do usystematyzowania procesu projektowania systemu informatycznego Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3495109038732608919.post-70807600882936452292007-09-23T10:36:00.000+02:002007-09-25T14:35:00.275+02:00Zasady projektowania obiektowego GRASP – część IOd jakiegoś czasu zbierałem się, żeby napisać coś o podstawowych, a zarazem bardzo ogólnych zasadach projektowych GRASP, które są przedstawione w książce C. Larman'a: „Applying UML and Patterns”.Jeszcze zanim zacznę się rozpisywać mała uwaga: GRASP to skrót od „General Responsibility Assignment Software Patterns”. Jak widać w nazwie jest słowo „wzorce”, ale w rzeczywistości są to raczej zasady Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-3495109038732608919.post-59697739480801787062007-09-10T09:22:00.000+02:002007-09-10T09:28:24.799+02:00Darmowe narzędzia do UML'aTak sobie ostatnio myślałem, dlaczego znalezienie darmowego narzędzia do UML'a jest takie trudne. W prawdzie dostępne są ograniczone wersje zaawansowanych programów (np.: Visual Paradigm), ale licencja ogranicza ich użycie do zastosowań niekomercyjnych. A przecież poza zastosowaniami komercyjnymi mało kto używa UML'a! Znalezienie projektu Open Source, który ma chodź szczątkową dokumentację w UMLuUnknownnoreply@blogger.com2tag:blogger.com,1999:blog-3495109038732608919.post-31041671920431337712007-08-29T21:20:00.001+02:002008-07-14T15:28:54.381+02:00Ankieta o UML oraz Unified ProcessJakiś czas temu otworzyłem na blogu ankietę, pytającą o stosunek do języka UML. Wyniki ankiety są wzorcowe, jeżeli można tak powiedzieć :) Oto one:"UML...- trzeba wszystko w tym modelować!!! - 0%;- używać gdy potrzeba - 75%;- jak muszę to używam - 12%;- spalić na stosie specyfikację! - 12%.Pierwszą opcję można było odebrać jako symbol procesu wodospadowego (liniowego), w którym najpierw Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3495109038732608919.post-80039429797833960432007-08-27T16:21:00.000+02:002007-08-27T16:25:00.161+02:00Książka "Agile Principles, Patterns, and Practices in C#"Z powodu sprzyjających warunków i zaciekawienia tematem OOA/D niedługo po przeczytaniu „Applying UML and Patterns” zabrałem sie za „Agile Principles, Patterns, and Practices in C#”.Książka zapowiadała się nieźle (dlatego po przeczytaniu „Applying" umieściłem ją na liście „to read” jako numer jeden). W sumie warto było ją przeczytać, ale ma ona swoje wady... „Applying” jednak jest „the best” ;)Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3495109038732608919.post-30043240319327629552007-08-11T11:10:00.000+02:002007-08-11T11:24:03.719+02:00Książka "Applying UML and Patterns" i inneWłaśnie skończyłem czytać książkę „Applying UML and Patterns” i mogę powiedzieć tyle: polecam, polecam i jeszcze raz polecam :) Książka jest po prostu super, ale po kolei...O czym jest ta książka?Podtytuł jest bardzo wymowny „An Introduction to Object-Oriented Analysis and Design and Iterative Development”. Książka jest o procesie wytwarzania oprogramowania oraz o analizie i projektowaniu Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3495109038732608919.post-27454047598684802412007-08-06T15:17:00.000+02:002007-08-06T19:29:55.192+02:00Nowości w C# 3.0Od paru lat MS przygotowuje nową wersję języka C#. Ostatnio miały miejsce dwa związane z nią event'y: udostępnienie zbiorczej dokumentacji do języka C# uwzględniającej wersję 3.0 oraz udostępnienie beta wersji Visual Studio 2008 „Orcas”, która ma wbudowaną obsługę C# 3.0. Jako, że ciekawość pierwszym krokiem do... poznania, postanowiłem bliżej się przyjrzeć tej „technologii jutra".Zaraz Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3495109038732608919.post-61181013978785000922007-07-26T16:21:00.000+02:002007-08-05T10:31:26.460+02:00Software Engineering QuotationsJeżeli nie lubisz cytatów - nie czytaj tego posta :) Poniżej zamieściłem najlepsze cytaty dotyczące informatyki (głównie SE) jakie znalazłem. Większość z nich jest naprawdę sławna ;)Software EngineeringYou know you've achieved perfection in design, not when you have nothing more to add, but when you have nothing more to take away.- Antoine de Saint-ExuperyProgramming is fun, but developing Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3495109038732608919.post-41293814551758837012007-07-22T13:03:00.001+02:002008-12-04T19:27:55.423+01:00Wielowątkowość w WinFormsKorzystając z WinForms wcześniej czy później możemy mieć problem z odwołaniem się do kontrolek z innego wątku - stworzonego np w celu zabezpieczenia GUI przed zawieszeniem podczas wywołania metod, które długo działają. Bezpośrednie wywołanie metod kontrolki z innego wątku spowoduje wystąpienie wyjątku InvalidOperationException z komunikatem "Cross-thread operation not valid: Control 'xyz' Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-3495109038732608919.post-23104555318245049162007-07-21T23:04:00.000+02:002007-07-21T23:49:15.509+02:00Singleton w C# - cała prawdaPo publikacji posta o "Managerze", miały miejsce pewne dyskusje, że tak powiem, dotyczące wzorca projektowego Singleton - którego jakby nie było używam od co najmniej 5 lat :PW języku C# istnieje co najmniej pięć sposobów implementacji tego wzorca. Różnią się prostotą implementacji oraz obsługą wielowątkowości. Wszystkie [pięć] opisane są na stronie http://www.yoda.arachsys.com/csharp/Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3495109038732608919.post-48534420803876882712007-07-20T23:17:00.000+02:002007-07-21T16:42:57.618+02:00Konkursy programistyczneJakiś czas temu brałem udział w konkursach programistycznych on-line. Polegały one na rozwiązywaniu zadań algorytmicznych przy pomocy jakiegoś języka programowania. W takich konkursach do systemu wysyła się kod źródłowy programu, system go kompiluje i automatycznie pokazuje czy zadanie jest zaakceptowane.No chyba nie muszę pisać, że takie konkursy rozwijają pewne pożądane umiejętności, które, Unknownnoreply@blogger.com1