zaten yazılı programını yorumlama ve geliştirme süreci?

5 Cevap php

Benim intro düzgün benim soru kapsamını tanımlamak için izin verin:

Ben hala programlama dünyasında çok yeniyim. Bu, tüm bir yazılım programı için bir fikrim vardı benim için başladı, ancak hiçbir programlama deneyimi. Ben programı almak için dış kaynak rota gidiş sona erdi, ve neredeyse bir yıl sonra, biz canlı ve işleyen o var.

Bu özel program, php ile yazılmış ve% 100 web tabanlı olmasıdır. Biz vb ajax, jQuery, çok kullanıyorsanız

Şimdi bir yıl, ben öğrenme ve ben (burada öğrenme sürü!) Ben esas Objective-C ve iPhone eğlenceli kadar inşa etmek artık Java odaklanan kulüpler her yerde öğrenme edilmiştir (muhtemelen tüm% 99 gibi Orada diğer acemi programcılar).

Ben gerçekten çok şey öğreniyorum ve ben hakkında öğrenme yaşıyorum en büyük şeylerden biri doğru yorumlama ve ölçeklenebilirlik edilir.

Ben sadece bitmiş bu iş çok fena halde hem bu alanlarda eksik olduğunu şimdi görüyorum. Ben bu programı ekleyin ve üzerine inşa etmek isteyen yaşıyorum ve sadece ben çok deneyimi yok, ama bana bile bu yorumlar olmadan fonksiyonları hakkında bir fikir edinmek için bu gerçekten zor olduğunu görüyorum ...

Yani benim soru ne bu programda parçalarını almaya başlamak için eylem iyi ders nedir? Tam yeniden yazma söz konusu değildir, ve ben gerekli olduğunu sanmıyorum.

Ben bu bazı acemi programcı, yazılım geliştirici bu yol aşağı olmuştur ilk kez değil eminim ... diğerleri burada ne yapacağız?

Bir programcı birlikte çok uzak bir proje haline gelir ve sonra işler verimli ileriye taşımak yapmak için pisliği "temizlemek" için ortak mı?

Bu soru için yanlış yer ise birisi bu daha uygun olacağı için beni işaret edebilir (ve anlamak iyi olabilir)?

Thanks! Joel

5 Cevap

Biz, "refactoring" diyoruz ve programlama önemli bir parçası.

İlk olarak, otomatik testler bir kaya gibi sağlam bir set olmalıdır. Genellikle biz bir birim test çerçevesi ile çalışan birim testleri var.

http://www.testingtv.com/2009/09/24/test-driven-development-with-refactoring/

Sonra değişiklik yapmak ve hiçbir şey değişikliklerden kırılmış olduğunu onaylamak için testleri çalıştırabilirsiniz.

Bazı durumlarda, "tersine mühendislik" mevcut programlar etrafında testler var. Bu çok zor değil: "dış" ya da "önemli" veya "önemli" olan arabirimler odaklanmak zorunda.

(Bir uygulama ayrıntı çünkü.) (Bunun önemli bir dış özellik, çünkü) test edilmesi gerektiğini belirlemek için ve ne test edilmemelidir - ilk - Eğer ters-mühendislik konum bu yana, çok zor

Ben gerçekten çok şey öğreniyorum ve ben hakkında öğrenme yaşıyorum en büyük şeylerden biri doğru yorumlama ve ölçeklenebilirlik edilir.

Öncelikle, ben bu ölçüde değişir gibi "doğru yorumlama" hakkında öğrendiklerinizi merak ediyorum. Bazıları için, her sınıf ve işlevini belgeleyen oluyor. Diğerleri için ise, her kod satırı veya hiç kod belgeleyen olabilir.

Yukarıda farklı aşamalarının bazı yaşamış sonra, ben Clean Code, Eğer kodu ne kararlar değil, belge diyor, kim Amca Bob Martin ile değilim. Kod kendisi okunabilir olması ve belgelere gerek yoktur. Davranışını açıklayan yorumlar ekleyerek, sonunda senkronizasyon dışında olacak tekrarını oluşturduk. Aksine, kod kendini belgelemek gerekir. Iyi adlı fonksiyonları ve değişkenleri kullanarak diğer amaçlanan tam olarak ne anlatmak yardımcı olur. Ben çok bu kavramların tam bir tartışma için Temiz Kodunu tavsiye ederim.

Ölçeklenebilirlik gelince, genellikle ölçeklenebilirlik iyi tasarım bir işlev veya gereksinimleri için uygun bir tasarım olabilir, ama kötü tasarım ölçeklenebilirlik bir kabus yapacak içeri inşa etmek istediğiniz bir şey.

Ben sadece bitmiş bu iş çok fena halde hem bu alanlarda eksik olduğunu şimdi görüyorum. Ben bu programı ekleyin ve üzerine inşa etmek isteyen yaşıyorum ve sadece ben çok deneyimi yok, ama bana bile bu yorumlar olmadan fonksiyonları hakkında bir fikir edinmek için bu gerçekten zor olduğunu görüyorum ...

Ben iki şeyden birinin bir göstergesi olarak görüyorum:

  1. Kod iyi yazılmış değildir. Evet, son derece öznel. -VEYA-
  2. Henüz tam olarak size ihtiyacınız olan her şeyi anlamıyorum. -VEYA-
  3. İkisinden de biraz.

İyi yazma, niyet-ortaya kod zordur ve uygulama yıl sürer.

Yani benim soru ne bu programda parçalarını almaya başlamak için eylem iyi ders nedir? Tam yeniden yazma söz konusu değildir, ve ben gerekli olduğunu sanmıyorum.

Diğer posterleri de söylediğim gibi, Refactoring. Üstlenmeden işlevselliğini değiştirmeden okunabilirliği ve kullanılabilirliği arttırmak için kod değiştirme işlemidir. Üstlenmeden iyi bir kitap almak, ya da online her şeyi okumaya başlamak. Şimdi kritik bir yetenektir.

Bir programcı birlikte çok uzak bir proje haline gelir ve sonra işler verimli ileriye taşımak yapmak için pisliği "temizlemek" için ortak mı?

Ne yazık ki öyle. Bu tuzağa düşmemek için lot ve çalışkanlık alır. Her gün kod biraz daha iyi yapmaya çalışın.

Bu yanlış yerde olmanın ya da bilmem, ama ben gibi cevap veririm:

Bir programcı birlikte çok uzak bir proje haline gelir ve sonra işler verimli ileriye taşımak yapmak için pisliği "temizlemek" için ortak mı?

Evet, benim durumumda bu çok yaygındır. Ben 10 yıldır sözleşme çalışmaları yapıyor, ve ben de gelmek zorunda kalmıştım sayısını saymak ve alelacele bu ölçek yapmak ya da üzerine işlevsellik eklemek edebilmek amacıyla da bir araya şey temizleyemez. Eğer başka bir şirkete programlama outsource Bu özellikle yaygın olduğu, teşvik orada çalışma almak ve kapı dışarı mümkün olduğunca çabuk.

Yani benim soru ne bu programda parçalarını almaya başlamak için eylem iyi ders nedir? Tam yeniden yazma söz konusu değildir, ve ben gerekli olduğunu sanmıyorum.

Ben bu soruya "iyi" bir cevap olduğunu bilmiyorum, ben söyleyebilirim tek şey bir anda sadece bir yöntemi almak ve onları anlamaya olarak yaptıklarını belgelemek için olduğunu. Hala başlangıçta sistemde size belgeleri verebilir eğer onlara sorabilirsiniz programı yazdı insanlara erişimi var, ama bu özgün çalışma spec parçası olarak dahil değildi eğer şüphe varsa herhangi zorunda olacak.

Ben gerçekten çok şey öğreniyorum ve ben hakkında öğrenme yaşıyorum en büyük şeylerden biri doğru yorumlama ve ölçeklenebilirlik edilir.

Eğer kendi üzerinde bulduk, doğru yorumlama ben YAGNI prensibi giderek, başından itibaren ölçeklenebilirlik binanın önemi üzerinde ikna değilim, önemlidir. Ben herhangi bir program büyüdükçe o ölçeklenebilirlik ya da işlevsellik olsun, büyüme ağrıları ile gidecek olduğunu düşünüyorum. Birisi şu anda ihtiyacı olduğunu akılda ölçeklenebilirlik tür baştan twitter inşa olabilir mi? Muhtemelen, ancak flop olacağı çok gerçek bir olasılık mevcuttur.

Is it common for a programmer to come into a project very far along and then "clean up" the mess in order to make things move forward productively?

Bu hemen hemen her programcı için kesinlikle yaygın :)

IIABTFI prensibini hatırlıyorum, o söyledikten sonra. Bu Broke değil ise, Fix It etmeyin.

Parçaları nasıl program çalışır ve ne anlama yararlıdır.

Belirli bir hedef ve aklında bir iş amacı olmadan bunu geliştirmek için çalışıyor değildir.

Büyük soru ne kadar iyi bir program şu anda onu kullanan olanların ihtiyaçlarını karşılamaya çalışıyor nedir? Bu iyi görünümlü kod olmasa da, bu başka değişiklikler yapmak için aşağı temelleri yeterince almak için etrafında 101 üstlenmeden egzersizleri yapıyor sona anlamına gelebilir çalışır.

Eğer programın orijinal yazarları sormak mümkün olsa da bunun harika olduğunu düşünüyorum ve bunu, örneğin, bok düşünüyorsanız, bu olası bir bamteli olabilir. Bu bir fikir ve bir gider ve onlar ne yapıldı onların dahi takdir edemez düşünüyorum çünkü köprüleri yakma biter dikkatle önce biraz analiz edilmelidir biridir.

Genellikle bu optimal bir şekilde yapılmadığı ve bir şeyler yapmak için daha iyi yollar öğrenir böylece, daha iyi şeyler şekillerde yapılır. Orada tabii ki bir sınırı vardır, ama ben size kemer altında app temel almak ve daha sonra gerçekten yapıldığını görmek için geliştirmeleri ve diğer şeyler koyarak başlamak için bazı üstlenmeden dersleri fikri ile başlamak istiyorum sonu.