Khi nói đến việc lưu trữ các dự án vứt bỏ cá nhân của bạn, liệu một dịch vụ và cấu trúc dự án có nổi bật không? [đóng cửa]


12

Tôi đang xem Google Code, SourceForge, BitBucket và GitHub, vì họ dường như là những người chơi lớn. Bây giờ, tôi chưa chia nhỏ tất cả các tính năng mà chúng cung cấp, nhưng tôi thực sự đang tìm một nơi để đặt nhiều mã khác nhau mà tôi viết (giải pháp của tôi cho Project Euler, mã mà tôi có thể viết cho Code Golf / Lập trình câu đố Stack Exchange, v.v.) ở một vị trí tập trung.

Vì vậy, câu hỏi đầu tiên của tôi là: Đối với một tình huống như thế này, liệu một dịch vụ có nổi bật trong số các dịch vụ khác không?


Khi tôi đã chọn một dịch vụ, sau đó tôi cần chọn cách tôi sẽ phân phối mã. Có một vài lựa chọn mà tôi thấy để thiết lập các kho và dự án. Một kho lưu trữ duy nhất có thể chứa bất kỳ số lượng dự án nào - ví dụ: tôi có thể có kho lưu trữ "Giải pháp Euler của dự án Tom Owens" cho tất cả các giải pháp khác nhau của tôi cho Project Euler, với các dự án cho từng ngôn ngữ và môi trường trong các thư mục trong kho lưu trữ này, kho lưu trữ khác cho các giải pháp Code Kata khác nhau của tôi và như vậy. Hoặc tôi có thể phá vỡ thứ gì đó tương tự bằng ngôn ngữ (có các giải pháp Project Euler trong Python trong một kho lưu trữ, các giải pháp PE trong Java trong một kho lưu trữ khác và các giải pháp Code Kata C ++ trong kho lưu trữ thứ ba).

Câu hỏi thứ hai của tôi: Có bất kỳ giới hạn hoặc quy ước nào tồn tại để xác định cách bạn nên chia sẻ các mẫu mã mà bạn chọn để mở, đặc biệt là về cách bạn tạo kho lưu trữ của mình không? Tôi nghĩ rằng điều này có thể được quyết định bởi dịch vụ mà bạn chọn (dựa trên các quy ước của cộng đồng).

Câu trả lời:


10

Cai Xô nhỏ.

Họ cung cấp một dịch vụ tuyệt vời, các kho riêng trong gói miễn phí của họ (cộng với công chúng không giới hạn) và khá phản hồi trong trình theo dõi vấn đề của họ.

Tương tự, trừ các kho riêng tư miễn phí, đúng với Github, nhưng tôi cực kỳ không thích git. Đó là một sở thích cá nhân, tôi không ủng hộ git, nếu vì lý do kỳ lạ nào đó bạn thích nó hơn hg, thì Github là một lựa chọn hoàn toàn hợp lệ.

Về cách tổ chức các repos, đừng trộn ngôn ngữ nếu bạn có thể tránh nó. Hầu hết các IDE được xây dựng xung quanh giả định rằng một dự án được xây dựng trên một ngôn ngữ duy nhất (ngoại trừ các dự án web có sự kết hợp của ngôn ngữ + html, css & js). Tôi không nói rằng IDE sẽ không thể đối phó, chỉ là các tính năng như hoàn thành mã sẽ chậm hơn một chút vì IDE sẽ phải tải dữ liệu về cách xử lý từng ngôn ngữ.

Nếu repos của bạn ở chế độ công khai (do đó không giới hạn), tôi sẽ sử dụng repo cho mỗi ngôn ngữ trên mỗi lược đồ dự án, tức là "euler_cpp", "euler_python", v.v. hoàn toàn phụ thuộc vào bạn

Đối với cấu trúc thư mục, cho các giải pháp euler dự án:

  • Một thư mục cho mỗi vấn đề, nếu bạn dự định có các giải pháp khác nhau cho cùng một vấn đề
  • Một tệp cho mỗi vấn đề, cho các giải pháp duy nhất

Chọn một giải pháp phù hợp và gắn bó với nó, nếu đối với một vấn đề bạn có nhiều hơn một giải pháp, hãy chọn cấu trúc đầu tiên ngay cả khi bạn không có giải pháp thứ hai cho bất kỳ vấn đề nào khác.

cập nhật:

Một tệp cho mỗi vấn đề chỉ được đề xuất khi nó thực sự có thể áp dụng và nó được đề xuất như một lược đồ tiềm năng cho các giải pháp cho các vấn đề của người dự án, vì đây là dự án duy nhất được chỉ định trong câu hỏi.

Theo nhận xét của btilly, tôi nói thêm rằng cấu trúc tự nhiên / tốt hơn nên được quyết định cho mỗi ngôn ngữ, vì mỗi ngôn ngữ và / hoặc nền tảng đều có các quy ước và thông lệ riêng về các tệp và thư mục.


1
Cấu trúc thư mục nên phụ thuộc vào ngôn ngữ. Một người sử dụng ngôn ngữ kịch bản thường viết mã trong một tệp mà trong C / C ++ sẽ tự nhiên được ghi trên một số tệp trong một thư mục.
btilly

@btilly Phải. Tôi đang thêm nhận xét của bạn vào câu trả lời ...
yannis

Tôi thực sự đã không tìm kiếm cụ thể cách bố trí các tệp trong một dự án, nhưng làm thế nào để bố trí một số dự án trong dịch vụ được sử dụng.
Thomas Owens

@Thomas Đối với làm thế nào để tổ chức thực hiện các hợp đồng mua ... . Theo truyền thống, bạn sẽ có một dự án cho mỗi kho lưu trữ. Bạn đang tìm kiếm hướng dẫn cụ thể về từng dịch vụ?
yannis

Điều tôi đang tìm kiếm là bất kỳ quy ước nào tồn tại trong mỗi cộng đồng, nếu có bất kỳ điều gì khác thường. Theo kinh nghiệm của tôi, những thứ như BitBucket, GitHub và SourceForge là những cộng đồng có quy tắc và quy ước hơn là các dịch vụ đơn giản (mặc dù một số người sử dụng chúng như dịch vụ).
Thomas Owens

3

Bạn đã quên một tùy chọn - lưu trữ kho lưu trữ của riêng bạn. Thực sự là cách duy nhất để bay cho đến gần đây.

Nếu tôi phải sử dụng một cái ngày hôm nay, tôi sẽ chọn bitbucket chủ yếu vì chúng cho phép repos tư nhân và đá đồng bóng.


Tôi đã làm điều này với VisualSVN mà không có nhiều đau đớn.
Cody Sand

Đã từng trải qua rồi. Bạn thậm chí có thể hiệu quả hơn với các thiết bị Turnkeylinux.org . .
Wyatt Barnett

3

Sau khi sử dụng Google Code, SourceForge và GitHub tại các thời điểm khác nhau, tôi nói GitHub tốt hơn nhiều so với hai cái còn lại:

  • Tập trung hoàn toàn vào công việc thực tế của việc tạo và chia sẻ mã.
  • Xử lý sự cố được bật theo mặc định và không chỉ đơn giản để sử dụng mà còn được kết nối tốt với cả yêu cầu mã và kéo.
  • Newbie trợ giúp là tuyệt vời, chẳng hạn như hướng dẫn từng bước để bắt đầu với một kho lưu trữ và để xử lý các yêu cầu kéo.
  • Không có nghĩa là để phân phối nhị phân; điều này được xử lý tốt hơn bởi các trang web chuyên biệt như PyPI.
  • Wiki đơn giản thay vì phải phát triển trang web của riêng bạn từ đầu.
  • Hỗ trợ thức ăn tuyệt vời - Một nguồn cấp dữ liệu duy nhất cho mọi thứ thú vị đối với tôi.
  • Giao tiếp không chính thức, và do đó có thể đọc được.
  • Phát triển rất tích cực các tính năng mới.

Ngoài ra, Github hoàn hảo để lưu trữ những thứ như giải pháp Project Euler và mã đoạn golf thông qua việc sử dụng các ý chính.
Matt Ellen

1

Các dự án cá nhân của tôi không lớn lắm (nhiều văn bản, không có đồ họa), vì vậy tôi có kho lưu trữ Mercurial với các bậc thầy trong DropBox. Đó là một cách nhanh chóng để bắt đầu với sao lưu (nếu DropBox biến mất, tôi vẫn có một bản sao của kho lưu trữ trên mỗi máy tính mà tôi sở hữu) và tính di động.

Giả sử tôi có một dự án đến điểm mà tôi muốn phân phối nó, tôi luôn có thể chuyển nó sang Bitbucket để có tầm nhìn rõ hơn. Điều này không bao gồm mã cho các giải pháp Dự án Euler.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.