Inne - Programowanie
Zrozum struktury danych. Algorytmy i praca na danych w Javie
Allen B. Downey
Niezależnie od tego, jakim językiem programowania się posługujesz, nie staniesz się dobrym programistą ani nawet przeciętnym informatykiem, jeśli nie przyswoisz sobie najważniejszych idei inżynierii oprogramowania: algorytmów i struktur danych. Nie są to zagadnienia proste i z pewnością niejednego studenta informatyki kosztowały wiele zarwanych nocy. Niestety, istniejące na rynku książki dotyczące tych zagadnień nie ułatwiają nauki. Najczęściej są przeładowane matematycznymi wywodami, zbyt teoretyczne, zbyt opasłe i... zbyt oderwane od konkretnych zastosowań! Jeśli postanowiłeś zyskać praktyczną wiedzę o algorytmach i strukturach danych, a przy tym nieźle posługujesz się Javą, to trzymasz w rękach właściwą poublikację. Podstawy teoretyczne zostały w niej ograniczone do niezbędnych, potrzebnych w praktyce zagadnień. Sporo miejsca poświęcono analizie implementacji algorytmów i mierzeniu ich wydajności. Wyczerpująco wyjaśniono tak ważne aspekty praktyki inżynierii oprogramowania, jak kontrola wersji i testy jednostkowe. Mimo niewielkiej objętości książki znalazły się tu również ambitniejsze zagadnienia, np. trwałe struktury danych tworzone przez bazy danych Redis. W każdym rozdziale zamieszczono praktyczne ćwiczenia wraz z odpowiednim kodem testującym. W tej książce między innymi: Wprowadzenie do interfejsów Javy Analiza algorytmów Binarne drzewo przeszukiwania Wyszukiwanie logiczne Sortowanie Myśl jak informatyk i zrozum algorytmy!
Zrozumieć oprogramowanie. O prostocie kodu i doskonaleniu warsztatu programisty
Max Kanat-Alexander
W codziennej praktyce programiści często muszą sobie radzić z coraz większą złożonością tworzonego kodu. Mnożą się błędy, a ryzyko spektakularnej porażki rośnie. Jeśli ten scenariusz dotyczy także Ciebie, poziom złożoności Twoich projektów Cię przytłacza i czujesz, że nie dajesz rady, już teraz wdróż fundamentalne reguły, dzięki którym Twój kod odzyska prostotę i niezawodność! Jeśli każdy dzień z nowym projektem Cię rozczarowuje i przestałeś wierzyć w swoje możliwości, sięgnij po tę książkę! Max Kanat-Alexander, odpowiedzialny za dział Code Health w Google, w tym świetnym zbiorze esejów dzieli się mnóstwem trafnych spostrzeżeń dotyczących zasad programowania, złożoności kodu, pracy zespołowej i filozofii projektowania aplikacji. W książce pokazano bardzo różnorodne zagadnienia, od pisania prostego kodu aż po jego debugowanie i pogłębioną analizę. Dowiesz się także, jaka postawa charakteryzuje naprawdę dobrego programistę. Świeżość spojrzenia i znakomity styl autora sprawią, że tę książkę przeczytasz z przyjemnością. Wiedza techniczna i poziom ekspertyzy przyniosły mu status guru kodu, a jego pomysły zainspirują Cię i odświeżą Twoje podejście do wyzwań związanych z byciem deweloperem. Odzyskaj radość ze swojej pracy i zapomnij o porażkach! Ta książka skłoni Cię do przemyśleń: dlaczego prostota i precyzja są najważniejsze w tworzeniu kodu czym jest mistrzowskie programowanie jak poradzić sobie ze złożonością oprogramowania skąd się biorą porażki programistów i jak ich unikać jak się ma prostota do bezpieczeństwa aplikacji czym są błędy i jak należy rozumieć debugowanie Złożoność jest głupia. Prostota jest mądra.
Zrównoważony kod. Dobre praktyki i heurystyki dla inżynierów oprogramowania
Mark Seemann
Wielu zdolnych programistów uczestniczy w nieefektywnych, źle prowadzonych projektach. Inni muszą utrzymywać kod, który właściwie nigdy nie powinien ujrzeć światła dziennego. Źródeł tego rodzaju trudności jest wiele: programowanie samo w sobie jest niełatwym zagadnieniem, a tworzenie funkcjonalnych aplikacji najczęściej wymaga współdziałania wielu osób. Sprawia to, że kod budujący aplikację szybko zwiększa swoją złożoność, staje się niezrozumiały i bardzo trudny w utrzymaniu. Na szczęście te problemy zostały dostrzeżone i obecnie mamy wiele sposobów ich rozwiązywania. Ta książka jest przeznaczona dla doświadczonych programistów, którzy chcą zdobyć lub pogłębić wiedzę o metodologiach i dobrych praktykach tworzenia złożonego oprogramowania. Stanowi interesująco napisany zbiór heurystyk i technik ułożonych w kolejności stosowania podczas rozwijania projektu programistycznego. Omówiono tu między innymi listy kontrolne, TDD, rozdzielenie poleceń i zapytań, Git, złożoność cyklomatyczną, przezroczystość referencyjną, wycinki pionowe, refaktoryzację zastanego kodu czy programowanie typu outside-in. Pokazano również, jak utrzymać właściwe tempo pracy podczas dodawania funkcjonalności, jak rozwiązywać problemy optymalizacji, enkapsulacji, a także projektowania API i testów jednostkowych. Poszczególne zagadnienia zostały zilustrowane kodem przykładowego projektu napisanego w C#, zrozumiałego dla każdego, kto zna dowolny język zorientowany obiektowo. Dzięki książce zrozumiesz, jak: wybierać sprawdzone procesy tworzyć listy kontrolne ułatwiające polepszenie wyników unikać "paraliżu analitycznego" przeciwdziałać degradacji kodu i niepotrzebnej złożoności stosować lepsze techniki modyfikacji kodu i rozwiązywania problemów skuteczniej godzić wymogi wydajności i bezpieczeństwa Celem nie jest pisanie kodu. Celem jest funkcjonalne oprogramowanie!