Programcıların kodlarını neden gözden geçirmeleri gerekiyor?

Kodu her gün yazdıktan sonra Kod İnceleme alışkanlığınız var mı?

Kod Gözden Geçirme, amacı geliştirme sırasında gözden kaçan hataları bulmak olan, kod kalitesini büyük ölçüde artıran ve geliştiricilerin projeye daha aşina olmasına yardımcı olan kod incelemesidir. Ne yazık ki, sektördeki birçok geliştiricinin düzenli kod inceleme alışkanlığı yoktur. Öyleyse programcılar için, Gözden Geçirme gerçekten gerekli bir iş mi?

Yazar | Gergely Orosz

Çevirmen | Crescent Moon, Baş Editör | Tu Min

Üretildi | CSDN (ID: CSDNnews)

Aşağıdaki çeviridir:

On yıldan fazla bir süredir sık sık kod incelemeleri yapıyorum. Kod incelemesinin pek çok faydası vardır: kod değişikliklerini okumak, bilgi paylaşımı ve diğerlerinin bakış açısından araç ve otomasyon iyileştirmeleri. Kod incelemeniz yoksa, 2006 yılında Jeff Atwood tarafından paylaşılan tavsiyelere uymanızı şiddetle tavsiye ederim (https://twitter.com/codinghorror).

Birçok kişi ve kuruluş, kod incelemeleri ve iyi kod incelemelerinin anlamı hakkında en iyi uygulamaları paylaştı. SmartBear ekibi, Palantir mühendislik ekibi ve mühendis Philipp Hauer tarafından paylaşılan kılavuzların hepsi iyi okuma materyalleridir. Aşağıda, iyi kod incelemeleri ve bunların nasıl daha iyi hale getirilebileceği konusundaki kişisel görüşlerim yer almaktadır. Bu makalenin arka planı, şu anda bulunduğum Uber ve önceki Microsoft Skype ve Skyscanner dahil olmak üzere işimdeki teknik ortamdır.

Kod incelemesinin kapsadığı alanlar

İyi bir kod gözden geçiren, kodun kendisindeki değişikliklere ve bu değişikliklerin mevcut kod için uygun olup olmadığına bakacaktır. Başlığı ve açıklamayı ve kod değişikliğinin "nedenini" dikkatle inceleyeceklerdir. Ayrıca kodun doğruluğunu, test kapsamını, işlevsel değişiklikleri kontrol edecek ve programlama yönergelerinin ve en iyi uygulamaların izlendiğini onaylayacaklardır. Aynı zamanda, anlaşılmaz kodlar, belirsiz isimler, yorumlanmış kodlar, test edilmemiş kodlar veya işlenmemiş uç durumlar gibi bariz iyileştirme alanlarına da işaret edeceklerdir. Son olarak, bir gönderi çok fazla kod değişikliği içeriyorsa, kod değişikliklerinin tek bir amacı sürdürmesi ve kod değişikliklerinin daha odaklanmış bölümlere ayrılması gerektiğini de not edeceklerdir.

Daha iyi kod gözden geçirenler, kod değişikliklerine bir bütün olarak sistem perspektifinden de bakacak ve bu değişikliklerin bakımının kolay olup olmadığını kontrol edecektir. Kod değişikliklerinin gerekliliği veya sistemin diğer bölümleri üzerindeki etkisi hakkında sorular sorabilirler. Kodda tanıtılan soyutlamayı ve mevcut yazılım mimarisine uyarlanabilirliği inceleyecekler. Ek olarak, karmaşık mantığın basitleştirilip basitleştirilemeyeceği, test yapısı, çoğaltma ve diğer olası iyileştirmeler gibi sürdürülebilirliği gözlemleyeceklerdir. Bu makalede (https://medium.com/@mrjoelkemp/giving-better-code-reviews-16109e0fdd36), mühendis Joel Kemp bu kod incelemelerini iki seviyeye ayırıyor: ön inceleme ve kapsamlı inceleme.

İncelemenin tonu

Kod incelemesinin tonu, ekibin moralini büyük ölçüde etkileyebilir. Sert yorumlar, sert bir çalışma ortamına yol açabilir. Kendini beğenmiş dil, insanları düşman hissettirebilir ve bu da hararetli tartışmalara yol açabilir. Aynı zamanda, profesyonel ve olumlu bir üslup daha hoşgörülü bir ortamı teşvik edebilir. Bu ortamlardaki insanlar yapıcı geribildirimi kabul edebilir ve kod incelemeleri sağlıklı ve canlı tartışmalara yol açar.

İyi bir kod eleştirmeni, güçlü veya kendini beğenmiş ifadeler yerine açık uçlu sorular soracaktır. Alternatifler veya başka çözümler sunacaklar. Bu gözden geçirenler bir şeyi gözden kaçırmış olabileceklerini düşünecekler, bu nedenle önce diğer taraftan düzeltmesini istemek yerine diğer taraftan açıklama isteyeceklerdir.

Daha iyi kod gözden geçirenler şefkatlidir. Kodu yazan kişilerin bu değişikliklerle başa çıkmak için çok zaman ve enerji harcadıklarını biliyorlar. Bu kod gözden geçirenler nazik ve mütevazı. İyi çözümleri çok takdir edecek ve kapsamlı ve olumlu adımlar atacaklardır.

Değişiklikleri onaylayın ve isteyin

İyi kod gözden geçirenler, açık sorular olduğunda kod değişikliklerini onaylamaz. Bununla birlikte, hangi konuların veya yorumların engellemediğini veya önemsiz olmadığını açıkça belirteceklerdir. Bu tür inceleme yorumlarına genellikle "kritik" denir. Değişiklikleri yalnızca çok net olduklarında onaylarlar (örneğin, "Bana iyi görünüyor" şeklinde). Takip etmeleri gerektiğinde, kod inceleme araçlarını açık bir şekilde kullanacaklar veya ekibin alışkanlıklarına uygun olarak iletişim kuracaklar.

Daha iyi kod gözden geçirenleri, belirli soruları yanıtlama veya önemli sorunları çözme ihtiyacı ile karşılaşana kadar kod değişikliklerini onaylamaz. Bu tür bir gözden geçirme prensip olarak katıdır, ancak pratikte esnektir: bazen kodu yazan kişi, sonraki kod değişikliklerinde inceleme ve suçlamayı ayrı ayrı çözecektir. Bazı değişiklikler acildir, bu nedenle gözden geçirenler mümkün olan en kısa sürede incelemeye zorlayacaktır.

Kod incelemesinden birbirinizle konuşmaya

İyi kod gözden geçirenler mümkün olduğunca yorum ve soru bırakacaktır. Değişiklikten sonra hala sorun varsa, bunları da kaydedecekler. İleri geri çok fazla yorum varsa, gözden geçirenler zaman alan araçları terk edecek ve yüz yüze konuşmayı seçecektir.

Daha iyi kod gözden geçirenler, ilk incelemeyi tamamladıklarında, ancak çok sayıda yorum ve soru olduğunda kodu yazan kişiyle iletişim kurmak için inisiyatif alacaktır. Yorumlarda ileri geri gitmek yerine, yüz yüze konuşmanın daha iyi olduğunu biliyorlar, çünkü bu yol çok zaman kazandırabilir, aynı zamanda birçok yanlış anlama ve beladan da kurtarabilir. Kodla ilgili birçok yorum, incelemenin her iki tarafında da sıklıkla yanlış anlamalar olduğunu göstermektedir. Birbirleriyle konuşurken yanlış anlamaları gidermek daha kolaydır.

Nitpicking

Daha önce de belirtildiği gibi, iyi bir kod gözden geçiricisi, hangi yorumların önemli olmadığını veya biraz kritik olmadığını açıkça belirtecektir. Bu alandaki gözden geçirme konuları, değişken bildirimlerinin alfabetik sırasını, belirli bir yapıyı izleyen test yapısını veya aynı veya sonraki satırdaki parantezleri içerir.

Genel olarak, iyi kod gözden geçirenler çok seçici değildir. Yumurtanın içindeki kemikleri seçmek, insanların hevesini kıracak ve aynı zamanda insanların önemli konulara dikkatlerini kaybetmelerine neden olacaktır.

Daha iyi kod eleştirmenleri, çok fazla titizliğin araçların veya standartların eksikliği anlamına geldiğini anlar. Bu sorunlarla sık sık karşılaşan gözden geçirenler, sorunu kod inceleme sürecinin dışında çözmeyi düşüneceklerdir. Örneğin, en yaygın hatalar otomatik iplikle çözülebilir. Araçlarla çözülemiyorsa ekip, sorunu çözmek için müzakere etmeli ve belirli standartları benimsemeli ve ardından sorunu takip etmeye devam etmeli, hatta otomatikleştirmelidir.

Kod incelemesine katılan yeni kişiler

İyi kod gözden geçirenler, pozisyonları, seviyeleri ve şirkete katılma sürelerine bakılmaksızın herkese eşit davranacak ve aynı kalite standartlarını ve yöntemlerini kullanacaktır. . Yukarıdakilere dayanarak, kod gözden geçirenler genellikle çok naziktirler, yalnızca gerektiğinde değişiklik talep ederler ve çok sayıda yorum aldıklarında onlarla konuşurlar.

Daha iyi kod gözden geçirenler, yeni başlayanlar üzerinde iyi bir izlenim bırakmaya daha fazla önem verir. Gözden geçiren kişi, yeni gelen kişinin tüm programlama yönergelerini anlamayabileceğini ve kodun bazı bölümlerine aşina olmayabileceğini anlar. Bu nedenle, alternatifleri açıklamak için daha fazla çaba gösterecek veya programlama kılavuzunu okumalarını önereceklerdir. Aynı zamanda çok olumlu bir üslup kullanıyorlar ve kodu yazan kişilerin yeni gönderdiği kod değişikliklerini teşvik ediyorlar.

Ofisler arası ve saatler arası inceleme

Kodu yazan kişi ile gözden geçiren aynı yerde değilse, kod incelemesi daha zor hale gelir. Gözden geçirenler farklı saat dilimlerinde bulunduklarında, bu zorluk daha da yükselir. Yıllar boyunca, ister Amerika, ister Asya veya Avrupa ekipleri tarafından gönderilmiş olsun, tüm kodları adil bir şekilde gözden geçirmeye çalıştım.

İyi bir kod gözden geçiricisi, saat dilimi farklılıklarını olabildiğince dikkate alacaktır. Gözden geçirenler, her iki tarafın da çalışma saatleri içinde kodu incelemek için çok çalışacaklardır. Çok fazla yorumla karşılaşırsanız, doğrudan sohbet etmeyi veya bir video görüşmesi yapmayı seçersiniz.

Daha iyi kod gözden geçirenler defalarca saat dilimi sorunlarıyla karşılaştıklarında, kod inceleme çerçevesi dışında sistem çözümleri bulmaya çalışırlar. Bir Avrupa ekibinin belirli bir hizmeti sık sık değiştirdiğini ve kod incelemesinin ABD'de bu hizmetten sorumlu kişi tarafından yapıldığını varsayalım. Sistem düzeyinde soru şu: Bu kadar sık değişikliklerin nedenleri nelerdir? Zamanla değişim sıklığı aynı mı kalıyor yoksa azalıyor mu? Kod değişikliklerinin doğru kod tabanında yapıldığını ve frekansın azalmadığını varsayarsak, bu departmanlar arası bağımlılık kırılmalı mı? Bu sorunları çözmek genellikle basit değildir ve yeniden düzenleme veya yeni hizmetler / arayüzler oluşturmayı veya araçları iyileştirmeyi içerebilir. Bu bağımlılığın ortadan kaldırılması, her iki ekibi de işi teşvik etmek için daha kolay ve daha etkili hale getirecektir.

Organizasyon desteği

Şirketin ve mühendislik organizasyonunun kod incelemesini nasıl gördüğü, kod incelemesini etkileyen önemli bir faktördür. Kuruluş, kod incelemelerinin alakasız veya önemsiz olduğunu düşünürse, bu alana çok fazla yatırım yapmayacaktır. Böyle bir kültürde, bazı durumlarda geliştiricilerin kod incelemelerinden vazgeçmeleri gerekecektir. Daha iyi kod incelemelerini savunan mühendisler kendilerini izole hissedebilir ve yukarıda belirtilen desteği alamayabilir ve sonunda pes edebilir. Kuruluşlar kod incelemesinin projenin önemli bir parçası olduğuna inanırsa, mühendisler için daha iyi bir çalışma ortamı sağlayacaktır.

İyi kod incelemelerine sahip kuruluşlar, bir proje üzerinde bireysel olarak çalışanlar da dahil olmak üzere tüm mühendislerin kod inceleme sürecine katılmasını sağlayacaktır. Daha yüksek kalite standartlarını teşvik ederler. Bu ekipler, ekip ve organizasyon düzeyinde kod incelemelerini aktif olarak tartışacak. Genellikle bu şirketler, mühendisler tarafından başlatılan ve yazılan büyük kod tabanları için kod inceleme yönergelerine sahiptir. Böyle bir organizasyonda, kod incelemesini anlamak mühendislerin çok zamanını alır. Bu şirketlerin çoğu, geliştiricileri işe alırken kod incelemesini önemli bir çalışma yeteneği olarak görüyor ve kıdemli mühendislerin diğer kişilerin kodunu gözden geçirmek için daha fazla zaman harcamasını umuyor.

Daha iyi kod incelemelerine sahip kuruluşlar, katı ve hızlı kurallar koyacaktır: Kod incelemelerinden geçmemiş kod, otomatik olarak test edilmeyen iş mantığı değişikliklerinin üretim ortamına girememesi gibi, üretime alınamaz. Bu kuruluşlar, bu tür maliyetleri düşürmenin buna değmediğini anlıyorlar, aksine, acil durumlarda inceleme ekibini hızlandırmak ve kod incelemelerini organize etmek için bir süreçleri var. Bu kuruluşlar, daha etkili kod incelemeleri ve araç iyileştirmeleri dahil olmak üzere geliştirici verimliliğini artırmaya yatırım yapacak. Bu şirketlerin yöneticileri genellikle yazılım mühendisleridir ve onları kod incelemelerinin ve diğer en iyi mühendislik uygulamalarının yararları konusunda ikna etmenize gerek yoktur. Bunun yerine, ekibi daha iyi araçlar veya daha etkili bir kod inceleme süreci kullanmaları için desteklerler.

Kod yazarları kötü niyetli yorumlar hissettiklerinde açıkça konuşabilir ve sorunu tam olarak destekleyebilirler. Üst düzey mühendisler ve yöneticiler, standart altı kod incelemelerinin, kalitesiz kod veya sağlam olmayan işlevler kadar ciddi olduğuna inanırlar. Hem mühendisler hem de mühendislik yöneticileri, kod incelemelerinin yürütülme şeklini iyileştirmekten sorumlu hissederler.

Orijinal: https://blog.pragmaticengineer.com/good-code-reviews-better-code-reviews/

Yazar: Gergely Orosz, yazılım mühendisleri, çoğunlukla mobil, Web ve arka plan geliştirme ile uğraşıyor.

Bu makale bir CSDN çevirisidir, lütfen yeniden basımın kaynağını belirtin.

"TFBOYS" "Paylaş" 190621 Wang Yuan'ın çorap koleksiyonu, hak ettiğiniz beyaz ve ince uzun bacaklar
önceki
Chrome'un bir sonraki IE olmasına izin vermeyin
Sonraki
Basketbol Akşam Haberleri: Paul Westbrook kulüpleri takas ediyor, erkek basketbol takımı yarın sabah Suns ile karşılaşacak
190621 Wang Yuan Orta Çorap Koleksiyonu Beyaz ve ince uzun bacaklara sahip olmayı hak ediyorsunuz
Teknik görüşmelerde zeka soruları hakkında konuşmayın
120 inçlik 8K TV göz alıcı! Sharp, 2019 Uluslararası Ekran Endüstrisi Fuarı'nda yer aldı
İnternet "somurtkanlığa" veda ediyor
19062129 yaşındaki reşit olmayan Fawnın önlük dönemini kaçıramazsınız
190621 Küçük oda yeniden açıldı! Chen Linong gelişigüzel bir fotoğraf çekti
Tüm iPhone'lar ve ileri teknoloji Android cihazlar kırıldı
Facebook dijital para birimi: kökeni, anlamı ve sonuçları
7 milyar insanı birbirine bağlayan 5G çağında güvenlik nasıl sağlanır?
Yetkili: Premier Lig yıldızı Crouch emekli oldu, "yüksek adam" 20 yıllık kariyerini bitirdi
Doktor "deprem dalgası" nı geride bıraktı: Yibin depreminin 10 saniye önceden erken uyarısı
To Top