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 Dowiedz się więcej »

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ć. Dowiedz się więcej »

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 Dowiedz się więcej »

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) Dowiedz się więcej »

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 Dowiedz się więcej »

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 Dowiedz się więcej »

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 Dowiedz się więcej »

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 Dowiedz się więcej »

Przewijanie do góry