หลาย ๆ คนทำงานบนเว็บไซต์เดียวได้อย่างไร


11

ฉันเพิ่งดูเครือข่ายสังคมและนี่อาจเป็นคำถามที่โง่ แต่เป็นไปได้อย่างไรที่คนจำนวนมากทำงานบนเว็บไซต์เดียว ฉันหมายความว่าหากพวกเขากำลังทำงานบนหน้าเดียวกันเป็นไปได้อย่างไร และยังเป็นไปได้หรือไม่ที่จะอัพโหลดไฟล์ไปยังโฮสต์ออนไลน์โดยไม่ต้องทำให้ไฟล์นั้นเป็นจริง


12
การควบคุมแหล่งที่มา นักพัฒนาซอฟต์แวร์แต่ละคนทำงานกับไฟล์ในพื้นที่จากนั้นจะต้องตรวจสอบไฟล์ที่ห้ามผู้พัฒนารายอื่นแทนที่เนื้อหาภายในไฟล์จนกว่าจะได้รับการตรวจสอบในen.wikipedia.org/wiki/List_of_revision_control_software

3
อย่าใช้ฟังก์ชั่นล็อคของการควบคุมเวอร์ชันในไฟล์ยกเว้นว่าเป็นไบนารี
โคลิน Goudie

@gommo: คุณหมายถึง 'binary' หมายถึงอะไร? คุณขยายได้ไหม
Cam

1
@Cam: ในบริบทนี้“ binary” =“ อะไรก็ตามที่ไม่ใช่ไฟล์ข้อความ”
Konrad Rudolph

คำตอบ:


27

โดยปกติเมื่อหลายคนต้องการเปลี่ยนแปลงไฟล์เดียวกันพวกเขาใช้ระบบควบคุมเวอร์ชันบางชนิดเพื่อติดตามว่าใครทำการเปลี่ยนแปลงอะไรบ้าง นอกจากนี้ยังช่วยให้พวกเขาผสานและประสานการเปลี่ยนแปลงที่คนทำ


1
เรียบง่าย แต่สง่างาม
Ryan Hayes

14

มีเว็บไซต์เพียงไม่กี่แห่งเท่านั้นที่มี "หน้า" เพียงหนึ่งเดียวและในกรณีที่หลาย ๆ คนทำงานบนหน้าเดียวกันระบบควบคุมการแก้ไขส่วนใหญ่จะมีกลไกในการรวมการเปลี่ยนแปลงเข้าด้วยกันเป็นไฟล์แบบรวม


เพียงเพื่อจู้จี้จุกจิก :) เว้นแต่ว่ามันจะเป็นระบบที่ใช้ CMS ซึ่งทุกหน้าเป็นเสมือนจริงและมีอยู่ในฐานข้อมูลเท่านั้น
Darknight

6

บุคคลหลายคนทำงานในไฟล์เดียวกัน: การควบคุมแหล่งที่มา

โดยไม่ทำให้พวกเขามีชีวิตอยู่: การพัฒนาเซิร์ฟเวอร์และฐานข้อมูลซึ่งไม่ใช่สาขาเดียวกับเว็บไซต์จริง


3

พวกเขาต้องการผู้จัดการบางประเภท

โดยทั่วไปแล้วทีมจะแบ่งออกเป็นส่วน ๆ ที่ไม่ควรแทรกแซงซึ่งกันและกัน (คำสุดท้ายที่มีชื่อเสียง) ตัวอย่างเช่นหาก foo API ขึ้นอยู่กับผู้ช่วยเหลือจากคนที่ใช้รหัสใน C ความแตกแยกควร (ไม่เกิดขึ้น) แต่ถ้าเป็นเช่นนั้นจะเกิดขึ้นเพราะแอพผู้ช่วยเหลือไม่เข้าใจสิ่งที่คุณกำลังจะส่งผ่าน

นั่นเป็นกรณีคลาสสิกของมือขวาที่ไม่รู้ว่ามือซ้ายกำลังทำอะไรซึ่งแสดงให้เห็นถึงความผิดที่ชัดเจนซึ่งอาจเป็นของฉัน

หากคุณกดรหัสโดยไม่ต้องดึงและแก้ไขการผสานครั้งแรก (ในขณะที่ทำลายสิ่งที่นักพัฒนาคนอื่นทำโดยลบสิ่งที่คุณไม่ได้เขียน) ก่อนที่จะสื่อสารกับผู้อื่นที่แก้ไขแบบเดียวกันฉันจะให้แรงดันสูง หลังจากนั้นฉันจะพาคุณออกไปทานอาหารค่ำ (เพื่อทำกระสุนสำหรับ 1.21 กิกะวัตต์) และให้แน่ใจว่าคุณกินอาหารที่บ้าน่าขยะแขยงและแปลกใหม่ คิดว่า ... คลิงออน

จากนั้นคุณจะขอบคุณฉันสำหรับสิ่งนั้นและไม่เคยทำมันอีกเลย

แน่นอนว่าคุณสามารถแทนที่'พูดคุย' ปกติได้ที่นี่ แต่ความสนุกคืออะไร


1

คุณอาจพบว่าพวกเขามีนักพัฒนาที่ทำงานในหน้าต่างๆ โดยปกติแม่แบบหรือต้นแบบของไซต์จะถูกสร้างขึ้นเพื่อให้แต่ละหน้ามีรูปลักษณ์และความรู้สึกเหมือนกัน ตัวอย่างเช่นหาก บริษัท ใช้ Source Control เช่น Team Foundation Server นักพัฒนาแต่ละคนจะตรวจสอบในซอร์สโค้ดของพวกเขาและสิ่งนี้จะช่วยให้นักพัฒนาซอฟต์แวร์รายอื่นได้รับการเปลี่ยนแปลงล่าสุด


2
TFS เป็นสิ่งที่ดีที่สุดสำหรับตัวอย่างของระบบการจัดการการควบคุมแหล่งที่มา? มาเดี๋ยวนี้.
Matt Phillips

1

พวกเขาสามารถ:

  • เขียนโปรแกรมในโปรแกรมแก้ไขผ่านเซสชัน SSH (เช่น vi, vim, nano, emacs)
  • แก้ไขผ่าน FTP ด้วย IDE (เช่น emacs ,padpad ++)
  • การใช้ระบบควบคุมเวอร์ชัน

สำหรับคนสุดท้ายตอนนี้ผู้คนใช้การควบคุมเวอร์ชันแบบกระจายเช่นmercurial , gitและbazarแทนการควบคุมแบบรวมศูนย์เช่น CVS และการโค่นล้ม สำหรับ Mercurial ให้ตรวจสอบbitbucket.orgและgoogle code project hostingสำหรับ git ตรวจสอบgithubซึ่งเป็นเว็บไซต์ที่โฮสต์รหัสเพื่อให้คุณแบ่งปันความร่วมมือโดยไม่จำเป็นต้องติดตั้งเซิร์ฟเวอร์

นอกจากนี้:

  • หากต้องการเรียนรู้ Mercurial ให้ไปที่http://hginit.com/
  • หากต้องการเรียนรู้ git ไปที่http://progit.org/book/

1

การพัฒนาเพจด้วยส่วนประกอบ VS Pages โดยรวม

ผมเคยทำงานในหลายเว็บไซต์ขนาดใหญ่และวิธีที่คนหลายคนที่ทำงานอยู่ในหน้าเดียวกันคือเว็บไซต์ส่วนใหญ่จะเป็นพอร์ทัล โดยทั่วไปแล้วเว็บไซต์จำนวนมากเช่น Facebook มีการควบคุมมากมายเช่นภาพถ่ายโฆษณาพื้นที่ประกาศเล็กน้อย ฯลฯ ซึ่งหลายคนจะทำงาน นอกจากนี้ส่วนหัวและท้ายกระดาษโดยทั่วไปจะแตกเป็นไฟล์รวมของตัวเอง การแบ่งไซต์ออกเป็นส่วนประกอบที่ไม่เพียง แต่สามารถทำงานได้เป็นรายบุคคลเท่านั้น แต่ยังสามารถใช้ซ้ำได้ในหลายไซต์และหลายพื้นที่


คุณรู้ว่าเว็บพอร์ทัลคืออะไร? (คำใบ้มันไม่ใช่การตอบโต้กับผู้ใช้ได้คิดสมัยเก่าของ Yahoo)
Javier

ใช่ฉันพยายามใช้ตัวอย่างที่แสดงว่าเทคนิคหนึ่งคือการแบ่งหน้าเป็นองค์ประกอบ ตัวอย่างที่ดีคือพอร์ทัลยกเว้นผู้ใช้สามารถดร็อปวิดเจ็ตพอร์ทัลเข้า / ออกในขณะที่การสร้างเพจโดยใช้คอมโพเนนต์สามารถมาจากฝั่ง dev เท่านั้น พอร์ทัลเป็นตัวอย่างที่ดี
Ryan Hayes

0

คุณสามารถใช้ระบบการซิงค์แบบสดๆเช่น OneNote ใช้ .... นอกจากนี้คุณสามารถอัปโหลดไฟล์ไปยังโฮสต์ แต่ไม่ได้เชื่อมโยงโดเมนหลักของคุณกับพวกเขา


0

อย่าลืมว่าอาจมีระบบการจัดการเนื้อหาที่บางเว็บไซต์ใช้เพื่อให้บริการเนื้อหาดังนั้นแม้ว่าคุณอาจคิดว่าบางสิ่งเป็นหน้าเว็บมันเป็นสิ่งที่ผสมผสานกันอย่างแท้จริง

ระบบการจัดการเนื้อหาหลายระบบจะมีคุณสมบัติการแสดงตัวอย่างเพื่ออนุญาตให้ผู้เขียนสามารถดูเนื้อหาก่อนที่จะเปิดให้สาธารณชนเข้าถึงได้


0

เครื่องมือทั้งหมดที่กล่าวมามีประโยชน์ แต่สำหรับฉันแล้วมันฟังดูคล้ายกับ OP มากกว่าที่จะถามว่าคนอื่นไม่ให้เข้าไปในเส้นทางของคนอื่นได้อย่างไร

นอกเหนือจากการใช้เครื่องมือในการแก้ปัญหาความขัดแย้งเหล่านั้นแล้วมักจะมีการแบ่งเป็นกองหรือชั้นเพื่อช่วยหลีกเลี่ยงความขัดแย้งในตอนแรก

ด้วยวิธีการซ้อนกันคุณแต่ละคนทำงานกับคุณสมบัติที่ไม่เกี่ยวข้อง (หนึ่งคนอาจทำการสมัครบัญชีและอีกคนอาจทำการส่งเนื้อหา) จะมีความขัดแย้งบางอย่างที่ทั้งสองอาจข้าม (บันทึกผู้ใช้ในตัวอย่างนี้อาจ) และที่ได้รับการจัดการเป็นส่วนหนึ่งของการผสานการสร้างถัดไป

ด้วยวิธีการระดับที่มีคนกำลังสร้างบิตส่วนในสุดเมื่อพวกเขาได้รับส่วนหนึ่งเสร็จแล้วอีกคนหนึ่งเขียนบิตที่นั่งอยู่บนยอดเหล่านั้นและอื่น ๆ ความขัดแย้งที่เกิดขึ้นที่นี่มักจะเกิดขึ้นเมื่อมีบางสิ่งที่จะต้องถูกส่งกลับไปที่ระดับต่ำกว่าสำหรับการปรับเปลี่ยนในภายหลังซึ่งอาจส่งผลกระทบต่อระดับถัดไปข้างต้นและได้รับการจัดการในลักษณะที่คล้ายกัน

ส่วนเกี่ยวกับไฟล์ที่ได้รับการโปรโมต แต่ไม่สดมีหลากหลายคำตอบ / การใช้งาน แต่เซิร์ฟเวอร์แยกต่างหากเพื่อดูตัวอย่างบนโหมดแสดงตัวอย่างเฉพาะหรือคลาสผู้ใช้หรือการให้สิทธิ์ที่ดึงเวอร์ชั่นเฮดเดอร์ในขณะที่ผู้ใช้ทั่วไป สิ่งที่ฉันมักจะเห็นบ่อยที่สุด


0

ในการตอบส่วนที่สองก่อนวิธีหนึ่งในการอัปโหลดไฟล์โดยไม่ทำให้มันสดอยู่คือตั้งชื่อที่จะไม่เชื่อมโยง เช่นสร้างหน้าใหม่ให้index.htmlอัปโหลดด้วยชื่อindex2.htmlจากนั้นไปที่http://yoursite.com/index2.htmlและตรวจสอบว่าใช้งานได้ดี เมื่อคุณมีความพึงพอใจ, index.htmlเปลี่ยนชื่อไป นี่เป็นเพียงไซต์ขนาดเล็กมากและมันยุ่งเล็กน้อยถ้าคุณต้องการเปลี่ยนบางสิ่งภายนอกหน้าเช่นไฟล์รูปภาพ CSS หรือ JavaScript เพราะคุณต้องมีimage2.pngแล้วสิ่งindex2.htmlที่แตกต่างก็คือชี้ไปที่ ภาพใหม่

โปรแกรมเมอร์มืออาชีพมักจะมีระบบทดสอบเพื่อทำงานแล้วอัปโหลดไปยัง "โฮสต์ออนไลน์" ของพวกเขาเมื่อพวกเขาพอใจกับการเปลี่ยนแปลง คุณสามารถตั้งค่าเว็บเซิร์ฟเวอร์ในคอมพิวเตอร์ของคุณที่จะให้บริการเฉพาะหน้าเว็บในเครือข่ายท้องถิ่นของคุณ แน่นอนคุณสามารถใช้คอมพิวเตอร์แยกต่างหากหรือ (เหมือนฉัน) เครื่องเสมือนที่ทำงานบนคอมพิวเตอร์หลักของคุณ

เมื่อนักพัฒนาหลายคนทำงานร่วมกันแต่ละคนจะมีระบบทดสอบของตัวเองเพื่อทำงานจากนั้นอัปโหลดการเปลี่ยนแปลงไปยังระบบควบคุมเวอร์ชันที่ติดตามการเปลี่ยนแปลงทั้งหมดจากบุคคลต่าง ๆ ทั้งหมด ดูคำอุปมาเรื่องคอมไพล์สำหรับวิธีการทำงานของมัน

ระบบควบคุมเวอร์ชันทำให้ง่ายต่อการดูว่าใครเปลี่ยนอะไรและทำไม สิ่งนี้สามารถตรวจสอบได้โดยใครก็ตามที่รับผิดชอบแล้วรวมมันเข้ากับต้นแบบและมอบให้กับแผนกทดสอบ / QA เมื่อพวกเขาได้ทดสอบคุณสมบัติใหม่อย่างสมบูรณ์แล้วพวกเขาจะอนุมัติมันสำหรับการอัปโหลดไปยังเว็บไซต์สด


0

สิ่งแรกที่ต้องสร้างก็คือไซต์จำนวนมากไม่ได้รวบรวมหน้าแบบสแตติกที่ทำงานโดยบุคคลตั้งแต่หนึ่งคนขึ้นไป

หน้าเว็บที่คุณเห็นในฐานะผู้เยี่ยมชมไม่มีอยู่บนเว็บไซต์เพื่อทำการเปลี่ยนแปลงเช่นเดียวกับในเว็บไซต์ดังกล่าวที่มีการรวบรวมโดยอัตโนมัติในระบบการจัดการเนื้อหา - ซอฟต์แวร์ที่ทำงานบนเซิร์ฟเวอร์โฮสต์โดยใช้เนื้อหาที่เว็บไซต์ เจ้าของได้ผลิต CMS ประกอบหน้าจากเนื้อหาที่จัดวางโดยใช้ไฟล์เทมเพลต (CSS และไฟล์กำหนดค่าของ CMS) และหน้าผลลัพธ์จะถูกส่งไปยังเบราว์เซอร์ของคุณ

เจ้าของไซต์ทำการเปลี่ยนแปลงเนื้อหาและเทมเพลตโครงร่างแทนที่จะเป็นหน้าสแตติก การตอบคำถามของคุณขึ้นอยู่กับประเภทของการเปลี่ยนแปลงและบทบาทของคนที่ทำมัน:

  1. ผู้ใช้ไซต์สาธารณะโพสต์บล็อกหรือแสดงความคิดเห็น
  2. หากคุณกำลังเปลี่ยนเนื้อหาบนไซต์ (บทบาทผู้สร้างเนื้อหาเช่นนักข่าวทำงานให้กับเจ้าของเว็บไซต์) หรือ
  3. การเพิ่มและการเปลี่ยนฟังก์ชั่นของเว็บไซต์ (ผู้พัฒนาเว็บไซต์ทำงานให้กับเจ้าของเว็บไซต์)

Drupal เป็นระบบจัดการเนื้อหาที่ฟรีและมีประสิทธิภาพซึ่งให้การจัดการแบบหลายผู้ใช้เพื่อจัดการกับการอัพเดตเนื้อหาซึ่งจะส่งผลต่อสิ่งที่ผู้เข้าชมหน้าเว็บเห็น Drupal จะจัดเตรียมวิธีการในการปรับเปลี่ยนพฤติกรรมของหน้าเว็บเช่นวิธีการจัดวางหรือหากสามารถโพสต์ข้อเสนอแนะในบทความโดยระบุประเภทการเปลี่ยนแปลงที่ 1 และ 2 หากทำการเปลี่ยนแปลงใน Drupal สิ่งเหล่านี้จะถูกเก็บไว้ในฐานข้อมูล SQL Drupal ให้การควบคุมเวอร์ชัน / การแก้ไขเนื้อหาบางส่วน

จำเป็นต้องมีระบบควบคุมเวอร์ชันเต็มสำหรับการเปลี่ยนแปลงพฤติกรรมของไซต์ที่เกี่ยวข้องการเปลี่ยนแปลงประเภทที่ 3 เช่นการแนะนำคุณสมบัติเพิ่มเติมการรับการอัพเดตจาก Drupal หรือการแก้ไขข้อผิดพลาดของรหัสที่เพิ่มเข้ามาเองซึ่งหมายความว่าการเปลี่ยนรหัส ระบบควบคุมเวอร์ชันเช่น GIT, การโค่นล้มหรือ Mercurial - ฟรีทั้งหมด - ใช้เพื่อจัดการการเปลี่ยนแปลงที่ทำโดยนักพัฒนาหลายคนของเว็บไซต์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.