Apa itu repositori di Linux. Mengkonfigurasi repositori Ubuntu.

Repositori biasanya mengacu pada lokasi penyimpanan, seringkali untuk keselamatan atau pelestarian.
- Wikipedia.

Inilah cara Wikipedia menjelaskan repositori. Kebetulan itu, tidak seperti beberapa kata terpanas lainnya, dengan siapa kita berurusan, istilah ini dengan sempurna menyampaikan esensinya. Repositori adalah konsep penyimpanan pengumpulan untuk entitas tipe tertentu.

Repositori sebagai koleksi

Mungkin perbedaan repositori yang paling penting adalah bahwa mereka adalah koleksi objek. Mereka tidak menggambarkan penyimpanan dalam database atau caching atau memecahkan yang lain masalah teknis. Repositori merupakan koleksi. Bagaimana Anda menyimpan koleksi ini - itu hanya detail dari implementasi.

Saya ingin membuat kejelasan dalam pertanyaan ini. Repositori adalah koleksi. Koleksi yang berisi entitas dan dapat memfilter dan mengembalikan hasil kembali tergantung pada persyaratan aplikasi Anda. Di mana dan bagaimana ia menyimpan objek ini adalah perwujudan.

Di dunia PHP, kita terbiasa dengan siklus kueri / respons, yang berakhir dengan kematian proses. Segala sesuatu yang datang dari luar dan tidak selamat - dibiarkan selamanya, pada saat ini. Jadi, tidak semua platform bekerja dengan cara ini.

Cara yang baik untuk memahami bagaimana repositori bekerja adalah presentasi aplikasi Anda terus-menerus bekerja, dalam hal ini semua objek tetap dalam memori. Probabilitas kegagalan kritis dan reaksi terhadap mereka dalam percobaan ini dapat diabaikan. Bayangkan Anda memiliki instance Singleton dari repositori untuk entitas anggota, anggota Anggota.

Kemudian buat objek anggota baru dan tambahkan ke repositori. Kemudian, Anda meminta dari repositori semua barang yang disimpan di dalamnya dengan cara ini Anda akan menerima koleksi yang berisi objek ini di dalamnya. Mungkin Anda ingin mendapatkan objek tertentu dengan ID-nya, itu juga memungkinkan. Sangat mudah membayangkan bahwa di dalam repositori objek-objek ini disimpan dalam array atau, bahkan lebih baik, dalam objek-koleksi.

Sederhananya, repositori adalah jenis koleksi khusus yang akan Anda gunakan lagi dan lagi untuk menyimpan dan menyaring esensi.

Interaksi dengan repositori

Bayangkan kita menciptakan esensi anggota. Kami memberikan objek pada keadaan yang diperlukan, maka permintaan berakhir dan objek menghilang. Pengguna mencoba masuk dalam aplikasi kami dan tidak bisa. Jelas, kita perlu membuat objek ini tersedia untuk bagian lain dari aplikasi.

$ Anggota \u003d Anggota :: Registrasi ($ email, $ kata sandi); $ AnggotaRepositori-\u003e Simpan ($ Anggota);
Sekarang kita dapat mengakses objek nanti. Seperti itu:

$ Anggota \u003d $ AnggotaRepositori-\u003e Findbyemail ($ email); // atau $ anggota \u003d $ MemberSrepository-\u003e getall ();
Kita dapat menyimpan objek di satu bagian dari aplikasi kami, dan kemudian mengekstraknya dari yang lain.

Haruskah repositori menciptakan entitas?

Anda dapat memenuhi contoh-contoh seperti itu:

$ Anggota \u003d $ AnggotaRepositori-\u003e Buat ($ email, $ kata sandi);
Saya telah melihat banyak argumen yang mengarahkan ini, tetapi sama sekali tidak tertarik dengan pendekatan serupa.

Pertama-tama, repositori adalah koleksi. Saya tidak yakin mengapa koleksinya harus koleksi dan pabrik. Saya mendengar argumen seperti "Jika Anda memperlakukan lebih nyaman, lalu mengapa tidak menggantung pawang pada tindakan seperti itu"?

Menurut pendapat saya, ini anti-derai. Mengapa tidak membiarkan kelas anggota, memiliki pemahamannya sendiri bagaimana dan mengapa objek tersebut dibuat atau mengapa tidak membuat pabrik terpisah untuk membuat objek yang lebih kompleks?

Jika kita memperlakukan repositori kita sebagai koleksi sederhana, itu berarti bahwa mereka tidak perlu memuatnya dengan fungsional berlebih. Saya tidak ingin kelas koleksi yang berperilaku seperti pabrik.

Apa manfaat menggunakan repositori?

Keuntungan utama dari repositori adalah mekanisme penyimpanan abstrak untuk koleksi entitas.

Dengan menyediakan antarmuka anggota Anggota, kami dilepaskan oleh tangan pengembang, yang sudah akan memutuskan bagaimana dan di mana menyimpan data.

Kelas ArraymemberRepositori mengimplementasikan anggota Anggota ($ anggota swasta \u003d; Simpan fungsi publik (Anggota $ Anggota) ($ this-\u003e Anggota [(string) $ Anggota-\u003e GetID ()] \u003d $ Anggota () (Return $ -\u003e Anggota;) Fungsi Publik FindByid (jika (if (isset) $ Anggid]) (mengembalikan $ this-\u003e

Kelas RedismemberRepositori mengimplementasikan Anggota (Simpan Fungsi Publik (Anggota $ Anggota) (// ...) // Anda mendapatkan intinya)
Dengan demikian, sebagian besar aplikasi kami hanya tahu konsep abstrak anggota Anggota dan penggunaannya dapat dipisahkan dari implementasi aktual. Ini sangat banyak.

Apa yang termasuk repositori: Domain atau Lapisan Layanan Aplikasi?

Jadi, ini pertanyaan yang menarik. Pertama, mari kita tentukan bahwa lapisan layanan aplikasi adalah arsitektur multi-level yang bertanggung jawab untuk detail implementasi aplikasi spesifik, seperti integritas basis data, dan berbagai implementasi bekerja dengan protokol Internet (mengirim surel, API), dll.

Kami mendefinisikan lapisan domain istilah sebagai lapisan arsitektur multi-level, yang bertanggung jawab atas aturan bisnis dan logika bisnis.

Di mana repositori akan jatuh pada pendekatan ini?

Mari kita lihat contoh kita. Ini kode, ditulis sebelumnya.

Kelas ArraymemberRepositori mengimplementasikan anggota Anggota ($ anggota swasta \u003d; Simpan fungsi publik (Anggota $ Anggota) ($ this-\u003e Anggota [(string) $ Anggota-\u003e GetID ()] \u003d $ Anggota () (Return $ -\u003e Anggota;) Fungsi Publik FindByid (jika (jika (Isset) $ Anggid])) (mengembalikan $ this-\u003e anggota [(string) $ Anggota];)))
Dalam contoh ini, saya melihat banyak detail penjualan. Mereka pasti harus memasuki lapisan aplikasi

Dan sekarang mari kita hapus semua detail implementasi kelas ini ...

Class ArraymemberRepository mengimplementasikan Anggota Anggota (Simpan Fungsi Publik (Anggota $ Anggota) () Public Function GetAll () () Fungsi Publik FindByid (Anggota $ Anggota) ()) ())
Hmm ... itu mulai terlihat akrab ... apa yang kita lupakan?

Mungkin kode yang dihasilkan mengingatkan Anda akan hal itu?

FunRepositori Anggota Antarmuka (Anggota Anggota); Fungsi Publik Getall (); Fungsi Publik FindByid (Anggota $ Anggota);)
Ini berarti bahwa antarmuka berada di batas lapisan. Dan pada kenyataannya, mungkin berisi konsep spesifik domain, tetapi realisasi itu sendiri seharusnya tidak melakukan itu.

Antarmuka repositori termasuk dalam lapisan domain. Implementasi mengacu pada lapisan aplikasi. Ini berarti bahwa kita bebas ketika membangun arsitektur pada tingkat lapisan domain tanpa perlu tergantung pada lapisan layanan.

Kebebasan mengubah gudang data

Setiap kali Anda mendengar percakapan seseorang tentang konsep desain berorientasi objek, Anda mungkin bisa mendengar sesuatu seperti "... dan kamu memiliki kesempatan untuk mengubah satu implementasi penyimpanan data ke yang lain di masa depan ..."

Menurut pendapat saya, itu tidak benar ... Saya bahkan akan mengatakan bahwa ini adalah argumen yang sangat buruk. Masalah terbesar dari menjelaskan konsep repositori adalah bahwa pertanyaan itu segera "Apakah kamu benar-benar ingin melakukannya?". Saya tidak ingin pertanyaan seperti itu memengaruhi penggunaan pola repositori.

Setiap aplikasi berorientasi objek yang cukup baik secara otomatis cocok untuk pendahuluan di atas. Konsep sentral dari oop adalah enkapsulasi. Anda dapat menyediakan akses ke API dan menyembunyikan implementasi.

Lagi pula, Anda tidak akan benar-benar beralih dari satu ORM ke yang lain dan kembali. Tetapi bahkan jika Anda ingin melakukannya, setidaknya Anda akan memiliki kesempatan untuk melakukannya. Namun, mengganti implementasi repositori akan menjadi nilai tambah besar saat pengujian.

Pengujian saat menggunakan pola "repositori"

Yah, semuanya sederhana di sini. Mari kita asumsikan bahwa Anda memiliki objek yang memproses sesuatu seperti pendaftaran peserta ...

Kelas RegisterMemberhandler (Private $ anggota; fungsi publik __konstruksi ($ this-\u003e anggota \u003d $ anggota;) Pegangan fungsi publik (registerMember $ komando) ($ anggota \u003d anggota ($ Perintah-\u003e Kata Sandi) ; $ this-\u003e Anggota-\u003e Simpan ($ Anggota);))
Selama operasi berikutnya, saya dapat mengambil instance dari doktrinememberRepository. Namun, selama pengujian, mudah untuk menggantinya dengan instance dari arraymemberrepository. Mereka berdua menerapkan antarmuka yang sama.

Kasus uji yang disederhanakan mungkin terlihat seperti ini ...

$ repo \u003d arraymember baru; $ Handler \u003d RegisterMemberhandler baru ($ repo); $ Permintaan \u003d $ this-\u003e creatusequest (["email" \u003d\u003e " [Dilindungi Email]"," Kata Sandi "\u003d\u003e" AngelOfdestructic "]); $ handler-\u003e menangani (daftarMember :: menggunakan formulir ($ permintaan)); AssertCount (1, $ RepoMail (" [Dilindungi Email]"));
Dalam contoh ini, kami menguji pawang. Kita tidak perlu memeriksa kebenaran penyimpanan data repositori dalam database (atau di mana lagi). Kami menguji perilaku spesifik objek ini: Daftarkan pengguna berdasarkan data formulir, dan kemudian meneruskannya ke repositori.

Koleksi atau kondisi

Dalam buku yang mengimplementasikan desain yang digerakkan oleh domain Vaughn Vernon membuat perbedaan antara jenis repositori. Gagasan repositori berorientasi koleksi (Orig. - Repositori berorientasi pengumpulan) Fakta bahwa bekerja dengan repositori adalah dalam memori, seperti dengan array. Repositori, berorientasi penyimpanan (Orig. - repositori berorientasi kegigihan) Berisi gagasan bahwa itu akan menjadi semacam sistem penyimpanan yang lebih dalam dan dipikirkan. Intinya, perbedaan hanya dalam nama.

// berorientasi pengumpulan $ MemberSrepository-\u003e Tambah ($ Anggota); // vs Berorientasi Berorientasi $ Anggota-\u003e Simpan ($ Anggota);
Saya perhatikan bahwa ini hanya pendapat saya dan sejauh ini saya mematuhnya dalam hal penggunaan repositori. Namun, saya ingin memperingatkan Anda memikirkannya. Pada akhirnya, saya fokus pada mereka seperti pada koleksi objek dengan tugas yang sama dengan koleksi objek lainnya.

informasi tambahan

Membuat proyek di GitHub tentang repositori yang, tentu saja, harus menonton. Di dalam Anda akan menemukan contoh pekerjaan dengan penyimpanan dalam memori dan file.

HASIL

Saya pikir itu ...
  1. ... Penting untuk memberikan repositori tugas tunggal untuk berfungsi sebagai kumpulan objek.
  2. ... Kita seharusnya tidak menggunakan repositori untuk membuat instance objek baru.
  3. ... Kita harus menghindari penggunaan repositori sebagai cara transisi dari satu teknologi ke teknologi lain, karena mereka memiliki banyak keuntungan, yang sulit ditolak.
Di masa depan, saya berencana untuk menulis beberapa poin lagi tentang repositori, seperti caching dari hasil menggunakan dekorator, permintaan menggunakan pola kriteria, peran repositori dalam pemrosesan operasi batch pada jumlah besar benda.

Jika Anda memiliki pertanyaan atau jika pendapat Anda berbeda dari saya, silakan tulis komentar di bawah ini.

Seperti biasa, saya berniat memperbarui artikel untuk menyinkronkannya dengan pendapat saya saat ini.

Metode untuk menginstal program di sistem Windows Dan Linux (dan juga BSD) berbeda. Dapat dikatakan bahwa bahkan ideologi pemasangan program berbeda. Pengguna Windows Terbiasa bahwa program ini hadir dalam bentuk file instalasi (atau grup file). File-file ini perlu diunduh dari Internet atau dapatkan CD / DVD. Untuk Linux, metode ini tidak warasteristik, meskipun juga memiliki.

Sebenarnya, repositori adalah toko file . Sistem Linux. Ini menyiratkan bahwa seseorang yang ingin membangun program akan beralih ke repositori di mana program ini disimpan. Itu dilakukan melalui terminal.

Misalnya, saya ingin menginstal di saya Linux Mint. 17.1 Program Virtualisasi Kotak Virtual. Saya meluncurkan terminal dan memperkenalkan perintah berikut:

sudo apt-get install virtualbox-4.3

Instalasi harus dilakukan dengan hak superadeministrator, jadi kami menambahkan kata sudo ke perintah. Terminal menanyakan kata sandi Menteri Super kami dan menginformasikan informasi tentang paket yang akan Anda instal.


Menginstal VirtualBox melalui terminal

Setelah persetujuan pengguna, sistem akan mulai memompa file Dari penyimpanan jaringan di Internet. Jadi Anda tidak perlu pergi ke situs program dan mengunduh file instalasi. secara manual.

Proses instalasi itu sendiri adalah sebagai berikut:


Menginstal VirtualBox di Linux Mint

Setelah instalasi, program dapat ditemukan dalam daftar program yang diinstal lainnya.


VirtualBox di Linux Mint

Siapa yang bisa membuat repositori?

Siapa saja. Sedangkan untuk repositori, sistem operasi diambil dari mana repositori, ini adalah, pertama-tama, repositori sistem itu sendiri. Program terpisah Juga memiliki repositori (versi program pada mereka, sebagai aturan, baru-baru ini), tetapi fasilitas penyimpanan seperti itu perlu ditambahkan dalam pengaturan sistem operasi secara manual. Apakah itu melalui manajer paket atau melalui perintah yang sesuai di terminal.

Seperti yang Anda lihat, dalam kasus saya, file virtualbox sudah ada di repositori saya, jadi saya tidak perlu melakukan tindakan tambahan. Apa yang harus saya lakukan jika tidak ada program seperti itu dalam repositori program semacam itu? Tambahkan pengembang repositori dari program itu sendiri.

Misalnya, menemukan "Sumber Aplikasi" di menu Linux Mint, dan ada bagian "Repositori Tambahan".


Menambahkan repositori di Linux Mint

Atau berbicara di terminal

sudo sh -c "echo" deb http://download.virtualbox.org/virtualbox/debian contrib tepercaya "\u003e\u003e /etc/apt/sources.list"

Ini adalah jalur ke repositori virtualbox tertentu. Dalam hal program lain, jalur akan berbeda. Setelah itu, perbarui paket cache:

Sudo apt-get update

Saat menambahkan referensi ke repositori melalui manajer paket, itu juga harus baik dEB [Tautan ke Repositori Internet]. Selain itu, Anda dapat melihat bagian dengan repositori PPA dalam layar. Mereka ditugaskan.

Pada hal ini, mungkin, semuanya. Dan ingat, jinak penguin tidak sesulit kelihatannya.

Gudang

Repositori, penyimpanan - Tempat di mana setiap data disimpan dan didukung. Paling sering, data dalam repositori disimpan sebagai file yang tersedia untuk distribusi lebih lanjut melalui jaringan.

Ada repositori untuk menyimpan program yang ditulis dalam bahasa yang sama (misalnya, CPAN untuk Perl) atau dimaksudkan untuk satu platform. Banyak modern oS.Seperti opensolaris, freebsd dan sebagian besar distribusi Linux memiliki repositori resmi, tetapi juga memungkinkan Anda untuk menginstal paket dari tempat lain. Sebagian besar repositori gratis, tetapi beberapa perusahaan menyediakan akses ke repositori mereka sendiri untuk berlangganan berbayar.

Repositori digunakan dalam sistem kontrol versi, mereka menyimpan semua dokumen bersama dengan sejarah perubahan mereka dan informasi layanan lainnya. Subversi Komunitas Rusia merekomendasikan penggunaan alih-alih istilah gudang Istilah penyimpanan, karena sepenuhnya memenuhi kedua terjemahan langsung dari kata "repositori" dan konsepnya.

Ada yang berbeda sistem otomatis Menciptakan repositori. Salah satu jenis repositori: penyimpanan on / dvd - disk Instalasi Untuk paket perangkat lunak tertentu.

Lihat juga

Tautan


Foundation Wikimedia. 2010.

Tonton apa itu "repositori" dalam kamus lain:

    Lokasi di mana setiap data disimpan dan didukung. Paling sering, data dalam repositori disimpan sebagai file yang tersedia untuk distribusi lebih lanjut melalui jaringan. Repositori digunakan dalam sistem manajemen versi, semuanya disimpan di dalamnya ... ... Kamus istilah bisnis

    gudang - Penyimpanan objek basis data. Subjek teknologi Informasi Secara umum, en repositori ...

    - (eastr., LAT. Repono, Repositum kembali ke tempat, untuk pergi) alat kebidanan yang digunakan untuk mengisi bahan bakar pupil ... Kamus Medis Hebat.

    Repositori: (Gudang Repositori Bahasa Inggris, penyimpanan) Repositori Lihat juga repositori Gunung Yucca Penyimpanan Kering Amerika Bahan Bakar Nuklir ... Wikipedia

    repositori Paket Perangkat Lunak (Repositori) - 3.17 repositori paket perangkat lunak (Repositori): seperangkat paket perangkat lunak dan informasi metaografik tentang mereka. Repositori disebut ditutup jika dimungkinkan untuk menghitung penutupannya untuk setiap paket biner, I.E. Anda dapat memasang tas ... ... Ketentuan Direktori Kamus dari Regulasi dan Dokumentasi Teknis

    Gunung Yucca ... Wikipedia

    Istilah ini juga memiliki nilai lain, lihat SISIF (Nilai). Karakter sisif mitologi Yunani. SISIF (... Wikipedia

    repositori Pusat - Sistem penyimpanan pusat Sistem ini Ini dimaksudkan untuk menyimpan berbagai data, termasuk biografi atlet, jumlah medali, jadwal acara, laporan layanan transportasi dan informasi tentang pengunjung. [Departemen ... ... Direktori Teknis Penerjemah

    Institut arsip elektronik repositori untuk penyimpanan jangka panjang, akumulasi dan memastikan jangka panjang dan dapat diandalkan akses terbuka Hasil penelitian ilmiah dilakukan di institusi. Kelembagaan Universitas ... ... Wikipedia

    Lokasi repositori di mana setiap data disimpan dan didukung. Paling sering, data dalam repositori disimpan sebagai file yang tersedia untuk distribusi lebih lanjut melalui jaringan. Contoh repositori dapat berfungsi sebagai repositori perangkat lunak gratis ... ... Wikipedia

Buku

  • Ruby on Rails untuk pemula. Kami mempelajari pengembangan aplikasi web berdasarkan rel, Hartl Michael. Ruby on Rails, digunakan oleh berbagai perusahaan, seperti Twitter, GitHub, Disney dan Yellow Pages, adalah salah satu kerangka kerja paling populer untuk mengembangkan aplikasi web, tetapi ...

Setelah kami mencoba menjawab pertanyaan Anda dari apa dan apa, pasti Anda akan menemukan definisi baru - repositori (repo, repo, repositori).Repositori, penyimpanantempat ini di mana data apa pun disimpan dan diperbarui. Paling sering itu adalah data dalam bentuk file yang tersedia untuk distribusi lebih lanjut melalui Internet. Dalam artikel ini kita akan memberi tahu

Dalam kontak dengan

tentang repositori di Cydia. Perbedaan utama Toko aplikasi. Cydia adalah bahwa Cydia bukan satu repositori untuk aplikasi. Cydia mengumpulkan data tentang aplikasi dari berbagai sumber daya Internet yang dirancang khusus untuk bekerja dengannya. Sumber daya Internet ini atau hanya situs disebut repositori. Repositori dapat membuat siapa pun dengan memuatnya, misalnya pilihan aplikasi Cydia. Repositori di Cydia set yang bagus.

Default sesudahnya instalasi Cydia, Sudah berisi beberapa repositori. Yang terbesar dari mereka adalah Bigboss. Repositori ini berisi ratusan topik dan program, seperti SBSettings dan barel yang sangat populer. Misalnya, aplikasi MyWI ada di repositori lain - modmyi.com. Secara umum, untuk menginstal aplikasi, pertama-tama Anda perlu menambahkan ke Repositori Cydia, I.E. Situs tempatnya disimpan.

Cara menambahkan repositori baru di Cydia.

1. Klik pada ikon Cydia dan pergi ke bagian "Mengelola" Di bagian bawah layar, lalu pilih bagian "Sumber".

2. Ketuk "Edit" di sudut kanan atas dan kemudian "Menambahkan" kiri.

4. Jika dilakukan dengan benar, setelah beberapa detik, repositori Anda akan muncul dalam daftar. sumber baru. Ketika Anda mengkliknya, Anda akan melihat aplikasi di dalamnya.

Jika Anda tiba-tiba yakin bahwa alamat yang Anda masukkan adalah setia, tetapi repositori belum ditambahkan ke daftar sumber dan Cydia melaporkan kesalahan, maka masalahnya paling mungkin untuk membebani server tempat repositori berada. Dalam hal ini, ada baiknya menghapus repositori tambahan dan menginstalnya kembali nanti.

Daftar repositori yang berguna:

http://sinfuliphonerepo.com (aplikasi, patch, dll.)

http://ihacksrepo.com (perpustakaan besar berbagai file)

http://cydia.i4tips.com (atur paket deb)

http://apt.alleon.name (Repositori Rusia: Tema, koreksi, khaki, program, game, wallpaper, nada dering)

http://cydia.xsellize.com (program, game, gambar, melodi.)

http://ispaziorepo.com/cydia/apt/ (tema, koreksi, khaki, program, game, wallpaper, nada dering, dll.)

http://cydia.hackulo.us (appsync, installouus dan patch hackloous)

http://repo.hackyouriphone.org (khaki, mode, program, dll.)

Penting!!! Jangan pernah menetapkan aplikasi asing dari Cydia - ini dapat menyebabkan kehilangan data pada perangkat atau pemulihan melalui iTunes.

Di bawah ini Anda dapat melihat di mana layanan repositori disimpan, sistem kontrol versi mana yang didukung, apakah mereka memiliki aplikasi desktop dan sistem operasi mana yang dapat diinstal.

# Perusahaan Tahun Kontrol versi Penyimpanan data Harga (per bulan), $
1
0
2008 Git, svn. 7–210
2
0
2008 Git, Mercurial. Cloud / server sendiri 10–200
2016
3
0
2011 Git Server Cloud / Sendiri 4-99
4
0
2007 Git, svn. awan 15–200

Di antara layanan repositori lainnya untuk menyimpan kode selama pemrosesan data responden dipertimbangkan: Amazon Cloud Drive, Codebase, Gitolite, Heroku, Microsoft Azure, Rhodecode, Subversion, Server Yayasan Tim.

Tentang peringkat

Peringkat repositori untuk penyimpanan kode dilakukan oleh telamine untuk ketiga kalinya dan dibentuk berdasarkan survei 540+ dari para pemimpin teknis perusahaan digital yang diadakan dari April 2016 hingga Mei 2018. Responden diminta untuk memilih satu atau lebih opsi jawaban untuk pertanyaan "Layanan repositori apa yang Anda gunakan untuk kode penyimpanan?".

Dinamika diberikan dibandingkan dengan data yang diperoleh telamine untuk periode Agustus 2014 hingga April 2016.

Peringkat dengan margin yang cukup besar (77%) terus memimpin GitHub - layanan web paling terkenal untuk proyek hosting berdasarkan pada sistem kontrol versi GIT. Untuk proyek sumber terbuka, layanan ini gratis, dan untuk proyek-proyek pribadi dengan repositori pribadi ada beberapa rencana tarif:
- Pribadi (penciptaan repositori pribadi untuk penggunaan tim, dari $ 7 per bulan);
- Untuk organisasi kecil (kemampuan untuk mengelola pengaturan akses, dari $ 25 per bulan);
- Untuk perusahaan besar (Anda dapat menginstal di server Anda sendiri atau cloud Anda, dari $ 2520 per tahun).
GitHub sering disebut jejaring sosial untuk pengembang. Ini memiliki semua elemen yang relevan: Falllooving, Komentar, Favorit. Aktivitas pada layanan juga dapat tampil sebagai resume.

Di tempat kedua Bitbucket, 48% responden memilihnya. Ini memungkinkan Anda untuk membuat repositori pribadi yang tidak terbatas, tetapi memiliki batas 5 pengguna. Untuk tim ukuran yang lebih besar Ada versi berbayar - mulai $ 10. Karena Bitbuckket adalah salah satu produk Atlassian, dapat diintegrasikan dengan solusi lain dari perusahaan ini: Jira, Hipchat, Bamboo.

GITLAB (14%) Fungsionalnya mirip dengan GitHub, tetapi Anda dapat menginstalnya untuk server Anda sendiri secara gratis dan mengatur kebutuhan Anda. Pada saat yang sama, itu juga ada sebagai SaaS - setelah pendaftaran, Anda dapat membuat repositori pribadi secara gratis. kolaborasi. Fitur hutang - dalam versi untuk perusahaan besar (dari $ 48 per pengguna per tahun).

Akhirnya, di tempat keempat beanstalk - 1% dari jumlah total responden. Tidak seperti pesaing, dia menawarkan versi gratis Hanya selama 2 minggu, dan pilihan tarif berbayar tergantung pada jumlah pengguna, repositori dan volume penyimpanan khusus. Tarif untuk perusahaan berbayar ($ 50-200) juga mencakup angka fitur tambahan, seperti dukungan prioritas atau penyebaran pada beberapa server secara bersamaan.