Ketika datang untuk meng-hosting proyek membuang-buang pribadi Anda, apakah satu layanan dan struktur proyek menonjol? [Tutup]

12

Saya sedang melihat Google Code, SourceForge, BitBucket, dan GitHub, karena mereka tampaknya adalah pemain besar. Sekarang, saya belum merinci semua fitur yang mereka berikan, tetapi saya benar-benar mencari tempat untuk meletakkan berbagai kode yang saya tulis (solusi saya untuk Project Euler, kode yang mungkin saya tulis untuk Golf Code / Memprogram Puzzles Stack Exchange, dan sebagainya) di lokasi terpusat.

Jadi, pertanyaan pertama saya adalah: Untuk situasi seperti ini, apakah satu layanan menonjol di antara yang lain?


Setelah saya memilih layanan, saya kemudian harus memilih bagaimana saya akan mendistribusikan kode. Ada beberapa opsi yang saya lihat untuk menyiapkan repositori dan proyek. Sebuah repositori tunggal dapat menampung sejumlah proyek - misalnya, saya dapat memiliki repositori "Project Euler Solutions" Tom Owens untuk semua berbagai solusi saya untuk Project Euler, dengan proyek untuk setiap bahasa dan lingkungan dalam direktori dalam repositori ini, repositori lain untuk berbagai solusi Kode Kata saya dan seterusnya. Atau saya bisa memecah sesuatu seperti itu dengan bahasa (punya solusi Project Euler dalam Python dalam satu repositori, solusi PE di Jawa dalam repositori lain, dan solusi Kode Kata C ++ dalam repositori ketiga).

Pertanyaan kedua saya: Apakah ada batasan atau konvensi yang ada untuk menentukan bagaimana Anda harus membagikan sampel kode yang Anda pilih untuk dibuka, terutama dalam hal bagaimana Anda membuat repositori Anda? Pikir saya adalah bahwa ini mungkin ditentukan oleh layanan yang Anda pilih (berdasarkan pada konvensi komunitas).

Thomas Owens
sumber

Jawaban:

10

Bitbucket.

Mereka memberikan layanan yang sangat baik, repositori pribadi dalam paket gratis mereka (plus publik tanpa batas) dan cukup responsif dalam pelacak isu mereka.

Hal yang sama, tanpa repositori pribadi gratis, berlaku untuk Github, tetapi saya sangat tidak menyukai git. Itu pilihan pribadi, saya tidak menganjurkan melawan git, jika karena alasan aneh Anda lebih suka daripada hg, maka Github adalah pilihan yang sangat valid.

Adapun cara mengatur repo, jangan mencampuradukkan bahasa jika Anda bisa menghindarinya. Sebagian besar IDE dibangun berdasarkan asumsi bahwa suatu proyek dibangun berdasarkan satu bahasa (kecuali untuk proyek web di mana kombinasi bahasa + html, css & js diharapkan). Saya tidak mengatakan bahwa IDE tidak akan mampu mengatasinya, hanya saja fitur seperti penyelesaian kode akan sedikit lebih lambat karena IDE harus memuat data tentang bagaimana menangani setiap bahasa.

Jika repo Anda bersifat publik (karenanya tidak terbatas), saya akan mengambil repo per bahasa per skema proyek, yaitu "euler_cpp", "euler_python", dll. Tidak peduli layanan apa yang Anda pilih, bagaimana Anda mengatur repo Anda sepenuhnya terserah Anda.

Adapun struktur folder, untuk solusi euler proyek:

  • Folder per masalah, jika Anda berencana memiliki solusi berbeda untuk masalah yang sama
  • File per masalah, untuk solusi tunggal

Pilih satu yang berlaku dan tetap menggunakannya, jika untuk satu masalah Anda memiliki lebih dari satu solusi, pilih struktur pertama bahkan jika Anda tidak memiliki solusi kedua untuk masalah lain.

memperbarui:

Satu file per masalah diusulkan hanya untuk saat sebenarnya berlaku dan disarankan sebagai skema potensial untuk solusi untuk masalah euler proyek, karena ini adalah satu-satunya proyek yang ditentukan dalam pertanyaan.

Sesuai komentar btilly, saya menambahkan bahwa struktur yang lebih baik / lebih alami harus diputuskan per bahasa, karena setiap bahasa dan / atau platform memiliki konvensi & praktiknya sendiri terkait file dan folder.

yannis
sumber
1
Struktur folder harus bergantung pada bahasa. Seseorang yang menggunakan bahasa scripting sering menulis kode dalam satu file yang dalam C / C ++ secara alami akan ditulis di beberapa file dalam folder.
btilly
@ kanan Benar. Saya menambahkan komentar Anda ke jawabannya ...
yannis
Sebenarnya saya tidak mencari secara khusus bagaimana cara meletakkan file dalam suatu proyek, tetapi bagaimana cara meletakkan sejumlah proyek dalam layanan yang digunakan.
Thomas Owens
@Thomas Adapun cara untuk mengatur repo ... . Secara tradisional Anda akan memiliki satu proyek per repositori. Apakah Anda mencari instruksi spesifik pada setiap layanan?
yannis
Yang saya cari adalah semua konvensi yang ada dalam setiap komunitas, jika ada sesuatu yang luar biasa. Dalam pengalaman saya, hal-hal seperti BitBucket, GitHub, dan SourceForge lebih dari komunitas dengan norma dan konvensi daripada sekadar layanan (meskipun beberapa orang menggunakannya seperti layanan).
Thomas Owens
3

Anda lupa satu opsi - hosting repositori Anda sendiri. Benar-benar satu-satunya cara untuk terbang hingga saat ini.

Jika saya harus menggunakan satu hari ini, saya akan memilih bitbucket terutama karena mereka memungkinkan repo pribadi dan batu mercurial.

Wyatt Barnett
sumber
Saya melakukan ini dengan VisualSVN tanpa banyak rasa sakit.
Cody Sand
Telah ada yang melakukannya. Anda bisa menjadi lebih efektif dengan peranti turnkeylinux.org . .
Wyatt Barnett
3

Setelah menggunakan Google Code, SourceForge, dan GitHub pada waktu yang berbeda, saya akan mengatakan GitHub jauh lebih baik daripada dua lainnya:

  • Berfokus sepenuhnya pada pekerjaan aktual membuat dan berbagi kode.
  • Penanganan masalah diaktifkan secara default, dan tidak hanya mudah digunakan, tetapi terhubung dengan baik dengan permintaan kode dan tarik.
  • Bantuan pemula sangat baik, seperti petunjuk langkah demi langkah untuk memulai dengan repositori dan untuk menangani permintaan tarik.
  • Tidak dimaksudkan untuk distribusi biner; ini lebih baik ditangani oleh situs khusus seperti PyPI.
  • Wikipedia wiki daripada harus mengembangkan halaman web Anda sendiri dari awal.
  • Dukungan umpan sangat baik - Satu umpan untuk semua hal yang menarik bagi saya.
  • Komunikasi informal, dan dengan demikian dapat dibaca.
  • Pengembangan fitur baru yang sangat aktif.
l0b0
sumber
Juga, Github sangat cocok untuk menyimpan hal-hal seperti solusi Project Euler dan cuplikan kode golf melalui penggunaan inti.
Matt Ellen
1

Proyek pribadi saya tidak terlalu besar (banyak teks, tidak ada grafik), jadi saya punya repositori Mercurial dengan para master di DropBox. Ini cara cepat untuk memulai dengan cadangan (jika DropBox hilang, saya masih punya salinan repositori di setiap komputer yang saya miliki) dan portabilitas.

Dengan asumsi saya memiliki proyek yang sampai pada titik di mana saya ingin mendistribusikannya, saya selalu dapat memindahkannya ke Bitbucket untuk visibilitas yang lebih besar. Ini tidak termasuk kode untuk solusi Euler Project.

David Thornley
sumber