{"id":11064,"date":"2026-02-21T11:58:05","date_gmt":"2026-02-21T03:58:05","guid":{"rendered":"https:\/\/www.cybermedian.com\/pl\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/"},"modified":"2026-02-21T11:58:05","modified_gmt":"2026-02-21T03:58:05","slug":"mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study","status":"publish","type":"post","link":"https:\/\/www.cybermedian.com\/pl\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/","title":{"rendered":"Opanowanie projektowania obiektowego za pomoc\u0105 kart CRC: Przyk\u0142ad przyjazny dla pocz\u0105tkuj\u0105cych"},"content":{"rendered":"<blockquote data-nodeid=\"3344\">\n<p data-nodeid=\"3345\"><em data-nodeid=\"3691\">\u201eNajlepszym sposobem na nauk\u0119 projektowania obiektowego nie jest zapami\u0119tywanie wzorc\u00f3w \u2014 to granie w role.\u201d<\/em><\/p>\n<\/blockquote>\n<p data-nodeid=\"3346\">W tym artykule przejdziemy przez<strong data-nodeid=\"3703\">krok po kroku wprowadzenie do kart CRC<\/strong>\u00a0(Klasa\u2013Odpowiedzialno\u015b\u0107\u2013Wsp\u00f3\u0142pracownik) z u\u017cyciem rzeczywistego przyk\u0142adu przyjaznego dla pocz\u0105tkuj\u0105cych: system<strong data-nodeid=\"3704\">System wypo\u017cyczania ksi\u0105\u017cek bibliotecznych<\/strong>. Niezale\u017cnie od tego, czy zaczynasz swoj\u0105 podr\u00f3\u017c w dziedzinie projektowania oprogramowania, czy prowadzisz warsztat zespo\u0142u, karty CRC oferuj\u0105 prosty, pot\u0119\u017cny i wsp\u00f3\u0142pracy oparty spos\u00f3b modelowania system\u00f3w obiektowych.<\/p>\n<hr data-nodeid=\"3347\"\/>\n<h2 data-nodeid=\"3348\">\ud83c\udfaf Czym s\u0105 karty CRC?<\/h2>\n<p data-nodeid=\"3349\"><strong data-nodeid=\"3714\">Karty CRC<\/strong>\u00a0to lekka technika modelowania, fizyczna (lub cyfrowa), u\u017cywana w projektowaniu obiektowym. Ka\u017cda karta reprezentuje klas\u0119<strong data-nodeid=\"3715\">klas\u0119<\/strong>\u00a0i zawiera trzy kluczowe elementy:<\/p>\n<table data-nodeid=\"3351\">\n<thead data-nodeid=\"3352\">\n<tr data-nodeid=\"3353\">\n<th data-nodeid=\"3355\">Pole<\/th>\n<th data-nodeid=\"3356\">Opis<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"3359\">\n<tr data-nodeid=\"3360\">\n<td data-nodeid=\"3361\"><strong data-nodeid=\"3721\">Klasa<\/strong><\/td>\n<td data-nodeid=\"3362\">Nazwa klasy (np.<code data-backticks=\"1\" data-nodeid=\"3723\">Ksi\u0105\u017cka<\/code>)<\/td>\n<\/tr>\n<tr data-nodeid=\"3363\">\n<td data-nodeid=\"3364\"><strong data-nodeid=\"3728\">Odpowiedzialno\u015bci<\/strong><\/td>\n<td data-nodeid=\"3365\">Co klasa<strong data-nodeid=\"3737\">wie<\/strong>\u00a0lub<strong data-nodeid=\"3738\">robi<\/strong><\/td>\n<\/tr>\n<tr data-nodeid=\"3366\">\n<td data-nodeid=\"3367\"><strong data-nodeid=\"3742\">Wsp\u00f3\u0142pracownicy<\/strong><\/td>\n<td data-nodeid=\"3368\">Inne klasy, z kt\u00f3rymi ta klasa musi wsp\u00f3\u0142pracowa\u0107<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-nodeid=\"3369\">S\u0105 szczeg\u00f3lnie skuteczne przy<strong data-nodeid=\"3757\">rozmy\u015blaniu<\/strong>,\u00a0<strong data-nodeid=\"3758\">projektowaniu<\/strong>, i<strong data-nodeid=\"3759\">walidacja<\/strong>struktury klas na wczesnym etapie rozwoju \u2014 przed napisaniem jednego wiersza kodu.<\/p>\n<hr data-nodeid=\"3370\"\/>\n<h2 data-nodeid=\"3371\">\ud83d\udcda Studium przypadku: System wypo\u017cyczania ksi\u0105\u017cek bibliotecznych<\/h2>\n<p data-nodeid=\"3372\">Wyobra\u017amy sobie ma\u0142\u0105 bibliotek\u0119 publiczn\u0105, w kt\u00f3rej cz\u0142onkowie mog\u0105:<\/p>\n<ul data-nodeid=\"3373\">\n<li data-nodeid=\"3374\">\n<p data-nodeid=\"3375\">Szuka\u0107 ksi\u0105\u017cek po tytule<\/p>\n<\/li>\n<li data-nodeid=\"3376\">\n<p data-nodeid=\"3377\">Wypo\u017cycza\u0107 dost\u0119pne ksi\u0105\u017cki (do limitu)<\/p>\n<\/li>\n<li data-nodeid=\"3378\">\n<p data-nodeid=\"3379\">Zwraca\u0107 ksi\u0105\u017cki po zako\u0144czeniu<\/p>\n<\/li>\n<\/ul>\n<p data-nodeid=\"3380\">System musi \u015bledzi\u0107:<\/p>\n<ul data-nodeid=\"3381\">\n<li data-nodeid=\"3382\">\n<p data-nodeid=\"3383\">Kt\u00f3re ksi\u0105\u017cki s\u0105 wypo\u017cyczone<\/p>\n<\/li>\n<li data-nodeid=\"3384\">\n<p data-nodeid=\"3385\">Przez kogo<\/p>\n<\/li>\n<li data-nodeid=\"3386\">\n<p data-nodeid=\"3387\">Kiedy s\u0105 do zwrotu<\/p>\n<\/li>\n<\/ul>\n<p data-nodeid=\"3388\">Skorzystamy z metody<strong data-nodeid=\"3774\">karty CRC<\/strong>aby odkry\u0107 i wdro\u017cy\u0107 klasy w tym systemie \u2014 krok po kroku.<\/p>\n<hr data-nodeid=\"3389\"\/>\n<h2 data-nodeid=\"3390\">\u2705 Krok 1: Znajd\u017a klasy kandydat\u00f3w (wypracowanie rzeczownik\u00f3w)<\/h2>\n<p data-nodeid=\"3391\">Zacznij od przeczytania scenariusza i wyci\u0105gni\u0119cia<strong data-nodeid=\"3781\">rzeczownik\u00f3w<\/strong>\u2014 to potencjalne klasy.<\/p>\n<p data-nodeid=\"3392\">Na podstawie opisu identyfikujemy:<\/p>\n<ul data-nodeid=\"3393\">\n<li data-nodeid=\"3394\">\n<p data-nodeid=\"3395\">Biblioteka<\/p>\n<\/li>\n<li data-nodeid=\"3396\">\n<p data-nodeid=\"3397\">Cz\u0142onek (lub U\u017cytkownik)<\/p>\n<\/li>\n<li data-nodeid=\"3398\">\n<p data-nodeid=\"3399\">Ksi\u0105\u017cka<\/p>\n<\/li>\n<li data-nodeid=\"3400\">\n<p data-nodeid=\"3401\">Wypo\u017cyczenie (lub Wypo\u017cyczenie)<\/p>\n<\/li>\n<li data-nodeid=\"3402\">\n<p data-nodeid=\"3403\">Data zwrotu (mo\u017ce by\u0107 zbyt ma\u0142a)<\/p>\n<\/li>\n<li data-nodeid=\"3404\">\n<p data-nodeid=\"3405\">Karta biblioteczna (mo\u017ce by\u0107 cz\u0119\u015bci\u0105 Cz\u0142onka)<\/p>\n<\/li>\n<\/ul>\n<p data-nodeid=\"3406\">Filtrujemy i pozostawiamy tylko najbardziej znacz\u0105ce:<\/p>\n<blockquote data-nodeid=\"3407\">\n<p data-nodeid=\"3408\">\u2705\u00a0<strong data-nodeid=\"3802\">Cz\u0142onek<\/strong>,\u00a0<strong data-nodeid=\"3803\">Ksi\u0105\u017cka<\/strong>,\u00a0<strong data-nodeid=\"3804\">Wypo\u017cyczenie<\/strong><\/p>\n<\/blockquote>\n<blockquote data-nodeid=\"3409\">\n<p data-nodeid=\"3410\">\u26a0\ufe0f\u00a0<em data-nodeid=\"3810\">Uwaga: Nie martw si\u0119 o poprawne ustawienie wszystkich klas od razu \u2014 to w\u0142a\u015bnie pi\u0119kno kart CRC. Zauwa\u017cysz brakuj\u0105ce klasy podczas gry w role!<\/em><\/p>\n<\/blockquote>\n<hr data-nodeid=\"3411\"\/>\n<h2 data-nodeid=\"3412\">\u270f\ufe0f Krok 2: Utw\u00f3rz pocz\u0105tkowe karty CRC<\/h2>\n<p data-nodeid=\"3413\">Teraz przypisujemy<strong data-nodeid=\"3821\">obowi\u0105zki<\/strong>i<strong data-nodeid=\"3822\">wsp\u00f3\u0142pracownik\u00f3w<\/strong>do ka\u017cdej klasy.<\/p>\n<h3 data-nodeid=\"3414\">\ud83d\udcd8\u00a0<strong data-nodeid=\"3827\">Klasa: Ksi\u0105\u017cka<\/strong><\/h3>\n<table data-nodeid=\"3416\">\n<thead data-nodeid=\"3417\">\n<tr data-nodeid=\"3418\">\n<th data-nodeid=\"3420\">Obowi\u0105zki<\/th>\n<th data-nodeid=\"3421\">Wsp\u00f3\u0142pracownicy<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"3424\">\n<tr data-nodeid=\"3425\">\n<td data-nodeid=\"3426\">Zna\u0107 tytu\u0142<\/td>\n<td data-nodeid=\"3427\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3428\">\n<td data-nodeid=\"3429\">Zna\u0107 autora<\/td>\n<td data-nodeid=\"3430\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3431\">\n<td data-nodeid=\"3432\">Zna\u0107 numer ISBN<\/td>\n<td data-nodeid=\"3433\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3434\">\n<td data-nodeid=\"3435\">Wiedzie\u0107, czy jest obecnie dost\u0119pna<\/td>\n<td data-nodeid=\"3436\">Wypo\u017cyczenie<\/td>\n<\/tr>\n<tr data-nodeid=\"3437\">\n<td data-nodeid=\"3438\">Zosta\u0107 wypo\u017cyczon\u0105<\/td>\n<td data-nodeid=\"3439\">Wypo\u017cyczenie<\/td>\n<\/tr>\n<tr data-nodeid=\"3440\">\n<td data-nodeid=\"3441\">Zosta\u0107 zwr\u00f3con\u0105<\/td>\n<td data-nodeid=\"3442\">Wypo\u017cyczenie<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote data-nodeid=\"3443\">\n<p data-nodeid=\"3444\">\ud83d\udcac\u00a0<em data-nodeid=\"3846\">Ksi\u0105\u017cka nie \u201ewie\u201d, kto j\u0105 wypo\u017cyczy\u0142 \u2014 wie tylko, czy ma aktywne wypo\u017cyczenie.<\/em><\/p>\n<\/blockquote>\n<hr data-nodeid=\"3445\"\/>\n<h3 data-nodeid=\"3446\">\ud83d\udc64\u00a0<strong data-nodeid=\"3851\">Klasa: U\u017cytkownik<\/strong><\/h3>\n<table data-nodeid=\"3448\">\n<thead data-nodeid=\"3449\">\n<tr data-nodeid=\"3450\">\n<th data-nodeid=\"3452\">Odpowiedzialno\u015bci<\/th>\n<th data-nodeid=\"3453\">Wsp\u00f3\u0142pracownicy<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"3456\">\n<tr data-nodeid=\"3457\">\n<td data-nodeid=\"3458\">Zna\u0107 imi\u0119<\/td>\n<td data-nodeid=\"3459\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3460\">\n<td data-nodeid=\"3461\">Zna\u0107 identyfikator cz\u0142onka<\/td>\n<td data-nodeid=\"3462\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3463\">\n<td data-nodeid=\"3464\">Zna\u0107, ile ksi\u0105\u017cek jest obecnie wypo\u017cyczonych<\/td>\n<td data-nodeid=\"3465\">Wypo\u017cyczenie<\/td>\n<\/tr>\n<tr data-nodeid=\"3466\">\n<td data-nodeid=\"3467\">Wypo\u017cyczy\u0107 ksi\u0105\u017ck\u0119 (je\u015bli dozwolone)<\/td>\n<td data-nodeid=\"3468\">Ksi\u0105\u017cka, Wypo\u017cyczenie<\/td>\n<\/tr>\n<tr data-nodeid=\"3469\">\n<td data-nodeid=\"3470\">Zwr\u00f3ci\u0107 ksi\u0105\u017ck\u0119<\/td>\n<td data-nodeid=\"3471\">Ksi\u0105\u017cka, Wypo\u017cyczenie<\/td>\n<\/tr>\n<tr data-nodeid=\"3472\">\n<td data-nodeid=\"3473\">Sprawdzi\u0107, czy osi\u0105gni\u0119to limit wypo\u017cyczania<\/td>\n<td data-nodeid=\"3474\">Wypo\u017cyczenie<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote data-nodeid=\"3475\">\n<p data-nodeid=\"3476\">\ud83d\udcac\u00a0<em data-nodeid=\"3870\">Cz\u0142onek zarz\u0105dza w\u0142asnym zachowaniem wypo\u017cyczania i sprawdza limity za pomoc\u0105 klasy Wypo\u017cyczenie.<\/em><\/p>\n<\/blockquote>\n<hr data-nodeid=\"3477\"\/>\n<h3 data-nodeid=\"3478\">\ud83d\udcc5\u00a0<strong data-nodeid=\"3875\">Klasa: Wypo\u017cyczenie<\/strong><\/h3>\n<table data-nodeid=\"3480\">\n<thead data-nodeid=\"3481\">\n<tr data-nodeid=\"3482\">\n<th data-nodeid=\"3484\">Odpowiedzialno\u015bci<\/th>\n<th data-nodeid=\"3485\">Wsp\u00f3\u0142pracownicy<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"3488\">\n<tr data-nodeid=\"3489\">\n<td data-nodeid=\"3490\">Zapisa\u0107, jaka ksi\u0105\u017cka zosta\u0142a wypo\u017cyczona<\/td>\n<td data-nodeid=\"3491\">Ksi\u0105\u017cka<\/td>\n<\/tr>\n<tr data-nodeid=\"3492\">\n<td data-nodeid=\"3493\">Zapisa\u0107, kt\u00f3ry cz\u0142onek j\u0105 wypo\u017cyczy\u0142<\/td>\n<td data-nodeid=\"3494\">Cz\u0142onek<\/td>\n<\/tr>\n<tr data-nodeid=\"3495\">\n<td data-nodeid=\"3496\">Zapisa\u0107 dat\u0119 wypo\u017cyczenia<\/td>\n<td data-nodeid=\"3497\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3498\">\n<td data-nodeid=\"3499\">Obliczy\u0107 dat\u0119 zwrotu<\/td>\n<td data-nodeid=\"3500\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3501\">\n<td data-nodeid=\"3502\">Wiedzie\u0107, czy jest op\u00f3\u017anione<\/td>\n<td data-nodeid=\"3503\">\u2014<\/td>\n<\/tr>\n<tr data-nodeid=\"3504\">\n<td data-nodeid=\"3505\">Oznacz jako zwr\u00f3cony<\/td>\n<td data-nodeid=\"3506\">Ksi\u0105\u017cka<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote data-nodeid=\"3507\">\n<p data-nodeid=\"3508\">\ud83d\udcac\u00a0<em data-nodeid=\"3894\">Klasa Loan przechowuje relacj\u0119 mi\u0119dzy Cz\u0142onkiem a Ksi\u0105\u017ck\u0105, w tym szczeg\u00f3\u0142owe informacje o czasie.<\/em><\/p>\n<\/blockquote>\n<hr data-nodeid=\"3509\"\/>\n<h2 data-nodeid=\"3510\">\ud83c\udfad Krok 3: Zagraj scenariusz \u2014 \u201eWypo\u017cycz ksi\u0105\u017ck\u0119\u201d<\/h2>\n<p data-nodeid=\"3511\">Teraz nadejdzie cz\u0119\u015b\u0107 przyjemna:<strong data-nodeid=\"3904\">granie r\u00f3l<\/strong>scenariusz tak, jakby karty by\u0142y rzeczywistymi przedmiotami.<\/p>\n<h3 data-nodeid=\"3512\">\ud83d\udcd6 Scenariusz: Curtis chce wypo\u017cyczy\u0107<em data-nodeid=\"3912\">\u201eCzysty kod\u201d<\/em>, kt\u00f3ra jest dost\u0119pna.<\/h3>\n<p data-nodeid=\"3513\">Przejd\u017amy to krok po kroku:<\/p>\n<ol data-nodeid=\"3514\">\n<li data-nodeid=\"3515\">\n<p data-nodeid=\"3516\"><strong data-nodeid=\"3947\">Cz\u0142onek (Curtis)<\/strong>m\u00f3wi:<em data-nodeid=\"3948\">\u201eChc\u0119 wypo\u017cyczy\u0107 \u201eCzysty kod\u201d.\u201d<\/em><br \/>\n\u2192 Najpierw sprawdza:<em data-nodeid=\"3949\">\u201eCzy mam mniej ni\u017c 3 ksi\u0105\u017cki ju\u017c?\u201d<\/em><br \/>\n\u2192 Pyta<strong data-nodeid=\"3950\">Wypo\u017cyczenie<\/strong>:\u00a0<em data-nodeid=\"3951\">\u201eIle mam aktywnych wypo\u017cycze\u0144?\u201d<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3517\">\n<p data-nodeid=\"3518\"><strong data-nodeid=\"3961\">Wypo\u017cyczenie<\/strong>odpowiada:<em data-nodeid=\"3962\">\u201eMasz 1 aktywne wypo\u017cyczenie \u2192 mo\u017cesz wypo\u017cyczy\u0107.\u201d<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3519\">\n<p data-nodeid=\"3520\"><strong data-nodeid=\"3988\">Cz\u0142onek<\/strong>szuka ksi\u0105\u017cki:<em data-nodeid=\"3989\">\u201eGdzie jest \u201eCzysty kod\u201d?\u201d<\/em><br \/>\n\u2192 Pyta<strong data-nodeid=\"3990\">Ksi\u0105\u017cka<\/strong>:\u00a0<em data-nodeid=\"3991\">\u201eCzy jeste\u015b dost\u0119pny?\u201d<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3521\">\n<p data-nodeid=\"3522\"><strong data-nodeid=\"4013\">Ksi\u0105\u017cka<\/strong>\u00a0sprawdza:\u00a0<em data-nodeid=\"4014\">\u201eCzy mam aktywny (nie zwr\u00f3cony) po\u017cyczk\u0119?\u201d<\/em><br \/>\n\u2192 Zapytanie\u00a0<strong data-nodeid=\"4015\">Po\u017cyczk\u0119<\/strong>:\u00a0<em data-nodeid=\"4016\">\u201eCzy mam aktywn\u0105 po\u017cyczk\u0119?\u201d<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3523\">\n<p data-nodeid=\"3524\"><strong data-nodeid=\"4029\">Po\u017cyczk\u0119<\/strong>\u00a0odpowiada:\u00a0<em data-nodeid=\"4030\">\u201eNie \u2014 jeste\u015b dost\u0119pny!\u201d<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3525\">\n<p data-nodeid=\"3526\"><strong data-nodeid=\"4039\">Cz\u0142onka<\/strong>\u00a0tworzy now\u0105\u00a0<strong data-nodeid=\"4040\">Po\u017cyczk\u0119<\/strong>\u00a0obiekt:<\/p>\n<ul data-nodeid=\"3527\">\n<li data-nodeid=\"3528\">\n<p data-nodeid=\"3529\">Linkuje do tej\u00a0<strong data-nodeid=\"4049\">Ksi\u0105\u017cka<\/strong>\u00a0i\u00a0<strong data-nodeid=\"4050\">Cz\u0142onka<\/strong><\/p>\n<\/li>\n<li data-nodeid=\"3530\">\n<p data-nodeid=\"3531\">Ustawia dat\u0119 wypo\u017cyczenia = dzisiaj<\/p>\n<\/li>\n<li data-nodeid=\"3532\">\n<p data-nodeid=\"3533\">Oblicza dat\u0119 zwrotu = dzisiaj + 14 dni<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-nodeid=\"3534\">\n<p data-nodeid=\"3535\"><strong data-nodeid=\"4062\">Ksi\u0105\u017cka<\/strong>\u00a0jest aktualizowana:\u00a0<em data-nodeid=\"4063\">\u201eTeraz mam aktywn\u0105 po\u017cyczk\u0119 \u2192 nie jestem ju\u017c dost\u0119pny.\u201d<\/em><\/p>\n<\/li>\n<\/ol>\n<p data-nodeid=\"3536\">\u2705\u00a0<strong data-nodeid=\"4069\">Wynik<\/strong>: Proces wypo\u017cyczania wydaje si\u0119 naturalny, rozproszony i logiczny.<\/p>\n<hr data-nodeid=\"3537\"\/>\n<h2 data-nodeid=\"3538\">\ud83d\udd04 Krok 4: Inny scenariusz \u2014 \u201eZwr\u00f3\u0107 ksi\u0105\u017ck\u0119\u201d<\/h2>\n<h3 data-nodeid=\"3539\">\ud83d\udcd6 Scenariusz: Curtis zwraca\u00a0<em data-nodeid=\"4080\">\u201eCzysty kod\u201d<\/em><\/h3>\n<ol data-nodeid=\"3540\">\n<li data-nodeid=\"3541\">\n<p data-nodeid=\"3542\"><strong data-nodeid=\"4094\">Cz\u0142owiek (Curtis)<\/strong>m\u00f3wi:<em data-nodeid=\"4095\">\u201eChc\u0119 zwr\u00f3ci\u0107 ksi\u0105\u017ck\u0119 \u201eCzysty kod\u201c.<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3543\">\n<p data-nodeid=\"3544\"><strong data-nodeid=\"4108\">Cz\u0142owiek<\/strong>znajduje pasuj\u0105c\u0105<strong data-nodeid=\"4109\">Wypo\u017cyczenie<\/strong> (prawdopodobnie poprzez zapytanie)<strong data-nodeid=\"4110\">Wypo\u017cyczenie<\/strong> z ksi\u0105\u017ck\u0105 i u\u017cytkownikiem).<\/p>\n<\/li>\n<li data-nodeid=\"3545\">\n<p data-nodeid=\"3546\"><strong data-nodeid=\"4119\">Wypo\u017cyczenie<\/strong>oznacza si\u0119 jako<em data-nodeid=\"4120\">zwr\u00f3cony<\/em>.<\/p>\n<\/li>\n<li data-nodeid=\"3547\">\n<p data-nodeid=\"3548\"><strong data-nodeid=\"4134\">Wypo\u017cyczenie<\/strong>m\u00f3wi<strong data-nodeid=\"4135\">Ksi\u0105\u017cka<\/strong>:\u00a0<em data-nodeid=\"4136\">\u201eTeraz zn\u00f3w jeste\u015b dost\u0119pny.\u201d<\/em><\/p>\n<\/li>\n<\/ol>\n<p data-nodeid=\"3549\">\u2705\u00a0<strong data-nodeid=\"4142\">Czysty, przejrzysty i sp\u00f3jny<\/strong> \u2014 \u017cadna klasa nie wykonuje pracy poza swoj\u0105 odpowiedzialno\u015bci\u0105.<\/p>\n<hr data-nodeid=\"3550\"\/>\n<h2 data-nodeid=\"3551\">\ud83d\udd0d Krok 5: Wyr\u00f3wnaj i dodaj brakuj\u0105ce klasy<\/h2>\n<p data-nodeid=\"3552\">Po odgrywaniu r\u00f3l zauwa\u017camy<strong data-nodeid=\"4151\">luk\u0119<\/strong>:<\/p>\n<blockquote data-nodeid=\"3553\">\n<p data-nodeid=\"3554\">\u2753\u00a0<em data-nodeid=\"4156\">Kto znajduje ksi\u0105\u017ck\u0119 po tytule?<\/em><\/p>\n<\/blockquote>\n<p data-nodeid=\"3555\">Obecnie<strong data-nodeid=\"4178\">Cz\u0142owiek<\/strong>pyta<strong data-nodeid=\"4179\">Ksi\u0105\u017cka<\/strong>\u00a0bezpo\u015brednio \u2014 ale\u00a0<strong data-nodeid=\"4180\">Ksi\u0105\u017cka<\/strong>\u00a0nie wie, jak wyszukiwa\u0107!<br \/>\nPotrzebujemy\u00a0<strong data-nodeid=\"4181\">centralnego koordynatora<\/strong>.<\/p>\n<h3 data-nodeid=\"3556\">\u2795 Nowa klasa:\u00a0<strong data-nodeid=\"4186\">Biblioteka<\/strong><\/h3>\n<table data-nodeid=\"3558\">\n<thead data-nodeid=\"3559\">\n<tr data-nodeid=\"3560\">\n<th data-nodeid=\"3562\">Odpowiedzialno\u015bci<\/th>\n<th data-nodeid=\"3563\">Wsp\u00f3\u0142pracownicy<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"3566\">\n<tr data-nodeid=\"3567\">\n<td data-nodeid=\"3568\">Dodaj now\u0105 ksi\u0105\u017ck\u0119 do kolekcji<\/td>\n<td data-nodeid=\"3569\">Ksi\u0105\u017cka<\/td>\n<\/tr>\n<tr data-nodeid=\"3570\">\n<td data-nodeid=\"3571\">Znajd\u017a ksi\u0105\u017ck\u0119 po tytule<\/td>\n<td data-nodeid=\"3572\">Ksi\u0105\u017cka<\/td>\n<\/tr>\n<tr data-nodeid=\"3573\">\n<td data-nodeid=\"3574\">Zarejestruj nowego uczestnika<\/td>\n<td data-nodeid=\"3575\">Uczestnik<\/td>\n<\/tr>\n<tr data-nodeid=\"3576\">\n<td data-nodeid=\"3577\">Zrealizuj pro\u015bb\u0119 o wypo\u017cyczenie ksi\u0105\u017cki<\/td>\n<td data-nodeid=\"3578\">Uczestnik, Ksi\u0105\u017cka, Wypo\u017cyczenie<\/td>\n<\/tr>\n<tr data-nodeid=\"3579\">\n<td data-nodeid=\"3580\">Zrealizuj zwrot ksi\u0105\u017cki<\/td>\n<td data-nodeid=\"3581\">Uczestnik, Ksi\u0105\u017cka, Wypo\u017cyczenie<\/td>\n<\/tr>\n<tr data-nodeid=\"3582\">\n<td data-nodeid=\"3583\">Zna\u0107 wszystkie obecne wypo\u017cyczenia<\/td>\n<td data-nodeid=\"3584\">Wypo\u017cyczenie<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote data-nodeid=\"3585\">\n<p data-nodeid=\"3586\">\ud83d\udcac\u00a0<em data-nodeid=\"4205\">Biblioteka dzia\u0142a jako centralny o\u015brodek \u2014 zna wszystkie ksi\u0105\u017cki, wszystkich uczestnik\u00f3w i wszystkie wypo\u017cyczenia.<\/em><\/p>\n<\/blockquote>\n<hr data-nodeid=\"3587\"\/>\n<h3 data-nodeid=\"3588\">\u2728 Zaktualizowany przep\u0142yw: \u201eWypo\u017cycz ksi\u0105\u017ck\u0119\u201d z Bibliotek\u0105<\/h3>\n<ol data-nodeid=\"3589\">\n<li data-nodeid=\"3590\">\n<p data-nodeid=\"3591\"><strong data-nodeid=\"4228\">Uczestnik<\/strong>\u00a0\u2192\u00a0<strong data-nodeid=\"4229\">Biblioteka<\/strong>:\u00a0<em data-nodeid=\"4230\">\u201eZnajd\u017a ksi\u0105\u017ck\u0119 o tytule \u201eCzysty kod\u201d.\u201d<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3592\">\n<p data-nodeid=\"3593\"><strong data-nodeid=\"4241\">Biblioteka<\/strong>\u00a0szuka w swojej kolekcji i zwraca\u00a0<strong data-nodeid=\"4242\">Ksi\u0105\u017cka<\/strong>\u00a0(lub\u00a0<code data-backticks=\"1\" data-nodeid=\"4239\">null<\/code>\u00a0je\u015bli nie znaleziono).<\/p>\n<\/li>\n<li data-nodeid=\"3594\">\n<p data-nodeid=\"3595\"><strong data-nodeid=\"4256\">Cz\u0142onek<\/strong>\u00a0teraz wie, \u017ce ksi\u0105\u017cka istnieje \u2192 pyta\u00a0<strong data-nodeid=\"4257\">Biblioteka<\/strong>:\u00a0<em data-nodeid=\"4258\">\u201eCzy mog\u0119 wypo\u017cyczy\u0107 t\u0119 ksi\u0105\u017ck\u0119?\u201d<\/em><\/p>\n<\/li>\n<li data-nodeid=\"3596\">\n<p data-nodeid=\"3597\"><strong data-nodeid=\"4263\">Biblioteka<\/strong>\u00a0sprawdza:<\/p>\n<ul data-nodeid=\"3598\">\n<li data-nodeid=\"3599\">\n<p data-nodeid=\"3600\">Czy ksi\u0105\u017cka jest dost\u0119pna? (poprzez\u00a0<code data-backticks=\"1\" data-nodeid=\"4265\">Book.isAvailable()<\/code>)<\/p>\n<\/li>\n<li data-nodeid=\"3601\">\n<p data-nodeid=\"3602\">Czy cz\u0142onek jest w granicach limitu wypo\u017cycze\u0144? (poprzez\u00a0<code data-backticks=\"1\" data-nodeid=\"4268\">Loan.countActiveLoans(member)<\/code>)<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-nodeid=\"3603\">\n<p data-nodeid=\"3604\">Je\u015bli tak \u2192\u00a0<strong data-nodeid=\"4287\">Biblioteka<\/strong>\u00a0tworzy nowy\u00a0<strong data-nodeid=\"4288\">Wypo\u017cyczenie<\/strong>\u00a0i aktualizuje zar\u00f3wno\u00a0<strong data-nodeid=\"4289\">Ksi\u0105\u017cka<\/strong>\u00a0i\u00a0<strong data-nodeid=\"4290\">Wypo\u017cyczenie<\/strong>.<\/p>\n<\/li>\n<li data-nodeid=\"3605\">\n<p data-nodeid=\"3606\"><strong data-nodeid=\"4299\">Ksi\u0105\u017cka<\/strong>\u00a0staje si\u0119 niedost\u0119pny;\u00a0<strong data-nodeid=\"4300\">Wypo\u017cyczenie<\/strong>\u00a0\u015bledzi relacj\u0119.<\/p>\n<\/li>\n<\/ol>\n<p data-nodeid=\"3607\">\u2705\u00a0<strong data-nodeid=\"4310\">Teraz przep\u0142yw ma sens<\/strong>\u00a0\u2014\u00a0<strong data-nodeid=\"4311\">Biblioteka<\/strong>\u00a0zajmuje si\u0119 odkrywaniem i koordynacj\u0105.<\/p>\n<hr data-nodeid=\"3608\"\/>\n<h2 data-nodeid=\"3609\">\ud83e\udde9 Ostateczna podsumowanie kart CRC (uproszczone dla pocz\u0105tkuj\u0105cych)<\/h2>\n<table data-nodeid=\"3611\">\n<thead data-nodeid=\"3612\">\n<tr data-nodeid=\"3613\">\n<th data-nodeid=\"3615\">Klasa<\/th>\n<th data-nodeid=\"3616\">G\u0142\u00f3wne odpowiedzialno\u015bci<\/th>\n<th data-nodeid=\"3617\">G\u0142\u00f3wni wsp\u00f3\u0142pracownicy<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"3621\">\n<tr data-nodeid=\"3622\">\n<td data-nodeid=\"3623\"><strong data-nodeid=\"4319\">Biblioteka<\/strong><\/td>\n<td data-nodeid=\"3624\">Zarz\u0105dza ksi\u0105\u017ckami, cz\u0142onkami, wypo\u017cyczeniami; obs\u0142uguje wypo\u017cyczenie\/zwrot<\/td>\n<td data-nodeid=\"3625\">Ksi\u0105\u017cka, Cz\u0142onek, Wypo\u017cyczenie<\/td>\n<\/tr>\n<tr data-nodeid=\"3626\">\n<td data-nodeid=\"3627\"><strong data-nodeid=\"4325\">Cz\u0142onek<\/strong><\/td>\n<td data-nodeid=\"3628\">Zna informacje osobiste; inicjuje wypo\u017cyczenie\/zwrot<\/td>\n<td data-nodeid=\"3629\">Biblioteka, Wypo\u017cyczenie<\/td>\n<\/tr>\n<tr data-nodeid=\"3630\">\n<td data-nodeid=\"3631\"><strong data-nodeid=\"4331\">Ksi\u0105\u017cka<\/strong><\/td>\n<td data-nodeid=\"3632\">Przechowuje metadane; \u015bledzi dost\u0119pno\u015b\u0107<\/td>\n<td data-nodeid=\"3633\">Biblioteka, Wypo\u017cyczenie<\/td>\n<\/tr>\n<tr data-nodeid=\"3634\">\n<td data-nodeid=\"3635\"><strong data-nodeid=\"4337\">Wypo\u017cyczenie<\/strong><\/td>\n<td data-nodeid=\"3636\">\u015aledzi histori\u0119 wypo\u017cycze\u0144; oblicza daty zwrotu; zarz\u0105dza stanem zwrotu<\/td>\n<td data-nodeid=\"3637\">Cz\u0142onek, Ksi\u0105\u017cka, Biblioteka<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote data-nodeid=\"3638\">\n<p data-nodeid=\"3639\">\u2705\u00a0<strong data-nodeid=\"4353\">Zasada projektowania<\/strong>: Ka\u017cda klasa ma\u00a0<strong data-nodeid=\"4354\">jedno jasne zadanie<\/strong>, a odpowiedzialno\u015bci s\u0105\u00a0<strong data-nodeid=\"4355\">sp\u00f3jne i dobrze roz\u0142o\u017cone<\/strong>.<\/p>\n<\/blockquote>\n<hr data-nodeid=\"3640\"\/>\n<h2 data-nodeid=\"3641\">\ud83c\udf1f Dlaczego karty CRC dzia\u0142aj\u0105 tak dobrze (podstawowe wnioski dla pocz\u0105tkuj\u0105cych)<\/h2>\n<table data-nodeid=\"3643\">\n<thead data-nodeid=\"3644\">\n<tr data-nodeid=\"3645\">\n<th data-nodeid=\"3647\">Zalety<\/th>\n<th data-nodeid=\"3648\">Wyja\u015bnienie<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"3651\">\n<tr data-nodeid=\"3652\">\n<td data-nodeid=\"3653\"><strong data-nodeid=\"4362\">Projektowanie oparte na odpowiedzialno\u015bci<\/strong><\/td>\n<td data-nodeid=\"3654\">Zmusza Ci\u0119 do my\u015blenia:\u00a0<em data-nodeid=\"4370\">\u201eCo ten klasa wie lub robi?\u201d<\/em>\u00a0a nie tylko przechowywania danych.<\/td>\n<\/tr>\n<tr data-nodeid=\"3655\">\n<td data-nodeid=\"3656\"><strong data-nodeid=\"4374\">Naturalne odkrycie brakuj\u0105cych klas<\/strong><\/td>\n<td data-nodeid=\"3657\">Rozgrywanie r\u00f3l ujawnia luki (np. brakuj\u0105ca<code data-backticks=\"1\" data-nodeid=\"4376\">Biblioteka<\/code>) \u2014 nie potrzeba zgadywania.<\/td>\n<\/tr>\n<tr data-nodeid=\"3658\">\n<td data-nodeid=\"3659\"><strong data-nodeid=\"4381\">Natychmiastowa zwracana informacja poprzez rozgrywanie r\u00f3l<\/strong><\/td>\n<td data-nodeid=\"3660\">Je\u015bli przep\u0142yw wydaje si\u0119 niezgrabny, wiesz, \u017ce odpowiedzialno\u015b\u0107 jest w z\u0142ym miejscu.<\/td>\n<\/tr>\n<tr data-nodeid=\"3661\">\n<td data-nodeid=\"3662\"><strong data-nodeid=\"4388\">Niski poziom formalizmu i wsp\u00f3\u0142praca<\/strong><\/td>\n<td data-nodeid=\"3663\">Brak skomplikowanych narz\u0119dzi \u2014 tylko karty indeksowe, notesy lub tablica. Idealne dla zespo\u0142\u00f3w.<\/td>\n<\/tr>\n<tr data-nodeid=\"3664\">\n<td data-nodeid=\"3665\"><strong data-nodeid=\"4393\">\u0141\u0105czy wymagania z kodem<\/strong><\/td>\n<td data-nodeid=\"3666\">Przekszta\u0142ca historie u\u017cytkownika w rzeczywiste interakcje klas.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr data-nodeid=\"3667\"\/>\n<h2 data-nodeid=\"3668\">\ud83d\udee0\ufe0f Szybkie porady na pierwsz\u0105 sesj\u0119 CRC<\/h2>\n<ol data-nodeid=\"4729\">\n<li data-nodeid=\"4730\">\n<p data-nodeid=\"4731\"><strong data-nodeid=\"4821\">U\u017cywaj kart fizycznych<\/strong>\u00a0(karty 3\u00d75 lub notesy) \u2014 jest to bardziej anga\u017cuj\u0105ce.<\/p>\n<\/li>\n<li data-nodeid=\"4732\">\n<p data-nodeid=\"4733\"><strong data-nodeid=\"4826\">Jedna klasa na kart\u0119<\/strong>\u00a0\u2014\u4fdd\u6301 to proste.<\/p>\n<\/li>\n<li data-nodeid=\"4734\">\n<p data-nodeid=\"4735\"><strong data-nodeid=\"4831\">Pisz du\u017cymi i czytelnymi literami<\/strong>\u00a0\u2014 inni powinni \u0142atwo to czyta\u0107.<\/p>\n<\/li>\n<li data-nodeid=\"4736\">\n<p data-nodeid=\"4737\"><strong data-nodeid=\"4836\">Rozgrywaj role na g\u0142os<\/strong>\u00a0\u2014 przekazuj karty jak rzeczywiste przedmioty.<\/p>\n<\/li>\n<li data-nodeid=\"4738\">\n<p data-nodeid=\"4739\"><strong data-nodeid=\"4841\">Zacznij od 3\u20136 podstawowych scenariuszy<\/strong>\u00a0(np. wypo\u017cycz, zwr\u00f3\u0107, wyszukaj).<\/p>\n<\/li>\n<li data-nodeid=\"4740\">\n<p data-nodeid=\"4741\"><strong data-nodeid=\"4850\">Nie d\u0105\u017c do doskona\u0142o\u015bci<\/strong>\u00a0\u2014 celem jest\u00a0<strong data-nodeid=\"4851\">iteracja<\/strong>, a nie ostateczny projekt. Doskonal go w trakcie pracy.<\/p>\n<\/li>\n<li data-nodeid=\"4742\">\n<p data-nodeid=\"4743\"><strong data-nodeid=\"4856\">U\u017cywaj prostych, specyficznych dla dziedziny nazw<\/strong>\u00a0\u2014 unikaj \u017cargonu technicznego. U\u017cyj \u201eCz\u0142owiek\u201d zamiast \u201ePatron\u201d, je\u015bli zesp\u00f3\u0142 si\u0119 zgodzi.<\/p>\n<\/li>\n<li data-nodeid=\"4744\">\n<p data-nodeid=\"4745\"><strong data-nodeid=\"4861\">Zaprosz wszystkich do udzia\u0142u<\/strong>\u00a0\u2014 nawet osoby nieprogramuj\u0105ce mog\u0105 pom\u00f3c zauwa\u017cy\u0107 brakuj\u0105ce odpowiedzialno\u015bci.<\/p>\n<\/li>\n<li data-nodeid=\"4746\">\n<p data-nodeid=\"4747\"><strong data-nodeid=\"4866\">Nast\u0119pnie narysuj prosty diagram klas<\/strong>\u00a0\u2014 aby wizualizowa\u0107 relacje i potwierdzi\u0107 sp\u00f3jno\u015b\u0107.<\/p>\n<\/li>\n<li data-nodeid=\"4748\">\n<p data-nodeid=\"4749\"><strong data-nodeid=\"4871\">Zachowaj zabaw\u0119<\/strong>\u00a0\u2014 traktuj to jak gr\u0119. Im bardziej zaanga\u017cowany jest zesp\u00f3\u0142, tym lepsze wyniki.<\/p>\n<\/li>\n<\/ol>\n<hr data-nodeid=\"4750\"\/>\n<h2 data-nodeid=\"4751\">\ud83d\udd04 Spr\u00f3buj sam: nast\u0119pne dziedziny do eksploracji<\/h2>\n<p data-nodeid=\"4752\">Gdy opanujesz system biblioteki, spr\u00f3buj zastosowa\u0107 karty CRC do innych dziedzin przyjaznych dla pocz\u0105tkuj\u0105cych:<\/p>\n<h3 data-nodeid=\"4753\">\u2615 System zam\u00f3wie\u0144 w kawiarni<\/h3>\n<ul data-nodeid=\"4754\">\n<li data-nodeid=\"4755\">\n<p data-nodeid=\"4756\">Klasy:\u00a0<code data-backticks=\"1\" data-nodeid=\"4876\">Klient<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4878\">Zam\u00f3wienie<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4880\">Pozycja menu<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4882\">Barman<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4884\">Kasa<\/code><\/p>\n<\/li>\n<li data-nodeid=\"4757\">\n<p data-nodeid=\"4758\">Scenariusze: Z\u0142\u00f3\u017c zam\u00f3wienie \u2192 Dodaj nap\u00f3j \u2192 Zastosuj zni\u017ck\u0119 \u2192 Zap\u0142a\u0107 \u2192 Wydrukuj paragon<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"4759\">\ud83e\ude99 Automat do sprzedawania towar\u00f3w<\/h3>\n<ul data-nodeid=\"4760\">\n<li data-nodeid=\"4761\">\n<p data-nodeid=\"4762\">Klasy:\u00a0<code data-backticks=\"1\" data-nodeid=\"4888\">Automat do sprzedawania towar\u00f3w<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4890\">Produkt<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4892\">Moneta<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4894\">Wydawacz<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4896\">Kalkulator reszty<\/code><\/p>\n<\/li>\n<li data-nodeid=\"4763\">\n<p data-nodeid=\"4764\">Scenariusze: W\u0142\u00f3\u017c monety \u2192 Wybierz produkt \u2192 Wydaj produkt \u2192 Zwr\u00f3\u0107 reszt\u0119<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"4765\">\ud83c\udfae Gra quizowa<\/h3>\n<ul data-nodeid=\"4766\">\n<li data-nodeid=\"4767\">\n<p data-nodeid=\"4768\">Klasy:\u00a0<code data-backticks=\"1\" data-nodeid=\"4900\">Quiz<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4902\">Pytanie<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4904\">Gracz<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4906\">\u015aledzenie wynik\u00f3w<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4908\">Sesja gry<\/code><\/p>\n<\/li>\n<li data-nodeid=\"4769\">\n<p data-nodeid=\"4770\">Scenariusze: Rozpocznij quiz \u2192 Odpowiedz na pytanie \u2192 Sprawd\u017a poprawno\u015b\u0107 \u2192 Poka\u017c ko\u0144cowy wynik<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"4771\">\ud83d\ude97 Garaz samochodowy<\/h3>\n<ul data-nodeid=\"4772\">\n<li data-nodeid=\"4773\">\n<p data-nodeid=\"4774\">Klasy:\u00a0<code data-backticks=\"1\" data-nodeid=\"4912\">Garaz<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4914\">Samoch\u00f3d<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4916\">Miejsce parkingowe<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4918\">Bilet<\/code>,\u00a0<code data-backticks=\"1\" data-nodeid=\"4920\">Bramka<\/code><\/p>\n<\/li>\n<li data-nodeid=\"4775\">\n<p data-nodeid=\"4776\">Scenariusze: Wej\u015bcie do gara\u017cu \u2192 Postaw samoch\u00f3d \u2192 Wyj\u015bcie \u2192 Zap\u0142a\u0107 op\u0142at\u0119 \u2192 We\u017a bilet<\/p>\n<\/li>\n<\/ul>\n<p data-nodeid=\"4777\">Ka\u017cdy z tych system\u00f3w opiera si\u0119 na tych samych zasadach:<\/p>\n<ul data-nodeid=\"4778\">\n<li data-nodeid=\"4779\">\n<p data-nodeid=\"4780\">Zidentyfikuj rzeczowniki \u2192 przydziel odpowiedzialno\u015bci \u2192 zagraj role \u2192 doskonal \u2192 powt\u00f3rz.<\/p>\n<\/li>\n<\/ul>\n<hr data-nodeid=\"4781\"\/>\n<h2 data-nodeid=\"4782\">\ud83d\udccc Ostateczne rozwa\u017cania: Karty CRC to wi\u0119cej ni\u017c technika \u2014 to mentalno\u015b\u0107<\/h2>\n<p data-nodeid=\"4783\">Prawdziwa si\u0142a kart CRC nie tkwi w samych kartach \u2014 le\u017cy w\u00a0<strong data-nodeid=\"4930\">rozmowie<\/strong>kt\u00f3r\u0105 wywo\u0142uj\u0105.<\/p>\n<p data-nodeid=\"4784\">Kiedy piszesz kart\u0119 i m\u00f3wisz,\u00a0<em data-nodeid=\"4940\">\u201eKto to robi?\u201d<\/em>\u00a0lub\u00a0<em data-nodeid=\"4941\">\u201eDo kogo musi si\u0119 odwo\u0142a\u0107?\u201d<\/em>, ju\u017c my\u015blisz jak projektant oparty na obiektach.<\/p>\n<blockquote data-nodeid=\"4785\">\n<p data-nodeid=\"4786\">\ud83d\udd25\u00a0<strong data-nodeid=\"4947\">Porada<\/strong>: U\u017cywaj kart CRC podczas planowania sprintu, analiz technicznych lub nawet w rozmowach kwalifikacyjnych, aby pokaza\u0107 swoje my\u015blenie projektowe.<\/p>\n<\/blockquote>\n<p data-nodeid=\"4787\">Nie s\u0105 tylko dla programist\u00f3w \u2014 s\u0105 dla\u00a0<strong data-nodeid=\"4953\">ka\u017cdego<\/strong>\u00a0uczestnicz\u0105cego w budowaniu oprogramowania: mened\u017cer\u00f3w produktu, projektant\u00f3w, tester\u00f3w i student\u00f3w.<\/p>\n<hr data-nodeid=\"4788\"\/>\n<h2 data-nodeid=\"4789\">\ud83d\udcce Chcesz wi\u0119cej?<\/h2>\n<p data-nodeid=\"4790\">\ud83d\udc49\u00a0<strong data-nodeid=\"4972\">Pobierz drukowalny szablon karty CRC<\/strong>\u00a0(PDF lub cyfrowy) do u\u017cycia w kolejnym warsztacie.<br \/>\n\ud83d\udc49\u00a0<strong data-nodeid=\"4973\">Spr\u00f3buj sesji CRC na \u017cywo<\/strong>\u00a0z koleg\u0105 \u2014 przydziel role: \u201eJeste\u015b cz\u0142onkiem\u201d, \u201eJeste\u015b ksi\u0105\u017ck\u0105\u201d, itd.<br \/>\n\ud83d\udc49\u00a0<strong data-nodeid=\"4974\">Podziel si\u0119 wynikami<\/strong>\u00a0\u2014 opublikuj swoje karty na mediach spo\u0142eczno\u015bciowych z hashtagiem #CRCcards lub #OODesignJourney.<\/p>\n<hr data-nodeid=\"4791\"\/>\n<h2 data-nodeid=\"4792\">\ud83c\udfc1 Podsumowanie<\/h2>\n<p data-nodeid=\"4793\">The\u00a0<strong data-nodeid=\"4985\">System wypo\u017cyczania ksi\u0105\u017cek w bibliotece<\/strong>\u00a0jest jednym z najbardziej klasycznych i skutecznych przyk\u0142ad\u00f3w kart CRC \u2014 nie dlatego, \u017ce jest skomplikowany, ale dlatego, \u017ce jest\u00a0<strong data-nodeid=\"4986\">prosty, zrozumia\u0142y i pouczaj\u0105cy<\/strong>.<\/p>\n<p data-nodeid=\"4794\">Poprzez przestrzeganie tylko\u00a0<strong data-nodeid=\"4992\">pi\u0119ciu krok\u00f3w<\/strong>\u00a0\u2014 m\u00f3zgowy sztorm, tworzenie kart, gra rolowa, doskonalenie i iterowanie \u2014 mo\u017cesz:<\/p>\n<ul data-nodeid=\"4795\">\n<li data-nodeid=\"4796\">\n<p data-nodeid=\"4797\">Odkrywa\u0107 klasy naturalnie<\/p>\n<\/li>\n<li data-nodeid=\"4798\">\n<p data-nodeid=\"4799\">Jasno przypisywa\u0107 odpowiedzialno\u015bci<\/p>\n<\/li>\n<li data-nodeid=\"4800\">\n<p data-nodeid=\"4801\">Wcze\u015bnie wykrywa\u0107 wady projektu<\/p>\n<\/li>\n<li data-nodeid=\"4802\">\n<p data-nodeid=\"4803\">Tworzy\u0107 wsp\u00f3lny model poznawczy jako zesp\u00f3\u0142<\/p>\n<\/li>\n<\/ul>\n<p data-nodeid=\"4804\">A najlepsze? Nie musisz by\u0107 starszym programist\u0105, \u017ceby to zrobi\u0107.<br \/>\nWystarczy, \u017ce masz ciekawo\u015b\u0107, kilka kart i ch\u0119\u0107 zabawy.<\/p>\n<hr data-nodeid=\"4805\"\/>\n<blockquote data-nodeid=\"4806\">\n<p data-nodeid=\"4807\">\u2705\u00a0<strong data-nodeid=\"5005\">Teraz twoja kolej<\/strong>: We\u017a kilka notes\u00f3w, wybierz prosty system (np. kawiarnia lub automaty z napojami) i spr\u00f3buj metody CRC.<\/p>\n<p data-nodeid=\"4808\">\ud83d\udccc\u00a0<strong data-nodeid=\"5011\">Pami\u0119taj<\/strong>: Dobry projekt nie polega na pisanie idealnego kodu \u2014 polega na zadawaniu odpowiednich pyta\u0144.<\/p>\n<p data-nodeid=\"4809\">A z kartami CRC ju\u017c je zadajesz.<\/p>\n<\/blockquote>\n<hr data-nodeid=\"4810\"\/>\n<h3 data-nodeid=\"4811\">\ud83d\udccc Dodatek: Drukowalny szablon karty CRC (wersja tekstowa)<\/h3>\n<pre data-nodeid=\"4812\"><code>\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n\u2502    [NAZWA KLASY]   \u2502\r\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\r\n\u2502 Odpowiedzialno\u015bci: \u2502\r\n\u2502 -                  \u2502\r\n\u2502 -                  \u2502\r\n\u2502 -                  \u2502\r\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\r\n\u2502 Wsp\u00f3\u0142pracownicy:   \u2502\r\n\u2502 -                  \u2502\r\n\u2502 -                  \u2502\r\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n<\/code><\/pre>\n<p data-nodeid=\"4813\">Drukuj to na kartkach 3\u00d75 lub u\u017cyj w narz\u0119dziu cyfrowym, takim jak Miro, Figma lub Google Slides.<\/p>\n<hr data-nodeid=\"4814\"\/>\n<p data-nodeid=\"4815\">\ud83d\udcda\u00a0<strong data-nodeid=\"5029\">Kolejny krok?<\/strong><br \/>\nChcesz kompletny przewodnik po\u00a0<strong data-nodeid=\"5030\">System zam\u00f3wie\u0144 w kawiarni<\/strong>\u00a0z wykorzystaniem tej samej metody CRC?<br \/>\n\ud83d\udc49 Po prostu powiedz s\u0142owo \u2014 wy\u015blemy Ci kolejny przypadek badawczy krok po kroku, z kartami, scenariuszami i gr\u0105 rolow\u0105!<\/p>\n<p class=\"\" data-nodeid=\"4816\">Mi\u0142ego projektowania! \ud83c\udfae\ud83e\udde9\ud83d\udcbb<\/p>\n<ul>\n<li data-nodeid=\"655\"><a data-nodeid=\"684\" href=\"https:\/\/www.visual-paradigm.com\/support\/documents\/vpuserguide\/94\/1289\/6518_drawingcrcca.html\">Jak rysowa\u0107 karty CRC w programie Visual Paradigm<\/a>: Ten krok po kroku przewodnik zawiera instrukcje dotycz\u0105ce tworzenia kart CRC za pomoc\u0105 dedykowanych narz\u0119dzi do rysowania w programie.<\/li>\n<li data-nodeid=\"657\"><a data-nodeid=\"698\" href=\"https:\/\/www.visual-paradigm.com\/support\/documents\/vpuserguide\/94\/1289_crccarddiagr.html\">Zrozumienie diagram\u00f3w kart CRC w programie Visual Paradigm<\/a>: Przegl\u0105d wyja\u015bniaj\u0105cy, jak te diagramy s\u0105 u\u017cywane do modelowania system\u00f3w zorientowanych obiektowo i ich interakcji.<\/li>\n<li data-nodeid=\"659\"><a data-nodeid=\"710\" href=\"https:\/\/circle.visual-paradigm.com\/docs\/uml-and-sysml\/15-crc-diagram\/how-to-create-crc-card-diagram\/\">Jak stworzy\u0107 diagram karty CRC w programie Visual Paradigm<\/a>: Pe\u0142ny przewodnik dost\u0119pny na Community Circle, obejmuj\u0105cy tworzenie i dostosowywanie diagram\u00f3w kart CRC.<\/li>\n<li data-nodeid=\"661\"><a data-nodeid=\"722\" href=\"https:\/\/circle.visual-paradigm.com\/docs\/uml-and-sysml\/15-crc-diagram\/\">Wprowadzenie do diagram\u00f3w CRC w programie Visual Paradigm<\/a>: Kompleksowy przewodnik skupiony na wykorzystywaniu diagram\u00f3w CRC do projektowania zorientowanego obiektowo oraz szerszego modelowania system\u00f3w.<\/li>\n<li data-nodeid=\"663\"><a data-nodeid=\"734\" href=\"https:\/\/forums.visual-paradigm.com\/t\/how-can-i-generate-crc-cards-using-class-diagram\/8733\">Generowanie kart CRC na podstawie diagram\u00f3w klas<\/a>: Dyskusja spo\u0142eczno\u015bci, kt\u00f3ra bada metody wykorzystywania istniej\u0105cych diagram\u00f3w klas do automatycznego generowania kart poprzez odwrotne in\u017cynierowanie.<\/li>\n<li data-nodeid=\"665\"><a data-nodeid=\"746\" href=\"https:\/\/forums.visual-paradigm.com\/t\/creating-crc-card-based-on-class-or-visa-versa\/12361\">Synchronizacja kart CRC z diagramami klas<\/a>: Zas\u00f3b techniczny omawiaj\u0105cy modelowanie dwukierunkowe w celu zapewnienia sp\u00f3jno\u015bci projektu mi\u0119dzy kartami a modelami klas.<\/li>\n<li data-nodeid=\"667\"><a data-nodeid=\"758\" href=\"https:\/\/circle.visual-paradigm.com\/docs\/uml-and-sysml\/15-crc-diagram\/?format=pdf\">Wprowadzenie do diagram\u00f3w kart CRC (przewodnik PDF)<\/a>: Pobieralny zas\u00f3b techniczny wyja\u015bniaj\u0105cy podstawowe koncepcje i zastosowania kart CRC w analizie system\u00f3w.<\/li>\n<li data-nodeid=\"669\"><a data-nodeid=\"770\" href=\"https:\/\/forums.visual-paradigm.com\/t\/link-between-crc-and-class\/17656\">Nawiazywanie po\u0142\u0105cze\u0144 mi\u0119dzy kartami CRC a diagramami klas<\/a>: Artyku\u0142 ten podkre\u015bla techniki utrzymywania \u015bledzenia i \u0142\u0105czenia mi\u0119dzy r\u00f3\u017cnymi poziomami modelowania.<\/li>\n<li data-nodeid=\"671\"><a data-nodeid=\"782\" href=\"https:\/\/www.visual-paradigm.com\/VPGallery\/capturing\/CRCCard.html\">Szablon karty CRC w galerii programu Visual Paradigm<\/a>: Zas\u00f3b zawieraj\u0105cy pobieralny szablon przeznaczony do wspierania projektowania zorientowanego obiektowo na wczesnym etapie.<\/li>\n<li data-nodeid=\"673\"><a data-nodeid=\"794\" href=\"https:\/\/forums.visual-paradigm.com\/t\/crc-cards-moving-from-diagram-to-diagram\/10242\">Przenoszenie kart CRC mi\u0119dzy diagramami<\/a>: Przewodnik wyja\u015bniaj\u0105cy, jak przenosi\u0107 karty mi\u0119dzy r\u00f3\u017cnymi diagramami, zachowuj\u0105c sp\u00f3jno\u015b\u0107 danych.<\/li>\n<\/ul>\n<p class=\"\" data-nodeid=\"4816\">\n","protected":false},"excerpt":{"rendered":"<p>\u201eNajlepszym sposobem na nauk\u0119 projektowania obiektowego nie jest zapami\u0119tywanie wzorc\u00f3w \u2014 to granie w role.\u201d W tym artykule przejdziemy przezkrok<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","footnotes":""},"categories":[5],"tags":[],"class_list":["post-11064","post","type-post","status-publish","format-standard","hentry","category-software-engineering"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Opanowanie projektowania obiektowego za pomoc\u0105 kart CRC: Przyk\u0142ad przyjazny dla pocz\u0105tkuj\u0105cych - Cybermediana<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.cybermedian.com\/pl\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Opanowanie projektowania obiektowego za pomoc\u0105 kart CRC: Przyk\u0142ad przyjazny dla pocz\u0105tkuj\u0105cych - Cybermediana\" \/>\n<meta property=\"og:description\" content=\"\u201eNajlepszym sposobem na nauk\u0119 projektowania obiektowego nie jest zapami\u0119tywanie wzorc\u00f3w \u2014 to granie w role.\u201d W tym artykule przejdziemy przezkrok\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.cybermedian.com\/pl\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/\" \/>\n<meta property=\"og:site_name\" content=\"Cybermediana\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-21T03:58:05+00:00\" \/>\n<meta name=\"author\" content=\"curtis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"curtis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.cybermedian.com\/pl\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/\"},\"author\":{\"name\":\"curtis\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d\"},\"headline\":\"Opanowanie projektowania obiektowego za pomoc\u0105 kart CRC: Przyk\u0142ad przyjazny dla pocz\u0105tkuj\u0105cych\",\"datePublished\":\"2026-02-21T03:58:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.cybermedian.com\/pl\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/\"},\"wordCount\":2047,\"articleSection\":[\"Software Engineering\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/\",\"url\":\"https:\/\/www.cybermedian.com\/pl\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/\",\"name\":\"Opanowanie projektowania obiektowego za pomoc\u0105 kart CRC: Przyk\u0142ad przyjazny dla pocz\u0105tkuj\u0105cych - Cybermediana\",\"isPartOf\":{\"@id\":\"https:\/\/www.cybermedian.com\/pl\/#website\"},\"datePublished\":\"2026-02-21T03:58:05+00:00\",\"author\":{\"@id\":\"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.cybermedian.com\/pl\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.cybermedian.com\/pl\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.cybermedian.com\/pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Opanowanie projektowania obiektowego za pomoc\u0105 kart CRC: Przyk\u0142ad przyjazny dla pocz\u0105tkuj\u0105cych\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/#website\",\"url\":\"https:\/\/www.cybermedian.com\/pl\/\",\"name\":\"Cybermediana\",\"description\":\"Uczenie si\u0119 jednej nowej rzeczy ka\u017cdego dnia\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.cybermedian.com\/pl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d\",\"name\":\"curtis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g\",\"caption\":\"curtis\"},\"url\":\"https:\/\/www.cybermedian.com\/pl\/author\/curtis\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Opanowanie projektowania obiektowego za pomoc\u0105 kart CRC: Przyk\u0142ad przyjazny dla pocz\u0105tkuj\u0105cych - Cybermediana","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.cybermedian.com\/pl\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/","og_locale":"pl_PL","og_type":"article","og_title":"Opanowanie projektowania obiektowego za pomoc\u0105 kart CRC: Przyk\u0142ad przyjazny dla pocz\u0105tkuj\u0105cych - Cybermediana","og_description":"\u201eNajlepszym sposobem na nauk\u0119 projektowania obiektowego nie jest zapami\u0119tywanie wzorc\u00f3w \u2014 to granie w role.\u201d W tym artykule przejdziemy przezkrok","og_url":"https:\/\/www.cybermedian.com\/pl\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/","og_site_name":"Cybermediana","article_published_time":"2026-02-21T03:58:05+00:00","author":"curtis","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"curtis","Szacowany czas czytania":"8 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.cybermedian.com\/pl\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/#article","isPartOf":{"@id":"https:\/\/www.cybermedian.com\/pl\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/"},"author":{"name":"curtis","@id":"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d"},"headline":"Opanowanie projektowania obiektowego za pomoc\u0105 kart CRC: Przyk\u0142ad przyjazny dla pocz\u0105tkuj\u0105cych","datePublished":"2026-02-21T03:58:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.cybermedian.com\/pl\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/"},"wordCount":2047,"articleSection":["Software Engineering"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/www.cybermedian.com\/pl\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/","url":"https:\/\/www.cybermedian.com\/pl\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/","name":"Opanowanie projektowania obiektowego za pomoc\u0105 kart CRC: Przyk\u0142ad przyjazny dla pocz\u0105tkuj\u0105cych - Cybermediana","isPartOf":{"@id":"https:\/\/www.cybermedian.com\/pl\/#website"},"datePublished":"2026-02-21T03:58:05+00:00","author":{"@id":"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d"},"breadcrumb":{"@id":"https:\/\/www.cybermedian.com\/pl\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.cybermedian.com\/pl\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.cybermedian.com\/pl\/mastering-object-oriented-design-with-crc-cards-a-beginner-friendly-case-study\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.cybermedian.com\/pl\/"},{"@type":"ListItem","position":2,"name":"Opanowanie projektowania obiektowego za pomoc\u0105 kart CRC: Przyk\u0142ad przyjazny dla pocz\u0105tkuj\u0105cych"}]},{"@type":"WebSite","@id":"https:\/\/www.cybermedian.com\/pl\/#website","url":"https:\/\/www.cybermedian.com\/pl\/","name":"Cybermediana","description":"Uczenie si\u0119 jednej nowej rzeczy ka\u017cdego dnia","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.cybermedian.com\/pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Person","@id":"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d","name":"curtis","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/www.cybermedian.com\/pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g","caption":"curtis"},"url":"https:\/\/www.cybermedian.com\/pl\/author\/curtis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/posts\/11064","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/comments?post=11064"}],"version-history":[{"count":0,"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/posts\/11064\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/media?parent=11064"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/categories?post=11064"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cybermedian.com\/pl\/wp-json\/wp\/v2\/tags?post=11064"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}