Bir web sitesinde birden çok kişi nasıl çalışabilir?


11

Son zamanlarda Sosyal Ağı izledim ve bu aptalca bir soru olabilir, ancak birden fazla kişinin tek bir web sitesinde çalışması nasıl mümkün olabilir? Yani, aynı sayfada çalışıyorlarsa, bu nasıl mümkün olabilir? Ayrıca, dosyaları çevrimiçi yapmadan canlı hale getirmeden yüklemek mümkün müdür?


12
Kaynak kontrolü. Her geliştirici sonra teslim edilene kadar dosya içinde içerik değiştirilmesi diğer geliştiriciler yasaklamaktadır dosyayı teslim alır, yerel dosyalarda çalışır. En.wikipedia.org/wiki/List_of_revision_control_software

3
İkili olmadıkları sürece dosyalarda sürüm denetiminin kilit işlevini asla kullanmayın.
Colin Goudie

@gommo: 'İkili' ile ne demek istiyorsun? Bunu genişletebilir misin?
Cam

1
@Cam: bu bağlamda “binary” = “metin dosyası olmayan herhangi bir şey”
Konrad Rudolph

Yanıtlar:


27

Genellikle birden çok kişinin aynı dosyada değişiklik yapması gerektiğinde, hangi değişiklikleri kimin yaptığını takip etmek için bir çeşit sürüm kontrol sistemi kullanırlar. Ayrıca farklı insanların yaptığı değişiklikleri birleştirmelerine ve senkronize etmelerine olanak tanır.


1
Basit ama zarif.
Ryan Hayes

14

Çok az sayıda web sitesi yalnızca bir "sayfa" dan oluşur ve birden fazla kişinin aynı sayfada çalışacağı durumlarda, çoğu revizyon kontrol sistemi değişiklikleri yeniden birleştirilmiş bir dosyada birleştirmek için yerleşik mekanizmalara sahiptir.


Sadece seçici olmak :) tüm sayfaların sanal olduğu ve sadece bir veritabanında bulunduğu CMS tabanlı bir sistem olmadıkça.
Darknight

6

Aynı dosyalarda çalışan birden fazla kişi: Kaynak kontrolü

Onları canlı yapmadan: Gerçek web sitesiyle aynı olmayan geliştirme sunucuları ve veritabanları.


3

Bir çeşit yöneticiye ihtiyaçları var.

Tipik olarak, takımlar asla birbirlerini etkilememesi gereken bölümlere ayrılır (ünlü son kelimeler). Örneğin, foo API'sı, C kodunu kodlayan kişilerin yardımcılarına bağlıysa, kırılma (asla gerçekleşmez) olmalıdır, ancak eğer olursa, yardımcı uygulama ona ne ilettiğinizi anlamadığı için olur.

Bu, sol elin ne yaptığını bilmeyen klasik bir durumdur, bu da muhtemelen benim olan hatayı açıkça göstermektedir.

İlk çekerek ve (diğer dev sadece yazma vermedi neyse kaldırarak yaptıklarını kırarken) birleştirmeleri çözmeden kodu itmeliyim önce , ben yüksek voltaj ile doz gidiyorum düzenlemek aynı başkalarıyla iletişim kurma. Ondan sonra, seni yemeğe çıkaracağım (1.21 gigawatt için değişiklik yapmak için) ve bir çeşit çılgın, iğrenç ve oldukça egzotik yiyecekler yemenizi sağlayacağım. Düşün ... Klingon .

Bunun için bana teşekkür edeceksin ve bir daha asla yapmayacaksın.

Tabii ki burada bir çeşit normal 'konuşma' yerine geçebilirsiniz , ama bu ne eğlenceli?


1

Muhtemelen farklı sayfalarda çalışan geliştiricileri olduğunu göreceksiniz. Genellikle bir şablon veya site yöneticisi oluşturulur, böylece her sayfa aynı görünüme sahiptir. Örneğin, şirket Team Foundation Server gibi Kaynak Denetimi kullanıyorsa, her geliştirici kaynak kodunu kontrol eder ve bu diğer geliştiricilerin en son değişikliklerini almasını sağlar.


2
TFS, bir Kaynak Kontrol Yönetim sistemi örneği için bulabileceğiniz en iyisiydi? Şimdi hadi.
Matt Phillips

1

Bunlar:

  • SSH oturumu (örn. Vi, vim, nano, emacs) aracılığıyla bir editörde programlama yapın.
  • IDE'leri ile FTP üzerinden düzenleme yapın (örn. Emacs, notedpad ++).
  • Bir sürüm kontrol sistemi kullanma.

Sonuncusu için, insanlar artık CVS ve subversion gibi merkezi sürüm kontrolü yerine cıva , git ve bazar gibi dağıtılmış sürüm kontrolü kullanıyor . Mercurial için bitbucket.org ve google kod proje barındırma , git için github bir sunucu kurmanıza gerek kalmadan işbirliği içinde paylaşmanız için kodu barındıran siteler olan .

Ayrıca:


1

Bileşenleri olan sayfalar VS Bütün Olarak Sayfalar

Birçok büyük ölçekli web sitesinde çalıştım ve birden çok kişinin aynı sayfada çalışma şekli, çoğu web sitesinin portal olması . Genel olarak, facebook gibi birçok site, birden fazla kişinin üzerinde çalışacağı fotoğraflar, reklamlar, küçük bulanık alanlar vb.Gibi birçok kontrol içerir. Ayrıca, üstbilgiler ve altbilgiler genellikle kendi yeniden kullanılabilir içerme dosyalarına bölünür. Bu, siteyi yalnızca bireysel olarak çalışılamayacak, aynı zamanda birden çok site ve alanda yeniden kullanılabilecek bileşenlere ayırır.


web portalının ne olduğunu biliyor musun? (ipucu, bu bir mashup değil. eski zamanlar Yahoo düşünüyorum)
Javier

Evet, bir tekniğin sayfaları bileşenlere ayırmak olduğunu gösteren bir örnek kullanmaya çalışıyordum. Buna iyi bir örnek, kullanıcılar portal widget'larını içeri / dışarı bırakabilirken, bileşenleri kullanarak sayfa oluşturmak yalnızca geliştirici tarafından alınabilir. Portallar iyi bir görsel örnektir.
Ryan Hayes

0

OneNote'un kullandığı gibi bir tür canlı senkronizasyon sistemi kullanabilirsiniz ... Ayrıca, bir ana bilgisayara dosya yükleyebilir, ancak ana alan adınızı bunlara bağlayamazsınız.


0

Bazı sitelerin içerik sunmak için kullandığı içerik yönetim sistemleri de olabileceğini unutmayın, böylece bir şey bir web sayfası gibi görünse de, bu gerçekten bir şeyler karışımıdır.

Birçok içerik yönetim sistemi, yazarların içeriği herkese açık hale getirmeden önce görüntülemelerine olanak tanıyan bir önizleme özelliğine sahiptir.


0

Bahsedilen bu araçların hepsi faydalıdır, ancak bana göre OP daha çok insanların başkalarının yoluna girmekten nasıl uzak durduklarını soruyor.

Bu çatışmaları çözmek için araçlar kullanmanın yanı sıra, genellikle çakışmalardan kaçınmaya yardımcı olmak için yığınlara veya katmanlara ayrılırlar.

Yığın yaklaşımı ile, her bir kişinin alakasız bir özellik üzerinde çalışmasını sağlayabilirsiniz (bir kişi hesap kaydı yapıyor, diğeri içerik gönderme yapıyor olabilir). İkisinin geçebileceği (muhtemelen bu örnekte kullanıcı kayıtları) ve bir sonraki derlemenin birleştirilmesinin bir parçası olarak ele alınacak bazı çakışmalar olacaktır.

Kademe yaklaşımı ile birisi en içteki bitleri inşa ediyor, bir kısmı bitirdiğinde başka bir kişi bunların üstüne oturan bitleri yazıyor vb. burada üretilen çatışmalar genellikle, bir sonraki seviyeyi etkileyebilecek ve bir sonraki derlemeden önce benzer bir şekilde ele alınacak bir sonraki modifikasyon için bir şeyin daha düşük bir katmana geri döndürülmesi gerektiğinde ortaya çıkar.

Tanıtılan ancak canlı olmayan dosyalar hakkında çok çeşitli yanıtlar / uygulamalar var, ancak önizleme için ayrı bir sunucu, belirli bir önizleme modu veya normal kullanıcılar kararlı sürümü alırken kanayan kenar sürümünü çeken bir kullanıcı sınıfı veya yetkisi var en sık gördüklerim.


0

Önce ikinci kısmı cevaplamak için, dosyaları canlı hale getirmeden yüklemenin bir yolu, onlara bağlanmayacak bir ad vermektir. Örneğin, bir index.htmlsayfanın yeni bir sürümünü yapmak için, sayfanın adıyla yükleyin index2.html, ardından adresini ziyaret edin http://yoursite.com/index2.htmlve düzgün çalışıp çalışmadığını kontrol edin. Memnun kaldığınızda yeniden adlandırın index.html. Bu gerçekten sadece çok küçük siteler için ve resimler, CSS veya JavaScript dosyaları gibi sayfanın dışındaki bir şeyi değiştirmek istiyorsanız, biraz dağınık hale gelir, çünkü sahip olmanız gerekir image2.png, o zaman index2.htmltek farkı yeni görüntü.

Profesyonel bir programcı her zaman üzerinde çalışacak bir test sistemine sahip olacak, daha sonra değişikliklerden memnun olduklarında "çevrimiçi ana bilgisayarlarına" yükleyecektir. Bilgisayarınızda yalnızca yerel ağınızdaki sayfaları sunacak bir web sunucusu kurabilirsiniz. Tabii ki ayrı bir bilgisayar veya (benim yaptığım gibi) ana bilgisayarınızda çalışan bir sanal makine de kullanabilirsiniz.

Birden çok geliştirici birlikte çalıştığında, her birinin üzerinde çalışmak için kendi test sistemi olur ve ardından değişikliklerini tüm farklı kişilerin tüm değişikliklerini takip eden bir sürüm kontrol sistemine yükler. Git benzetmesine bakın nasıl çalıştığını görmek için .

Sürüm kontrol sistemi kimin neyi niçin değiştirdiğini görmeyi kolaylaştırır. Bu, sorumlu olan herkes tarafından kontrol edilebilir ve daha sonra master ile birleştirilebilir ve test / QA departmanına teslim edilebilir. Yeni özellikleri tamamen test ettikten sonra, canlı siteye yüklemek için onaylayacaklar.


0

Kurulması gereken ilk şey, birçok sitenin bir veya daha fazla kişi tarafından üzerinde çalışılan statik sayfalar topluluğu olmamasıdır.

Ziyaretçi olarak gördüğünüz sayfalar, bu tür sitelerde olduğu gibi değişiklik yapmak için web sitesinde mevcut değildir; bunlar, bir içerik yönetim sistemi tarafından otomatik olarak bir araya getirilir - barındırma sunucusunda çalışan yazılım, web sitesinin içeriği kullanılarak sahipleri üretti. CMS, sayfayı şablon dosyaları (CSS ve CMS'nin kendi yapılandırma dosyaları) kullanılarak oluşturulan içerikten bir araya getirir ve ortaya çıkan sayfa tarayıcınıza sunulur.

Site sahipleri, statik sayfalar yerine içerik ve mizanpaj şablonlarında değişiklik yapar. Bunun cevabından geçmek, değişikliğin türüne ve bunu yapan kişinin rolüne bağlıdır :

  1. site genel kullanıcısı , blog veya yorum gönderme
  2. sitedeki içeriği değiştiriyorsanız (içerik yapımcısı rolü, örneğin web sitesi sahibi için çalışan gazeteci) veya
  3. sitenin işlevselliğini ekleme ve değiştirme (site sahibi için çalışan site geliştiricisi).

Drupal, içerik güncellemelerini işlemek için çok kullanıcılı yönetim sağlayan, sayfalarda ziyaretçiler tarafından görülenleri etkileyen ücretsiz ve güçlü bir içerik yönetim sistemidir. Drupal ayrıca sayfaların davranışını değiştirmek için araçlar sunacaktır, örneğin, bunların nasıl düzenlendiği veya bir makaledeki yorumların yayınlanıp yayınlanamayacağı, 1. ve 2. değişiklik türlerini ele alacaktır. Drupal'da değişiklikler yapılıyorsa, bunlar bir SQL veritabanında saklanacaktır. Drupal içeriğin bazı versiyonlama / revizyon kontrolünü sağlar.

Daha kapsamlı site davranışı değişiklikleri için tam sürüm kontrol sistemi gereklidir; 3. değişiklik türü, örneğin daha fazla özellik getirmek, Drupal'dan güncellemeler almak veya kendi eklenen koddaki hataları düzeltmek, daha sonra kodun değiştirilmesi ve diğerlerinin burada yayınladığı gibi. GIT, Subversion veya Mercurial gibi sürüm kontrol sistemleri - hepsi ücretsiz - sitenin çeşitli geliştiricileri tarafından yapılan değişiklikleri yönetmek için kullanılır .

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.