Görevi tamamladıktan sonra da kodu unuttunuz mu? [kapalı]


13

Ben yeni bir programcıyım ve kıdemli programcılara (gerçek dünyada deneyimi olan programcılar) sormak istiyorum.

İşimi yapıyorum ve kodlamadan sonra projem tamamlanıyor ama dürüstçe söylemek gerekirse, kodu, sınıfları ve çerçevelerin adını ve özelliklerini hatırlamıyorum.

Bazen bunu yaptığımdan kendimden şüphe duyuyorum?

Bu tüm programcılar için normal mi yoksa ben kodu ve sınıfları / özellik adlarını hatırlayamayan en sinsi programcı mıyım?

Düzenle:

Bence birçok programcı beni yanlış anlıyor. Çerçeve adlarını, sınıfların adlarını, özellik adlarını unuttuğumu söyledim ama üzerinde çalışmaya başladığımda kendi kodumu hatırlamaya başladım. Sorum şu: sözdizimi ve sınıflar / özellik vb. Adları hatırlıyor musunuz?

Yanıtlar:


24

Dürüst olmak gerekirse, üzerinde çalıştığınız kodu "unutma" yeteneği olmadan nasıl uzun vadeli bir geliştirici olabileceğini bilmiyorum. Proje miktarı ve sonuçta ortaya çıkan kod eninde sonunda aşırı bilgi yüklemesine yol açacaktır.

Ancak bu durumu temiz, mantıklı tasarım için destekleyici bir argüman olarak görüyorum. Kendi kodunuzu desteklemeniz gereken bir zaman gelecek. Güçlü ve mantıklı kodlama kuralları seçtiyseniz, alışma süreniz önemli ölçüde azalacaktır. Buna ek olarak, bu teorik olarak gerçek bakımı gerçekleştirmek için gereken süreyi azaltacaktır.


Bir kod parçası üzerinde çalışırken ne düşündüklerini hatırlayabilen iki fotoğrafik hafızaya sahip kodlayıcılarla tanıştım. Ezberleme yeteneklerimin ortalamanın altında olmasıyla, kesinlikle kodu temiz ve belgelenmiş yapmak için yapabileceğim en iyi işi yapmak zorundayım.
Meslek

Ben haklı olduğunu düşünüyorum, çünkü ben 3-4 farklı platformlarda programlayabilirsiniz kod "unutma"!
necixy

9

Bir proje için tüm sözdiziminizi ve API'lerinizi hatırlamak, projeyi oluşturmaya giden kavramları hatırlamak kadar önemli değildir. Bir kez deneyim kazandıktan sonra kodu okuyabilir ve bu yazıları okumak gibi anlamını anlayabilirsiniz.

Eğer aktif olarak gelişiyorsanız, zaman içinde bulacağınız şey, geçmişte yazdığınız şeylerin kusurlarını sadece eski kodu (bunu yapmanızı öneririm) okuyarak görmenizdir. Bu uygulama sayesinde daha kolay hale gelir; tıpkı diğer yetenekler gibi.

Muhtemelen şimdiye kadar kariyerimde bir milyondan fazla kod yazdım ve hepsini hatırlamamın bir yolu yok. Gerçi projeleri ve neyi çözmeye çalıştıklarını (ve bunları çözmeye yönelik teknikleri) hatırlıyorum.


5

Bunları kullanmayı bitirdikten sonra birçok şeyi unutuyorum ama farklı şekilde unutuyorum.

Yıllar boyunca kendimi izledim ve beynimizin (tamam, beynim) belirli bir önbellekleme stratejisi kullandığı sonucuna vardım:

  • Yeni bilgiler öğrenilir, kullanılır ve bir süre dolum kuyruğuna konur. Birkaç hafta içinde gitti.

  • Birkaç ay öncesine kadar öğrenilen bu bilgi parçalarına tekrar tekrar erişim, onları bir şekilde teşvik eder, böylece aylarca hatırlanabilirler, ancak süresi dolar.

  • Birkaç yıl boyunca bilgi boşluklarına tekrar tekrar erişim, birkaç ay kullanım boşlukları ile onları yıllarca sakladıkları bazı öncelikli hafızaya teşvik eder.

PS: Bilgisayarlara uygulama ile ilk önbellek fikrinin, insanların bir şeyleri nasıl öğrendiğini ve hatırladığını gözlemleyen birinden geldiğinden şüpheleniyorum. Bu yüzden hiçbir şey icat etmedik, zaten içine inşa edilmiş olanı aldık.


2

Sıklıkla. Yorumlar passe oldu ', ancak kodumu genellikle yorumlarımla tanıyabildiğimi fark ettim.

DÜZENLEME: Ben demiyorum katılıyorum trend ile. Ben sadece bugün trend olduğunu söylüyorum. Dave'in işaret ettiği gibi, kesinlikle bir kırılma noktası var. Burada mükemmel bir tartışma var: "Yorumlar bir kod kokusudur" . "Yorumlar kod tabanı (gereksinimler, iş değişiklikleri, vb) DIŞINDA dünya hakkında bilgi sağlamak içindir" kampına düşmek.


Yorumlar passé? Doğru değil.
Steve

1
Kabul ediyorum; Sadece yorumların gerekmediğini hissetme eğilimi olduğunu söylüyorum. Yöntemin adının ihtiyacınız olan tüm yorum olması gerektiğinde ısrar eden insanlarla röportaj yaptım. Açıkçası, iş gereksinimlerinin altı ayda bir değişmediği efsanevi bir yerde çalışıyorlar.
Michael Blackburn

2
PullContractDataFromProfileAndDetermineZipRadiusFromCurrentLocation () açıklayıcı olsa da, aynı zamanda akışı yok ederken okunamaz kod için yapar.
Dave Wise

1
Kabul edildi x100. Ne düşündüğümü dikkatle kaydetmediysem ve neden dikkatle yazılan yorumlarla verdiğim kararları verirsem, aylar önce yazdığım kodu okumak için döndüğümde neler olup bittiğine dair hiçbir fikrim yoktu . Bu argümanı daha önce yorumların gürültü veya passe veya eski olduğunu söyleyen mimari astronotlara yapmaya çalıştım, ama hiç kimse dinlemedi. Herkes kötü bir geliştirici olduğumu varsayıyor çünkü kaynak koduma yorum yazmak zorundayım. Buna rağmen iyiyim. Bana ve benden sonraki herkese yardımcı olur.
Cody Gray

@Dave: Size katılıyorum, ancak iki sorumluluğu olan bir yönteminiz var. Kefaretiniz 4 Hail Martins ve 2 GangOfFours.
Michael Blackburn

1

Sözdizimi Genellikle birkaç kullanımdan sonra hatırlıyorum. Örneğin, jenerik veya linq kullanmaya ilk başladığımda, sözdizimini doğru yapmakta biraz zorlandım.

IntelliSense, mülk ve yöntem adlarını hatırlamakta işimi kesinlikle çok daha kolaylaştırıyor.


1

Test kullanıcısı olduğumda, şirketin lider geliştiricisi bana bir zamanlar 6 ay önce kodun yazıldığını söylemişti, hiçbir halkım bundan sorumlu tutulamaz. O zaman beni şok etti. Şimdi anladığım bir geliştirici olmaya geçtim. Üzerinde çalıştığımı bildiğim kodun ayrıntılarını hatırlamıyorum ama detaylar orada değil.


0

Neredeyse her zaman. En son (çok küçük) projem kendi (paslanma) becerilerimin bir testiydi. Kendimi çok basit bir C tarzında prosedürel kod bir sürü yazmak vardı, sonra bazı tasarım desenleri kullanarak ve her yöntemi sekiz satırdan fazla değil, eğer tutarak Java kodu içine refactor.

Kodu yaklaşık bir aylığına yazdım. Geri döndüğümde, yazdığımı fark etmeden önce bir saat gibi görünüyordu. Açıkçası, ismimi bir yorum alanına koysam bile, beni ikna edeceğinden emin değilim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.