Подробнее о Java-конференциях:
— весной — JPoint: https://jrg.su/gTrwHx
— осенью — Joker: https://jrg.su/h7yvG4
— —
. . . . Помимо изменения функциональности программы программирование включает в себя изменение её структуры с сохранением семантики, что обычно называют рефакторингом. Любой рефакторинг несёт в себе риски того, что семантика всё-таки будет изменена, если программист допустит ошибку в этом процессе. Не всегда дальнейшее тестирование способно вовремя выявить такую регрессию. Кроме того, боязнь подобной регрессии вынуждает программистов отказываться от рефакторинга там, где он был бы очевидно полезен.
Однако часто рефакторинг можно разбить на набор атомарных шагов-транзакций, после каждого из которых семантика сохраняется. Чем меньше эти шаги, чем короче «разломанное состояние программы», тем меньше вероятность ошибки. В ряде случаев удаётся довести процесс до идеала: каждая команда, которую вы отдаёте среде разработки, модифицирует код, сохраняя семантику. В таком случае шанс ошибки снижается практически до нуля.
Мы посмотрим на примерах, как можно добиться этого при рефакторинге Java-кода в среде IntelliJ IDEA и каким образом можно заставить среду рефакторить атомарно, если она сопротивляется.
Поделиться в:
Доступные форматы для скачивания:
Скачать видео mp4
Информация по загрузке:
Скачать аудио mp3
Похожие видео
array(10) {
[0]=>
object(stdClass)#4335 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "_rj7dx6c5R8"
["related_video_title"]=>
string(79) "Антон Архипов — Эффективная работа с IDE(A)"
["posted_time"]=>
string(19) "7 лет назад"
["channelName"]=>
string(55) "JPoint, Joker и JUG ru — Java-конференции"
}
[1]=>
object(stdClass)#4308 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "NXh98XRi2is"
["related_video_title"]=>
string(95) "Тагир Валеев — Ещё немного маленьких оптимизаций"
["posted_time"]=>
string(21) "4 года назад"
["channelName"]=>
string(55) "JPoint, Joker и JUG ru — Java-конференции"
}
[2]=>
object(stdClass)#4333 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "c-VRsk-XCfE"
["related_video_title"]=>
string(81) "Master FreeRTOS Communication & Multitasking | Queues, Timers, Mutex (Ch 5-9)"
["posted_time"]=>
string(23) "6 часов назад"
["channelName"]=>
string(11) "Code To Win"
}
[3]=>
object(stdClass)#4340 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "5Y0Alqb9H_I"
["related_video_title"]=>
string(85) "Тагир Валеев — Java 9-14: Маленькие оптимизации"
["posted_time"]=>
string(19) "5 лет назад"
["channelName"]=>
string(55) "JPoint, Joker и JUG ru — Java-конференции"
}
[4]=>
object(stdClass)#4319 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "TPHMyVyktsw"
["related_video_title"]=>
string(63) "Тагир Валеев — Странности Stream API"
["posted_time"]=>
string(19) "8 лет назад"
["channelName"]=>
string(55) "JPoint, Joker и JUG ru — Java-конференции"
}
[5]=>
object(stdClass)#4337 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "3T_IPolVzjs"
["related_video_title"]=>
string(100) "Все о корпоративных хранилищах данных (КХД, Data Warehouse, DWH)"
["posted_time"]=>
string(19) "1 год назад"
["channelName"]=>
string(5) "AW BI"
}
[6]=>
object(stdClass)#4332 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "xoTrgA2zOJI"
["related_video_title"]=>
string(86) "Юрий Артамонов — Краш-курс по IntelliJ IDEA Plugin DevKit"
["posted_time"]=>
string(19) "5 лет назад"
["channelName"]=>
string(55) "JPoint, Joker и JUG ru — Java-конференции"
}
[7]=>
object(stdClass)#4342 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "ztrdSWvpRKM"
["related_video_title"]=>
string(59) "ПЕРВЫЙ капсульный поезд: 5000 руб.!"
["posted_time"]=>
string(21) "1 день назад"
["channelName"]=>
string(3) "808"
}
[8]=>
object(stdClass)#4318 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "mX19FWX2_Hs"
["related_video_title"]=>
string(129) "Кирилл Толкачёв и Егений Борисов — Reactive или не reactive, вот в чем вопрос"
["posted_time"]=>
string(19) "5 лет назад"
["channelName"]=>
string(55) "JPoint, Joker и JUG ru — Java-конференции"
}
[9]=>
object(stdClass)#4336 (5) {
["video_id"]=>
int(9999999)
["related_video_id"]=>
string(11) "ann_T6P2vxY"
["related_video_title"]=>
string(99) "ОГРОМНАЯ ИЗБА! ПОПАЛ ПОД ПРОЛИВНОЙ ДОЖДЬ. ИДУ ЗА ЩУКОЙ."
["posted_time"]=>
string(23) "6 часов назад"
["channelName"]=>
string(16) "-ТАЁЖНЫЙ-"
}
}