Bir süre önce, SO hakkında C ++ ile yazılmış bir şey hakkında bir soru sordum, ancak eldeki soruna bir cevap almak yerine, kodlama tarzım hakkında bir WIP kod parçası olduğunu belirttiğimde bile tüm yorumlar çıldırdı. ve temel davayı çalıştırdığımda daha sonra temizlemek istediğimi söyledim. (Çok fazla aşağı oy aldım, çünkü SO hakkındaki sorumum neredeyse berbat olduğu için soruyu sormaya karar verdim)
İnsanların neden bu kadar sert bir çizgiyi benimsediğini merak ettim, "sen bir asersin, git kendini becer" tutumunu. C ++ yazıyormuş gibi Java ile suçlanıyordum. Anlayamadığım ve hala beni şaşırtan bir şey.
Aralıklar da olsa birkaç yıldır pek çok OOP dilinde programlama yapıyorum. Kullanılabilir kütüphaneleri ve eldeki iş için optimum uygulama ortamları açısından kullanılacak dili seçiyorum. OOP kodunda tasarım kalıpları benimsemekte ve kalıp kullanımımın sağlam olduğundan ve OO'nun akıllıca olacağına eminim. OOP araç kutusunu anlıyorum, ancak sadece gerçekten gerekli olduğunu düşündüğümde araçları kullanmayı seçiyorum, kodlama düşüncelerimi göstermek için sadece düzgün bir numara kullanmak için değil. (Bildiğim kadarıyla üst çentik değil, ama sanırım n00b düzeyinde değil).
Tek bir satır yazmadan önce kodumu tasarlarım. Testleri tanımlamak için, belirli bir sınıfın hedeflerini ve uyması gereken test kriterlerini listelerim. Dizi diyagramları oluşturmak ve kod yazmak benim için daha kolay olduğu için, arayüz belirginleştikten sonra testleri yazmayı seçtim.
Soruya gönderdiğim kod parçasında, akıllı işaretçiler kullanmak yerine hala işaretçiler kullandığımı itiraf etmeliyim. Ne zaman istersem RAII kullanıyorum. Uygun RAII'nin boş nokta işaretçilerine karşı korunmak anlamına geldiğini biliyorum, ancak adım adım çalışıyorum. Devam eden bir işti ve daha sonra temizlemek istedim. Bu çalışma şekli şiddetle kınandı.
Benim görüşüme göre, öncelikle çalışan bir örneğe sahip olmalıyım, böylece temel durumun uygulanabilir bir düşünce tarzı olup olmadığını görebiliyorum. Ayrıca, temel temizliği kanıtlandıktan sonra, kodu temizlemenin çevikliğin yeniden düzenlenme evresinde tipik olan bir şey olduğunu düşünüyorum. Yavaş yavaş Cxx standardını elde etsem de, üretim kodunda ustalaşmak için sahip olduğum kavramları kullanma riskini almak yerine anladığımı kullanmayı tercih ediyorum. Arada bir yeni şeyler deniyorum, ancak genellikle yanımda olan oyun projelerinde, sadece bu amaç için.
[değiştir] Gnat'ın önerisinin [1] soruyu sormaya başlamadan önce yaptığım araştırmada görünmediğini açıklığa kavuşturmak istiyorum. Bununla birlikte önerisi sorunun bir yönünü kapsamasına rağmen, bağlantı kurduğu soru sorumun kalbini yanıtlamıyor, sadece bir kısmı. Benim sorum, kodlama stilime verdiğim yanıt ve farklı kodlama stilleri ve (belirgin) beceri seviyelerini kullanma konusundaki profesyonel yönler. SO ile ilgili önceki soruma ve bu duruma bir cevap olarak yanıt veriyor. [/Düzenle]
O zaman soru şudur: Neden kodlama stilinizi kullanmayan birini beceriyor?
Benim için eldeki konular / alt bölümler:
- Yeniden yapılandırma daha sonra daha sağlam hale getirirse, prototip durumlarda daha fazla hataya açık kod kullanmak neden kötü bir programlama uygulaması olsun?
- C ++ ile yazılmış program Java ile yazılmış gibi nasıl olabilir? Bunu kötü bir program yapan nedir (şu anki tarzın amacını ve iyileştirilmesi planlanan çalışmayı belirttiğimi düşünürsek)?
- Belirli bir programlama paradigmasında (örneğin OOP / DP) kullanılan bir yapı kullanmayı seçersem nasıl kötü bir profesyonel olurum?
int
gerçek uzunluğu takip etmek için ayrı değişkenler.