Efektywny Kotlin. Najlepsze praktyki

40.40

Description

Projektanci Kotlina postawili na pragmatyzm. Oznacza to, że do dziś wszystkie decyzje związane z rozwojem języka są podejmowane z uwzględnieniem potrzeb biznesowych: produktywności, skalowalności, prostej konserwacji, niezawodności i wydajności. Od początku szczególną uwagę zwraca się również na bezpieczeństwo, czytelność, wielokrotne używanie kodu, łatwość użycia narzędzi i możliwości współdziałania z innymi językami. Bardzo ważna okazała się też wydajność zarówno działania kodu, jak i pracy programisty. Konsekwentne przestrzeganie tych założeń dało znakomite efekty. Dziś Kotlin jest świetnym wyborem dla programisty – pod jednym warunkiem: że zna specyfikę języka i korzysta z niego we właściwy sposób.Ta książka jest przeznaczona dla doświadczonych programistów Kotlina, którzy chcą opanować ten język na wysokim poziomie. Wyjaśniono w niej sposoby korzystania ze szczególnych funkcji Kotlina, aby możliwe było uzyskanie bezpiecznego, czytelnego, skalowalnego i wydajnego kodu. Znalazły się w niej informacje o najlepszych praktykach pisania kodu w Kotlinie ze szczególnym uwzględnieniem praktyk wysokiego poziomu, zalecanych przez autorytety i twórców języka. Wyczerpująco omówiono też kwestie związane z właściwościami i typami specyficznymi dla platformy oraz tworzenie języków dziedzinowych, a także klasy i funkcje wewnątrzwierszowe. Jest to praktyczny przewodnik zawierający zbiór wytycznych, których uwzględnienie pozwoli pisać dobry i idiomatyczny kod w Kotlinie.W tej książce między innymi:reguły pisania kodu o wysokiej jakościprogramowanie dla różnych platform oraz aplikacje mobilnewzorce i konwencje programistycznekonwencje i kontrakty dla programistów wspólnie tworzących projektzapewnianie wysokiej wydajności aplikacji i bibliotekKotlin: wydajność, bezpieczeństwo, radość z programowania!Spis treści:Wprowadzenie – bądź pragmatyczny 7CZĘŚĆ I. DOBRY KOD 17Rozdział 1. Bezpieczeństwo 19Temat 1. Ograniczaj modyfikowalność 20Temat 2. Minimalizuj zasięg zmiennych 35Temat 3. Jak najszybciej wyeliminuj typy z zewnętrznych platform 40Temat 4. Nie udostępniaj wywnioskowanych typów 46Temat 5. Określaj oczekiwania co do argumentów i stanu 48Temat 6. Preferuj standardowe błędy zamiast niestandardowych 56Temat 7. Preferuj wyniki null lub Failure, gdy możliwy jest brak wyników 58Temat 8. Dbaj o odpowiednią obsługę wartości null 61Temat 9. Zamykaj zasoby za pomocą funkcji use 70Temat 10. Pisz testy jednostkowe 72Rozdział 2. Czytelność 75Temat 11. Projektuj z myślą o czytelności 77Temat 12. Znaczenie operatora powinno być zgodne z jego nazwą 82Temat 13. Unikaj zwracania wartości Unit? lub operowania nimi 86Temat 14. Podawaj typ zmiennej, gdy nie jest on oczywisty 88Temat 15. Rozważ bezpośrednie podawanie odbiorców 89Temat 16. Właściwości powinny reprezentować stan, a nie działanie 95Temat 17. Rozważ stosowanie nazw dla argumentów 99Temat 18. Przestrzegaj konwencji programistycznych 104CZĘŚĆ II. PROJEKTOWANIE KODU 107Rozdział 3. Wielokrotne używanie kodu 109Temat 19. Nie powtarzaj wiedzy 111Temat 20. Nie powtarzaj wspólnych algorytmów 118Temat 21. Stosuj delegaty właściwości do wyodrębniania powtarzających się wzorców dotyczących właściwości 122Temat 22. Używaj typów generycznych, gdy implementujesz powtarzające się algorytmy 127Temat 23. Unikaj zakrywania parametrów określających typ 130Temat 24. Rozważ wariancję w typach generycznych 132Temat 25. Wielokrotne używanie kodu na różnych platformach dzięki wyodrębnianiu wspólnych modułów 142Rozdział 4. Projektowanie abstrakcji 147Temat 26. Każdą funkcję pisz na jednym poziomie abstrakcji 151Temat 27. Korzystaj z abstrakcji do ochrony kodu przed zmianami 157Temat 28. Określaj stabilność API 169Temat 29. Rozważ tworzenie nakładek na zewnętrzne API 173Temat 30. Minimalizuj widoczność elementów 174Temat 31. Definiuj kontrakty w dokumentacji 178Temat 32. Przestrzegaj kontraktów abstrakcji 188Rozdział 5. Tworzenie obiektów 191Temat 33. Rozważ stosowanie funkcji fabrykujących zamiast konstruktorów 192Temat 34. Rozważ tworzenie konstruktorów podstawowych z nazwanymi argumentami opcjonalnymi 204Temat 35. Rozważ definiowanie języków dziedzinowych do tworzenia złożonych obiektów 212Rozdział 6. Projektowanie klas 221Temat 36. Preferuj kompozycję zamiast dziedziczenia 222Temat 37. Stosuj modyfikator data, aby reprezentować zestaw danych 233Temat 38. Do przekazywania operacji i akcji używaj typów funkcyjnych zamiast interfejsów 239Temat 39. Preferuj hierarchie klas zamiast klas z trybami 242Temat 40. Przestrzegaj kontraktu metody equals 247Temat 41. Przestrzegaj kontraktu metody hashCode 258Temat 42. Przestrzegaj kontraktu metody compareTo 265Temat 43. Rozważ przeniesienie mniej istotnych fragmentów API do rozszerzeń 268Temat 44. Unikaj tworzenia rozszerzeń jako składowych 272CZĘŚĆ III. WYDAJNOŚĆ 275Rozdział 7. Dbanie o niskie koszty 277Temat 45. Unikaj niepotrzebnego tworzenia obiektów 278Temat 46. Stosuj modyfikator inline dla funkcji z parametrami o typach funkcyjnych 289Temat 47. Rozważ stosowanie klas z modyfikatorem inline 301Temat 48. Usuwaj referencje do nieużywanych obiektów 308Rozdział 8. Wydajne przetwarzanie kolekcji 315Temat 49. Preferuj sekwencje dla dużych kolekcji z więcej niż jednym etapem przetwarzania 318Temat 50. Ograniczaj liczbę operacji 331Temat 51. Rozważ stosowanie tablic z elementami typu podstawowego w kodzie krytycznym ze względu na wydajność 333Temat 52. Rozważ używanie modyfikowalnych kolekcji 336Słowniczek 339

Informatyka

3 maj w niemczech, plus sklep spożywczy, węgry kwarantanna dla polaków, urlop w okresie wypowiedzenia, drugie co do wielkości miasto na pomorzu zachodnim, parking homole, dni pracujące w miesiącu, nowy wzór świadectwa pracy 2019, ceny turcja

yyyyy