programowanie

Klasyczne naruszenie Open Close Principle

Bardzo lubię konstrukcję enum. Dzięki niej i wsparciu IDE mogę bardzo łatwo zautomatyzować sobie pracę. [csharp] public enum SomeEnum { Dog, Cat, Lion } public class SomeAnimals { public void Sounds(SomeAnimals animal) { switch (animal) { case SomeEnum.Cat : Console.WriteLine("Meow"); break; case SomeEnum.Dog : Console.WriteLine("Wof"); break; … } } } [/csharp] Po dodaniu nowej wartości …

Klasyczne naruszenie Open Close Principle Read More »

Open Close Principle czyli jak zarobić ale się nie narobić.

Wyobraźmy sobie taką sytuację: jest sklep internetowy, podczas składania zamówienia system wylicza rabat – przy zamówieniach 500-1000 zł 5%, powyżej 1000 zł 10%, powyżej 5000 dodatkowo darmowa przesyłka. Brzmi znajomo? [csharp] public double CalculateDiscount(IOrder order) { if (order.Total <= 500 && order.Total > 1000) { return order.Total*0.05; } if (order.Total > 1000) { return order.Total*0.1; …

Open Close Principle czyli jak zarobić ale się nie narobić. Read More »

Interface Segregation Principle czyli interfejs powinien być jak modelka–przeraźliwie chudy

Jestem fanem interfejsów jak to wcześniej już pisałem, zatem dzisiaj będzie temat łatwy i przyjemny o interfejsach właśnie. W sam raz na ciężki po długo weekendowy poniedziałek. Interface Segregation Principle mówi, że klient nie powinien być zmuszany do implementowania interfejsów, których nie używa. Z tego wynika, że interfejs powinien być minimalistyczny lub po prostu możliwie …

Interface Segregation Principle czyli interfejs powinien być jak modelka–przeraźliwie chudy Read More »

Kwadrat jest prostokątem czyli Liskov Substitution Principle (LSP)

Od młodego uczą nas, że każdy kwadrat jest prostokątem. Później uczymy się programować i zaczyna się tragedia. Matematycznie kwadrat jest specyficznym  przypadkiem prostokąta programistycznie już nie bardzo. Metoda ustawiająca szerokość wywołana dla prostokąta powinno ustawić jego szerokość a w przypadku kwadratu? W przypadku kwadratu oczekujemy, że ustawienie szerokości ustawi również wysokość. Zobaczmy zatem taki kod: …

Kwadrat jest prostokątem czyli Liskov Substitution Principle (LSP) Read More »

Koncepcja elastycznej architektury

Wyobraźmy sobie, że cała aplikacja nad którą chcemy pracować zbudowana jest tak, że nie ma żadnych referencji do bazy danych, żadnych referencji związanych ze sposobem wyświetlania, żadnych okienek, stron www… nic. Tylko klasę, która mogła by wyglądać tak: [csharp] public class MyGreatApplication { public IAbout About() { // zwraca informacje na temat aplikacji } public …

Koncepcja elastycznej architektury Read More »

Architektura czyli jedna z najbardziej niedocenianych umiejętności

… na szczęście nie przez wszystkich. Intencją niniejszej serii jest przedstawienie podstaw programowania w trochę inny sposób, dlatego mówiąc najbardziej niedoceniana umiejętność w domyśle tyczy się to początkujących. Starsi albo sami dotarli do odpowiedniej wiedzy albo życie ich nauczyło. Jak wyglądają pierwsze kroki w programowaniu? Po opanowaniu pętli for i foreach, ifów i caseów, Console.WriteLineów …

Architektura czyli jedna z najbardziej niedocenianych umiejętności Read More »

Podstawy programowania

Niniejszy post jest 200-tną notatką na blogu. Aż dziw bierze, że tak długo już prowadzę tego bloga (pierwszy wpis 26.01.2008). Wprawdzie 200 wpisów  na 4 lata to niewiele, to nie sądziłem, że tak długo będę to robić. Co bardziej ciekawscy pewnie i znajdą moje pierwsze podejście do blogowania z pierwszym wpisem z 7/14/2005 09:09:00 AM (wtedy nawet …

Podstawy programowania Read More »

Warsztat czyli moje narzędzia pracy

Każdy programista ma swoją listę ulubionych narzędzi – takich jakie sprawdzają się w codziennej pracy. Warto poznać czego używają inni dlatego zachęcam do opisania swojego. Poniżej mój warsztat (na dzień dzisiejszy), który wygląda następująco (w kolejności zwiększenia komfortu pracy i produktywności): NCrunch dodatek do Visual Studio do Continious Testing. Dodatek ten dział w tle i …

Warsztat czyli moje narzędzia pracy Read More »

Hackfest w Bielsku-Białej

W ostatni weekend (14-15.04-2012) w Bielsku-Białej i Poznaniu odbyła się impreza HackFest. Idea wielce szczytna – 48h maraton programowania. Szkoda że za moich czasów studenckich nie było takich imprez, z drugiej strony na dzień dzisiejszy nie popieram tego typu imprez. Dlaczego? Z tych samych powodów dlaczego chirurdzy nie organizują sobie zawodów w wycinaniu wyrostków robaczkowych …

Hackfest w Bielsku-Białej Read More »