Programisto, słuchaj podcastów !

Podcasty dla programistów.

Ogólnie rzecz biorąc, podcasty na poważnie przebiły się do mojej świadomości w zeszłym roku. Okazuje się, że bardzo odpowiada mi taki sposób przekazywania informacji. Naturalnym krokiem było odnalezienie wartościowych audycji, które byłyby związane z programowaniem i nowymi technologiami. Jak się okazuje – nie jest to takie proste.

(więcej…)

DRY – KISS – YAGNI, czyli jak „doświadczeni” programiści zapominają o podstawach.

DRY – KISS – YAGNI.

Tak, tak – wszyscy programiści uwielbiają chwytliwe akronimy. Ten podziw rośnie przeważnie wraz ze stażem pracy. Co jednak zauważyłem parę miesięcy temu – z zastosowaniem reklamowanych zasad w praktyce bywa bardzo różnie.

Kolejna obserwacja jest taka, że im prostsza reguła, tym trudniej ją zachować – naprawdę niesamowita sprawa. To jest wg mnie właśnie to, co odróżnia doświadczenie od stażu pracy.

(więcej…)

C++11 #11: Inteligentne wskaźniki wchodzą do gry: std::shared_ptr, std::weak_ptr.

std::shared_ptr.

W odróżnieniu od std::unique_ptr, std::shared_ptr opiera się na współdzieleniu właśności (ang. shared ownership) przechowywanego zasobu. Z tego powodu możemy posiadać wiele inteligentnych wskaźników typu std::shared_ptr, wskazujących na ten sam obiekt w pamięci.

Ten koncept ma bardzo dużo wspólnego z realizacją automatycznego odśmiecania pamięci w innych językach programowania, ponieważ klasa std::shared_ptr ma zaimplementowany mechanizm tzw. zliczania referencji.

(więcej…)

C++11 #10: Inteligentne wskaźniki wchodzą do gry: std::unique_ptr.

Inteligentne wskaźniki wchodzą do gry.

Do tej pory wpisy na temat C++11 dotyczyły bardzo ważnych i przydatnych zmian w języku. Jednak to zarządzanie pamięcią i wskaźniki doczekały się największych, fundamentalnych usprawnień w nowym standardzie – jednym z najważniejszych są tzw. inteligentne wskaźniki.

Oczywiście nadal można ręcznie zarządzać pamięcią w C++ – to fundament języka. Nie wyklucza to jednak wprowadzania nowych rozwiązań, które przyczyniają się do drastycznych zmian w sposobie zarządzania życiem obiektów i jednocześnie eliminują większość paskudnych błędów.

(więcej…)