Категорії
Електронні книги
-
Бізнес та економіка
- Біткойн
- Ділова жінка
- Коучинг
- Контроль
- Електронний бізнес
- Економіка
- Фінанси
- Фондова біржа та інвестиції
- Особисті компетенції
- Комп'ютер в офісі
- Комунікація та переговори
- Малий бізнес
- Маркетинг
- Мотивація
- Мультимедійне навчання
- Нерухомість
- Переконання та НЛП
- Податки
- Соціальна політика
- Порадники
- Презентації
- Лідерство
- Зв'язки з громадськістю
- Звіти, аналізи
- Секрет
- Соціальні засоби комунікації
- Продаж
- Стартап
- Ваша кар'єра
- Управління
- Управління проектами
- Людські ресурси (HR)
-
Для дітей
-
Для молоді
-
Освіта
-
Енциклопедії, словники
-
Електронна преса
- Architektura i wnętrza
- Biznes i Ekonomia
- Будинок та сад
- Електронний бізнес
- Фінанси
- Особисті фінанси
- Бізнес
- Фотографія
- Інформатика
- Відділ кадрів та оплата праці
- Комп'ютери, Excel
- Бухгалтерія
- Культура та література
- Наукові та академічні
- Охорона навколишнього середовища
- Впливові
- Освіта
- Податки
- Подорожі
- Психологія
- Релігія
- Сільське господарство
- Ринок книг і преси
- Транспорт та спедиція
- Здоров'я та краса
-
Історія
-
Інформатика
- Офісні застосунки
- Бази даних
- Біоінформатика
- Бізнес ІТ
- CAD/CAM
- Digital Lifestyle
- DTP
- Електроніка
- Цифрова фотографія
- Комп'ютерна графіка
- Ігри
- Хакування
- Hardware
- IT w ekonomii
- Наукові пакети
- Шкільні підручники
- Основи комп'ютера
- Програмування
- Мобільне програмування
- Інтернет-сервери
- Комп'ютерні мережі
- Стартап
- Операційні системи
- Штучний інтелект
- Технологія для дітей
- Вебмайстерність
-
Інше
-
Іноземні мови
-
Культура та мистецтво
-
Шкільні читанки
-
Література
- Антології
- Балада
- Біографії та автобіографії
- Для дорослих
- Драми
- Журнали, щоденники, листи
- Епос, епопея
- Нарис
- Наукова фантастика та фантастика
- Фельєтони
- Художня література
- Гумор, сатира
- Інше
- Класичний
- Кримінальний роман
- Нехудожня література
- Художня література
- Mity i legendy
- Лауреати Нобелівської премії
- Новели
- Побутовий роман
- Okultyzm i magia
- Оповідання
- Спогади
- Подорожі
- Оповідна поезія
- Поезія
- Політика
- Науково-популярна
- Роман
- Історичний роман
- Проза
- Пригодницька
- Журналістика
- Роман-репортаж
- Romans i literatura obyczajowa
- Сенсація
- Трилер, жах
- Інтерв'ю та спогади
-
Природничі науки
-
Соціальні науки
-
Шкільні підручники
-
Науково-популярна та академічна
- Археологія
- Bibliotekoznawstwo
- Кінознавство / Теорія кіно
- Філологія
- Польська філологія
- Філософія
- Finanse i bankowość
- Географія
- Економіка
- Торгівля. Світова економіка
- Історія та археологія
- Історія мистецтва і архітектури
- Культурологія
- Мовознавство
- літературні студії
- Логістика
- Математика
- Ліки
- Гуманітарні науки
- Педагогіка
- Навчальні засоби
- Науково-популярна
- Інше
- Психологія
- Соціологія
- Театральні студії
- Богослов’я
- Економічні теорії та науки
- Transport i spedycja
- Фізичне виховання
- Zarządzanie i marketing
-
Порадники
-
Ігрові посібники
-
Професійні та спеціальні порадники
-
Юридична
- Безпека життєдіяльності
- Історія
- Дорожній кодекс. Водійські права
- Юридичні науки
- Охорона здоров'я
- Загальне, компендіум
- Академічні підручники
- Інше
- Закон про будівництво і житло
- Цивільне право
- Фінансове право
- Господарське право
- Господарське та комерційне право
- Кримінальний закон
- Кримінальне право. Кримінальні злочини. Кримінологія
- Міжнародне право
- Міжнародне та іноземне право
- Закон про охорону здоров'я
- Закон про освіту
- Податкове право
- Трудове право та законодавство про соціальне забезпечення
- Громадське, конституційне та адміністративне право
- Кодекс про шлюб і сім'ю
- Аграрне право
- Соціальне право, трудове право
- Законодавство Євросоюзу
- Промисловість
- Сільське господарство та захист навколишнього середовища
- Словники та енциклопедії
- Державні закупівлі
- Управління
-
Путівники та подорожі
- Африка
- Альбоми
- Південна Америка
- Центральна та Північна Америка
- Австралія, Нова Зеландія, Океанія
- Австрія
- Азії
- Балкани
- Близький Схід
- Болгарія
- Китай
- Хорватія
- Чеська Республіка
- Данія
- Єгипет
- Естонія
- Європа
- Франція
- Гори
- Греція
- Іспанія
- Нідерланди
- Ісландія
- Литва
- Латвія
- Mapy, Plany miast, Atlasy
- Мініпутівники
- Німеччина
- Норвегія
- Активні подорожі
- Польща
- Португалія
- Інше
- Росія
- Румунія
- Словаччина
- Словенія
- Швейцарія
- Швеція
- Світ
- Туреччина
- Україна
- Угорщина
- Велика Британія
- Італія
-
Психологія
- Філософія життя
- Kompetencje psychospołeczne
- Міжособистісне спілкування
- Mindfulness
- Загальне
- Переконання та НЛП
- Академічна психологія
- Психологія душі та розуму
- Психологія праці
- Relacje i związki
- Батьківство та дитяча психологія
- Вирішення проблем
- Інтелектуальний розвиток
- Секрет
- Сексуальність
- Спокушання
- Зовнішній вигляд та імідж
- Філософія життя
-
Релігія
-
Спорт, фітнес, дієти
-
Техніка і механіка
Аудіокниги
-
Бізнес та економіка
- Біткойн
- Ділова жінка
- Коучинг
- Контроль
- Електронний бізнес
- Економіка
- Фінанси
- Фондова біржа та інвестиції
- Особисті компетенції
- Комунікація та переговори
- Малий бізнес
- Маркетинг
- Мотивація
- Нерухомість
- Переконання та НЛП
- Податки
- Порадники
- Презентації
- Лідерство
- Зв'язки з громадськістю
- Секрет
- Соціальні засоби комунікації
- Продаж
- Стартап
- Ваша кар'єра
- Управління
- Управління проектами
- Людські ресурси (HR)
-
Для дітей
-
Для молоді
-
Освіта
-
Енциклопедії, словники
-
Історія
-
Інформатика
-
Інше
-
Іноземні мови
-
Культура та мистецтво
-
Шкільні читанки
-
Література
- Антології
- Балада
- Біографії та автобіографії
- Для дорослих
- Драми
- Журнали, щоденники, листи
- Епос, епопея
- Нарис
- Наукова фантастика та фантастика
- Фельєтони
- Художня література
- Гумор, сатира
- Інше
- Класичний
- Кримінальний роман
- Нехудожня література
- Художня література
- Mity i legendy
- Лауреати Нобелівської премії
- Новели
- Побутовий роман
- Okultyzm i magia
- Оповідання
- Спогади
- Подорожі
- Поезія
- Політика
- Науково-популярна
- Роман
- Історичний роман
- Проза
- Пригодницька
- Журналістика
- Роман-репортаж
- Romans i literatura obyczajowa
- Сенсація
- Трилер, жах
- Інтерв'ю та спогади
-
Природничі науки
-
Соціальні науки
-
Науково-популярна та академічна
-
Порадники
-
Професійні та спеціальні порадники
-
Юридична
-
Путівники та подорожі
-
Психологія
- Філософія життя
- Міжособистісне спілкування
- Mindfulness
- Загальне
- Переконання та НЛП
- Академічна психологія
- Психологія душі та розуму
- Психологія праці
- Relacje i związki
- Батьківство та дитяча психологія
- Вирішення проблем
- Інтелектуальний розвиток
- Секрет
- Сексуальність
- Спокушання
- Зовнішній вигляд та імідж
- Філософія життя
-
Релігія
-
Спорт, фітнес, дієти
-
Техніка і механіка
Відеокурси
-
Бази даних
-
Big Data
-
Biznes, ekonomia i marketing
-
Кібербезпека
-
Data Science
-
DevOps
-
Для дітей
-
Електроніка
-
Графіка / Відео / CAX
-
Ігри
-
Microsoft Office
-
Інструменти розробки
-
Програмування
-
Особистісний розвиток
-
Комп'ютерні мережі
-
Операційні системи
-
Тестування програмного забезпечення
-
Мобільні пристрої
-
UX/UI
-
Веброзробка, Web development
-
Управління
Подкасти
- Електронні книги
- Програмування
- C#
- Czysty kod w C#. Techniki refaktoryzacji i najlepsze praktyki
Деталі електронної книги
Język C# cechują dojrzałość, prostota i nowoczesność. Służy on do wielu celów: do tworzenia aplikacji sieciowych, aplikacji działających w chmurze, oprogramowania dla urządzeń mobilnych i internetu rzeczy. Choć pozwala na pisanie kodu bezpiecznego, przejrzystego, wydajnego i prostego w konserwacji, zdarzają się przypadki, gdy jest on tak fatalnej jakości, że uzyskanie właściwej skalowalności i wydajności oprogramowania staje się niemożliwe. W takim wypadku trzeba zidentyfikować i rozwiązać problemy występujące w kodzie. Nie jest to łatwe zadanie.
Dzięki tej książce zrozumiesz znaczenie standardów kodowania, zasad i metodologii. Dowiesz się, czemu służą przeglądy kodu oraz jak przyczyniają się do jego poprawiania oraz zapewnienia zgodności z uznanymi standardami. Opisano tu także testy jednostkowe, zagadnienia związane z techniką TDD oraz rozwiązywaniem zadań przekrojowych. Zaprezentowano dobre praktyki programowania obiektów, struktur danych, obsługiwania wyjątków oraz innych aspektów pisania programów w języku C#. Poszczególne zagadnienia zilustrowano licznymi przykładami działającego kodu C# oraz wyczerpującymi wyjaśnieniami w postaci procedur krok po kroku.
W książce między innymi:
- dobre praktyki pisania kodu w C#
- implementacja metodologii fail-pass-refactor dla kodu w C#
- wzorce projektowe i ich stosowanie
- rozpoznawanie kodu złej jakości
- zabezpieczanie interfejsów API i usługa Azure Key Vault
- wykorzystywanie narzędzi do profilowania i refaktoryzacji
C#. Sekret sukcesu tkwi w czystym i najbardziej przejrzystym kodzie
O autorze 13
O recenzencie 15
Przedmowa 17
Rozdział 1. Standardy i zasady kodowania w języku C# 23
- Wymagania techniczne 24
- Dobry kod kontra zły kod 24
- Zły kod 25
- Dobry kod 39
- Potrzeba stosowania standardów kodowania, zasad i metodologii 44
- Standardy kodowania 44
- Zasady kodowania 45
- Metodologie kodowania 45
- Konwencje kodowania 46
- Modułowość 46
- KISS 47
- YAGNI 47
- DRY 48
- SOLID 48
- Brzytwa Ockhama 49
- Podsumowanie 49
- Pytania 50
- Dalsza lektura 50
Rozdział 2. Przeglądy kodu - procedura i znaczenie 51
- Procedura przeglądu kodu 52
- Przygotowanie kodu do przeglądu 52
- Kierowanie przeglądem kodu 54
- Wydawanie żądania ściągnięcia 55
- Odpowiadanie na żądanie ściągnięcia 58
- Wpływ komentarzy udzielanych podczas przeglądu kodu na programistów przekazujących kod do przeglądu 59
- Co należy przejrzeć? 62
- Obowiązujące w firmie wytyczne dotyczące kodowania oraz wymagania biznesowe 62
- Konwencje nazewnictwa 63
- Formatowanie 63
- Testowanie 64
- Wytyczne dotyczące architektury i wzorce projektowe 65
- Wydajność i bezpieczeństwo 66
- Kiedy przesłać kod do przeglądu? 67
- Komentowanie przeglądanego kodu i udzielanie odpowiedzi na uwagi 68
- Komentowanie recenzowanego kodu 69
- Odpowiadanie na komentarze recenzenta 70
- Podsumowanie 71
- Pytania 71
- Dalsza lektura 72
Rozdział 3. Klasy, obiekty i struktury danych 73
- Wymagania techniczne 74
- Organizowanie klas 74
- Klasa powinna mieć tylko jedną odpowiedzialność 76
- Wprowadzanie w klasach komentarzy w celu generowania dokumentacji 78
- Spójność i sprzężenia 81
- Przykład ścisłego sprzężenia 81
- Przykład luźnego sprzężenia 82
- Przykład kodu o niskiej spójności 84
- Przykład kodu o wysokiej spójności 84
- Projektowanie z myślą o zmianach 85
- Programowanie na bazie interfejsów 86
- Wstrzykiwanie zależności i odwracanie sterowania 88
- Przykład mechanizmu DI 89
- Przykład IoC 91
- Prawo Demeter 92
- Przykłady stosowania i łamania prawa Demeter 92
- Niemutowalne obiekty i struktury danych 94
- Przykład niemutowalnego typu 94
- Obiekty powinny ukrywać dane i eksponować metody 95
- Przykład hermetyzacji 96
- Struktury danych powinny eksponować dane i nie powinny mieć metod 96
- Przykład struktury danych 97
- Podsumowanie 97
- Pytania 98
- Dalsza lektura 99
Rozdział 4. Pisanie czystych funkcji 101
- Podstawy programowania funkcyjnego 102
- Pisanie krótkich metod 105
- Wcięcia w kodzie 107
- Unikanie powielania kodu 108
- Unikanie zbyt dużej liczby parametrów 109
- Implementacja reguły SRP 110
- Podsumowanie 115
- Pytania 115
- Dalsza lektura 116
Rozdział 5. Obsługa wyjątków 117
- Wyjątki sprawdzane i niesprawdzane 118
- Unikanie wyjątków NullReferenceException 121
- Wyjątki dotyczące reguł biznesowych 124
- Przykład 1. - obsługa warunków za pomocą wyjątków opisujących reguły biznesowe 127
- Przykład 2. - obsługa warunków z wykorzystaniem normalnego przepływu programu 128
- Przekazywanie sensownych informacji za pomocą wyjątków 130
- Budowanie niestandardowych wyjątków 131
- Podsumowanie 134
- Pytania 134
- Dalsza lektura 135
Rozdział 6. Testy jednostkowe 137
- Wymagania techniczne 138
- Znaczenie dobrego testu 138
- Narzędzia testowe 143
- MSTest 144
- NUnit 151
- Moq 157
- SpecFlow 162
- Praktyka metodologii TDD - test nie przechodzi, test przechodzi i refaktoryzacja 166
- Usuwanie nadmiarowych testów, komentarzy i martwego kodu 172
- Podsumowanie 173
- Pytania 174
- Dalsza lektura 174
Rozdział 7. Testowanie systemu "od końca do końca" 175
- Testowanie E2E 175
- Moduł logowania (podsystem) 177
- Moduł administratora (podsystem) 180
- Moduł sprawdzianów (podsystem) 182
- Testowanie E2E trójmodułowego systemu 183
- Fabryki 186
- Wstrzykiwanie zależności 193
- Modularyzacja 198
- Podsumowanie 200
- Pytania 201
- Dalsza lektura 201
Rozdział 8. Wątki i współbieżność 203
- Cykl życia wątku 204
- Dodawanie parametrów wątku 205
- Korzystanie z puli wątków 207
- Biblioteka TPL 207
- ThreadPool.QueueUserWorkItem() 210
- Korzystanie z muteksów dla wątków synchronicznych 210
- Praca z wątkami równoległymi z wykorzystaniem semaforów 212
- Ograniczanie liczby procesorów i wątków w puli wątków 215
- Zapobieganie zakleszczeniom 216
- Przykład zakleszczenia 217
- Zapobieganie wyścigom 221
- Statyczne konstruktory i metody 224
- Dodawanie statycznych konstruktorów do kodu 225
- Dodawanie metod statycznych 226
- Mutowalność, niemutowalność i bezpieczeństwo wątków 229
- Pisanie kodu, który jest mutowalny, ale nie jest bezpieczny w kontekście wątków 230
- Pisanie kodu, który jest niemutowalny i bezpieczny w kontekście wątków 232
- Bezpieczeństwo wątków 233
- Zależności metod zsynchronizowanych 237
- Korzystanie z klasy Interlocked 238
- Ogólne zalecenia 241
- Podsumowanie 242
- Pytania 243
- Dalsza lektura 243
Rozdział 9. Projektowanie i tworzenie API 245
- Wymagania techniczne 246
- Czym jest API? 246
- Proxy interfejsów API 248
- Wytyczne projektowe dla interfejsów API 249
- Dobrze zdefiniowane granice oprogramowania 252
- Znaczenie dobrej jakości dokumentacji interfejsu API 255
- Przekazywanie niemutowalnych struktur zamiast mutowalnych obiektów 257
- Testowanie zewnętrznych API 260
- Testowanie własnych API 261
- Projektowanie API za pomocą RAML 264
- Instalacja oprogramowania Atom i API Workbench firmy MuleSoft 264
- Tworzenie projektu 265
- Generowanie API w języku C# na podstawie niezależnej od języka specyfikacji w języku RAML 268
- Podsumowanie 272
- Pytania 272
- Dalsza lektura 273
Rozdział 10. Zabezpieczanie API za pomocą kluczy API i usługi Azure Key Vault 275
- Wymagania techniczne 276
- Projekt API - kalendarz dywidend 276
- Dostęp do Morningstar API 277
- Przechowywanie klucza Morningstar API w Azure Key Vault 278
- Tworzenie w Azure aplikacji webowej ASP.NET Core kalendarza dywidend 280
- Publikowanie aplikacji webowej 281
- Korzystanie z klucza API do zabezpieczenia interfejsu API kalendarza dywidend 286
- Konfigurowanie repozytorium 286
- Konfiguracja uwierzytelniania i autoryzacji 288
- Testowanie zabezpieczeń z wykorzystaniem klucza API 295
- Dodanie kodu kalendarza dywidend 297
- Ustawianie przepustowości interfejsu API 304
- Podsumowanie 308
- Pytania 308
- Dalsza lektura 309
Rozdział 11. Rozwiązywanie problemów przekrojowych 311
- Wymagania techniczne 312
- Wzorzec projektowy Dekorator 312
- Wzorzec projektowy Proxy 315
- AOP z wykorzystaniem PostSharp 317
- Rozszerzanie frameworka aspektów 318
- Rozszerzanie frameworka architektury 320
- Biblioteka wielokrotnego użytku do obsługi przekrojowych problemów w projekcie 321
- Buforowanie 321
- Rejestrowanie w plikach 323
- Logowanie 324
- Obsługa wyjątków 325
- Zabezpieczenia 326
- Walidacja parametrów 329
- Obsługa transakcji 334
- Obsługa puli zasobów 334
- Obsługa ustawień konfiguracji 335
- Oprzyrządowanie 336
- Podsumowanie 336
- Pytania 337
- Dalsza lektura 337
Rozdział 12. Narzędzia do poprawy jakości kodu 339
- Wymagania techniczne 340
- Definicja dobrej jakości kodu 340
- Porządkowanie kodu i obliczanie jego metryk 342
- Wykonywanie analizy kodu 345
- Korzystanie z narzędzia Quick Action 347
- Korzystanie z narzędzia JetBrains dotTrace 348
- Korzystanie z narzędzia JetBrains ReSharper 352
- Korzystanie z narzędzia Telerik JustDecompile 361
- Podsumowanie 362
- Pytania 363
- Dalsza lektura 363
Rozdział 13. Refaktoryzacja kodu C# - identyfikacja zapachów kodu 365
- Wymagania techniczne 366
- Zapachy kodu na poziomie aplikacji 366
- Ślepota danych typu Boolean 366
- Eksplozja kombinatoryczna 368
- Wymyślna złożoność 369
- Kępy danych 370
- Komentarze-dezodoranty 370
- Powielony kod 370
- Utracony zamiar 371
- Mutacje zmiennych 371
- Rozwiązanie-dziwak 373
- Chirurgia strzelby 375
- Rozrzucanie rozwiązań 377
- Niekontrolowane skutki uboczne 377
- Zapachy kodu na poziomie klasy 378
- Złożoność cyklomatyczna 378
- Rozbieżna zmiana 382
- Rzutowanie w dół 382
- Nadmierne używanie literałów 382
- Zazdrość o kod 383
- Nieodpowiednia intymność 384
- Nieprzyzwoite obnażanie 384
- Rozbudowana klasa (obiekt-Bóg) 385
- Klasa leniwa 385
- Klasa-pośrednik 386
- Klasa osierocona złożona z samych zmiennych i stałych 386
- Obsesja na punkcie prymitywów 386
- Odrzucony spadek 386
- Spekulatywna ogólność 387
- Stwierdzaj, nie pytaj 387
- Tymczasowe pola 387
- Zapachy na poziomie metod 387
- Metoda "czarna owca" 387
- Złożoność cyklomatyczna 388
- Wymyślna złożoność 388
- Martwy kod 388
- Zbyt duża ilość zwracanych danych 388
- Zazdrość o kod 388
- Rozmiar identyfikatora 389
- Nieodpowiednia intymność 389
- Długie wiersze kodu (wiersze-Bogowie) 389
- Leniwe metody 389
- Długie metody (metody-Bogowie) 389
- Długa lista parametrów 390
- Łańcuchy komunikatów 390
- Metoda-pośrednik 390
- Rozwiązanie-dziwak 390
- Spekulatywna ogólność 390
- Podsumowanie 391
- Pytania 391
- Dalsza lektura 393
Rozdział 14. Refaktoryzacja kodu C# - Implementacja wzorców projektowych 395
- Wymagania techniczne 396
- Implementacja kreacyjnych wzorców projektowych 396
- Implementacja wzorca Singleton 397
- Implementacja wzorca Metoda wytwórcza 398
- Implementacja wzorca projektowego Fabryka abstrakcyjna 399
- Implementacja wzorca Prototyp 402
- Implementacja wzorca projektowego Budowniczy 404
- Implementacja strukturalnych wzorców projektowych 409
- Implementacja wzorca projektowego Most 410
- Implementacja wzorca Kompozyt 412
- Implementacja wzorca projektowego Fasada 414
- Implementacja wzorca projektowego Pyłek 416
- Przegląd behawioralnych wzorców projektowych 419
- Końcowe wnioski 420
- Podsumowanie 422
- Pytania 423
- Dalsza lektura 423
Odpowiedzi 425
- Назва: Czysty kod w C#. Techniki refaktoryzacji i najlepsze praktyki
- Автор: Jason Alls
- Оригінальна назва: Clean Code in C#: Refactor your legacy C# code base and improve application performance by applying best practices
- Переклад: Radosław Meryk
- ISBN: 978-83-283-7726-4, 9788328377264
- Дата видання: 2021-06-29
- Формат: Eлектронна книга
- Ідентифікатор видання: czykoc
- Видавець: Helion