Takım arkadaşlarının bir nesnede hangi değişiklikleri yaptığımı bilmesini nasıl sağlayabilirim? [kapalı]


9

Bir PHP nesnem olduğunu varsayalım, diyelim ki: companyObj.

class companyObj
{
  private company_name;
  private company_address;

  public function print_contact()
  {
    //logic
  }
}

Bu yazdığım ve takım arkadaşlarıyla paylaştığım nesne. Şimdi bunu daha güçlü hale getirmek istiyorum, şöyle:

class companyObj
{
  private company_name;
  private company_address;
  private company_contact_person;

  public function print_contact()
  {
    //logic updated
  }
}

Şimdi, takım arkadaşlarıma, nesnemin ayarlayabilecekleri daha fazla özelliğe sahip olduğunu nasıl bildirebilirim?

Geliştirme ekibindeki herkese e-posta göndermek yerine, takım arkadaşlarının kaynak kodu düzeyinde nelerin değiştiğine bakmak için zamanlarını boşa harcamasını istemediğimde, ekibin neler olup bittiğini nasıl bilebilirim?


7
svn yardımcı olabilir, onlar kodda bir şey değiştiğini bilmek gelecektir .. böylece onlar doğrudan değişikliklerinizi güncelleyebilirsiniz (sizin durumunuzda belirli dosya olabilir) .. ne değişti bilmek zorunda kalmadan (isteğe bağlı olarak onlar istemiyorsanız to)
PresleyDias

1
bu bir nesne değil yazdığınız bir sınıf :) nesneler çalışma zamanında var derleme değil
Rune FS

Yanıtlar:


10

Bu çok somut duruma bağlıdır. Eklediğiniz yeni mülkün zorunlu olduğunu varsayalım, yani her zaman ayarlanması gerekir. Ardından, kodun kendiniz araması ve companyObjdüzgün oluşturulduğundan emin olmak için a'nın oluşturulduğu her yerde güncellemeniz gerekir (yeni özelliğin ayarlanması dahil). PHP, sadece yeni bir yapıcı parametresi eklemeniz gerekir ve derleyici otomatik olarak derleme hatası olarak ekstra parametre olmadan her yapıcı çağrısını işaretleyecek yapıcılar olduğunu varsayalım. Bu aynı zamanda ekip arkadaşlarının a kullandıkları anda yeni mülk hakkında bilgi edinmelerini sağlayacaktır companyObj.

Bununla birlikte, yeni özellik isteğe bağlıysa, işler daha az nettir. Bunun için uygun bir varsayılan değere sahip olabilir veya olmayabilir. İkinci durumda, uygun olduğunda yeni özelliği ayarlamak için tüm örnek oluşturmalarını güncellemenizi öneririm. Bu, kodun her zaman tutarlı bir durumda tutulmasını sağlamak içindir .

Değişikliği ekip arkadaşlarınıza iletmek burada başka bir uzak adım. Çevik ekipler yüz yüze iletişimi ve IMHO'yu iyi bir nedenden dolayı tercih ederler . Belgelere güvenmek, bir ekibin etrafına bilgi yaymanın çok yavaş ve etkisiz bir yoludur . Wiki biraz daha iyidir, ancak yine de her sınıf özniteliğini belgelemek IMHO gereğinden fazladır. Sadece ekip üzerinde büyük bir yük olacak ve yine de güvenilmez ve işe yaramaz hale gelecektir, çünkü biz insanız, bu yüzden bazen güncellemeyi unutmak zorundayız, ayrıca pek çok takım üyesinin düzenli olarak en son kod değişiklikleri hakkında bilgi almak için belgeleri (hangi biçimde olursa olsun) kontrol edin.

İkincisi, örneğin Javadoc veya Doxygen aracılığıyla otomatik olarak oluşturulan belgeler için de geçerlidir. Oluşturulan belgeleri her zaman güncel tutmak için otomatik bir yapıda yapılandırılabilirler, ancak en son kod değişiklikleri hakkında bilgi almak için üyelerin belgelere düzenli olarak göz attığı bir geliştirme ekibi görmedim. Herhangi bir kaynak kontrol sistemi kullanıyorsanız , değişiklikleri fark etmenin ilk yeri , kodun yerel kopyasını yine de güncellediğinizde - o zaman tanıdık sınıflardaki değişiklikleri kontrol edebilir ve neyin ve nasıl değiştiğini (bir ekibinizin anlamlı check-in yorumları eklemeye alışkın olması durumunda kısa bir açıklama ve / veya bir görev kimliğine referans - ki bunlar otomatik olarak oluşturulan dokümanlarda bulunmayacaktır).

İletişim, Extreme Programing ekiplerinin çift programlama yapmasının başlıca nedenlerinden biridir. Değişiklikleri bir takım arkadaşıyla birlikte yaparsanız, hemen her değişikliği bilen iki kişiniz vardır ve bir dahaki sefere başka biriyle eşleşirsiniz, bu nedenle yararlı bilgiler oldukça hızlı bir şekilde yayılır. Bununla birlikte, çeşitli nedenlerle her zaman uygulanamaz. Buna engel olarak, komşularınızla uygun bir andaki değişiklik hakkında konuşabilirsiniz (örneğin, öğle yemeğinde, birlikte öğle yemeğine gelirseniz) veya daha büyük, daha önemli veya daha karmaşık bir değişiklik ise etrafınıza bir posta gönderebilirsiniz.

İkinci durumda, düzgün bir şekilde belgelemek için iyi bir neden olabilir. IMHO tasarım dokümanları, sistem hakkında kaba taneli, yüksek düzeyde bir genel bakış sunarken en iyisidir, ancak uygulama ayrıntıları koddadır ( DRY ilkesine bağlı kalarak ).


2
+1 Bence takımdaki herkes kodun en son sürümüne "körü körüne" güncelleme yapmamak, ancak ne yapıldığını ve bunu yapmadan önce ne olduğunu kısaca kontrol etmek için eğitilmelidir. Dediğiniz gibi kısa ama kesin bir yorum harika.
Jalayn

10

Onlarla konuşmayı düşündün mü ? Kısa bir toplantı planlayın: "hey, X nesnesinde bazı değişiklikler yaptım, neyin değiştiğini ve nedenini göstermek istiyorum". Veya bir toplantı çok resmi veya yıkıcı görünüyorsa, her bir kişiyle ayrı ayrı konuşun.


+1, bir şekilde en açık cevap ilk düşünülmez!
NoChance

2

Ekibiniz varsa muhtemelen bir tasarım belgeniz de vardır. Eğer değilse. başlayın. Ve tasarımlarınızı haritalamak için bazı UML aracını kullanın.


7
Bu prensipte iyi görünüyor, ancak: 1. her sınıf özniteliğini içeren bir tasarım belgesi, kodu korumak ve eşzamanlı tutmak için kıçta bir acı haline gelecektir. 2. Koddan tersine mühendislik uygulanmış bir UML diyagramı, yine içindeki ayrıntıların miktarı nedeniyle, kısa sürede herhangi bir önemsiz projede pratik olarak işe yaramaz hale gelmek zorundadır.
Péter Török

Çok fazla dersiniz varsa her bir sınıfı belgelemeniz gerekmez. Sadece genel arayüzü oluşturanlar. Büyük bir proje için hantal olacağını kabul edin, ancak uygulamanın çeşitli bölümlerinin birbirleriyle nasıl konuştuğunu belirten herhangi bir belgeye sahip olmamak daha iyidir.
DPD

1
(Cevabımda belirtildiği gibi) üst düzey bir mimari / tasarım belgesinin önemi konusunda hemfikirim. Bununla birlikte, bu yüksek seviyedir, böylece ufak değişikliklerle sürekli olarak güncellenmesi gerekmez.
Péter Török

1

Kodunuzda doxygen gibi bir araç kullanabilirsiniz . Şimdi doxygen belgelerini oluşturacak ve belki de gece yapınızın bir parçası olarak düzenli olarak çalıştıracak bir komut dosyası oluşturun (bir gece yapısı yapıyorsunuz, değil mi?).

Yeni olarak vurgulamak için eklentinize doxygen'te özel bir özellik atayabileceğinizi düşünüyorum.

Eğer takım arkadaşlarınız iyi olursa, yeni dokümantasyona girerlerdi.


Belki bu işi pratikte hiç görmediğim için iyi takım arkadaşları ile hiç çalışmadım :-(
Péter Török

@ PéterTörök Kendim dahil olmak üzere aralarında çok az şey olduğunu itiraf etmeliyim.
tehnyit

0

Şimdi, takım arkadaşlarıma, nesnemin ayarlayabilecekleri daha fazla özelliğe sahip olduğunu nasıl bildirebilirim?

Yaptığınız her küçük şey hakkında takım arkadaşlarınızı bilgilendirmemelisiniz. Aksi takdirde, çok sayıda e-posta göndermeniz gerekir. Bu büyük bir şeyse, küçük bir toplantı yapabilir ve ne yaptığınızı bildirebilirsiniz (Scrum yaparsanız, ayrı bir toplantı ayarlamanıza gerek yoktur).

Otomatik tamamlamayı destekleyen bir IDE kullanıyorsanız, ekip arkadaşlarınız değişikliğinizi fark etmelidir. Umarım koduna yorum yaparsın.

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.