Kodda gezinme
VIM'den daha iyi bir editör edinin.
Komodo Edit kullanıyorum.
Belleğe çok daha fazla iş yapmak zorunda olduğumu hissediyorum
İyi. Düşünmek iyidir. "Öğrenmenin" eninde sonunda "hafıza" ya yol açtığını görüyorum.
Sürekli "grep" ve arayüzleri tanımlamak için kodu okuyun.
Bu tipiktir. Onları hatırlayamıyorsanız, o zaman çok karmaşıklar, değil mi? Basitleştirme zamanı.
Basit oluşturmak zordur. Ancak hatırlamakta zorlandığınızda, bu kötü tasarımın bir belirtisidir.
Grep kullanıyorum. Benim için çalışıyor. Komodo Edit'im çok güzel aramalara sahip. Notepad ++ da öyle
Kullandığım nesnelerin arayüzlerini tanımlama
Doc Dizeleri ve help()
işlevi çalışır. Onları kullanıyorum. Günlük.
Verimli bir şekilde yeniden düzenleme ... büyük ölçüde birim testlerimin kalitesine bağlı.
Bu haber değil. Statik bir dilde bile her zaman doğrudur.
Statik bir dilde, genellikle derlendiğinde - derlendiği sürece - gerçekten işe yarayacağını varsayarsak. Bu açıkça yanlış, ama tembelleşiyoruz.
Eminim bu problemler için geçici çözümler vardır.
Bunlar "sorun" değildir ve "geçici çözüm" gerektirmez.
Dinamik bir dil, işlediğiniz nesnelerin türünü tam olarak bilmemekle ilgilidir. Bir parametre aldığınızda, bunun bir "quack ()" ve "feathers ()" yöntemi tanımladığını varsayarsınız, ancak belgelerin nerede olduğunu bilmiyorsunuzdur (aslında, birden çok uygulamasında birden fazla docstring'e sahip olacaklardır).
"nesnelerin türünü bilmiyorum"? Gerçekten mi. Bir nesnenin istemcisini tasarladığımda, ne tür tasarladığımı biliyorum.
Birden fazla istemciye tarafından kullanılan bir hizmet, tanımladığınızda ben tanımlanmış gerekli arayüze sahip olduğunda, "tam" tipi, ilgili değildir quack()
ve feathers()
.
Son olarak, ince bir sorun olduğunda nadir durumlarda "kesin" türünü belirlemek için Okuma-Yürüt-Yazdır-Döngü ve diğer araçlar var. Aslında her gün bunu kullanıyorum.
>>> x = some_mystery_factory( some, args )
>>> type(x)
>>> dir(x)
Bir nesnenin türünü açmak için - en azından Python'da - çok zor görünmüyor. Dinamik dillerin bir REPL'si olmalı, neler olup bittiğini görmeyi oldukça kolaylaştırıyor.
Beklenen parametre sırasını da bilmiyorsunuz. Bir IDE'nin orada yardım etmesi zor görünüyor.
Bu pek mantıklı değil. help()
İşler.
Ve IDE'm genellikle tanımı bulabilir. Her zaman değil - bazı kıvrımlı dinamik yapılar temel sınıfı kolayca gizleyebilir. Bu durumda, aslında yöntem tanımını bulmak için nesnenin sınıfı hakkında düşünmek zorunda. Tabii ki, kodu yazıyorum, bu yüzden orada çok az (ya da hayır) gizem var.