Тёмный

Тагир Валеев - Атомарный рефакторинг в IntelliJ IDEA: прогибаем IDE под себя 

JPoint, Joker и JUG ru
Подписаться 54 тыс.
Просмотров 19 тыс.
50% 1

Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября (Санкт-Петербург + трансляция).
Подробности и билеты: jrg.su/Ypf1HW
- -
. . . . Помимо изменения функциональности программы программирование включает в себя изменение её структуры с сохранением семантики, что обычно называют рефакторингом. Любой рефакторинг несёт в себе риски того, что семантика всё-таки будет изменена, если программист допустит ошибку в этом процессе. Не всегда дальнейшее тестирование способно вовремя выявить такую регрессию. Кроме того, боязнь подобной регрессии вынуждает программистов отказываться от рефакторинга там, где он был бы очевидно полезен.
Однако часто рефакторинг можно разбить на набор атомарных шагов-транзакций, после каждого из которых семантика сохраняется. Чем меньше эти шаги, чем короче «разломанное состояние программы», тем меньше вероятность ошибки. В ряде случаев удаётся довести процесс до идеала: каждая команда, которую вы отдаёте среде разработки, модифицирует код, сохраняя семантику. В таком случае шанс ошибки снижается практически до нуля.
Мы посмотрим на примерах, как можно добиться этого при рефакторинге Java-кода в среде IntelliJ IDEA и каким образом можно заставить среду рефакторить атомарно, если она сопротивляется.

Наука

Опубликовано:

 

4 авг 2019

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 16   
@grigorii9019
@grigorii9019 8 месяцев назад
Очень нравится. Сейчас на 14 минуте. Правда вместо if где title присваивается значение очень хочется увидеть тернарный оператор.
@gennadygennady3458
@gennadygennady3458 3 года назад
21:29 рефакторинг 1 -> refactor this 24:18 реф 2 -> show intention actions 32:56 реф 3 -> surround with 54:22 итог
@gennadijdegterjow8457
@gennadijdegterjow8457 4 года назад
А мне подход нравится. Попробую на практике
@user-qf2rh4qp7x
@user-qf2rh4qp7x 3 года назад
Masterpiece
@twobeerornottwobeer5973
@twobeerornottwobeer5973 Год назад
Круто, спасибо, я знал уже про некоторые фичи и пользовался этим. Но все-таки нашёл здесь что-то новое для себя. Хотя, думал смотреть, не смотреть)
@NickoOlimp
@NickoOlimp 3 года назад
datum как единственное число от data - это для меня открытие
@dant6315
@dant6315 3 года назад
Слабоумие и отвага наше все)
@cdelags1747
@cdelags1747 4 года назад
Structural search только не работает с Котлином :/ Вот такая вот интеграция языка с ide
@TelleMaria
@TelleMaria 5 лет назад
В какой версии работает первый пример? :) В 2019.1 community edition не получилось
@MaximLogunov
@MaximLogunov 4 года назад
Ссылка на мини-рассказ про Structural Search от Trisha Gee с 54:02: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-fIPr_ANBpFk.html
@user-hs3vx9og5o
@user-hs3vx9og5o 4 года назад
Ну кстати да, годик вот так вот попрограммируешь в идее, а потом возникнет необходимость писать в эклипсе, или вообще в саблайме и всё...
@dmitriypronichev7048
@dmitriypronichev7048 3 года назад
Можете привести пример такой неотвратимой необходимости? А то чаще всего это довольно надуманные проблемы из разряда "а вдруг завтра настанет конец света и большая часть ПО пропадет, нам придется писать программы на бумажке". Возможно, в таких случаях мы просто не будем писать код, а пойдем добывать тигров и медведей в леса и саванны чтобы хоть как-то прокормить себя и семью. В остальных случаях это исключительные ситуации, например, основной компьютер сломался, а у меня дома только ноутбук древний, и мне вот на нем, превозмогая, нужно в notepad++ быстро поправить баг. Ну ничего страшного, поправите, ведь от использования фич IDE у вас мозги никуда не пропадают )))
@user-hs3vx9og5o
@user-hs3vx9og5o 2 года назад
@@dmitriypronichev7048 Могу, ага. Мне как-то раз пришлось кодить проект для заказчика, который хотел, чтоб я кодила исключительно на его удалёнке через RDP. А у него там стоял VSCode и ставить туда Idea он не хотел никак. И я среди знакомых-фрилансеров слышала похожие истории несколько раз, так что не уникальный кейс)
@cubuanic
@cubuanic 4 года назад
Ссылка на видео с последнего слайда: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-fIPr_ANBpFk.html
@user-pt6gy1uk7x
@user-pt6gy1uk7x 4 года назад
Ромбики появились в пятой джаве
@ivanbabanin3316
@ivanbabanin3316 4 года назад
Он имел ввиду diamond operator, который появился в JDK 7.
Далее
WE COOKED A SHRIMP KEBAB  #recipe #barbecue #food
00:21
Просмотров 187 тыс.
КТО ЭТО БЫЛ?
25:31
Просмотров 1,1 млн
Сложная распаковка iPhone 15
1:01
Просмотров 12 тыс.
Best mobile of all time💥🗿 [Troll Face]
0:24
Просмотров 2,7 млн
iPhone перегрелся, что делать?!
1:01