Розще́плення змі́нної (англ. Split Temporary Variable) — прийом рефакторингу, що дозволяє зменшити складність всередині методу, зробити метод простим для розуміння і полегшити подальшу роботу з ним.
Проблема
Є локальна змінна, яка використовується для зберігання різноманітних значень всередині методу (не рахуючи змінних циклів).
Приклад C#:
double temp = 2 * (height + width); Console.WriteLine(temp); temp = height * width; Console.WriteLine(temp);
Рішення
Використати різні змінні для різних значень. Кожна змінна повинна відповідати тільки за одну певну річ.
Приклад C#:
readonly double perimeter = 2 * (height + width); Console.WriteLine(perimeter); readonly double area = height * width; Console.WriteLine(area);
Причини рефакторингу
Якщо в процесі написання коду було «зекономлено» змінні всередині функції і повторно використано їх для різноманітних непов'язаних між собою цілей, то обов'язково почнуться проблеми в той момент, коли потрібно буде внести якісь оновлення в код, що містить ці змінні. Доведеться перевірити декілька разів усі випадки використання змінної, щоб впевнитись у відсутності помилки в коді.
Переваги
- Кожен елемент програми повинен відповідати тільки за одну річ. Це значно спрощує підтримку коду в майбутньому, оскільки можна спокійно змінити цей елемент, не побоюючись побічних ефектів.
- Покращується читабельність коду. Якщо змінна створювалася дуже давно, та ще і в поспіху, вона могла дістати елементарну назву, яка не пояснює суті значення, що зберігається, наприклад, k, n, value і так далі. Є шанс виправити ситуацію, призначивши новим змінним хороші назви, що відображають суть значень, що зберігаються. Наприклад, customerTaxValue, cityUnemploymentRate, clientSalutationString і так далі.
- Цей рефакторинг допомагає надалі виділити ділянки коду, що повторюються, в окремі методи.
Порядок рефакторингу
- Потрібно знайти місце в коді, де змінна вперше заповнюється якимось значенням. У цьому місці перейменуйте цю змінну, причому нова назва повинна бути зрозумілою і відповідати її значенню.
- Підставити її нову назву замість старої в місцях, де використовувалося це значення змінної.
- Повторити операцію для інших випадків, де змінній присвоюється нове значення.
Анти-рефакторинг
- Вбудовування змінної
Схожі рефакторинги
- Відокремлення змінної
- Видалення привласнень параметрам
Допомагає іншим рефакторингам
Посилання
- Split Temporary Variable [ 17 грудня 2014 у Wayback Machine.]
- Розщеплення змінної [ 18 грудня 2014 у Wayback Machine.]
- Split Temporary Variable [ 13 грудня 2014 у Wayback Machine.]
Ця стаття потребує додаткових для поліпшення її . (березень 2017) |
Це незавершена стаття про програмування. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Rozshe plennya zmi nnoyi angl Split Temporary Variable prijom refaktoringu sho dozvolyaye zmenshiti skladnist vseredini metodu zrobiti metod prostim dlya rozuminnya i polegshiti podalshu robotu z nim ProblemaYe lokalna zminna yaka vikoristovuyetsya dlya zberigannya riznomanitnih znachen vseredini metodu ne rahuyuchi zminnih cikliv Priklad C double temp 2 height width Console WriteLine temp temp height width Console WriteLine temp RishennyaVikoristati rizni zminni dlya riznih znachen Kozhna zminna povinna vidpovidati tilki za odnu pevnu rich Priklad C readonly double perimeter 2 height width Console WriteLine perimeter readonly double area height width Console WriteLine area Prichini refaktoringuYaksho v procesi napisannya kodu bulo zekonomleno zminni vseredini funkciyi i povtorno vikoristano yih dlya riznomanitnih nepov yazanih mizh soboyu cilej to obov yazkovo pochnutsya problemi v toj moment koli potribno bude vnesti yakis onovlennya v kod sho mistit ci zminni Dovedetsya pereviriti dekilka raziv usi vipadki vikoristannya zminnoyi shob vpevnitis u vidsutnosti pomilki v kodi PerevagiKozhen element programi povinen vidpovidati tilki za odnu rich Ce znachno sproshuye pidtrimku kodu v majbutnomu oskilki mozhna spokijno zminiti cej element ne poboyuyuchis pobichnih efektiv Pokrashuyetsya chitabelnist kodu Yaksho zminna stvoryuvalasya duzhe davno ta she i v pospihu vona mogla distati elementarnu nazvu yaka ne poyasnyuye suti znachennya sho zberigayetsya napriklad k n value i tak dali Ye shans vipraviti situaciyu priznachivshi novim zminnim horoshi nazvi sho vidobrazhayut sut znachen sho zberigayutsya Napriklad customerTaxValue cityUnemploymentRate clientSalutationString i tak dali Cej refaktoring dopomagaye nadali vidiliti dilyanki kodu sho povtoryuyutsya v okremi metodi Poryadok refaktoringuPotribno znajti misce v kodi de zminna vpershe zapovnyuyetsya yakimos znachennyam U comu misci perejmenujte cyu zminnu prichomu nova nazva povinna buti zrozumiloyu i vidpovidati yiyi znachennyu Pidstaviti yiyi novu nazvu zamist staroyi v miscyah de vikoristovuvalosya ce znachennya zminnoyi Povtoriti operaciyu dlya inshih vipadkiv de zminnij prisvoyuyetsya nove znachennya Anti refaktoringVbudovuvannya zminnoyiShozhi refaktoringiVidokremlennya zminnoyi Vidalennya privlasnen parametramDopomagaye inshim refaktoringamVidokremlennya metoduPosilannyaSplit Temporary Variable 17 grudnya 2014 u Wayback Machine Rozsheplennya zminnoyi 18 grudnya 2014 u Wayback Machine Split Temporary Variable 13 grudnya 2014 u Wayback Machine Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na storinku obgovorennya za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno berezen 2017 Ce nezavershena stattya pro programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi