Jak wiele osób może pracować na jednej stronie?

11

Niedawno obejrzałem The Social Network i może to być głupie pytanie, ale jak to możliwe, że wiele osób może pracować na jednej stronie? To znaczy, jeśli pracują na tej samej stronie, jak to możliwe? A także, czy można przesyłać pliki do hosta online bez udostępniania ich na żywo?

Sam Gabriel
źródło
12
Kontrola źródła. Każdy deweloper działa na lokalnie plików, a następnie musi sprawdzić plik, który zakazuje innych deweloperów z wymianą treści w pliku, dopóki nie zostanie sprawdzona w. En.wikipedia.org/wiki/List_of_revision_control_software
3
Nigdy nie używaj funkcji blokowania kontroli wersji plików, chyba że są one binarne.
Colin Goudie
@gommo: Co rozumiesz przez „binarny”? Czy możesz to rozwinąć?
Cam
1
@Cam: w tym kontekście „binarny” = „wszystko, co nie jest plikiem tekstowym”
Konrad Rudolph,

Odpowiedzi:

27

Zwykle, gdy wiele osób musi wprowadzić zmiany w tym samym pliku, używają pewnego rodzaju systemu kontroli wersji, aby śledzić, kto dokonał zmian. Pozwala im także łączyć i synchronizować zmiany dokonywane przez różne osoby.

FrustratedWithFormsDesigner
źródło
1
Prosty, ale elegancki.
Ryan Hayes
14

Bardzo niewiele witryn składa się tylko z jednej „strony”, a w przypadkach, gdy wiele osób będzie pracować na tej samej stronie, większość systemów kontroli wersji ma wbudowane mechanizmy scalania zmian z powrotem w zunifikowany plik.

Joe Stefanelli
źródło
Po prostu wybredny :) chyba że jest to system oparty na CMS, w którym wszystkie strony są wirtualne i istnieją tylko w bazie danych.
Darknight
6

Wiele osób pracujących w tych samych plikach: kontrola źródła

Bez uruchomienia ich: serwery programistyczne i bazy danych, które nie są tą samą gałęzią co prawdziwa strona internetowa.


źródło
3

Potrzebują jakiegoś menedżera.

Zazwyczaj zespoły dzielą się na segmenty, które nigdy nie powinny się ze sobą kolidować (słynne ostatnie słowa). Na przykład, jeśli interfejs API foo zależy od pomocników osób, które kodują w C, złamanie powinno (nigdy się nie zdarzy), ale jeśli tak, dzieje się tak, ponieważ aplikacja pomocnicza nie rozumie, co mu przekazujesz.

Jest to klasyczny przypadek prawej ręki, która nie wie, co robi lewa ręka, co wyraźnie ilustruje błąd, który prawdopodobnie jest mój.

Jeśli pchasz kod bez uprzedniego ściągania i rozwiązywania fuzji (jednocześnie niszcząc to, co zrobił drugi programista, po prostu usuwając to, czego nie napisałeś), przed komunikowaniem się z innymi, którzy to samo edytują, dam ci wysokie napięcie. Potem zabiorę cię na kolację (aby zrobić poprawki dla 1,21 gigawatów) i upewnię się, że spożywasz jakieś szalone, obrzydliwe i dość egzotyczne jedzenie. Pomyśl ... Klingon .

Podziękujesz mi za to i nigdy więcej tego nie zrobisz.

Oczywiście możesz zastąpić tutaj normalne „rozmawianie”, ale co to za zabawa?

Tim Post
źródło
1

Prawdopodobnie przekonasz się, że mają programistów pracujących na różnych stronach. Szablon lub wzorzec strony jest zwykle tworzony, aby każda strona miała taki sam wygląd i działanie. Na przykład, jeśli firma korzysta z Kontroli źródła, takiej jak Team Foundation Server, każdy programista sprawdziłby swój kod źródłowy, co pozwoli innym programistom uzyskać najnowsze zmiany.

Neil Knight
źródło
2
TFS był najlepszym, jaki można wymyślić na przykład systemu zarządzania kontrolą źródeł? Chodź teraz.
Matt Phillips
1

Mogą albo:

  • Programuj w edytorze za pośrednictwem sesji SSH (np. Vi, vim, nano, emacs).
  • Edycja odbywa się przez FTP z ich IDE (np. Emacs, notepad ++).
  • Korzystanie z systemu kontroli wersji.

W ostatnim przypadku ludzie używają teraz rozproszonej kontroli wersji, takiej jak mercurial , git i bazar , zamiast scentralizowanej kontroli wersji, takiej jak CVS i subversion. Jeśli chodzi o mercurial, sprawdź bitbucket.org i hosting projektu kodu Google , w przypadku git sprawdź github , które są witrynami, które udostępniają kod, abyś mógł udostępniać go wspólnie bez konieczności konfigurowania serwera.

Również:

dukeofgaming
źródło
1

Tworzenie stron ze składnikami VS Strony jako całość

Pracowałem na wielu dużych stronach internetowych, a sposób, w jaki wiele osób pracuje na tej samej stronie, polega na tym, że większość witryn to portale . Zasadniczo wiele witryn, takich jak Facebook, zawiera wiele elementów sterujących, takich jak zdjęcia, reklamy, małe obszary blurb itp., Nad którymi będzie pracować wiele osób. Ponadto nagłówki i stopki są generalnie dzielone na własne pliki dołączane wielokrotnego użytku. To dzieli witrynę na komponenty, nad którymi można nie tylko pracować indywidualnie, ale można je również ponownie wykorzystać w wielu witrynach i obszarach.

Ryan Hayes
źródło
czy wiesz, czym jest portal internetowy? (wskazówka, to nie jest mieszanie. pomyśl o dawnych czasach Yahoo)
Javier
Tak, próbowałem użyć przykładu, który pokazuje, że jedną techniką jest dzielenie stron na komponenty. Dobrym przykładem tego jest portal, z tą różnicą, że użytkownicy mogą upuszczać / upuszczać widżety portalu, natomiast tworzenie stron przy użyciu komponentów może odbywać się tylko ze strony deweloperów. Portale to dobry przykład wizualny.
Ryan Hayes,
0

Możesz użyć systemu synchronizacji na żywo, takiego jak OneNote ... Ponadto możesz przesyłać pliki do hosta, ale nie tworzyć linku do nich z domeny głównej.


źródło
0

Nie zapominaj, że mogą istnieć systemy zarządzania treścią, których niektóre witryny używają do udostępniania treści, więc chociaż możesz myśleć, że coś jest stroną internetową, to tak naprawdę jest to połączenie różnych rzeczy.

Wiele systemów zarządzania treścią ma funkcję podglądu, która umożliwia autorom przeglądanie treści przed ich publicznym udostępnieniem.

JB King
źródło
0

Wszystkie wymienione narzędzia są pomocne, ale dla mnie brzmi to tak, jakby OP bardziej pytał, w jaki sposób ludzie powstrzymują się przed wejściem na ścieżkę innych.

Oprócz używania narzędzi do rozwiązywania tych konfliktów zwykle istnieje pewien podział na stosy lub poziomy, aby przede wszystkim uniknąć konfliktów.

Dzięki podejściu stosowemu każda osoba pracuje nad niepowiązaną funkcją (jedna osoba może rejestrować konto, a druga może przesyłać treści). Wystąpi konflikt, w którym mogą się krzyżować (prawdopodobnie w tym przykładzie rekordy użytkownika) i zostanie to rozwiązane w ramach scalania do następnej kompilacji.

Przy podejściu poziomowym ktoś buduje wszystkie najgłębsze bity, kiedy kończy się jedna porcja, inna osoba zapisuje bity, które leżą na nich i tak dalej. generowane tutaj konflikty zwykle mają miejsce, gdy trzeba powrócić do czegoś na niższym poziomie w celu późniejszej modyfikacji, która może wpłynąć na następny poziom powyżej i są obsługiwane w podobny sposób przed następną kompilacją.

Część o plikach promowanych, ale nie na żywo, zawiera wiele odpowiedzi / implementacji, ale osobny serwer do podglądu, określony tryb podglądu lub klasę użytkownika lub uprawnienia, które pobierają najnowszą wersję, podczas gdy zwykli użytkownicy otrzymują wersję stabilną. te, które najczęściej widuję.

Rachunek
źródło
0

Aby odpowiedzieć na drugą część w pierwszej kolejności, jednym ze sposobów przesyłania plików bez udostępniania ich na żywo jest nadanie im nazwy, z którą nie będzie się łączyło. Np. Aby utworzyć nową wersję index.htmlstrony, prześlij ją z nazwą index2.html, a następnie odwiedź http://yoursite.com/index2.htmli sprawdź, czy działa poprawnie. Gdy będziesz zadowolony, zmień jego nazwę na index.html. Jest to tak naprawdę tylko w przypadku bardzo małych witryn i robi się nieco niechlujne, jeśli chcesz zmienić coś zewnętrznego na stronę, takie jak obrazy, pliki CSS lub JavaScript, ponieważ musisz to zrobić image2.png, a index2.htmljedyną różnicą jest to, że wskazuje nowy wygląd.

Profesjonalny programista zawsze będzie miał system testowy do pracy, a następnie prześle go do swojego „hosta online”, gdy tylko będzie zadowolony ze zmian. Możesz skonfigurować serwer WWW na swoim komputerze, który będzie obsługiwał tylko strony w sieci lokalnej. Oczywiście możesz również użyć osobnego komputera lub (tak jak ja) maszyny wirtualnej działającej na twoim komputerze głównym.

Gdy wielu programistów współpracuje ze sobą, każdy z nich ma swój własny system testowy do pracy, a następnie przesyła swoje zmiany do systemu kontroli wersji, który śledzi wszystkie zmiany od różnych osób. Zobacz przypowieść git, jak to działa.

System kontroli wersji ułatwia sprawdzenie, kto i co zmienił. Może to sprawdzić każdy, kto jest odpowiedzialny, a następnie scalić go z modułem głównym i przekazać do działu testowania / kontroli jakości. Po pełnym przetestowaniu nowych funkcji zatwierdzi je w celu przesłania do witryny na żywo.

rjmunro
źródło
0

Pierwszą rzeczą do ustalenia jest to, że wiele witryn nie jest zbiorem stron statycznych, nad którymi pracuje jedna lub więcej osób.

Strony, które widzisz jako odwiedzający, nie istnieją w witrynie, aby wprowadzić zmiany, ponieważ w takich witrynach są one automatycznie montowane w locie przez system zarządzania treścią - oprogramowanie działające na serwerze hostingowym, wykorzystujące treści, które witryna internetowa właściciele wyprodukowali. CMS składa stronę z treści ułożonych przy użyciu plików szablonów (CSS i własne pliki konfiguracyjne CMS), a wynikowa strona jest wyświetlana w przeglądarce.

Właściciele witryn dokonują zmian treści i szablonów układu, a nie stron statycznych. W dalszej kolejności twoja odpowiedź zależy od rodzaju zmiany i roli osoby, która to robi:

  1. użytkownik publiczny witryny , zamieszczający blog lub komentarz
  2. jeśli zmieniasz treść na stronie (rola producenta treści, np. dziennikarz pracujący dla właściciela strony) lub
  3. dodawanie i zmienianie funkcjonalności strony (programista strony pracuje dla właściciela strony).

Drupal to darmowy i wydajny system zarządzania treścią, który zapewnia zarządzanie wieloma użytkownikami w celu obsługi aktualizacji treści, co z kolei wpływa na to, co widzą użytkownicy na stronach. Drupal zapewni również środki do zmiany zachowania stron, np. Sposób ich rozmieszczenia lub zamieszczania komentarzy do artykułu, odnosząc się do pierwszego i drugiego rodzaju zmian. Jeśli dokonasz zmian w Drupal, zostaną one zapisane w bazie danych SQL. Drupal zapewnia kontrolę treści / kontroli wersji.

Pełny system kontroli wersji jest potrzebny do bardziej zaangażowanych zmian w zachowaniu strony, trzeciego rodzaju zmiany, np. Wprowadzenia większej liczby funkcji, otrzymywania aktualizacji od Drupala lub naprawiania błędów we własnym dodanym kodzie, oznacza to zmianę kodu i, jak napisali inni. Systemy kontroli wersji, takie jak GIT, Subversion lub Mercurial - wszystkie bezpłatne - służą do zarządzania zmianami wprowadzonymi przez kilku programistów strony.

therobyouknow
źródło