Dalszy ciąg walki z długiem technologicznym. Usuwanie drobnych niedociągnięć i problemów w kodzie przy użyciu narzędzia NDepend i własnej wiedzy.
Usuwanie długu technolgicznego to żmudny i niewdzięczny proces. Ale można go spobie ułatwić stosując narzędzia typu NDepend. We wpisie pokazuje jak usunąć trochę naleciałości w kodzie kierując się wynikami tego narzędzia.
NDepend to narzędzie, które pozwala trzymać w ryzach projekt i dzięki któremu nasz dług technologiczny uda się utrzymać w ryzach. A dzięki metrykom poznasz słabe strony swojego kodu lepiej niż po 20h patrzenia się w suchy kod Zapraszam do lektury.
I’m building my Get Noticed project from the scratch. And since 3 months is actually a very short span of time, I need compromise between doing some things fast (boring ones) and doing other things in a way that will allow me to write about it and not be ashamed to show some code afterwards. That means I’ll need to incur a technical debt in few areas of project. And I must watch it closely to not allow it to grow without control or interests will probably kill me.
Daj się poznać 2017 2807 dni, 1 godzinę, 36 minut temu 50 źrodło rozwiń
W ostatnim czasie dzięki uprzejmości Patricka Smacchia, miałam okazję zapoznać się z narzędziem do analizy kodu jakim jest NDepend. Ponieważ jednak ma on tak dużo możliwości, iż wyrósł by z tego całkiem spory artykuł, postanowiłam podzielić go na mniejsze i niniejszym zapraszam na pierwszy odcinek cyklu poświeconego temu narzędziu.Zacznijmy zatem od tego czym jest NDepend, jak zacząć pracę z nim i Co nam daje? Narzędzie służy do zaawansowanej analizy kodu, wspomaga przyglądanie się strukturze projektu,...
O ReSharperze słyszał niemalże każdy, kto zajmuje się programowaniem w .NET. I o ile jest to rozszerzenie bardzo przydatne, to dziś chciałbym Wam opowiedzieć o nieco innym narzędziu, które co prawda nie odwali tyle roboty za Ciebie, ale jest w stanie zrobić bardzo wiele dla Ciebie. Mowa o NDpend, który jest w stanie przeanalizować nasz kod i poinformować nas, gdzie autor kodu dał ... ciała ;).
Czy znacie narzędzie NDepend? Służy do statycznej analizy jakości kodu. Istnieje w świecie .NET już od wielu lat i zyskał zasłużoną renomę. I mi nadarzyła się okazja by przyjrzeć się temu narzędziu bliżej. Kilka lat temu bawiłem się nim na potrzeby analizy projektów w pracy. A teraz zapragnąłem nim przebadać coś nieswojego, coś dużego - .NET Core.
NDepend jako narzędzie pomocne w pisaniu lepszego kodu i trackowaniu zmian w zależnościach.
NDepend is one of these tools, that I have ever wanted to try out, but somehow couldn’t find the right moment to do so. Quite recently, I’ve eventually decided to give it a shot and I can honestly say that I’m very impressed with the outcome. This tool provides so many statistics and analytics that I’m still wondering what else can be checked in terms of .NET projects complexity, structure, layering, readability and other important things which in the end make a real difference between the great, good, ...
There are a lot of aspects to be considered while developing real world applications. Maintainability, Understandability, Clarity, Dependency are just a few of them. We have to work hard to maintain our code and make it self-commenting, preserve it from cyclic dependencies between assemblies or simply, to provide its good quality. There are a lot of tools that may help to achieve these goals e.g. Sonar, ReSharper, JustCode or NDepend. This article explains how to analyse the quality of code with the use ...
Opublikowano Wczoraj wyszła nowa wersja NDepend-a, jeszcze ciepła, cieplutka. 5-tka ma dwie rewolucyjne rzeczy, pierwsza to nowe UI, ładniejsze i bardziej “nowoczesne”, druga – i to jest dla mnie killer to dashboard. Zatem po kolej. Mamy nowe logo, które wygląda całkiem całkiem jak na moje średnio wprawne oko. Mamy wygląd czyli nowe menu, graficzki i inne takie. Wprawdzie nie jest to to co daje Visual Studio, to jednak Patric (autor tego cudownego narzędzia) mówił, że będą dalej nad tym pracować, więc ...
W poprzednim wpisie przedstawiłem podstawy macierzy DSM. Dzisiaj postaram się wyjaśnić, jakie znaczenie ma to w praktyce. Sam fakt, że macierz pokazuje referencje między różnymi elementami systemu nie jest zbyt ciekawy. Pierwszą własność, jaką w łatwy sposób możemy odczytać z DSM jest spójność (cohesion). Dokładna wartość spójności zależy od konkretnej metryki. Ogólnie pisząc, wysoka spójność w systemie oznacza, że elementy w nim są bardzo od siebie zależne. Przyjrzyjmy się następującemu przykładowi (źr...
Sztuka programowania 4215 dni, 18 godzin, 4 minuty temu 101 źrodło rozwiń
W dzisiejszym wpisie chciałbym zaprezentować macierz zależności i co można z niej odczytać. Pominiemy aspekty matematyczne – ze względu, że jest to macierz istnieje wiele faktów matematycznych ale myślę, że nie są one najważniejsze dla programisty. Załóżmy, że mamy prostą aplikację składającą się z klienta, warstwy usług, biznesowej oraz DAL. Macierz możemy wygenerować w nDepend – o tym programie kiedyś już pisałem. Umożliwia przede wszystkim liczenie metryk kodu i monitorowanie jakości kodu. Macierz dla...
Sztuka programowania 4216 dni, 16 godzin, 42 minuty temu 115 źrodło rozwiń
W ostatnim czasie zapoznawałem się trochę bliżej z narzędziem o nazwie NDepend. Przez ten czas na pewno nie stałem się ekspertem w korzystaniu z NDepend, chciałbym jednak podzielić się moimi subiektywnymi odczuciami na jego temat. Nie będę tutaj wymieniał jego funkcji (można to znaleźć na stronie producenta lub w wielu innych wpisach), nie będę pisał jak zainstalować (bo to proste, choć mi się nie podobało - lubię instalować a nie rozpakowywać :) ), nie będę się zastanawiać czy warto tego narzędzia używ...
Do niedawna nie miałem pojęcia o czymś takim jak NDepend. Co prawda szperając po sieci raz na jakiś czas trafiałem na informacje o metrykach, ale jakoś niespecjalnie mnie to pociągało, ani nie odczuwałem potrzeby, aby „szukać dziury w całym” czyli we własnym kodzie. Zakładałem, że jest wystarczająco prawidłowy, a ja nie mam aż tyle czasu, aby cyzelować go do perfekcyjnej postaci. Sytuacja zmieniła się, kiedy niedawno nadarzyła się okazja zostania obdarowanym właśnie ta aplikacją...
Często słyszy się, że programiści powinni pisać kod, który nie będzie silnie zależeć od pozostałych elementów. Dobrze jakby był oparty na interfejsach, a klasy oraz metody nie były zbyt duże aby dało się go łatwo ogarnąć i zrozumieć. W ogóle - ma być cud-miód. Pytanie tylko jak tego dokonać nie zaprzęgając zbyt wielkich zasobów ludzkich do sprawdzania tego wszystkiego "ręcznie"? Z pomocą tu przychodzi NDepend - narzędzie do statycznej analizy kodu.
Dostałem NDepend4 w zamian za jego opis :) Nie muszę o nim mówić w samych słodkich komentarzach, także można wpis czytać do końca. NDepend służy to statycznej analizy kodu napisanego w .NET. Potrafi ocenić kod po wieloma względami, np: ze względu na skomplikowanie, ilość linii kod czy instrukcji IL, ilość zmiennych, łatwość modyfikacji, może zasugerować zmian typów z referencyjnych na wartościowe (ref type --> value type). Sama instalacja jest banalnie prosta, ściągamy paczkę ze strony, rozpakowujemy ...
W zeszły czwartek opublikowałem post pod tytułem “Warsztat czyli moje narzędzia pracy”. Opisałem narzędzia, które są dla mnie obecnie najbardziej przydatne. Jednak nie są to wszystkie narzędzia dlatego poniżej zamieszczam listę sporadycznie używanych ale takich, które spełniają swoją role i mogą się przydać również Tobie:Notepad2 jak dla mnie perfekcyjny zamiennik notatnika systemowego. Ma numerowanie linii i kolorowanie składni (dodatkowo czas używam również jako narzędzia do konwersji pomiędzy różnymi...
Tworząc oprogramowanie bardzo trudno ustrzec się przed stworzeniem aplikacji niezgodnej z zasadami sztuki. Przez zasady sztuki rozumiem tutaj tworzenie zbyt długich funkcji, tworzenie bardzo zagmatwanego kodu (np. składającego się z kilkunastu if-ów jeden w drugim) czy niekomentowanie metod i funkcji. Nie pilnując jakości kodu możemy bardzo łatwo doprowadzić do sytuacji, w której utrzymanie kodu będzie co najmniej bardzo pracochłonne. Dlatego wiele większych firm wprowadza zasady tworzenia kodu. Co takie...
O wersji v2 NDependa pisałem we wcześniejszym poście, jednak na sporo więcej uwagi zasługuje najnowsza, trzecia wersja tego narzędzia.Co nowego w NDepend? Największą i dla mnie osobiście najbardziej przydatną nową funkcjonalnością jest pełna integracja z Visual Studio 2008/2010 IDE. Jeszcze nigdy używanie NDependa nie było tak naturalne w procesie tworzenia oprogramowania. Integracja wprowadza zupełnie nowy sposób pracy z kodem, gdyż do tej pory (przynajmniej w moim przypadku), statyczna analiza kodu prz...