Рефакторинг бойынша оқыту жобалары: техникалық қарызды азайтуды үйрететін ескі код жұмысын қалай құрылымдау керек

Ешбір элемент табылмады.
Blog нобай кескіні

Команда ешкім толық түсінбейтін есеп айырысу модулін мұра етеді. Оның қолданыстағы мінез-құлықты қорғайтын тесттері жоқ. «Оны тазарту» үшін спринт ұсынылады, ал жоспар бойынша ядроны жаңа құрылымда қайта жазу керек. Жаңа нұсқада тұтынушылардан әлі де дұрыс ақы алынатынын ешкім қалай білетінін айта алмайды.

Бұл құжатталған оқиға емес, иллюстрациялық сценарий. Онда рефакторинг бойынша оқыту жобасының жабуы керек олқылық сипатталған: кодтың шатасқанын көре алатын, бірақ әлі шектеулі жақсартуды жоспарлай алмайтын және мінез-құлықтың сақталғанын көрсете алмайтын инженерлер.

Бұл нұсқаулық инженерлік мүмкіндіктерді қамтамасыз ету жөніндегі жетекшілер мен инженерлік менеджерлерге арналған. Онда өнімділік мәселесін қалай сипаттау, олқылықтарды диагностикалау, жобалауға дайындық және тәжірибе, кейсті қалай қарастыру және дағдының нақты жұмысқа ауысатынын бағалау қарастырылған. Бұл оқыту дизайны туралы. Бағдарламаңыздағы код, тесттер және ережелерді аға инженерлер өз стекіңізде тексеруі керек.

Рефакторинг бойынша оқыту жобасы дегеніміз не?

Рефакторинг бойынша оқыту жобасы - ескі код бойынша құрылымдалған жұмыс, оның мақсаты кодты жетілдірумен қатар, мүмкіндіктерді дамыту болып табылады. Оқушылар шағын, шектеулі өзгерісті жоспарлайды, бар мінез-құлықты тесттермен қорғайды, дизайнды шағын қадамдармен жақсартады және ештеңенің бұзылмағанын дәлелдейді. Код жақсарады, және ең бастысы, инженерлер нақты техникалық қарыз бойынша қажетті шешімді қолданады.

Жылдам фактілер

сұрақҚысқа жауап
Тапсырма қандай?Шектелген ескі кодты жақсартуды жоспарлаңыз және растаңыз.
Сіз қанша ұпай жинайсыз?Тәуекелді талдау және қолданыстағы мінез-құлықтың сақталғанының дәлелі.
Кең көлемді қайта жазу жақсы оқу жобасы ма?Әдетте олай емес. Бұл жаттығып жатқан дағдыны жасырады және сақталған мінез-құлықты көрсетуді қиындатады.
Рефакторинг үлгілері бойынша викторина жеткілікті ме?Жоқ. Бұл алғышарттарды растайды, бірақ инженердің өзгерісті жоспарлап, тексере алатындығын емес.
Мазмұнды кім растайды?Инженерлік менеджер және код базасын білетін аға инженер.
Жаттығу нені түзете алмайды?Сынақ құралдарының жоқтығы, босату қысымы, меншік құқығының түсініксіздігі және техникалық қызмет көрсету жұмыстарына уақыттың болмауы.
Оның жұмыс істегенін қайдан білесіз?Келісілген критерийлер бойынша бағаланған, нақты жұмыстың жалғасы бар жаңа, бұрын-соңды болмаған мұрагерлік код ісі.

1. Өнімділік мәселесін сипаттаңыз

Тапсырмадан бастаңыз: шектеулі ескі кодты жақсартуды жоспарлаңыз және растаңыз. «Шектеулі» - маңызды сөз. Оқушы аяқтау үшін жеткілікті шағын өзгерісті таңдайды және ауқымға кіретін және кірмейтін нәрсені айта алады.

Терминдерді дәл анықтау көмектеседі. Мартин Фаулер рефакторингті былай сипаттайды қолданыстағы код базасының дизайнын жақсартудың басқарылатын әдісі, мінез-құлықты сақтайтын шағын түрлендірулерден тұрады. «Мінез-құлықты сақтайтын» тіркесі рефакторингті қайта жазудан ажыратады және оқытудың көрінетін етуі керек нәрсе. Техникалық қарыз метафорасының өзі Уорд Каннингем ойлап тапқан, және Фаулердің талқылауы қарызды әдейі және ақылмен алуға болатынын еске салатын пайдалы ақпарат болып табылады, сондықтан әрбір ретсіз модуль түзетілуі тиіс қателік емес.

Майкл Фезерстің ескі код туралы кітабы да тәжірибеге қатысты дәл осындай ұстанымды ұстанады. Баспагердің сипаттамасында әзірлеушілерге ... қамтамасыз ететін тесттер жазуды үйрететіні айтылған. олар қолданбаны байқаусызда өзгертпейдіжәне толық қайта жазбай-ақ бар бағдарламалық жасақтаманы бақылауға алу.

Өнімділік туралы мәлімдемені бір сөйлеммен жазыңыз және инженерлік менеджер оны тексерсін: «Мұра модулі және анықталған мақсат берілгенде, инженер шектеулі өзгерісті ұсынады, ағымдағы мінез-құлықты анықтайтын тесттерді қосады, өзгерісті шағын қадамдармен енгізеді және мінез-құлықтың сақталғанын көрсетеді».

2. Оқу мен контексттегі олқылықтарды анықтаңыз

Бірдеңе жасамас бұрын, қажетті тапсырманы ағымдағы әрекеттеріңізбен салыстырып, бағалаңыз. Әдетте үш сұрақ жаттығу алшақтығын басқа нәрседен ажыратады:

  1. Қазіргі тәжірибе нақты тапсырманы қолдана ма? Егер оқыту слайдтардағы рефакторинг үлгілерін қамтыса, бірақ ешкім тексерілмеген кодты өзгертпесе, онда ешкім қорғау әрекетін тәжірибеден өткізбеген. Егер бағалау код иістері бойынша көп нұсқалы тест болса, ол еске түсіруді өлшейді.
  2. Когнитивті сұраныс дегеніміз не? Блумның қайта қаралған таксономиясында өзгерістің қауіпсіз екенін бағалау талдау және бағалау деңгейлерінде, ал жоспар мен тесттерді жобалау жасау деңгейіне жетеді. Іс-шараларды осы деңгейлерге сәйкестендіру біздің нұсқаулықта қарастырылған. оқу іс-әрекеттерін Блум таксономиясына сәйкестендіру.
  3. Шеберліктен басқа нәрсе кедергі келтіріп жатыр ма? Қызметкерлерді, құралдарды және процедураларды тексеріңіз. Егер құрылыс бір сағатқа созылса, ешкім жиі сынақ жүргізбейді. Егер техникалық қызмет көрсету жұмыстары ешқашан жоспарланбаса, инженерлер тек құпия түрде қайта өңдейді. Оқытудан тыс себептерді оларды жөндей алатын адамдарға хабарлаңыз.

3. Мақсатты дайындық пен тәжірибені жобалау

Жаттығу қандай олқылықтарды жаба алатынын білгеннен кейін, әр кезеңге жеке тапсырма беріңіз.

Дайындық. Алғышарттарды қысқаша диагностикамен тексеріңіз: тест құрылымыңыз қалай жұмыс істейді, сипаттама тесті дегеніміз не және сіздің командаңыз қалай қарап, біріктіреді. Өзіндік қарқынмен зерттеу бұл кезеңге сәйкес келеді. Еске түсіру тексеруі тек алғышарттарды растайды.

Тәжірибе. Анық пішінді жүйелі рефакторинг жобаларын пайдаланыңыз. Шағын, қауіпсіз үлгіден бастаңыз, содан кейін өз код базаңыздың нақты, бірақ шектеулі бөлігіне өтіңіз. Алтын түсті раушан катасы - бірінші қадам үшін танымал бастапқы нүкте. Эмили Бач қолдайтын оның README нұсқасы. кодты өзгертпес бұрын тест жазуды ұсынады және жаттығуды шағын қадамдар жасау, тесттерді жиі орындау және дизайнды біртіндеп жақсарту сияқты тәжірибе ретінде қарастырады. Әрбір жоба үшін ақылға қонымды реттілік: мақсат пен шекараны анықтау, кодтың бүгінгі күні не істейтінін көрсететін тесттер жазу, бір уақытта бір нәрсені өзгерту, әр қадамнан кейін тесттерді орындау және үйренгендеріңізді жазу.

Кері байланыс. Кері байланысты жалпы ұпаймен емес, шешімдермен байланыстырыңыз. «Сіз жеңілдік логикасын шығардыңыз, бірақ сіздің тесттеріңіз тек бақытты жолды қамтыды, сондықтан сіз дөңгелектеу өзгерісін байқамауыңыз мүмкін еді» деген жауап «5-тен 3» деген жауаптан гөрі пайдалырақ.

Нұсқаушының тікелей кіріспесі ме, әлде асинхронды шолу ма? Тікелей енгізу таңдау екіұшты болған кезде, мысалы, тоқтап, жетіспейтін тестті қосу керек пе немесе жалғастыру керек пе, ең маңыздысы. Асинхронды шолу оқушылар өз жоспары мен тесттерін аннотацияланған сараптамалық нұсқамен салыстырған кезде жеткілікті. Көптеген топтар екеуін де пайдаланады: алдымен өзіндік дайындық, содан кейін қиын жағдайлар бойынша жеңілдетілген сессия.

4. Нақты мысалмен жұмыс істеңіз

Мысал ретінде. Инженерлік менеджер қолданар алдында істі және жауап критерийлерін тексеруі керек.

Іс. Бұрынғы функция жеңілдікті, салықты және жеткізу ережесін қоса алғанда, тапсырыстың жалпы сомасын есептейді. Оның сынақтары жоқ. Бір топ бүкіл есеп айырысу модулін «таза» ету үшін қайта құрылымдауды ұсынады.

Тапсырма. Оқушы не істейтінін түсіндіреді, жинайтын дәлелдерін келтіреді және қандай қосымша ақпарат немесе қолдау қажет екенін айтады.

Алғашқы әрекет. «Мен модульді үш қызметке бөліп, логиканы басқа жаққа ауыстырар едім, содан кейін сандарды кезең-кезеңмен тексерер едім». Оқушы үлкен өзгерісті және кеш, қолмен тексеруді таңдады. Ескі және жаңа нұсқалардың шеткі жағдайлар бойынша сәйкес келетінін анықтау мүмкін емес.

Кері байланыс және қайталап көріңіз. Пікір қалдырушы функцияның бүгін бос себет, жалпы санды теріс ететін жеңілдік және дөңгелектеу үшін не істейтінін сұрайды. Қайталау кезінде оқушыдан ауқымын бір әрекетке дейін тарылтып, оның өзгермегенін қалай дәлелдейтінін айту сұралады.

Күштірек әрекет. «Мен әзірге модуль құрылымын жай қалдырар едім. Мен бүгін жиек регистрлерін қоса алғанда, бірқатар кірістер жиынтығы үшін реттік қосынды функциясының қайтаратын мәнін тест ретінде жазып алар едім. Содан кейін жеңілдік есептеуін өз функциясына шығарып, сол бір қадамнан кейін тесттерді іске қосып, тоқтатар едім. Жеткізу ережесінде мен түсінбейтін мінез-құлық бар екенін ескеріп, оған қол тигізбес бұрын әріптесімнен сұрар едім». Бұл жауап өзгерісті шектейтініне, алдымен мінез-құлықты қорғайтынына және белгісіз нәрсені атайтынына назар аударыңыз.

Неліктен әрбір жауап қорғалатын немесе толық емес. Әрқайсысын шолушының қалауы бойынша емес, бекітілген критерийлер бойынша бағалаңыз. Алғашқы әрекет ұзақ мерзімді бағыт болуы мүмкін, бірақ жоспар ретінде толық емес, себебі онда сақталған мінез-құлықтың ешқандай дәлелі жоқ. Күшті әрекет шағын, тексерілетін және белгісіздікке қатысты шынайы.

5. Мүмкіндікті бағалау және жоспарды беру

Қабілеттіліктің дәлелі - оқушы көрмеген жаңа ескі код жағдайындағы өнімділік. Тәуекел талдауын және мінез-құлықтың сақталғанын дәлелдейтін дәлелдерді бағалаңыз. Қарапайым рубрика әрбір критерий бойынша 0-ден 2-ге дейінгі шкаланы пайдаланады:

критерийБақыланатын дәлелдер
Тапсырманы орындауШектеулі ескі кодты жетілдіруді жоспарлайды және растайды, сондай-ақ әрекетті және оның артындағы дәлелдерді жазып алады.
ДәлелдеуШектеулерді, баламаларды және белгісіздіктерді түсіндіреді, тәуекелдерді және мінез-құлықтың сақталғанын дәлелдейтін дәлелдерді тексереді.
ШекараларБекітілген рәсімдерді пайдаланады және ақпарат немесе өкілеттік жеткіліксіз болған кезде көмек сұрайды.

Тіректер: 0 жоқ немесе қолдау таппайды, 1 тиісті кемшіліктермен ішінара және 2 толық және келісілген критерийлерге сәйкес негізделген. Маңызды қателіктерді бөлек анықтаңыз, мысалы, байқалатын тестсіз мінез-құлықтың өзгеруі, сондықтан жалпы балл оны жасыра алмайды. Бұл рубрика - бұл ұсыныс, расталған дайындық стандарты емес: оны инженерлік менеджермен бейімдеп, сынақтан өткізіңіз. Біздің нұсқаулық пайдалы кері байланыспен интерактивті тәжірибені жобалау шешімдерге сілтеме жасайтын кері байланысты қалай жазу керектігін көрсетеді.

Ауыстыруды әдейі жоспарлаңыз. Жаттығудан кейін әрбір инженерге шолушымен шешу үшін шағын, нақты қарыз бөлігін беріңіз немесе бір нәрсені бұзған жақында болған өзгеріске қысқаша ретроспектива жасаңыз. Ауыстыруды семинардан кейін бірден емес, нақты жұмыспен тиісті түрде танысқаннан кейін тексеріңіз.

Интерактивті жеткізу көмектесетін жерде

Интерактивті форматтар топты көрмес бұрын барлығының міндеттеме алуы керек жерлерге көмектеседі. Тікелей эфирде фасилитатор қысқаша мұра үзіндісін көрсете алады, әр инженерден енгізетін алғашқы өзгерісін және оны қалай қауіпсіз екенін дәлелдейтінін сұрай алады, содан кейін талқылау алдында таралуын көрсете алады. Сол шақыру дайындық үшін өздігінен орындала алады. AhaSlides интерактивті оқытуды және тікелей және өздігінен орындалатын жеткізу арасында ауысуды қолдайды. Бұл презентация және оқу құралы, кодты іске қосу немесе талдау орны емес, сондықтан рефакторингтің өзін өз ортаңызда іске қосыңыз. Өзіңіздің жұмыс процесіңізге сүйенуді жоспарлап отырған кез келген нақты авторлық, кері байланыс немесе есеп беру функциясын тексеріңіз. Форматтарды таңдау бойынша нұсқаулық алу үшін біздің мақаланы қараңыз. бейімделгіш, интерактивті және тірі оқытуды қашан қолдану керек.

Не өзгергенін өлшеңіз

Инженерлердің тапсырманы орындай алатынын не көрсететінін алдын ала шешіңіз. Тәуекел талдауының сапасын және көрінбейтін жағдайда сақталған мінез-құлықтың дәлелдерін бастапқы деңгеймен салыстырыңыз. Кімдердің кіретінін, бөлгішін және уақытын анықтаңыз. Егер нәтижелер жақсарса, оқытуды есептемес бұрын, сол кезеңде тағы не өзгергенін, мысалы, жаңа сынақ құралдарының, жылдам құрастырудың немесе меншік иесінің ауысқанын тексеріңіз.

Қалыптасуы мүмкін шектеулер

  • Техникалық қызмет көрсету жұмыстарына уақыт келді. Егер қарыз бойынша жұмыс ешқашан жоспарланбаса, білікті инженерлердің бұл дағдыны пайдаланатын жері жоқ.
  • Сынақ құралдары. Қолдануға жарамды сынақ белдігі немесе жылдам құрастыру болмаса, шағын қадамдар мен жиі тексерулерді орындау қиын.
  • Істі қамту. Бір ескі жағдай бірнеше тәуекел түрін көрсетеді. Баға инженердің жалпы пікірін сипаттамайды.
  • Қайта өңдеуді қашан жасамау керектігін анықтау. Кейбір кодтарды жалғыз қалдырған, ауыстырған немесе ескірткен дұрыс, және бұл шешім тек шеберліктен де көп нәрсені қамтиды.
  • Беру. Катадағы өнімділік жеткізу қысымы кезіндегі өндіріс модуліндегі өнімділікпен бірдей емес.

Оларды демеушілерге ертерек атаңыз және бөлек жөндеу жұмыстарын жоспарлаңыз. Оқыту инженердің жоспарлай және дәлелдей алатын нәрселерін жақсартады. Ол уақытты немесе құрал-жабдықтарды жасамайды.

Жиі Қойылатын Сұрақтар

Рефакторинг бойынша оқыту жобасы дегеніміз не?

Бұл инженерлер шағын өзгерісті жоспарлайтын, бар мінез-құлықты тестілермен қорғайтын, дизайнды шағын қадамдармен өзгертетін және ештеңенің бұзылмағанын көрсететін ескі кодтағы құрылымдалған тәжірибе.

Толық қайта жазу техникалық қарыз туралы білудің жақсы тәсілі ме?

Әдетте олай емес. Қайта жазу үлкен, тексеру қиын және сіз дамытқыңыз келетін дағдыны жасырады. Ағымдағы мінез-құлықты көрсететін тесттермен шектелген өзгеріс пайымдауды көрінетін етеді.

Инженерлер қауіпсіз түрде рефактор жасай алатынын қалай бағалайсыз?

Жаңа ескі код жағдайын келтіріңіз және тәуекел талдауын және мінез-құлықтың келісілген критерийлерге сәйкес сақталғанын дәлелдейтін дәлелдерді бағалаңыз. Рефакторинг үлгілері бойынша викторина тек алғышарттарды растайды.

Тренинг үшін үлгі код базасы қажет пе?

Қауіпсіз жаттығу үшін бір жер қажет. Көптеген командалар алдымен жалпы катадан бастайды, содан кейін өз кодының шектеулі бөлігіне көшеді. Инженерлік менеджеріңіз кодтың сәйкес келетінін растауы керек.

Неден бастау керек

Код базаңыздағы бір шағын, қайталанатын ескі өзгеріс түрін таңдаңыз. Өнімділік туралы мәлімдеме жазыңыз, инженерлік менеджерден сақталған мінез-құлықты көрсететін жағдайды және тесттерді тексертуін сұраңыз және 0-ден 2-ге дейінгі шкаламен және маңызды қателіктер тізімімен үш критерийлі рубриканы жасаңыз. Оны енгізбес бұрын шағын топпен сынақтан өткізіңіз.

Рефакторинг шешім қабылдау жаттығуының өз командаңызбен қалай жұмыс істей алатынын және кейіннен өз қарқыныңызбен қайта пайдаланылатынын көру үшін AhaSlides-ті зерттеңіз.

Аудиторияның белсенділігін арттыру үшін кеңестерге, түсініктерге және стратегияларға жазылыңыз.
Рақмет сізге! Сіздің өтінішіңіз қабылданды!
Қап! Пішінді жіберу кезінде бірдеңе дұрыс болмады.

Басқа жазбаларды қараңыз

AhaSlides Forbes America-ның ең үздік 500 компаниясымен қолданылады. Бүгін қатысу күшін сезініңіз.

Тегін бастаңыз
© 2026 AhaSlides Pte Ltd