Categories
Ebooks
-
Business and economy
- Bitcoin
- Businesswoman
- Coaching
- Controlling
- E-business
- Economy
- Finances
- Stocks and investments
- Personal competence
- Computer in the office
- Communication and negotiation
- Small company
- Marketing
- Motivation
- Multimedia trainings
- Real estate
- Persuasion and NLP
- Taxes
- Social policy
- Guides
- Presentations
- Leadership
- Public Relation
- Reports, analyses
- Secret
- Social Media
- Sales
- Start-up
- Your career
- Management
- Project management
- Human Resources
-
For children
-
For youth
-
Education
-
Encyclopedias, dictionaries
-
E-press
- Architektura i wnętrza
- Health and Safety
- Biznes i Ekonomia
- Home and garden
- E-business
- Finances
- Personal finance
- Business
- Photography
- Computer science
- HR & Payroll
- Computers, Excel
- Accounts
- Culture and literature
- Scientific and academic
- Environmental protection
- Opinion-forming
- Education
- Taxes
- Travelling
- Psychology
- Religion
- Agriculture
- Book and press market
- Transport and Spedition
- Healthand beauty
-
History
-
Computer science
- Office applications
- Data bases
- Bioinformatics
- IT business
- CAD/CAM
- Digital Lifestyle
- DTP
- Electronics
- Digital photography
- Computer graphics
- Games
- Hacking
- Hardware
- IT w ekonomii
- Scientific software package
- School textbooks
- Computer basics
- Programming
- Mobile programming
- Internet servers
- Computer networks
- Start-up
- Operational systems
- Artificial intelligence
- Technology for children
- Webmastering
-
Other
-
Foreign languages
-
Culture and art
-
School reading books
-
Literature
- Antology
- Ballade
- Biographies and autobiographies
- For adults
- Dramas
- Diaries, memoirs, letters
- Epic, epopee
- Essay
- Fantasy and science fiction
- Feuilletons
- Work of fiction
- Humour and satire
- Other
- Classical
- Crime fiction
- Non-fiction
- Fiction
- Mity i legendy
- Nobelists
- Novellas
- Moral
- Okultyzm i magia
- Short stories
- Memoirs
- Travelling
- Narrative poetry
- Poetry
- Politics
- Popular science
- Novel
- Historical novel
- Prose
- Adventure
- Journalism, publicism
- Reportage novels
- Romans i literatura obyczajowa
- Sensational
- Thriller, Horror
- Interviews and memoirs
-
Natural sciences
-
Social sciences
-
School textbooks
-
Popular science and academic
- Archeology
- Bibliotekoznawstwo
- Cinema studies
- Philology
- Polish philology
- Philosophy
- Finanse i bankowość
- Geography
- Economy
- Trade. World economy
- History and archeology
- History of art and architecture
- Cultural studies
- Linguistics
- Literary studies
- Logistics
- Maths
- Medicine
- Humanities
- Pedagogy
- Educational aids
- Popular science
- Other
- Psychology
- Sociology
- Theatre studies
- Theology
- Economic theories and teachings
- Transport i spedycja
- Physical education
- Zarządzanie i marketing
-
Guides
-
Game guides
-
Professional and specialist guides
-
Law
- Health and Safety
- History
- Road Code. Driving license
- Law studies
- Healthcare
- General. Compendium of knowledge
- Academic textbooks
- Other
- Construction and local law
- Civil law
- Financial law
- Economic law
- Economic and trade law
- Criminal law
- Criminal law. Criminal offenses. Criminology
- International law
- International law
- Health care law
- Educational law
- Tax law
- Labor and social security law
- Public, constitutional and administrative law
- Family and Guardianship Code
- agricultural law
- Social law, labour law
- European Union law
- Industry
- Agricultural and environmental
- Dictionaries and encyclopedia
- Public procurement
- Management
-
Tourist guides and travel
- Africa
- Albums
- Southern America
- North and Central America
- Australia, New Zealand, Oceania
- Austria
- Asia
- Balkans
- Middle East
- Bulgary
- China
- Croatia
- The Czech Republic
- Denmark
- Egipt
- Estonia
- Europe
- France
- Mountains
- Greece
- Spain
- Holand
- Iceland
- Lithuania
- Latvia
- Mapy, Plany miast, Atlasy
- Mini travel guides
- Germany
- Norway
- Active travelling
- Poland
- Portugal
- Other
- Przewodniki po hotelach i restauracjach
- Russia
- Romania
- Slovakia
- Slovenia
- Switzerland
- Sweden
- World
- Turkey
- Ukraine
- Hungary
- Great Britain
- Italy
-
Psychology
- Philosophy of life
- Kompetencje psychospołeczne
- Interpersonal communication
- Mindfulness
- General
- Persuasion and NLP
- Academic psychology
- Psychology of soul and mind
- Work psychology
- Relacje i związki
- Parenting and children psychology
- Problem solving
- Intellectual growth
- Secret
- Sexapeal
- Seduction
- Appearance and image
- Philosophy of life
-
Religion
-
Sport, fitness, diets
-
Technology and mechanics
Audiobooks
-
Business and economy
- Bitcoin
- Businesswoman
- Coaching
- Controlling
- E-business
- Economy
- Finances
- Stocks and investments
- Personal competence
- Communication and negotiation
- Small company
- Marketing
- Motivation
- Real estate
- Persuasion and NLP
- Taxes
- Guides
- Presentations
- Leadership
- Public Relation
- Secret
- Social Media
- Sales
- Start-up
- Your career
- Management
- Project management
- Human Resources
-
For children
-
For youth
-
Education
-
Encyclopedias, dictionaries
-
History
-
Computer science
-
Other
-
Foreign languages
-
Culture and art
-
School reading books
-
Literature
- Antology
- Ballade
- Biographies and autobiographies
- For adults
- Dramas
- Diaries, memoirs, letters
- Epic, epopee
- Essay
- Fantasy and science fiction
- Feuilletons
- Work of fiction
- Humour and satire
- Other
- Classical
- Crime fiction
- Non-fiction
- Fiction
- Mity i legendy
- Nobelists
- Novellas
- Moral
- Okultyzm i magia
- Short stories
- Memoirs
- Travelling
- Poetry
- Politics
- Popular science
- Novel
- Historical novel
- Prose
- Adventure
- Journalism, publicism
- Reportage novels
- Romans i literatura obyczajowa
- Sensational
- Thriller, Horror
- Interviews and memoirs
-
Natural sciences
-
Social sciences
-
Popular science and academic
-
Guides
-
Professional and specialist guides
-
Law
-
Tourist guides and travel
-
Psychology
- Philosophy of life
- Interpersonal communication
- Mindfulness
- General
- Persuasion and NLP
- Academic psychology
- Psychology of soul and mind
- Work psychology
- Relacje i związki
- Parenting and children psychology
- Problem solving
- Intellectual growth
- Secret
- Sexapeal
- Seduction
- Appearance and image
- Philosophy of life
-
Religion
-
Sport, fitness, diets
-
Technology and mechanics
Videocourses
-
Data bases
-
Big Data
-
Biznes, ekonomia i marketing
-
Cybersecurity
-
Data Science
-
DevOps
-
For children
-
Electronics
-
Graphics/Video/CAX
-
Games
-
Microsoft Office
-
Development tools
-
Programming
-
Personal growth
-
Computer networks
-
Operational systems
-
Software testing
-
Mobile devices
-
UX/UI
-
Web development
-
Management
Podcasts
- Ebooks
- Programming
- .NET - Programming
- Refaktoryzacja w C#. Jak zredukować dług techniczny i optymalizować kod z Visual Studio, .NET 8 i C# 12
E-book details
Refaktoryzacja w C#. Jak zredukować dług techniczny i optymalizować kod z Visual Studio, .NET 8 i C# 12
Termin dług techniczny oznacza zbiór skrótów, niedociągnięć i potworków projektowych, które powstają w trakcie ewolucyjnego rozwoju programu. Jeśli się ich nie zlikwiduje, mogą dramatycznie spowolnić pracę nad programem. Rozwiązywanie tego typu problemów jest nazywane refaktoryzacją i każdy programista powinien umieć ją przeprowadzać.
Dzięki tej przystępnej, świetnie napisanej książce dowiesz się, czym jest dług techniczny, co prowadzi do jego powstawania i w jaki sposób można go bezpiecznie zrefaktoryzować przy użyciu nowoczesnych narzędzi dostępnych w środowisku Visual Studio, a także najnowszych składników języka C# 12 i platformy .NET 8. Nauczysz się też korzystać z zaawansowanych testów jednostkowych tworzonych przy użyciu xUnit i takich bibliotek jak Moq, Snapper czy Scientist.NET. Dowiesz się, jak stosować zasady SOLID, aby tworzyć łatwy w utrzymaniu kod, poznasz również techniki programowania defensywnego, które można stosować w nowszych wersjach C#. Ponadto nauczysz się przeprowadzać analizy kodu i pisać własne analizatory Roslyn do wykrywania i rozwiązywania problemów typowych dla Twojego projektu.
Najciekawsze zagadnienia:
- najważniejsze informacje o długu technicznym
- różne sposoby refaktoryzacji klas, metod i wierszy kodu
- efektywne testy jednostkowe
- zasady SOLID i tworzenie kodu łatwego w utrzymaniu
- korzystanie ze sztucznej inteligencji GitHub Copilot
- standardy kodowania w zwinnych zespołach
O recenzentach
Przedmowa
Wstęp
CZĘŚĆ 1. Refaktoryzacja w C# w Visual Studio
- Rozdział 1. Dług techniczny, zapaszki kodu i refaktoryzacja
- Dług techniczny i stary kod
- Skąd się bierze dług techniczny
- Identyfikacja zapaszków kodu
- Wprowadzenie do refaktoryzacji
- Narzędzia do refaktoryzacji w Visual Studio
- Studium przypadku - linie lotnicze Cloudy Skies
- Podsumowanie
- Pytania
- Dalsza lektura
- Dług techniczny i stary kod
- Rozdział 2. Wprowadzenie do refaktoryzacji
- Wymagania techniczne
- Refaktoryzacja kalkulatora cen bagażu
- Konwersja własności na własności automatyczne
- Wprowadzanie zmiennych lokalnych
- Wprowadzanie stałych
- Wprowadzanie parametrów
- Usuwanie nieużywanego i nieosiągalnego kodu
- Wyodrębnianie metod
- Ręczna refaktoryzacja
- Testowanie kodu po refaktoryzacji
- Refaktoryzacja w innych edytorach
- Refaktoryzacja w Visual Studio Code z dodatkiem C# Dev Kit
- Refaktoryzacja w środowisku JetBrains Rider
- Refaktoryzacja w Visual Studio z dodatkiem ReSharper
- Podsumowanie
- Pytania
- Dalsza lektura
- Rozdział 3. Refaktoryzacja przepływu sterowania i iteracji
- Wymagania techniczne
- Refaktoryzacja aplikacji do obsługi przyjmowania na pokład
- Kontrola przepływu sterowania
- Odwracanie instrukcji if
- Opuszczanie instrukcji else po instrukcjach return
- Restrukturyzacja instrukcji if
- Operator trójargumentowy
- Zamiana instrukcji if na instrukcje switch
- Konwersja na wyrażenia switch
- Tworzenie obiektów
- Zamiana var na konkretne określenia typów
- Prostsze tworzenie przy użyciu słowa kluczowego new z określeniem typu docelowego
- Inicjalizatory obiektów
- Iterowanie kolekcji
- Pętla foreach
- Konwersja na pętlę for
- Konwersja na LINQ
- Refaktoryzacja instrukcji LINQ
- Wybór odpowiedniej metody LINQ
- Łączenie metod LINQ
- Przekształcanie przy użyciu metody Select
- Przegląd i testowanie kodu po refaktoryzacji
- Podsumowanie
- Pytania
- Dalsza lektura
- Rozdział 4. Refaktoryzacja na poziomie metod
- Wymagania techniczne
- Refaktoryzacja rejestratora lotów
- Refaktoryzacja metod
- Zmiana modyfikatorów dostępu do metod
- Zmienianie nazw metod i parametrów
- Przeciążanie metod
- Łańcuchy wywołań metod
- Refaktoryzacja konstruktorów
- Generowanie konstruktorów
- Łańcuchy konstruktorów
- Refaktoryzacja parametrów
- Zmiana kolejności parametrów
- Dodawanie parametrów
- Wprowadzanie parametrów opcjonalnych
- Usuwanie parametrów
- Refaktoryzacja do funkcji
- Składowe z wyrażeniem w treści
- Przekazywanie funkcji jako parametrów z akcjami
- Zwracanie danych z akcji przy użyciu struktur typu Func
- Wprowadzanie metod statycznych i rozszerzających
- Tworzenie statycznych metod
- Przenoszenie statycznych składowych do innych typów
- Tworzenie metod rozszerzających
- Przegląd i testowanie kodu po refaktoryzacji
- Podsumowanie
- Pytania
- Dalsza lektura
- Rozdział 5. Refaktoryzacja kodu obiektowego
- Wymagania techniczne
- Refaktoryzacja systemu wyszukiwania lotów
- Organizowanie klas przez refaktoryzację
- Przenoszenie klas do osobnych plików
- Zmienianie nazw plików i klas
- Zmiana przestrzeni nazw
- Unikanie klas częściowych i regionów
- Refaktoryzacja i dziedziczenie
- Przesłanianie metody ToString
- Generowanie metod równości
- Wyodrębnianie klasy bazowej
- Przenoszenie implementacji interfejsów w górę drzewa dziedziczenia
- Kontrolowanie dziedziczenia za pomocą słowa kluczowego abstract
- Wyrażanie intencji za pomocą słowa kluczowego abstract
- Wprowadzanie składowych abstrakcyjnych
- Konwersja metod abstrakcyjnych na wirtualne
- Poprawianie hermetyzacji
- Hermetyzacja pól
- Pakowanie parametrów do klasy
- Opakowywanie własności w klasy
- Kompozycja zamiast dziedziczenia
- Ulepszanie klas za pomocą interfejsów i polimorfizmu
- Wyodrębnianie interfejsów
- Domyślne implementacje interfejsów
- Wprowadzanie polimorfizmu
- Przegląd i testowanie zrefaktoryzowanego kodu
- Podsumowanie
- Pytania
- Dalsza lektura
CZĘŚĆ 2. Bezpieczna refaktoryzacja
- Rozdział 6. Testy jednostkowe
- Wymagania techniczne
- Testowanie i testy jednostkowe
- Typy testów i piramida testowania
- Testy jednostkowe
- Testowanie kodu przy użyciu xUnit
- Tworzenie projektu testowego xUnit
- Łączenie projektu testów xUnit z własnym projektem
- Pierwszy test jednostkowy
- Wzorzec Organizacja-Akcja-Asercja
- Testy i wyjątki
- Dodawanie kolejnych metod testowych
- Refaktoryzacja testów jednostkowych
- Parametryzacja testów za pomocą atrybutów Theory i InlineData
- Inicjalizacja kodu testów za pomocą konstruktorów i pól
- Współdzielenie kodu przez metody
- Inne środowiska testowe
- Środowisko NUnit
- Środowisko testowe MSTest
- Myślenie w kategoriach testów
- Włączanie testów do codziennego toku pracy
- Izolowanie zależności
- Dobre i złe testy
- Uwagi na temat pokrycia kodu
- Podsumowanie
- Pytania
- Dalsza lektura
- Rozdział 7. Programowanie oparte na testach
- Wymagania techniczne
- Czym jest programowanie oparte na testach
- Programowanie oparte na testach w Visual Studio
- Ustawianie salda początkowego
- Dodawanie kilometrów i generowanie metod
- Wykorzystywanie kilometrów i refaktoryzacja testów
- Kiedy stosować metodykę TDD
- Podsumowanie
- Pytania
- Dalsza lektura
- Rozdział 8. Unikanie antywzorców dzięki zasadom SOLID
- Identyfikacja antywzorców w kodzie C#
- Przestrzeganie zasad SOLID
- Zasada pojedynczej odpowiedzialności
- Zasada otwarty-zamknięty
- Zasada zastępowania Liskov
- Zasada segregacji interfejsów
- Zasada odwrócenia zależności
- Inne zasady architektoniczne
- Zasada DRY
- Zasada KISS
- Wysoka spójność i niski stopień sprzężenia
- Podsumowanie
- Pytania
- Dalsza lektura
- Rozdział 9. Zaawansowane testy jednostkowe
- Wymagania techniczne
- Tworzenie czytelnych testów przy użyciu Shouldly
- Instalowanie pakietu NuGet Shouldly
- Czytelne asercje z Shouldly
- Czytelne asercje z FluentAssertions
- Testowanie wydajności z Shouldly
- Generowanie danych testowych przy użyciu biblioteki Bogus
- Imitowanie zależności za pomocą bibliotek Moq i NSubstitute
- Dlaczego należy korzystać z bibliotek imitacyjnych
- Tworzenie atrap obiektów przy użyciu biblioteki Moq
- Programowanie wartości zwrotnych biblioteki Moq
- Weryfikacja wywołań Moq
- Tworzenie atrap przy użyciu biblioteki NSubstitute
- Testy migawkowe z biblioteką Snapper
- Eksperymentowanie z Scientist .NET
- Podsumowanie
- Pytania
- Dalsza lektura
- Rozdział 10. Defensywne techniki pisania kodu
- Wymagania techniczne
- API Cloudy Skies
- Sprawdzanie poprawności danych wejściowych
- Podstawowa weryfikacja poprawności danych
- Słowo kluczowe nameof
- Weryfikacja przy użyciu klauzul ochronnych
- Klauzule ochronne z biblioteki GuardClauses
- Atrybuty informacyjne
- Ochrona przed null
- Włączanie analizy dopuszczalności wartości null w C#
- Operatory dopuszczalności wartości null
- Poza granicą klas
- Preferowanie klas niezmiennych
- Własności wymagane i tylko do inicjalizacji
- Konstruktory podstawowe
- Konwertowanie klas na rekordy
- Klonowanie obiektów przy użyciu wyrażeń with
- Zaawansowane techniki pracy z typami
- Dopasowywanie wzorców
- Ograniczanie dublowania za pomocą typów generycznych
- Tworzenie aliasów typów za pomocą dyrektywy using
- Podsumowanie
- Pytania
- Dalsza lektura
CZĘŚĆ 3. Zaawansowana refaktoryzacja przy użyciu sztucznej inteligencji i analizy kodu
- Rozdział 11. Refaktoryzacja wspomagana przez sztuczną inteligencję z GitHub Copilot
- Wymagania techniczne
- Wprowadzenie do GitHub Copilot
- Model predykcyjny GitHub
- Rozpoczynanie rozmowy z czatem GitHub Copilot
- Rozpoczynanie pracy z GitHub Copilot w Visual Studio
- Instalowanie i aktywacja rozszerzenia GitHub Copilot
- Uzyskiwanie dostępu do narzędzia GitHub Copilot
- Generowanie sugestii przez GitHub Copilot
- Interakcja z czatem GitHub Copilot
- Refaktoryzacja przy użyciu czatu GitHub Copilot
- Czat GitHub Copilot jako recenzent kodu
- Refaktoryzacja celowana przy użyciu czatu GitHub Copilot
- Tworzenie wstępnej dokumentacji za pomocą czatu GitHub Copilot
- Generowanie imitacji obiektów za pomocą czatu GitHub Copilot
- Ograniczenia narzędzia GitHub Copilot
- Prywatność danych a GitHub Copilot
- Wątpliwości związane z kodem publicznym i narzędziem GitHub Copilot
- Studium przypadku - linie lotnicze Cloudy Skies
- Podsumowanie
- Pytania
- Dalsza lektura
- Rozdział 12. Analiza kodu w Visual Studio
- Wymagania techniczne
- Obliczanie metryk kodu w Visual Studio
- Analiza kodu w Visual Studio
- Analiza rozwiązania przy użyciu domyślnego zestawu reguł
- Konfigurowanie zestawów zasad analizy kodu
- Reagowanie na reguły analizy kodu
- Traktowanie ostrzeżeń jako błędów
- Zaawansowane narzędzia do analizy kodu
- Śledzenie metryk kodu za pomocą SonarCloud i SonarQube
- Dogłębna analiza na platformie .NET za pomocą NDepend
- Studium przypadku linii lotniczych Cloudy Skies
- Podsumowanie
- Pytania
- Dalsza lektura
- Rozdział 13. Tworzenie analizatora Roslyn
- Wymagania techniczne
- Analizatory Roslyn - informacje podstawowe
- Instalowanie narzędzi do tworzenia rozszerzeń i edytora DGML
- Wprowadzenie do wizualizatora składni
- Tworzenie analizatora Roslyn
- Dodawanie projektu analizatora do rozwiązania
- Definiowanie zasady analizy kodu
- Analizowanie symboli przez analizator Roslyn
- Wskazówki na temat pisania analizatorów Roslyn
- Testowanie analizatorów Roslyn za pomocą RoslynTestKit
- Dodawanie projektu testowego analizatora Roslyn
- Klasa AnalyzerTestFixture
- Sprawdzanie, czy analizator Roslyn nie oznacza poprawnego kodu
- Sprawdzanie, czy analizator Roslyn znajduje niepoprawny kod
- Debugowanie analizatorów Analyzers
- Udostępnianie analizatorów jako rozszerzeń do Visual Studio
- Tworzenie rozszerzenia Visual Studio (VSIX) dla analizatora Roslyn
- Podsumowanie
- Pytania
- Dalsza lektura
- Rozdział 14. Refaktoryzacja kodu z analizatorami Roslyn
- Wymagania techniczne
- Studium przypadku - linie lotnicze Cloudy Skies
- Budowa poprawki kodu analizatora Roslyn
- Tworzenie dostawcy poprawki kodu
- Rejestrowanie poprawki kodu
- Modyfikowanie dokumentu przez poprawkę kodu
- Testowanie poprawek kodu za pomocą RoslynTestKit
- Publikowanie analizatorów Roslyn jako pakietów NuGet
- Wdrażanie za pomocą pakietów NuGet
- Tworzenie pakietu NuGet
- Wdrażanie pakietu NuGet
- Dodawanie pakietu NuGet
- Pakowanie dostawcy poprawki kodu jako rozszerzenia
- Podsumowanie
- Pytania
- Dalsza lektura
CZĘŚĆ 4. Refaktoryzacja w firmie
- Rozdział 15. Informowanie o długu technicznym
- Pokonywanie barier w refaktoryzacji
- Pilne terminy
- "Nie ruszać kodu wysokiego ryzyka"
- "Ten kod zniknie, nie marnuj na niego czasu"
- Aplikacje kończące cykl życia
- "Zrób tylko to, co jest wymagane"
- "Refaktoryzacja nie daje wartości biznesowej"
- Informowanie o długu technicznym
- Dług techniczny jako ryzyko
- Tworzenie rejestru ryzyka
- Co zamiast rejestru ryzyka
- Ustalanie priorytetów długu technicznego
- Obliczanie priorytetów ryzyka za pomocą oceny ryzyka
- Podejście oparte na przeczuciu
- Uzyskiwanie poparcia organizacyjnego
- Przygotowywanie się do rozmowy
- Przewidywanie pytań i zastrzeżeń
- Różne podejścia dla różnych liderów
- Znaczenie komunikacji
- Studium przypadku - linie lotnicze Cloudy Skies
- Podsumowanie
- Pytania
- Dalsza lektura
- Pokonywanie barier w refaktoryzacji
- Rozdział 16. Wdrażanie standardów kodowania
- Wymagania techniczne
- Czym są standardy kodowania
- Znaczenie standardów kodowania
- Jak standardy kodu wpływają na refaktoryzację
- Stosowanie standardów kodowania do istniejącego kodu
- Ustanowienie standardów kodowania
- Zbiorowe standardy kodowania
- Wybór tego, co ważne
- Źródła standardów kodowania
- Ewolucja standardów kodowania
- Włączanie standardów do procesów
- Formatowanie i czyszczenie kodu w Visual Studio
- Formatowanie dokumentów
- Automatyczne formatowanie dokumentów
- Konfigurowanie ustawień stylu kodowania
- Stosowanie standardów kodowania za pomocą plików EditorConfig
- Kod początkowy do przeglądu
- Dodawanie pliku EditorConfig
- Dostosowywanie pliku EditorConfig
- Podsumowanie
- Pytania
- Więcej informacji
- Rozdział 17. Zwinna refaktoryzacja
- Refaktoryzacja w zwinnym środowisku
- Kluczowe elementy zwinnych zespołów
- Czynniki przeszkadzające w refaktoryzacji
- Strategie dające sukces w zwinnej refaktoryzacji
- Zadania poświęcone refaktoryzacji
- Refaktoryzacja kodu, który jest zmieniany
- Sprinty refaktoryzacji
- Urlopy refaktoryzacyjne
- Wykonywanie refaktoryzacji na dużą skalę
- Dlaczego duże refaktoryzacje są trudne
- Pułapka przepisywania
- Lekcje z okrętu Tezeusza
- Aktualizowanie projektów za pomocą .NET Upgrade Assistant
- Refaktoryzacja i wzorzec dusiciela
- Odzyskiwanie sprawności, gdy refaktoryzacja pójdzie źle
- Wpływ nieudanych refaktoryzacji
- Zapewnienie bezpieczeństwa w zwinnych środowiskach
- Wdrażanie refaktoryzacji na dużą skalę
- Korzystanie z flag funkcji
- Wdrożenia etapowe lub niebiesko-zielone
- Wartość ciągłej integracji i ciągłego dostarczania
- Studium przypadku - linie lotnicze Cloudy Skies
- Podsumowanie
- W kierunku bardziej zrównoważonego oprogramowania
- Pytania
- Więcej informacji
- Refaktoryzacja w zwinnym środowisku
- Title: Refaktoryzacja w C#. Jak zredukować dług techniczny i optymalizować kod z Visual Studio, .NET 8 i C# 12
- Author: Matt Eland
- Original title: Refactoring with C#: Safely improve .NET applications and pay down technical debt with Visual Studio, .NET 8, and C# 12
- Translation: Łukasz Piwko
- ISBN: 978-83-289-1692-0, 9788328916920
- Date of issue: 2025-01-21
- Format: Ebook
- Item ID: refawc
- Publisher: Helion