Tek bir geliştirici için Ekstrem Programlama [kapalı]


10

Son iki haftadır bazı temel aşırı programlama konseptleriyle, küçük ölçekli, kar amaçlı, çok oyunculu, arcade oyunlarında çalışıyorum. Bir hafta boyunca kullanıcı hikayeleri geliştirerek ve bir yayın planı oluşturmak için gereksinimleri belirledim. Ben de bir hafta geçirdim ilk yineleme planı ile başvurdu. Tek bir geliştirici için açıkça faydalı kavramlardan birkaçını belirledim.

  • Sürekli Entegrasyon
  • Asla İşlevselliği Erken Ekleme
  • Test Odaklı Geliştirme
  • Bir Sistem Metaforu Seçin
  • Tek bir Entegrasyon Noktası kullanın
  • Tüm hataları test et
  • Sürekli refaktör
  • Sürdürülebilir bir hız belirleyin
  • Basitlik
  • Sık Bültenler

Özellikle tek bir geliştirici projesiyle çalışmaya uygun olabilecek bir şey eksik olup olmadığımı merak ediyorum.

Ayrıca, bu ışıkta basitlik ve test odaklı geliştirme fikri göz önüne alındığında, yerleşik, zengin özellikli, hazır platformları kullanmak daha mı iyi?

Yoksa sürekli olarak yeniden düzenleme ve asla işlevsellik eklemek gibi kurallarla sunulan sorunlara girmekten kaçınmak için mümkün olduğunda sıfırdan mı çalışmalıyım?


5
Elsesite, c2.com'da (çevik (ve özellikle XP) kavramların tartışılması için erken oluşturulmuş bir site) - One için Extreme Programming

Bu inanılmaz bir kaynak, teşekkürler. Özellikle XP Bağlılık Sözü fikrini seviyorum.
Kody Manharth

Dikkatlice okursanız, Ron Jeffries ve Kent Beck gibi isimleri yorumlarken bulacaksınız ... ve o da Ward's Wiki .

Bu paradigmanın yaratıcıları tarafından yazılmıştır, bu harika. Henüz onunla nasıl karşılaşmadığımı bilmiyorum. Ben kullanarak olmuştu www.extremeprogramming.org
Kody Manharth

2
Sorunuzda başarılı yazılım geliştirme için zorunlu olan tek bir madde işareti yok. Asıl soru şu ki, hangilerine ihtiyacınız var?
Robert Harvey

Yanıtlar:


5

Sonuçta, Aşırı Programlama, iş değerinin artmasına yol açan bir dizi uygulama ve metodolojiyle ilgilidir. Bulduğum en iyi örnek http://c2.com/cgi/wiki?ExtremeProgrammingEnablingChart

Aşırı Programlama Etkinleştirme

Mavi renkteki her şey XP'nin çekirdeğinin bir parçasıdır .

Bunun dışında, mavi alandaki şeyleri etkinleştirmeye yardımcı olan ve bir bütün olarak XP'nin bir parçası olan, ancak kritik olmayan bir kısmı vardır. Şahsen bir XP uygulayıcısı olmadığımı ve XP'yi takiben çeşitli insanların XP olmadığını söylediği “neredeyse” insanların adil bir şekilde eleştirildiğini unutmayın. XP dogmasının bu yönünü biraz bir kenara bırakalım ve elimizde ne olduğuna bakalım.

İlk ve çoğu şeyden birinin müşteriden gelen sürece bağlılık olduğunu fark edin. XP'nin temel bir bileşeni müşteri katılımıdır. Bu, sürüm planlama, küçük sürümler, şirket dışı müşteri değerlendirmesi gibi bir dizi noktada ortaya çıkmaktadır. Bunlar, XP'de solo bir geliştirici olarak başarılı olacaksanız müşterilerinizin abone olması gereken şeylerdir. Bunun yerine bir tasarım ve daha sonra bir geliştirme dönemi ve daha sonra test ve benzeri şeyler isterse, daha ileri gitme taahhüdüne sahip olmayacaksınız.

XP planlama demek değildir. Planlamanın bunun bir parçası olduğu birkaç nokta vardır - önceliklendirme, kullanıcı hikayesi tahmini, yineleme planlaması ve görev tanımı. Bu konuda bir geliştirici olmanıza rağmen, bunlar müşterinizle birlikte teslimatta çalışmanız gereken şeylerdir.

Kodun ortak mülkiyeti ve çift programlama gibi hususlar, birden fazla şey içeren şeylerdir. Kodlama standartları gibi şeylere karar vermek çok daha kolaydır, ancak bu onları takip etmek zorunda olmadığınız anlamına gelmez. Toplu kod sahipliği hala geçerlidir - sadece sahiplik bir sonraki geliştiricidir - sadece ve sizin için olan kodları yazmayın. Bunun, 'programlama ile etkinleştirilen' kodun tüm niyetini ortaya çıkarması 'ile bir dereceye kadar çelişki içerdiğine dikkat edin - bu kişinin kodun belgelenmesi de kritik olduğundan, bakım yapılabilir kod yazdığınızı kontrol etmenize gerek yoktur.

Bu uyarılar dışında, XP tasarım ilkelerinin çoğu hala geçerlidir. Test ilk tasarımı, sürekli entegrasyon, müşteri ile toplantılar, yeniden düzenleme, YAGNI, başak çözümleri gibi şeyler - bu çağrı tek başına yapılabilir.

Solo XP'nin normal XP kadar veya daha fazla disipline sahip olduğunu fark edin. XP, insanların somutlaştırmaya çalıştığı en iyi uygulamalara sıkı sıkıya bağlı kalmasını gerektirdiği için genellikle yüksek bir disiplin metodolojisi olarak kabul edilir . Gerekli bir disiplini desteklemek için bir koçunuz veya başka bir insanınız yoksa, XP'ye biraz benzeyen uygulamalardan sadece bir tanesi olabilir.

İlgili okumalar:

C2 bağlantılarının ilkinden bir fiyat teklifi almak istiyorum:

Perl Dili armatürü ve çılgın bilim adamı Damian Conway, Extreme Programming'in aslında yanlış bir isim olduğuna inanıyor. Programcıların öğrettiği ancak neredeyse kesinlikle görmezden geldiği iyi programlama uygulamalarının çoğunu içerdiğinden, gerçekten Ultra Muhafazakar Programlama olarak adlandırılması gerektiğine inanıyor


Az söylemek aydınlatıcı. Şu anda TDD açısından, Starling kullanarak Flash'taki sorunlarla uğraşıyorum. FlexUnit kullanıyorum ve başsız olduğu gibi grafik test işlemek için yeteneği yok. Bu gibi durumlarda bu testleri sadece manuel kontrollere devretmek uygun olur mu (örn. Logo testi ekranda ortalanmış mı?) Bu entegrasyon testi olarak kabul edilir mi? (örn. Açılış ekranı modülü Flash'ın sahne modülü ile düzgün çalışıyor mu?) Gerekli durumu simüle etmek için alaycı bir çerçeve kullanmalı mıyım? Testler tamamen eterik yapılar olabilir mi?
Kody Manharth
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.