Boss, yeni proje için bir sürüm kontrol sistemi kullanma konusunda şüpheci, yine de yapmalı mıyım?


9

Bkz. Https://softwareengineering.stackexchange.com/questions/109817/superior-refusing-to-use-subversion

Sorum benzer, ancak benim senaryomdaki temel farklılıklar:

  • PHP ve web teknolojisini kullanarak sıfırdan yeni bir projeye başlıyoruz. Eğer benim yolum varsa, baştan beri benimsediğimiz için kalkınmada hiçbir zaman olmazdı.

  • Geliştirme ekibim benden ve patronumdan oluşuyor. Biz nispeten küçük bir firmanın "IT" Departmanıyız.

Web uygulaması, eski bir uygulamayı kesinlikle hiçbir kaynak kontrolü olmadan değiştirecektir. Coğrafi yasal gereksinimlerdeki değişiklikler nedeniyle, (her işe alınmadan önce) uygulamayı her sürüm için 7 ayrı ayrı dizine bölmeye karar verildi. Farklı geliştiriciler bundan sonra farklı zamanlarda farklı yerlerde farklı şeyler yaptılar. Değişikliklerin üstesinden gelmek, bence daha iyi yapılabilir, sanırım bu yüzden gönderiyorum.

Doğrudan bir e-postadan yapıştırılan patronumun teklifi:

  • Güncellemeler SUBMISSIONS klasöründe paket olarak gönderilmelidir. Paket, ilgili tüm dosyaları ve güncellemenin açıklamasını, içerilen tüm yeni dosyaların bir listesini (açıklamalarla birlikte) ve değişiklik ayrıntılarıyla birlikte tüm değiştirilmiş dosyaların bir listesini içeren bir 'UPDATE.NFO' dosyasını içermelidir.

  • Güncelleme paketleri, amaçlanan amaçlarından sapmamalı ve tek bir öğeye odaklanmalıdır. Kod, mümkün olduğunda modüler ve yeniden kullanılabilir olacak şekilde tasarlanmalıdır.

  • Gönderilen tüm paketler, gönderildikten kısa bir süre sonra her geliştiricinin test ortamına kurulmalıdır. Her geliştirici yeni eklemeyi gözden geçirecek ve kurulumuna üretim ortamına ilişkin endişelerini dile getirecektir. Üretim ortamına yüklenmeden önce, bu inceleme süreci için en az 3 iş günü boyunca standart bir paket güncellemesi yapılmalıdır. Yüksek öncelikli güncellemeler / düzeltmeler bu gereksinimi atlayabilir.

Kaynak kontrolünün icat edilmesinin nedeni tüm bunları otomatik yapmak değil mi? Yıkılmayı önerdim, çünkü üniversitede kullandım. Patron yıkımdan hoşlanmaz, çünkü "Kodun karışıklığını yaratır" (yani ikili büyü kullanır ve açıkça okunamaz). Bir kez denedik, ama sanırım garip küçük / büyük hatalar yapan pencerelerde kullanmaya çalışıyorum ve dosyalarımızı kontrol edemedik. Sadece yıkım mı yoksa sakıncalı tüm kaynak kontrol ürünleri mi bilmiyorum.

Peki, patronum hakkında ne tür bir tartışma yapmalıyım? Yoksa haklı mı ve tüm işlerimizi tuhaf bir hatadan kaybetme tehlikesi olabilir mi?

Yoksa tamamen yanlış mıyım? Durumumda kaynak kontrolü gerçekten gerekli mi? Bu, konuştuğumuz iş açısından kritik ana yazılımımızdır, bu yüzden büyük bir şüphe yoktur. Ama sadece 2 geliştirici var (şimdi).

Ayrıca, onu ikna edemezsem, bunu sadece kendim için kullanmamın bir anlamı var mı? Ben gerçekten svn kullanarak çok sınırlı deneyime sahip biri olarak konuşuyorum; tek bildiğim ödeme ve taahhüt. Bireysel gelişim çabamda yardımcı olacak kaynak kontrolünün özellikleri nelerdir (svn dışında başka ürünler içerebilir)?

Lütfen "başka bir iş bul" yorum yok. Bu tartışmaya yardımcı olmuyor.


25
'Ve lütfen hayır "Başka bir iş bul" yorumları.' Neden olmasın? Patronun mahkum.
S.Lott

9
Onu ikna edemeseniz bile, kendiniz için özel olarak kullanmak hala yararlıdır. Böylece dosyalarınızı korkmadan özgürce düzenleyebilirsiniz. Üzerinde çalıştığınız dosyalar için bir sürü "puan kaydetme" var. Yerel kutunuzda SVN olması gerekse bile ... hiç yoktan iyidir.
Lord Tydus

10
@ S.Lott, bence OP sorunun sınırlarını belirleme hakkına sahip. Örneğin, OP küçük bir ülkede yaşıyorsa ve babası / kayınvalidesi, OP'nin çift ya da üç kat ödediği bir işin patronuysa, "başka bir iş bul" mümkün değildir. açık piyasada yeniden değer. Kısacası, sorunun bir parçası değil.
Dan Rosenstark

8
@ S.Lott I, on the other hand, think that the OP is being silly in trying to specify the bounds on the answer....Belirli sınır hiç saçma değil. Kariyer tavsiyesi konu dışıdır ve soruyu cevaplayacak ve kariyer tavsiyesi sunacak bir cevap benim için mükemmel olsa da , OP'nin kariyer tavsiyelerini umursamadığını belirtmesinin saçma olduğunu düşünmüyorum .
yannis

9
@ S.Lott Öte yandan aptalca bulduğum şey, özellikle "başka bir iş ara" olduğunda kendi başına kariyer tavsiyesidir. Çok fazla bilinmeyen değişken var, bu tür tavsiyeleri ciddiye almayı imkansız buluyorum.
yannis

Yanıtlar:


35

Ona sorma. Ona söyleme. Onu göster.

Svn, git veya istediğiniz herhangi bir ek makineye yükleyin. Sadece kullanmakla kalmayıp açıklayana kadar kendinizi rahat hissedinceye kadar kullanın. Onu yeni sisteminizle rahatlatacaksanız, kendinizle daha rahat olmanız gerekir. Bir birleştirmeyi vidaladığında veya yanlış yere bir şey kontrol ettiğinde kolayca iyileşmesine yardımcı olmanız gerekir.

Hazır olduğunuzda ona tam olarak neden bahsettiğinizi gösterin. Ona hiçbir şey "karışıklık" olmadığını göster. Kodunuzun önceki sürümlerini kolayca almanıza izin vermediğini, aynı zamanda iki sürüm arasında neyin değiştiğini tam olarak bilmenizi mümkün kıldığına dikkat edin.

Sunucuya herhangi bir şey olursa (ciddi hata, virüs, hacker, disk çökmesi ...) gerekli sürümü anında yeniden oluşturabiliyorsanız heros gibi görüneceğinizi belirtin . Ayrıca , talep üzerine herhangi bir sürüm üretebiliyorsanız iki kat daha iyi görüneceğinize dikkat edin . Eski e-postanızda arama yapın ve sürüm kontrolü ile önleyebileceğiniz, geçen yıl yaşadığınız sorunların bir listesini derleyin.

Sürüm kontrol sisteminizi kullanmasını kolaylaştıracak bir hile sayfası verin .

Son olarak, bazı seçenekler önerin ama kararı ona bırakın . Kendi sunucunuzu kurmalı veya barındırılan birçok hizmetten birini mi kullanmalısınız ? Svn, git veya başka bir şey kullanmalı mısınız? Yedi projenin tümünü sisteme mi taşımalısınız yoksa ilk önce bir iki tane mi denemelisiniz?


9
"Söyleme, gösterme (uygulamadan sonra)" için +1
Javier

2
Ama birisinin söylediği gibi, kendi kopyanız için kullanın
0fnt

3
+1 içinsearch your old e-mail and compile a list of problems you've had over the past year that you could have avoided with version control.
Daenyth

Ayrıca, gösterilecek bir şey varsa göstermek daha kolay olabilir. Git için SourceTree gibi bir GUI ile bir şey kullanmanızı tavsiye ederim . Bu yol daha az korkutucu görünüyor şekilde, öğrenmek daha kolaydır, kimse biraz yazım hatası ile tüm sistemi karışıklık yukarıya korku vardır ve hemen hemen zaten bahsettiğiniz hile tabakanın bir grafik sürümü.
R. Schmitz

28

Kaynak kontrolünün faydaları, birden fazla geliştiricinin tek bir kod parçası üzerinde çalışmasına izin vermenin çok ötesindedir. SourceGear'ın kurucusu Eric Sink, kaynak kontrolünü tek bir geliştirici olarak kullanmanın birkaç zorlayıcı nedenini listeliyor :

- It's an undo mechanism.
- It's a historical archive.
- It's a reference point for diff.
- It's a backup.
- It's a journal of my progress. 
- It's a server. 

Eric de çok güzel yeni başlayanlar var olur Kaynak denetimi nasıl yapılır . Joel Spolsky tarafından ücretsiz bir çevrimiçi Mercurial öğretici var, Mercurial popüler bir dağıtılmış sürüm kontrol sistemidir.

Bir sonraki adım olarak, kaynak kontrolünü tek bir geliştirici olarak makinenizde yerel olarak kullanmaya başlamanızı öneririm. Çok yakında patronunuz, dakikalar içinde değilse, saniyeler içinde değilse, süper kritik bir hatanın ne kadar geriye gittiğini söylemek gibi saf bir büyü yapabileceğinizi fark edecek ve sonra ona hangi müşteri hesaplarının etkilendiğini ve düzeltilmeye ihtiyacı olduğunu söyleyeceksiniz. cehennem kopuyor. Veya CEO'nun süper hızlı onaylamadığı değişiklikleri geri alabilmek.

Ve son olarak, patronunuzu ikna etmeye çalışmadan önce, itiraz işleme konusunu araştırmak isteyebilirsiniz . 101 satış.

Başarısız olursa - mümkün olan en kısa sürede devam edin, yel değirmenlerini eğerek zamanınızı boşa harcamayın.


1
Eric Sink makalesi için +1. Hg önerdiği için +1. Git tüm öfke ama soru açıkça kaynak kontrolünde bir acemi olduğunu ve hg git git biraz daha kolay olduğunu belirtir. Hg eğitimi için +1. Satış odaklı bir referans sağladığınız için +1, Sivri Saçlı Patronlarla en iyi şekilde bu şekilde ilgilenirsiniz (bunun bir google arama bağlantısı olduğu için -0.5). Don Kişot referansı için +1. Bu, birden fazla hesap oluşturabilmem için yinelenen hesaplar oluşturmak istememi sağlayan türde bir cevap.
yannis

1
Bu cevap temelde her şeyi söylüyor. Kaynak kontrolünü kendi başınıza kullanmanız için sadece bir neden daha var: eğer devam ederseniz ve kaynak kontrolü ile ilgili deneyim sahibi olmanız özgeçmişinizde iyi görünecektir. Böyle bir deneyime sahip olmamak iyi görünmeyecektir.
Mike Nakis

10

Evet, kaynak kontrolünü kullanmak, sadece sizin için bile olsa, tamamen faydalıdır. Örneğin Git, bağımsız bir geliştirici için gerçekten iyi çalışıyor ve şube ve birleştirme (mümkün olan en düşük maliyetle) gibi şeyleri yapmanıza ve değişikliklerinizi gittikçe sürümlendirmenize izin veriyor.

SVN - veya herhangi bir sürüm kontrol sistemi - bunu da yapmanıza izin verir, ancak birleştirme biraz daha sorunludur.


Git'in kullanımına katılıyorum. SADECE geliştirici olsam bile projeler için kullanıyorum.
DanO

Ben de başlıyorum. Ben SVN ile söylemezsin ... ama Git ile, bu haklı çıkarmak için o zorlaşıyor olduğunu oluşturmak ve hatta bir sunucuyla ilgili olmayan bir repo yönetmek çok kolay değil diyerek git initbir şey üzere çalışmaya başlar ikinci.
cHao

sağ olmadan .gitignorebir git repo temelde işe yaramaz. Bir kenara bırakmanız gereken tek şey bugit init
Dan Rosenstark

" ama birleşme biraz daha sorunlu " - eğer OP sadece kendisini kullanıyorsa, çok fazla birleşme olmayacak, değil mi? Belki kendi özellik dalını kendi efendisine geri getirmek, ama patronundan aldığı herhangi bir kod yeni bir taahhütte bulunmayı tercih eder, değil mi? SVN ile hiçbir deneyimim yok, sadece git.
R. Schmitz

1
“Çok fazla birleşme olmayacak” olana kadar. Herhangi bir proje, bir hobi projesi olsa bile, sonunda dev ekibinin (bir kişi olabilir) aynı anda iki şey üzerinde çalışmasını gerektirecektir. Sonra birleştirmek zorundasınız ve bir noktada birleşme çatışmalarıyla karşılaşacaksınız.
Dan Rosenstark

5

Eğer onu ikna edemezsem, onu sadece kendim için kullanmamın bir anlamı var mı?

Evet. Sadece kendiniz için kullanmanın faydası var. Değişiklik geçmişine sahip olursunuz, böylece neyin farklı olduğunu görebilirsiniz.

Hayır. Bunun bir yararı yoktur, çünkü patronunuz projenizi bir sürü anlamsız yeniden çalışmaya mahkum etti, çünkü işleri bozdular.


Sadece neyin farklı olduğunu görmek değil, iki saniye içinde yeni sürüm ile eski sürüm arasında geçiş yapabilirsiniz.
gnasher729

3

Git kullanılmadan önce belirtildiği gibi şiddetle tavsiye ederim, # 1 nedeni felaket durumunda herhangi bir VCS'nin bir güvenlik ağı olmasıdır. “Yangın durumunda: git commit, git push, binayı terk et” etiketini bulun. Kod başka bir yerde saklanabilir, ancak bozulabilen, çalınabilen veya herhangi bir şekilde bir dizüstü bilgisayarda hayır ... yerel bir ağ sunucusu bile kod kadar değerli bir şey için en güvenli yer değildir.

2 numara. Değişikliklerin izlenebilirliği, kim, ne zaman vb. Yaptı ... Birleşir, Geri al. Sayı 3. Büyülü aracı # 2 ve daha pek çok vaka için dağıtın. Numara 4. Dallar Numara 5. Etiketleme sürümleri, sürümler, vb.

En yaygın git iş akışlarından biri hakkında daha fazla bilgiyi burada bulabilirsiniz: https://nvie.com/posts/a-successful-git-branching-model/

Git'i kullanmanın ilk başta korkutucu olabileceğini biliyorum, ama bu bir beceri için iyi bir yatırım ve herhangi bir geliştirme ekibi için olmalı.

Metin durumuyla ilgili sorununuz hakkında, Tortoise kullanmaktan kaçının, çoğu insanın git için GUI olarak kullandığını biliyorum, çünkü SVN için çok yaygındı, bu yüzden ilk seçenek olabilir, bunun yerine komut satırı veya github masaüstü gibi başka bir GUI kullanın veya Atlasian'dan SourceTree.

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.