Yalnız bir programcı için yazılım geliştirmede en iyi / iyi bilinen uygulamaların minimum alt kümesi nedir? [kapalı]


16

Uzun zamandır işimde yalnız programcıyım. Genellikle hakkında makaleler ve yazılar okudum

  • Versiyon Kontrol Sistemleri
  • Sürekli Entegrasyon / Dağıtım
  • Geliştirme metodolojileri: Scrum, Şelale, V Modeli, Çevik, XP, vb.
  • Yazılım Proje Yönetimi

Ama neredeyse hepsi TAKIMLAR'a odaklanmış gibi görünüyor. Ben bir ekip değilim, bu yüzden sadece bir programcı için minimum uygulama seti ne olurdu? Aşağıdaki koşulları göz önünde bulundurun:

  • Başkalarının insan kodu ile çatışmam yok.
  • Dosyaları / dizin ağaçlarını korumam gerekmiyor, geliştirme ortamım kendi başına sürüm oluşturmayı önemsiyor (görüntü tabanlı geliştirme).
  • Resmi bir gereklilik yok, kullanıcılarım ne istediklerini bilmiyorlar ve bu konuda sorun yok.
  • Benim olan bir sürüm veya belge sunmakla ilgilenebilecek tek kişi, temelde müşteri SONUÇLAR istiyor ve yazılım metodolojileri vb.

Benim görüşüme göre, müşteri gereksinimleriyle doğrudan ilgili olmayan hiçbir şeye (çok fazla) zaman ve enerji harcamak istemiyorum. Herhangi bir tavsiye?


Hata düzeltmeleri yapmanız gereken vahşi ortamda kaç sürümünüz var?

Yanıtlar:


17

Bu sorunun doğru bir cevabı yok çünkü her kişiye bağlı. Tüm geliştirme işlerinizi yapmak için bir iPad kullanıyorsanız ve müşterileriniz sizden memnunsa, değiştirmek için hiçbir nedeniniz yoktur.

Ancak, sizin durumunuzda olsaydım, aşağıdakileri kuvvetle uygularım:

  • Bir sürüm kontrol sistemi - Görüntüye dayalı bir geliştirme sisteminin düzenli yedekleme ve ne olursa olsun işi yaptığını düşünürken, normalde bir dalın kullanacağı deneysel özellikler için sıfır hareket odanız vardır . Ayrıca, projenin önemli bir sürümünü ( etiketleme ) korumanız da mümkün değildir . Sadece kendinizin ötesine geçerseniz, katılan geliştiriciler cehennemde olduklarını düşüneceklerdir.
  • Çevik - Bu yöntem ne istediklerini bilmeyen müşteriler için son derece geçerlidir. Er ya da geç, kuyruklarını kovalamak için para harcamak istemediklerini fark edecekler - ilerleme görmek isteyecekler .
  • Proje yönetimi aracı - Bu bir zorunluluktur. Her şeyi kafanızda tutabilmek çok zorlu, ama zorunda değilsiniz. Disiplinli olmak ve bir proje yönetim aracı (örneğin Redmine ) kullanmak, görevlerinizi ayırmanıza ve çalışmanızda kolayca göz atmanızı sağlayan bir geçmişe sahip olmanızı sağlar. Saatte şarj etmeye başladığınız zaman çok önemlidir.

Çevik ve Proje Yönetimi için +2. Bununla birlikte, deneysel özellikler için genellikle sanal bir görüntüyü keserim (dallanma ile eşdeğer olur) ve sonunda ortamımın başka bir örneğini açarım. İyi cevabınız için teşekkürler.
user869097

16

Sürüm kontrolü, yalnız bir programcı için bile mutlak bir zorunluluktur. Bu, silinen dosyalardan ve yanlış olan karmaşık değişikliklerden basit ve hızlı bir şekilde kurtarabileceğiniz anlamına gelir.

Temelde, asılan işe gittiğinizde yaptığınız aptal boktan sizi kurtarır.


1
Tek faydası bu değil. Başlıca faydalarından biri, yazılımın önceki bir sürümünü yeniden üretebilmektir. Bu, bir sorunu yeniden oluşturmaya çalışırken ve / veya bir sorunun ne zaman ortaya çıktığını belirlerken faydalıdır.
Marjan Venema

2
Artı 1 çünkü akşamdan kalma beynimi bu kadar çok kurtardı.
Nicholas Smith

1
Ayrıca, dalları. Çoğu zaman bu duruma bir kırılma değişikliği başlattım ve değiştirilen grafikler veya diğer küçük şeyler ile bir sürüm yapmak için bir çağrı aldım. Şubelerle, yapmak son derece kolaydı, sadece ana şubeme geçti ve yazılımı oluşturdu. O olmadan? Kırılma değişikliğini bitirmek için saçımı çekerdim ya da istikrarlı bir salım üretebilmek için onu geri döndürürdüm.
Tamás Szelei

1
Yararlı check-in yorumları yazdığınızı varsayarsak, "Bu önemsiz yığını yazdığımda ne düşünüyordum?"
Ned

1
@ user869097, SE sitelerinin amacının bir parçası, soruların ve cevapların orijinal sorudan daha fazlası için yararlı olmasıdır. Olağandışı gereksinimleriniz sürüm kontrolünü pratik yapamazken (ve tamamen ikna olmadığımı söylemeliyim, çünkü dallanma metodolojiniz birleşmeye izin vermiyor gibi görünüyor), sürüm kontrolünü kullanmayan tek geliştiricilerin çoğunluğu olmalıdır.
Peter Taylor

6

Diğerlerinin söylediği gibi, sürüm kontrolü veya kaynak kodu yönetimi son derece önemlidir. Bir DVCS kullanın ve bununla ilgili her şeyi öğrenin. Hangisinin olduğu gerçekten önemli değil, ancak popüler olanı seçerseniz size fayda sağlayabilir: git veya mercurial.

Bahsetmediğim başka bir şey, tek adımlı bir derleme betiğidir . Bu, doğrudan sürekli bir entegrasyon değildir (bu ifade bence BS'ye yatkındır), ancak çok yararlı bir araçtır. Bir acil durum güncellemesi yapmanız gerektiğinde, komut dosyasını çalıştırabilir ve işinizi tamamlayabilirsiniz. Projenin sonuna yaklaşırken, günde birkaç yapıya ihtiyaç duyulur. Benim deneyimim, inşa süreci çok karmaşık olmasa bile, büyük ölçüde karşılığını veriyor. Hatta ftp yükleme yetenekleri, e-posta raporları, çalışan birim testleri, bina yükleyicileri, imzalama vb.


2

Sadece bir tane cevaplayacağım, sürüm kontrolü sadece takım projeleri için değil, herhangi bir proje için çok önemlidir. Kullanırken çok az zaman alır, ancak geri çekilmeniz için zengin bir tarih sağlar, gümüş bir kurşun değildir, ancak gerçekten çalışırsa bir kopyaya geri dönebilmek kesinlikle güzel deneysel özellik uygulamanın çoğunu kırdı.


2

Sürüm kontrolü mutlak şarttır. Sadece kaynağın iyi tutulması nedeniyle değil, kaynak arkeolojisinden de kaynaklanıyor. Bir sınıf veya prosedürün nasıl evrimleştiğini kontrol edebilmekten bir yıl, bir tuhaf kod parçasını "düzeltmeye" çalışırsanız çok fazla acıyı kurtarabilir.

Metodolojiler için - Programcıların manifestosunu şiddetle tavsiye ederim . Genellikle sıfır ek yükü ve J2EE portlet özellikli JSR uyumlu MVC rol tabanlı CMS web hizmeti uygulama kapsayıcısı çerçevelerinin nasıl çalıştığını tutmak zorunda kalmamanız nedeniyle küçük takımlarda harika sonuçlar verir .

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.