piątek, 22 czerwca 2012

Jak ugotować kodem dużą, nieznaną potrawę funkcjonalności dla wymagającego, "dociekliwego" klienta?

Jeśli do wykonania jest duża potrawa o częściowo nieznanym przepisie dla klienta, który jest dociekliwy(zmienia kolejne plany projektu; udoskonala go, wprowadza kolejne funkcjonalności, usuwa zatwierdzone interfejsy) to są dwie drogi na wykonanie jej przez grupę kucharzy w restauracji:

1 Stworzenie przez głównego kucharza planu wykonania mniejszych części potrawy oraz głównych składników, a następnie realizacja planu przez grupę.

2 Metodyka Scrum(Agile). Jak można wykonać potrawę według Scrum? Można porównać to do zjedzenia potrawy ugotowanej w francuskiej restauracji lub w restauracji Kotlecik(patrz punkt 1).

Jak działa francuska restauracja według Scrum?

Aby odpowiedzieć na to pytanie należy napisać sporą książkę o tej metodyce oraz o metodykach programistycznych.

Istotę Scrum oraz praktyczne elementy najlepiej zobaczyć podczas realizacji projektu zgodnie z Scrum lub przeczytać książkę choćby "Zwinny samuraj" oraz poznać metody programistyczne jak programowanie XP czy wykorzystanie build serwera.

Opis Scrum w Wikipedii.

Nadal nie dałem prostej odpowiedzi co to jest Scrum, bo takiego praktycznego opisu nie ma. Scrum Jest prosty w opisie, a skomplikowany w wykonaniu; upraszcza prace zespołu, ale jednocześnie wymaga większej dyscypliny i zaangażowania oraz zastosowania trudniejszych metod. Po prostu coś za coś

wtorek, 19 czerwca 2012

Wyszukiwanie po kolekcjach LINQ (.Net 3.5,.Net 4.0)

Kiedy można wykorzystać LINQ?

W przypadku, gdy mamy aplikację, która przetwarza dane na różne sposoby i chcemy skrócić czas na obsługę wyszukiwania po kolekcjach to począwszy od Net 3.5 przychodzi z pomocą mechanizm: LINQ. Język c sharp został wyposażony w mechanizm LINQ, aby nie trzeba było tworzyć samemu delegata z warunkami wyszukiwania np. dla metody  FindAll().


Nie będę przedstawiał zbyt dużej ilości kodu, gdyż w tych miejscach "Introducing LINQ" 101 LINQ Samples  jest świetne opisany LINQ.


Poniżej przedstawiłem LINQ z składnią znaną w języku SQL. Można także LINQ zapisać wykorzystując notację Lambda (Lambda Expressions).





     public void methodTest()
     {
            List<String> mainList = new List<string>();
            mainList.Add("first");
            mainList.Add("ala");

            List<String> foundAla = (from item in mainList where
                                         (item == "ala") select item ).ToList();
     }


Pytanie na ile krótsza notacja wyszukiwania LINQ oraz Lambda w języku c sharp zmniejsza wydajność aplikacji? Wydaje się, że jest to tylko umieszczenie odpowiedniego delegata w kodzie przez kompilator.