Bir geliştirici detayları ezberlemeye zorlanmalı mı? [kapalı]


33

Çoğu zaman başvurumla ilgili şeyleri unutuyorum. Tablo adlarını ya da bir sorgunun ne yaptığını ezberlemiyorum ve istediğimi elde etmek için arama yapıyorum. Takım liderim, kullandığım tablo adlarını ezberlemem gerektiğini söyledi.

Geliştiricinin veritabanındaki tablo adlarını, sınıf adlarını vb. Ezberlemesi gerekiyor mu? Cevap “Evet, her zaman” ise, bunları hatırlamak için ne yapmalıyım?


27
Keşke onları unutabilseydim.
JeffO

6
Ona sol eliyle yazması gerektiğini söyleyin (bu bazıları için oldukça kolay, diğerleri için oldukça zor).
İş

4
“Tablo adlarını ezberlemek zorunda” ??? O NE LAN!? “Herkes bu on bin sütun adını haftanın sonuna kadar öğrenmeli! Sonra bir test olacak; % 100 alamayan herkes ilk önce özel kuduz aslanları gururu için zorla beslenecek !!! Bwahahahahaa !!!!! ”
Donal Dostları,

4
Kooperatif öğrenciyken, benden tam olarak bunu talep eden bir adamla çalıştım, işleri ararken "zaman harcadığımı" söyledi, "Bunu çalıştığını söylemiştin!" Dedi. tablo isimlerini (ve içeriklerini) hafızadan okuyamadığımda ve tablo isimlerini ezberlemekten vazgeçme konusundaki taahhüdümün kullanılmamasını tamamen kullanmamıştım. İşbirliği raporumda onu savundum.
user16764

2
Ezberleme, ezberleme.
tylermac

Yanıtlar:


63

Bu şeyleri açıkça ezberlemenize gerek yok . Bununla oturup, heceleme testi için bir kelime listesi yapmış gibi öğrenirim. İlk örnekte, isimler unutulmaz ve keşfedilebilir olmalıdır, bu nedenle çok fazla çaba harcamadan onları tekrar bulabilirsiniz.

Ayrıca, otomatik tamamlama ve benzeri işlemlerde size yardımcı olacak araçlara da erişebilmelisiniz.

100'den fazla tablodan oluşan geniş bir sistemde, her tablo adını ve her sütun adını hatırlamanız gerçekten beklenemez, ancak akılda kalıcı, keşfedilebilir isimler ve düzenli kullanımla, kendinizi en önemli ayrıntıları ve her birini kullandığınızı hatırlayarak bulmalısınız. gün.


6
4k tabloları olan bir uygulamada çalıştıktan sonra, bu tavsiyenin faydasını doğrulayabilirim. Ezberleme yardımcı olmaz, proje sözleşmeleri (özellikle uygulandıklarında; eğer değilse, hafızanıza güvenmek zorundasınız).
Vineet Reynolds

1
Keşfedilebilirliğe yardımcı olmak için ihtiyacınız olan şeylerin kopyalarını ve / veya (model) diyagramlarını oluşturun. Bu şekilde, kağıdınıza veya dokümanınıza / resminize bakmanız ve ihtiyacınız olan tablo ve sütun adlarını tarayabilirsiniz.
Kissaki

34

Einstein "Kitaplarda neler arayabileceğinizi asla ezberlemeyin" dedi ve ben de tamamen aynı fikirdeyim.

Hafızanızı, ihtiyaç duyduğunuzda bulabileceğiniz gerçekler için değil, soyut şeyler (geliştirme teknikleri ve ilkeleri) için kullanın.


evet ... ezberlemeyin, bilgileri kullandıkça gelir. Yine de her zaman bu kullanışlı için referans belgeleri var.
Newtopian

17

Kabul etmekte utanç verici - C'yi neredeyse 30 yıldır kullanıyorum, ancak fonksiyon göstergelerini nasıl açıklayacağımı asla hatırlayamıyorum - her zaman K & R'yi sözdizimini kontrol etmek için çıkarmak zorunda kalıyorum.

Daha utanç verici olsa da, typedef'in nasıl çalıştığı hakkında gerçekten çok düşünmek zorundayım.

 typedef foo int;

veya

 typedef int foo;

Bunlar benim kişisel kör noktalarım. Benzer olanlar varsa endişelenmezdim.


2
+1: 1985 yılında C programlamaya başladım ve yine de fonksiyon göstergelerini nasıl ilan edeceğime bakmam gerekiyor. Geçen gün birisini bıçakladım ve işe yaradı ve kendimden oldukça memnun kaldım. (Typedefs nasıl yapılır hatırlıyorum ... :-)
Bob Murphy

2
Çalıştığım dilde (C #) fonksiyon işaretçilerinin eşdeğerinin sadece derleyici tarafından değil, insanlar tarafından da ayrıştırılabilir olmasına sevindim.
svick

@svick Oh, fonksiyon göstergelerini okumakta hiç sorun yaşamadım, sorun yaşadığım onları nasıl yazacağımı hatırlıyor.
Neil Butterworth

3
Kasten C veya C ++ öncelik tablolarını ezberlemedim. Onlara ihtiyaç duyduğumda anında başvuru için kullanışlı oldum ve gerçekten ezberlememiş başkalarının kafasını karıştıracak bir kod yazmak istemiyorum.
David Thornley

Açık olmayan öncelik kurallarına bağlı olan kod hatalı koddur.
Robot'a Gort,

9

Bilgisayarlar şeyleri tam olarak hatırlamakta iyidir. Bilgisayarlar, daha önce hatırladıkları şeyleri bulmakta da iyidirler.

Bu yüzden temel beceri, bilgisayarı hafızanıza bir eklenti olarak kullanmaktır. Temiz kod yazın, dokümanları yazın, arama araçlarını etkili bir şekilde kullanmayı öğrenin, geliştirme ortamınızı ayarlayın, böylece bir şeyler bulmak kolaylaşır.

Güzel bir yan etkisi de başkalarının kodunuzu okumasını kolaylaştıracak olmanızdır.


5

Hafıza önemli

Güçlü bir bellek aslında bir geliştiricinin sahip olabileceği en üst düzey yeteneklerden biridir; Aslında herkesin sahip olabileceği. Bu gerçekten özel bir şey ve onunla kutsanmış olanları kıskanıyorum ve hayranım. Bu kesinlikle bir kişinin daha güçlü bir geliştirici, avukat, tamirci veya (burada tercih edilen işi ekleyin) olmasına yardımcı olabilir.

Ne kadar gerekli olmalı?

Ancak her şeyin ezberlenmesi gerekenin adil bir gereklilik olduğuna inanmıyorum. Bir şeyleri yapmanın doğal bir parçası olarak belleğe işlemeye başlayacağınıza inanıyorum. Bu nedenle bir dil hakkında bir kitap okumak ve bunu bir üretim ortamında kullanmak aynı şey değildir. Günlük olarak bir şeyle çalışırken (bazıları bu "pratik" olarak adlandırılır) bazı şeyleri ikinci doğada yapmaya başlayacaksınız.

Diğer afişlerde olduğu gibi uygulamanın da önemli bölümlerini ezberlemenin yardımcı olacağına inanıyorum. Bununla birlikte, modern araçlarda giderek daha yaygın olan intellisense gibi özelliklerden yararlanabileceğiniz zaman hepsini ezberlemeye yatırım yapmaktan emin değilim.

Nasıl gelişebilirsiniz?

Hafıza konusunda uzman değilim, ancak bazıları beyin oyunları (bulmacalar, sudoku, bulmacalar vb.) Gibi zihinsel alıştırmalarla hafızayı gerçekten geliştirebileceğinize inanıyor. Teori, beyninizin bir kas gibidir ve farklı şekillerde kullanır ve egzersiz yaparsanız onu güçlendirirsiniz.

Beyin oyunları yapma, programlama ve etkileşimli aktiviteler gibi şeylerin zaman içinde beyni nasıl etkileyeceği üzerine yapılan çalışmaları görmek ilginç olurdu. Bu tür şeyler, yaş veya demansın yol açtığı hafıza kaybının başlangıcıyla savaşmaya yardımcı olabilir mi?


5

Benim geldiğim yerde, İngilizcede böyle bir şeye giden eski bir söz vardır: "Bir aptal ezberler, akıllı bir adam yazıyor". Temelde, hafızanın ne kadar iyi olduğuna dair hiçbir şey unutamazsın . Sen sadece bir insansın. Ve bunun bir sonucu olarak, insan hafızasına güvenmek de ... güvenilmez. Bu tablo adlarını hatırladığınızı düşünseniz bile,% 100 emin olabilir misiniz? Tablo adlarını aramak için sadece birkaç saniyeye ihtiyacınız var, ancak yazım hatası nedeniyle oluşan hataları bulmak için saatlere, hatta günlere ihtiyacınız olabilir.

Sonuç olarak, hayır, özellikle binlerce masa ve sınıfa sahip olabilecek büyük projelerde saçma bir ihtiyaçtır .


3

Üzerinde çalıştığınız bir şeyse ve uzun vadeli bir ödev ise, evet, öğrenmeye çalışmalı ve çeşitli tablo ve sütun adlarını, sınıfları, değişkenleri ve yöntemleri hatırlayabilmelisiniz. Bu onlarla çalışırken zaman geçecek bir şey. Bir gecede hepsini öğrenmeyeceksiniz, ancak üzerinde çalıştığınız sistem hakkında olabildiğince çok şey bilmeye çalışmalısınız. Ayrıca, büyük bir sistemde, her şeyi ezberleyebilmenizin hiçbir yolu yoktur, ancak öğrenebildiğiniz ve hatırlayabildiğiniz kadar bir şey yoktur.

Her zaman her şeye bakmak zorunda olmak sadece üretkenlik için çok önemlidir - eğer bir görev üzerinde çalışıyorsanız ve birkaç dakikada bir durup bakmanız gerekiyorsa, bu bir konsantrasyon kırılmasıdır. Size yardımcı olmak için uygun araçları kullanın ve yapabileceklerinizi öğrenin / ezberleyin. Verimliliğinizi büyük ölçüde geliştirir.


1
Ayrıntıları hatırlama konusunda kesinlikle katılmıyorum. Kavramları ve işlevleri hatırlamanız gerekir. Yani, sisteminizin neler yapabileceğini ve tam yöntem / değişken / sütun adının ne olduğunu nasıl bulacağınızı öğrenin.
edA-qa mort-ora-y

1
Sizden her şeyi bilmenizi beklemem ama belli bir alt sistem üzerinde çalışan herhangi birinin bu alt sistemi içten dışa bileceğini umuyorum. Bu bilginin işini önemsemediğini düşünürdüm.
Thomas Owens

3

Sınıf adlarını tam olarak ezberlemenin bir anlamı var mı? Sanmıyorum

Projenizin sınıf isimlerinde ne tür terimler kullandığını bilmenin bir anlamı var mı, böylece daha hızlı arayabilirsiniz. Kesinlikle.


2

Tablo adlarını ezberlemeniz gerektiği konusunda hemfikir değilim, ancak tahmin edilmesi kolay olmalıdır. Tahmin etmeyi kolaylaştırmak için tutarlı olun. Bu şekilde kendi kendinize "Hmm .. foo masası çoğul mu tekil mi? Birincil anahtar kimliği mi, RID mi yoksa FooRID mi?"


2

Büyük tablo adlarını ve kritik sütun adlarını (ancak kesinlikle her şeyi değil) tanımadan herhangi bir zamanda bir veritabanını nasıl sorgulayabileceğinizi bilmiyorum. Bu şeyleri bilen insanları, her seferinde organizasyon için daha değerli hale gelip, başkaları sıkışıp kaldıklarında “işe gitmek” haline gelmek zorunda kalmadan anlayanları biliyorum.

Çoğu zaman insanlar bu şeyleri öğrenmeye başlamadığında, sorgularda hatalar farketmeden hatalar yaparlar. Hatalar çoğu zaman kod incelemelerinde anında görüyorum, çünkü veritabanı yapımızı ve tabloların birbirleriyle nasıl ilişkili olduğunu ve kritik iş kurallarının bunlara bakmak zorunda kalmadan neler olduğunu anlıyorum.

Şahsen yapıyı öğrenmeye zahmet etmeyenlerin, belirli bir veri tabanını sorgulamada genellikle başlangıç ​​seviyesinde kaldıklarını buluyorum. Ayrıca işten çıkarmalar konusunda hayatta kalma eğiliminde değiller. Sanırım patronunuz size daha fazla dikkat etmeniz için bir iyilik yapmaya çalışıyor.


1

Güçlü bellekten daha fazlası, çok yardımcı olan, etki alanı tabanlı tasarım ve tablo adları ve sınıf adları gibi kolay kuralları izleyerek aynıdır. İşletmenizin sahibi size gereksinim hakkında konuşuyorsa, kullandığı alana özgü terimler kodda bulunmalıdır. Bu durumda, koddaki iş terimleriyle adlar arasındaki eşlemeleri hatırlamak zorunda değiliz. Bu alışkanlığın yakalanması biraz zaman alır, ancak işletme sahipleriyle geliştiriciler arasındaki çeviri hatalarını azaltıp düşürdüğü için çok yararlıdır.

Bununla birlikte, eğer proje süresi çok uzunsa, bir süre boyunca kod bazında rahat olmak bilinçaltında hafızaya yardımcı olacaktır.


afedersiniz, anlamını açıklayabilir domain driven designmisiniz?
Anyname Donotcare

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.