"Tekrar merhaba."

"MERHABA!"

"Bugün size yeniden düzenlemeden bahsedeceğim. Yeniden düzenleme, bir projedeki kodu, işlevselliğini değiştirmeden değiştirmektir."

"Ama bu nasıl mümkün olabilir?"

"Pekala, en basit durumda, değişkenleri ve/veya yöntemleri yeniden adlandırabiliriz. Ne de olsa, bir değişkenin adını değiştirmek programın farklı çalışmasını sağlamaz, değil mi?"

"Tabii ki değil."

" Ayrıca büyük yöntemleri birkaç küçük yönteme bölebilirsiniz. "

" Tekrarlanan kod parçacıklarını ayrı bir yönteme çekebilirsiniz . "

"Bazı işlevler statik olarak bildirilebilir ve ardından yardımcı program sınıflarına taşınabilir."

"Fakat bu, yeniden düzenlemenin dar bir yorumudur."

"Yeniden düzenleme bazen bir projenin mimarisini yeni işlevsellik eklemeden yeniden yazmak (iyileştirmek) anlamına gelir. Bu, terimin geniş anlamıyla yeniden düzenlemedir."

"IntelliJ IDEA, özellikle çok güçlü yeniden düzenleme araçlarını sunan ilk ortam olduğu için en popüler tümleşik geliştirme ortamı (IDE) haline geldi."

"Bu büyülü araçlar da ne?"

Sihir numarası 1: Bir yöntemin adını değiştirin.

"Kodunuzun 100-500 farklı yerden çağrılan bir yöntemi olduğunu hayal edin. Adını daha anlaşılır bir şeyle değiştirmeye karar verdiniz. Diyelim ki bu run() ve runDownloadTaskAsync() olmasını istiyorsunuz. Ne kadar çabuk bunu yapabilir misin?"

"Pekala, önce yöntemin adını değiştirmelisin, sonra programda o yöntemin çağrıldığı tüm yerleri bul ve oradaki adı da değiştir."

"Peki o yerleri nasıl bulacaksın?"

"Sadece programı çalıştırdım ve IntelliJ IDEA bana var olmayan bir yöntemin çağrıldığı tüm yerleri gösterecekti."

"Tamam. Ama şimdi her yöntemin, yöntemin ne yaptığını açıklayan açıklayıcı bir yorumu (JavaDoc) olduğunu ve eski yöntemin adının orada yazıldığını varsayalım."

"Yorumları da değiştirirdim."

"Fakat adları yöntemin adıyla ilişkili değişkenler de olabilir. Bunları da değiştirmek iyi olur:"

Önce Sonrasında
Task task = manager.run();
Task asyncTask = manager.runDownloadTaskAsync();

"Evet, bu değişkenlerin adlarını da değiştirmek iyi olur. Zararı olmaz."

"Pekala, tüm bunlar IntelliJ IDEA kullanılarak sadece birkaç saniye içinde yapılabilir!"

"İmleci yöntemin adının üzerine getirin (veya fareyle tıklayın) ve ardından Shift+F6 tuşlarına basın ve istediğiniz yöntem adını yazmaya başlayın."

"İşte bir yöntem adını düzenleme örneği."

"Düzenlemeye başla:"

IDEA: yeniden düzenleme - 1

"Yeni bir ad belirtin:"

IDEA: yeniden düzenleme - 2

"Sadece yeni bir ad girin, enter'a basın ve hepsi bu. Bu yöntem, projede çağrıldığı her yerde yeniden adlandırılacaktır."

"IntelliJ IDEA ayrıca yorumlarda genellikle değişken adlarını ve yöntem adlarını yeniden adlandırmak isteyip istemediğinizi sorar. 'Evet'i tıklamanız yeterlidir, her şey değişecektir."

"Dahası, proje bu yeniden düzenleme işleminden önce derlendiyse, yeniden düzenlemeden sonra derlenmesi garanti edilir."

"Kulağa çok umut verici geliyor."

"Bu arada, değişken adlarını aynı şekilde değiştirebilirsiniz. Bir adı tıkladıktan sonra Shift+F6 tuşlarına basmanız yeterlidir . Daha sonra yeni bir ad girebilirsiniz; IntelliJ, kullanıldığı her yerde değişken adını değiştirecektir. "

"Değişken bir sınıftaki bir alansa ve bir alıcı ve ayarlayıcıya sahipse, alıcı ve ayarlayıcının adları da değişkenin yeni adıyla eşleşecek şekilde değiştirilecektir."

"Değişkenleri kullanarak denedim. Her şey dediğin gibi çalışıyor Ellie. Yeniden düzenleme harika!"

"Yeniden düzenlemenin bu kadar olduğunu mu düşünüyorsun? Yeniden düzenleme o kadar geniş bir konu ki daha yüzeyini çizmedik bile."

"Vay. Başka ne var?"

2 numaralı sihirbazlık numarası: Bir değişkeni ayıklayın.

"Bazen belirli ifadeler kodda o kadar sık ​​tekrarlanır ki onları ayrı bir değişkene taşımak isteyeceksiniz. Örneğin:"

kod
public void printInfo(User user)
{
 System.out.println(user.getProfile().getName());
 System.out.println(user.getProfile().getAddress().getState());
 System.out.println(user.getProfile().getAddress().getCity());
 System.out.println(user.getProfile().getAddress().getStreet());
 System.out.println(user.getProfile().getAddress().getHomeNumber());
}
Nasıl görünmesini istersiniz:
public void printInfo(User user)
{
 Address address = user.getProfile().getAddress();

 System.out.println(user.getProfile().getName());
 System.out.println(address.getState());
 System.out.println(address.getCity());
 System.out.println(address.getStreet());
 System.out.println(address.getHomeNumber());
}

"Ah."

"Ve kod, birçok tekrarlanan parçayla çok daha karmaşık olabilir."

"Programcılar kasıtlı olarak bu şekilde yazmazlar. Ancak genellikle bir yönteme bir şey, sonra başka bir şey eklemeniz gerekir ve zamanla tekrar sayısı tavan yapar."

"Ayrı bir değişken oluşturarak ona uygun bir isim verebilir ve kodun okunabilirliğini geliştirebiliriz."

"Örneğin, yukarıdaki örnekte, belki bir ev adresinden bahsetmiyoruz. Belki bir acil durumda aranacak kişinin adresinden bahsediyoruz. O zaman bu değişkene sadece adres yerine acilİletişimAdresi diyebilirsiniz. Ardından, bir programcı bu kodu ilk kez görenler burada neler olduğunu anlayacaktır."

"Evet, katılıyorum. Bu tür değişkenleri eklemek mantıklı."

"Peki, bunu nasıl yapıyorsun?"

"Bir ifadeyi ayrı bir değişkene taşımak çok basit."

Adım 1: İfadeyi seçmek için fareyi kullanın.

IDEA: yeniden düzenleme - 3

2. Adım: Ctrl+Alt+V tuşlarına basın

IDEA: yeniden düzenleme - 4

"IntelliJ IDEA'nın bize yalnızca seçilen ifadeyi mi yoksa ifadenin tüm örneklerini (4 kez) değiştirmek isteyip istemediğimizi sorduğu bir pencere açılıyor?"

"Tüm oluşumları değiştirmek için ikinci seçeneği seçin (4 oluşumun tümünü değiştirin)"

Adım 3: Enter'a basın.

IDEA: yeniden düzenleme - 5

"IntelliJ IDEA sizden bir değişken adı girmenizi isteyecek. Ayrıca ad için kendi önerisini yapacak. Fena değil, değil mi?"

"Hı-hı. Doğru. Değişkene 'adres' adını vermeyi de planlıyorduk. Nasıl bildi?"

"Bir adres döndüren ifadedeki son yöntemin adını kullanarak. Bu nedenle, değişkenin bir adresi depolamak için kullanılması muhtemeldir."

"Bu gerçekten işe yaradı. Harika iş, Ellie."

Sihir numarası 3: Kodu ayrı bir yönteme çıkarın.

"Ama başka bir şey yapabilirdik. Yeni bir yöntem, örneğin printAddress () bildirebilir ve bu kodun tamamını ona taşıyabilirdik."

"Bunu yapmayı deneyelim."

Adım 1: Adres değişkenini kullanan 4 satırlık kodu seçin:

IDEA: yeniden düzenleme - 6

2. Adım: Ctrl+Alt+M tuşlarına basın

IDEA: yeniden düzenleme - 7

"IntelliJ IDEA, yöntemin hangi değişkenlere ihtiyaç duyacağını belirler ve neye benzemesi gerektiğini önerir. "Geriye kalan tek şey, yöntem için bir ad girmektir."

Adım 3: Yöntem adı olarak printAddress'i girin ve Enter'a basın.

IDEA: yeniden düzenleme - 8

"Bu nasıl hoşuna gitti mi?"

"Harika. IntelliJ IDEA kodu ayrı bir yönteme çıkarmakla kalmadı, aynı zamanda gerekli tüm değişkenleri de ekledi. Dahası, tüm adları doğru tahmin etti."