Gerçekten büyük projeler yazmıyorum. Büyük bir veri tabanı tutmuyorum ya da milyonlarca satır kodla uğraşıyorum.
Kodum öncelikle "betikleme" türünde şeyler - matematiksel fonksiyonları test etmek veya bir şeyi simüle etmek için şeyler - "bilimsel programlama" dır. Bu noktaya kadar çalıştığım en uzun programlar birkaç yüz satırlık bir kod ve üzerinde çalıştığım programların çoğu 150 civarında.
Benim kodum da saçmalık. Geçen gün bunu, bir süre önce yazdığım bir dosyayı bulmaya çalışırken fark ettim, ancak muhtemelen üzerine yazdım ve muhtemelen aptallığımla uğraşırken sık sık acı çekmenize neden olan sürüm kontrolü kullanmıyordum.
Kodumun tarzı kıvrımlıdır ve bir şeyi yapmanın alternatif yollarını veya üzerine kopyalanan kod satırlarını belirten eski yorumlarla doludur. Değişken isimleri her zaman çok güzel ve açıklayıcı olsa da, örneğin bir şeyi eklemek veya değiştirmek gibi, birinin test etmek istediği yeni bir şey var, kod üste ve üstüne yazılıyor ve bu şeyin şimdi hızlı bir şekilde test edilmesi gerektiğini düşündüğüm için crappy değişken isimleri kullanmaya başladım ve dosya potu kullanmaya başladı.
Şu an üzerinde çalıştığım projede, beni büyük bir şekilde ısırmak için tüm bunların geri döneceği aşamadayım. Ancak sorun şu ki (sürüm kontrolünü kullanmak ve her yeni yineleme için yeni bir dosya oluşturmak ve hepsini bir yerde bir metin dosyasına kaydetmek, muhtemelen durumu dramatik bir şekilde yardımcı olacak) geliştirmeye devam etmeyi gerçekten bilmiyorum. benim gerçek kodlama tarzım.
Daha küçük kod parçaları yazmak için birim testi gerekli midir? Peki ya OOP? Daha büyük projeler üzerinde çalışmak yerine "bilimsel programlama" yaparken hızlı ve iyi bir kod yazmak için ne tür yaklaşımlar iyidir?
Bu soruları soruyorum çünkü sıklıkla programlamanın kendisi süper karmaşık değildir. Bu, programlama ile test ettiğim veya araştırdığım matematik veya bilim hakkında daha fazla. Örneğin, iki değişken ve bir fonksiyon muhtemelen ilgilenebileceği zaman bir sınıf gerekli midir? (Bunları da genellikle programın hızının daha hızlı olması tercih edilen durumlar olduğunu göz önünde bulundurun - bir simülasyonun 25.000.000'den fazla zaman adımını çalıştırırken, olmasını istersiniz.)
Belki de bu çok geniş ve öyleyse, özür dilerim, ancak programlama kitaplarına bakarken, genellikle daha büyük projelerde ele alındıkları görülüyor. Kodumun OOP'ye ihtiyacı yok ve zaten oldukça kısa, bu yüzden "ah, ama bunu yaparsak dosya bin satır azalacak!" Gibi değil. Nasıl daha yeni başlayacağımı ve bu daha küçük, daha hızlı projelere nasıl temiz bir şekilde programlanacağını bilmek istiyorum.
Daha ayrıntılı bilgi vermekten memnuniyet duyarım, ancak tavsiye ne kadar genelse, daha faydalı olur. Python 3'te programlama yapıyorum.
Birisi bir kopya önerdi. Açıkça söyleyeyim, standart programlama standartlarını tamamen görmezden gelmekten bahsetmiyorum. Açıkçası, bu standartların var olmasının bir nedeni var. Ancak, diğer taraftan, bazı standart şeyler yapıldığında, yazmak çok daha hızlı olacak ve kısa bir süre için benzer bir okunabilirlik seviyesi olacaktı, OOP diyen bir kod yazmak gerçekten mantıklı geliyor mu? Program?
İstisnalar var. Ayrıca, bilimsel programlama için sadece standartların ötesinde standartlar vardır. Bunları da soruyorum. Bu, bilimsel kod yazarken normal kodlama standartlarının göz ardı edilmesi gerekip gerekmediğiyle ilgilidir, temiz bilimsel kod yazmakla ilgilidir!
Güncelleme
"Bir hafta sonra değil" şeklinde bir güncelleme ekleyeceğimi düşündüm. Tavsiyelerin hepsi son derece yardımcı oldu. Şimdi sürüm kontrolü kullanıyorum - git, grafik arayüz için git kraken. Kullanımı çok kolay ve dosyalarımı büyük ölçüde temizledi - eski dosyalara ya da eski kod sürümlerine artık "tam olarak" yorum yapmadı.
Ayrıca pylint'i kurdum ve kodumun tamamına koştum. Bir dosya başlangıçta olumsuz bir puan aldı; Bunun nasıl mümkün olduğundan bile emin değilim. Ana dosyam ~ 1.83 / 10 puanla başladı ve şimdi ~ 9.1 / 10'da. Tüm kod şimdi standartlara oldukça uygun. Ben de kendi gözlerimle koştum ... uhm ... korkunç değişken isimleri güncelleme ve refactor bölümleri arıyorum.
Özellikle, bu sitede ana işlevlerimden birini yeniden düzenleme hakkında yeni bir soru sordum ve şimdi çok daha temiz ve çok daha kısa: uzun, şişirilmiş yerine, eğer / başka bir işlev doluysa, şimdi yarıdan daha az boyut ve ne olup bittiğini bulmak çok daha kolay.
Bir sonraki adımım, türlerin "birim testini" uygulamak. Ana dosyamda çalıştırabildiğim ve assert ifadeleriyle çalıştığım bir dosyayı kastediyorum, muhtemelen bunu yapmanın en iyi yolu olmayan deney / istisnalar ve yinelenen birçok kodla sonuçlanıyor. ama okumaya devam edeceğim ve nasıl daha iyi yapılacağını bulmaya çalışacağım.
Ayrıca, önceden yazmış olduğum belgeleri de önemli ölçüde güncelledim ve excel elektronik tablosu, belgeler ve ilgili bir makale gibi ek dosyaları github deposuna ekledim. Şimdi gerçek bir programlama projesi gibi görünüyor.
Yani ... Sanırım bunların hepsi şöyle: teşekkür ederim .