เมื่อพูดถึงการโฮสต์โปรเจ็กต์การทิ้งส่วนบุคคลหนึ่งบริการและโครงสร้างโปรเจ็กต์จะโดดเด่นหรือไม่? [ปิด]


12

ฉันกำลังดู Google Code, SourceForge, BitBucket และ GitHub เนื่องจากดูเหมือนว่าพวกเขาจะเป็นผู้เล่นรายใหญ่ ตอนนี้ฉันยังไม่ได้แยกคุณสมบัติทั้งหมดที่พวกเขามีให้ แต่ฉันกำลังมองหาที่ที่จะใส่รหัสต่าง ๆ ที่ฉันเขียน (โซลูชันของฉันสำหรับ Project Euler, รหัสที่ฉันอาจเขียนสำหรับ Code Golf / การเขียนโปรแกรม Puzzles Stack Exchange และอื่น ๆ ) ในตำแหน่งส่วนกลาง

ดังนั้นคำถามแรกของฉันคือ: สำหรับสถานการณ์เช่นนี้บริการหนึ่งจะโดดเด่นในหมู่คนอื่น ๆ ?


เมื่อฉันเลือกบริการแล้วฉันต้องเลือกวิธีที่ฉันจะแจกจ่ายรหัส มีตัวเลือกน้อยที่ฉันเห็นสำหรับการตั้งค่าที่เก็บและโครงการ ที่เก็บเดียวสามารถเก็บโปรเจ็กต์จำนวนมาก - ตัวอย่างเช่นฉันสามารถมีที่เก็บ "Project Euler Solutions" ของ Tom Owens สำหรับโซลูชันต่าง ๆ ทั้งหมดของฉันกับ Project Euler โดยมีโปรเจ็กต์สำหรับแต่ละภาษาและสภาพแวดล้อมในไดเรกทอรีภายในที่เก็บนี้ สำหรับโซลูชั่น Code Kata ของฉันและอื่น ๆ หรือฉันอาจแบ่งภาษาแบบนั้นลงด้วยภาษา (ให้โซลูชัน Project Euler ใน Python ในที่เก็บหนึ่งโซลูชัน PE ใน Java ในที่เก็บอื่นและโซลูชัน Code Kata C ++ ในที่เก็บที่สาม)

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

คำตอบ:


10

Bitbucket

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

เช่นเดียวกันลบที่เก็บส่วนตัวฟรีเป็นความจริงสำหรับ Github แต่ฉันไม่ชอบคอมไพล์อย่างมาก นั่นเป็นความชอบส่วนตัวฉันไม่ได้ต่อต้าน git หากมีเหตุผลแปลก ๆที่คุณชอบมากกว่า hg Github นั้นเป็นตัวเลือกที่สมบูรณ์แบบ

สำหรับวิธีจัดระเบียบ repos อย่าผสมผสานภาษาหากคุณสามารถหลีกเลี่ยงได้ IDEs ส่วนใหญ่สร้างขึ้นตามสมมติฐานที่ว่าโปรเจ็กต์สร้างบนภาษาเดียว (ยกเว้นสำหรับโปรเจ็กต์เว็บที่คาดว่าจะมีการรวมกันของภาษา + html, css & js) ฉันไม่ได้บอกว่า IDE จะไม่สามารถรับมือได้เพียงว่าคุณสมบัติเช่นการทำให้โค้ดเสร็จสมบูรณ์จะช้าลงเล็กน้อยเนื่องจาก IDE จะต้องโหลดข้อมูลเกี่ยวกับวิธีจัดการแต่ละภาษา

หาก repos ของคุณเป็นแบบสาธารณะ (ไม่ จำกัด จำนวน) ฉันจะไปหา repo ต่อภาษาต่อ schema ของโครงการเช่น "euler_cpp", "euler_python" ฯลฯ มันไม่สำคัญว่าบริการใดที่คุณเลือกวิธีที่คุณจัดระเบียบ repos ของคุณ ขึ้นอยู่กับคุณ

สำหรับโครงสร้างโฟลเดอร์สำหรับโซลูชันตัวจัดการโครงการ:

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

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

อัปเดต:

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

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


1
โครงสร้างโฟลเดอร์ควรขึ้นอยู่กับภาษา คนที่ใช้ภาษาสคริปต์มักเขียนโค้ดในไฟล์เดียวซึ่งใน C / C ++ จะเขียนทับไฟล์ต่าง ๆ ในโฟลเดอร์
btilly

@btilly ถูกต้อง ฉันเพิ่มความคิดเห็นของคุณคำตอบ ...
Yannis

จริง ๆ แล้วฉันไม่ได้มองหาวิธีการจัดวางไฟล์ภายในโครงการโดยเฉพาะ แต่จะกำหนดโครงงานจำนวนมากภายในบริการที่ใช้
โธมัสโอเวนส์

@Thomas สำหรับวิธีการในการจัดระเบียบ Repos ส ... ตามเนื้อผ้าคุณจะมีหนึ่งโครงการต่อที่เก็บ คุณกำลังมองหาคำแนะนำเฉพาะสำหรับแต่ละบริการหรือไม่?
yannis

สิ่งที่ฉันกำลังมองหาคือการประชุมใด ๆ ที่มีอยู่ในแต่ละชุมชนถ้ามีอะไรผิดปกติ จากประสบการณ์ของฉันสิ่งต่าง ๆ เช่น BitBucket, GitHub และ SourceForge นั้นเป็นชุมชนที่มีบรรทัดฐานและอนุสัญญามากกว่าการให้บริการเพียงอย่างเดียว (แม้ว่าบางคนใช้พวกเขาเหมือนบริการ)
โธมัสโอเวนส์

3

คุณลืมหนึ่งตัวเลือก - โฮสต์พื้นที่เก็บข้อมูลของคุณเอง เป็นวิธีเดียวที่จะบินได้จนกระทั่งเมื่อไม่นานมานี้

ถ้าฉันต้องใช้วันนี้ฉันจะเลือกบิตบูทเป็นหลักเพราะพวกเขาอนุญาตให้มี repos ส่วนตัวและหิน Mercurial


ฉันทำสิ่งนี้กับ VisualSVN โดยไม่เจ็บปวดมาก
โคดี้แซน

เคยทำแบบนั้นมาแล้ว คุณสามารถทำงานได้มีประสิทธิภาพยิ่งขึ้นด้วยเครื่องมือTurnkeylinux.org .
ไวแอตต์บาร์เน็ตต์

3

หลังจากใช้ Google Code, SourceForge และ GitHub ตามเวลาต่างกันฉันจะบอกว่า GitHub ดีกว่าอีกสอง:

  • มุ่งเน้นไปที่งานที่แท้จริงของการสร้างและแบ่งปันรหัส
  • การจัดการปัญหาถูกเปิดใช้งานโดยค่าเริ่มต้นและไม่เพียง แต่ใช้งานง่าย แต่เชื่อมต่อได้ดีกับทั้งรหัสและคำขอดึง
  • ความช่วยเหลือของ Newbie นั้นยอดเยี่ยมเช่นคำแนะนำทีละขั้นตอนสำหรับการเริ่มต้นกับที่เก็บและสำหรับการจัดการคำขอดึง
  • ไม่ได้มีไว้สำหรับการกระจายแบบไบนารี สิ่งนี้จัดการได้ดีกว่าโดยไซต์พิเศษอย่าง PyPI
  • วิกิแบบง่ายแทนที่จะต้องพัฒนาหน้าเว็บของคุณเองตั้งแต่เริ่มต้น
  • การสนับสนุนฟีดที่ยอดเยี่ยม - ฟีดเดียวสำหรับทุกสิ่งที่น่าสนใจสำหรับฉัน
  • การสื่อสารที่ไม่เป็นทางการทำให้อ่านได้
  • การพัฒนาคุณสมบัติใหม่อย่างกระตือรือร้น

นอกจากนี้ Github ยังเหมาะสำหรับการจัดเก็บสิ่งต่าง ๆ เช่น Project Euler solution และ code snippets กอล์ฟผ่านการใช้ส่วนสำคัญ
แมตต์เอลเลน

1

โครงการส่วนบุคคลของฉันไม่ใหญ่มาก (มีข้อความจำนวนมากไม่มีกราฟิก) ดังนั้นฉันจึงมีที่เก็บ Mercurial พร้อมต้นแบบใน DropBox เป็นวิธีที่รวดเร็วในการเริ่มต้นการสำรองข้อมูล (หาก DropBox หายไปฉันยังมีสำเนาของที่เก็บในคอมพิวเตอร์แต่ละเครื่องที่ฉันเป็นเจ้าของ) และการพกพา

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

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