Ruang Kerja Eclipse: Untuk apa dan mengapa?

133

Saya telah melihat, membaca, dan memikirkan berbagai cara menggunakan ruang kerja (per proyek, per aplikasi (multi-aset atau tidak), per bahasa program, per target (pengembangan web, plugin, ..), dan sebagainya) dan saya Saya masih meragukan apa pendekatan terbaik.

Bisakah bisa memberikan wawasan yang panjang, tapi tidak sepanjang halaman tentang ini?

Ini melibatkan banyak sub-pertanyaan, jadi untuk berbicara, dan saya tidak tahu semua sub-pertanyaan spesifik yang harus saya tanyakan, karena saya tidak yakin saya tidak tahu semua aspek gerhana (dan ruang kerja), tetapi Saya akan mencoba memberikan contoh apa yang saya cari:

  • Untuk apa?
    • Apa artinya pengembangan gerhana untuk digunakan?
    • Apa yang dipikirkan orang lain / kebanyakan orang?
    • Bagaimana menurut anda?
    • ...?
  • Mengapa?
    • Apakah ada konflik konfigurasi vs. pembagian manfaat?
    • Adakah alasan filespace?
    • Performa?
    • ...?

Oh, dan saya berbicara tentang penggunaan minimum untuk pengembang yang menggunakan bahasa dan protokol yang berbeda, dan TIDAK harus semuanya dalam satu proyek (Misalnya php, javascript dan xml untuk beberapa proyek, C # untuk yang lain, java dan SQL untuk yang lain orang lain, dll.)

Sunting 2012-11-27: Jangan salah paham. Saya tidak meragukan penggunaan ruang kerja, saya hanya ingin menggunakannya sebagaimana seharusnya atau jika ada yang akan berpikir lebih baik. Jadi, untuk apa? berarti: Apa gunanya yang terbaik? Dan mengapa?" sebenarnya menargetkan pada "untuk apa?", dengan kata lain: katakan padaku alasan untuk jawaban Anda.

e-motiv
sumber
14
Saya masih belum mengerti. Tampaknya masuk akal bagi orang-orang yang sudah tahu untuk apa , dan sulit bagi mereka untuk memahami bahwa ini tidak jelas bagi semua orang di luar sana.
Rafael Eyng
Saya juga tidak mengerti dan saya tidak setuju dengan semua yang ada di bawah *, juga tidak lengkap (tidak ada referensi). Kenapa saya belum menerima jawaban. * Tentu saja ada di mana itu bukan pendapat atau praktik pribadi. Saya mengerti.
e-motiv
Saya sudah mencoba menjawabnya, bukan jawaban yang sangat bagus tapi saya pikir saya bisa membangun di atasnya
Rafael Eyng

Jawaban:

43

Saya akan memberi Anda visi saya tentang seseorang yang merasa sangat tidak nyaman di dunia Jawa, yang saya anggap juga kasus Anda.

Apa itu

Ruang kerja adalah konsep pengelompokan bersama:

  1. satu set proyek (entah bagaimana) terkait
  2. beberapa konfigurasi yang berkaitan dengan semua proyek ini
  3. beberapa pengaturan untuk Eclipse sendiri

Ini terjadi dengan membuat direktori dan meletakkan di dalamnya (Anda tidak perlu melakukannya, itu dilakukan untuk Anda) file yang berhasil memberi tahu Eclipse informasi ini. Yang harus Anda lakukan secara eksplisit adalah memilih folder tempat file-file ini akan ditempatkan. Dan folder ini tidak harus sama dengan tempat Anda meletakkan kode sumber Anda - lebih tepatnya tidak.

Menjelajahi setiap item di atas:

  1. satu set proyek (entah bagaimana) terkait

Eclipse tampaknya selalu dibuka terkait dengan ruang kerja tertentu, yaitu, jika Anda berada di ruang kerja A dan memutuskan untuk beralih ke ruang kerja B (File> Ganti Ruang Kerja), Eclipse akan menutup sendiri dan dibuka kembali. Semua proyek yang dikaitkan dengan ruang kerja A (dan muncul di Project Explorer) tidak akan muncul lagi dan proyek yang terkait dengan ruang kerja B sekarang akan muncul. Jadi sepertinya proyek, agar terbuka di Eclipse, HARUS dikaitkan dengan ruang kerja.

Perhatikan bahwa ini tidak berarti bahwa kode sumber proyek harus di dalam ruang kerja. Ruang kerja akan, entah bagaimana, memiliki hubungan dengan jalur fisik proyek Anda di disk Anda (ada yang tahu bagaimana? Saya telah mencari di dalam ruang kerja mencari beberapa file yang menunjuk ke jalur proyek, tanpa hasil).

Dengan cara ini, sebuah proyek dapat berada di dalam lebih dari 1 ruang kerja sekaligus. Jadi sepertinya bagus untuk memisahkan ruang kerja dan kode sumber Anda.

  1. beberapa konfigurasi yang berkaitan dengan semua proyek ini

Saya mendengar bahwa sesuatu, seperti versi kompiler Java (seperti 1.7, mis. - Saya tidak tahu apakah 'versi' adalah kata di sini), adalah konfigurasi tingkat ruang kerja. Jika Anda memiliki beberapa proyek di dalam ruang kerja Anda, dan kompilasi mereka di dalam Eclipse, semuanya akan dikompilasi dengan kompiler Java yang sama.

  1. beberapa pengaturan untuk Eclipse sendiri

Beberapa hal seperti binding utama Anda juga disimpan di tingkat ruang kerja. Jadi, jika Anda menentukan bahwa tab ctrl + akan mengganti tab dengan cara yang cerdas (tidak menumpuknya), ini hanya akan terikat pada ruang kerja Anda saat ini. Jika Anda ingin menggunakan pengikatan kunci yang sama di ruang kerja lain (dan saya pikir Anda mau!), Tampaknya Anda harus mengekspor / mengimpornya di antara ruang kerja (jika itu benar, IDE ini dibangun di atas beberapa tempat yang sangat aneh). Berikut ini tautannya .

Tampaknya juga ruang kerja belum tentu kompatibel antara versi Eclipse yang berbeda. Artikel ini menyarankan agar Anda memberi nama ruang kerja Anda yang berisi nama versi Eclipse.

Dan, yang lebih penting, setelah Anda memilih folder untuk menjadi ruang kerja Anda, jangan sentuh file apa pun di dalam sana atau Anda berada dalam masalah.

Bagaimana menurut saya adalah cara yang baik untuk menggunakannya

(sebenarnya, saat saya menulis ini, saya tidak tahu bagaimana menggunakan ini dengan cara yang baik, itu sebabnya saya mencari jawaban - yang saya coba kumpulkan di sini)

  1. Buat folder untuk proyek Anda:
    /projects

  2. Buat folder untuk setiap proyek dan kelompokkan sub proyek di dalamnya:
    /projects/proj1/subproj1_1
    /projects/proj1/subproj1_2
    /projects/proj2/subproj2_1

  3. Buat folder terpisah untuk ruang kerja Anda:
    /eclipse-workspaces

  4. Buat ruang kerja untuk proyek Anda:
    /eclipse-workspaces/proj1
    /eclipse-workspaces/proj2

Rafael Eyng
sumber
1
Saya akui bagian terakhir butuh klarifikasi. Apa itu sub proyek, jika bukan proyek itu sendiri? Bagaimana sub-proyek ini dapat digunakan untuk digunakan di seluruh ruang kerja yang berbeda tanpa menggunakan keseluruhan proyek induk? Saya pertama-tama perlu mengetahuinya untuk meningkatkan jawabannya.
Rafael Eyng
2
Jawaban ini berkontribusi pada seluruh pertanyaan. Namun, ini sedikit fokus pada folder dan juga melewatkan beberapa referensi dan argumen. Meskipun demikian, ini informatif. Huh, jawaban ini semakin sulit karena semuanya berkontribusi, dan aku mulai berpikir aku tidak akan pernah bisa menerima satu jawaban. Saya harap tidak ada yang aneh di sini dan kami akan meninggalkannya tanpa jawaban yang diterima?
e-motiv
Hai @ RU-Bn. Saya tidak setuju pada intinya. Saya hanya berharap saya bisa menjelaskan apa itu Eclipse Workspace, jadi saya bisa yakin bahwa saya mengetahuinya.
Rafael Eyng
Hei, aku tidak bermaksud pertanyaan terakhir terhadap siapa pun khususnya. Itu hanya secara umum. Mungkin seharusnya saya menuliskannya sebagai komentar di atas.
e-motiv
@ RU-Bn, tentu saja, saya tidak menganggapnya buruk. Mungkin saya baru saja mengekspresikan diri saya dengan buruk.
Rafael Eyng
37

Inti dari ruang kerja adalah untuk mengelompokkan satu set proyek terkait bersama-sama yang biasanya membuat aplikasi. Kerangka kerja turun ke eclipse.core.resourcesplugin dan secara alami dengan desain masuk akal.

Proyek memiliki sifat, pembangun melekat pada proyek tertentu dan ketika Anda mengubah sumber daya dalam satu proyek Anda dapat melihat dalam kompilasi real time atau masalah lain dalam proyek yang berada di ruang kerja yang sama. Jadi strategi yang saya sarankan adalah memiliki ruang kerja yang berbeda untuk proyek yang berbeda yang Anda kerjakan tetapi tanpa ruang kerja dalam gerhana tidak akan ada konsep kumpulan proyek dan konfigurasi dan setelah semua itu adalah alat IDE.

Jika itu tidak masuk akal, tanyakan bagaimana Net Beans atau Visual Studio mengatasi ini? Itu tema yang sama. Maven adalah contoh yang bagus, memeriksa sekelompok proyek pakar terkait ke dalam ruang kerja memungkinkan Anda mengembangkan dan melihat kesalahan secara real time. Jika bukan ruang kerja, apa lagi yang akan Anda sarankan? Aplikasi RCP bisa menjadi binatang yang berbeda tergantung pada apa yang digunakan untuk tetapi dalam arti IDE yang sebenarnya saya tidak tahu apa yang akan menjadi solusi yang lebih baik daripada ruang kerja atau konteks proyek. Hanya pikiran saya saja. - Duncan

Duncan Krebs
sumber
1
Tetapi terima kasih atas jawaban Anda. Ini masuk akal dan setidaknya saya tahu bagaimana seharusnya. Bisakah Anda memanjakan saya dengan lebih detail dan mungkin tautan (untuk gerhana) tentang kalimat pertama Anda?
e-motiv
5
Saya tidak setuju bahwa "titik ruang kerja adalah untuk mengelompokkan satu set proyek terkait bersama-sama yang biasanya membuat aplikasi." Misalkan saya mengembangkan dua aplikasi, haruskah saya memiliki dua ruang kerja? Menyebalkan sekali! Semua perspektif khusus, ikatan utama, teks otomatis, dan preferensi lain terkait dengan ruang kerja. Saya harus membuatnya kembali setiap kali saya memulai aplikasi baru! Menurut pendapat saya, Anda harus memiliki dua ruang kerja: dev dan yang terbaru dirilis. Di dalam ruang kerja, Anda membuat SET KERJA untuk setiap aplikasi. Ini adalah bagaimana ruang kerja dan perangkat kerja dimaksudkan untuk digunakan.
John Henckel
2
John, Apa yang Anda lakukan jika Anda dua aplikasi di ruang kerja Anda adalah aplikasi RCP misalnya dan masing-masing membutuhkan platform target yang berbeda, atau tingkat kepatuhan kompiler java yang berbeda Kecuali jika aplikasi Anda memerlukan konfigurasi run-time yang sama persis menempatkan dua aplikasi satu ruang kerja akan menyebabkan masalah. Saya mengerti memiliki seperangkat preferensi umum yang ingin Anda gunakan, itu sebabnya ada fitur ekspor / impor preferensi sehingga Anda dapat mengatur ruang kerja baru dan mengimpor organisasi atau preferensi pribadi Anda dan pengaturan lainnya.
Duncan Krebs
1
Poin menarik @JohnHenckel! Meskipun saya memiliki masalah dengan set kerja. Tampaknya mereka hanya bekerja dengan beberapa fitur gerhana, meskipun saya kira Anda semua dapat mengaturnya secara manual (seperti yang saya lakukan kemarin dengan tampilan tugas, yang memberi saya semua tugas dari semua proyek). Bisakah Anda juga melakukan itu untuk fungsi pustaka, pelengkapan otomatis, metode yang ada, dll.? Saya lebih tertarik bagaimana Anda menggunakan set kerja. @DuncanKrebs, saya tidak tahu fitur impor / ekspor preferensi. Terima kasih! Itu memecahkan banyak masalah tentang bagaimana menggunakan ruang kerja. Terima kasih, kalian berdua. Dan jangan berhenti melemparkan argumen / wawasan!
e-motiv
1
Saya baru saja pindah ke gerhana. Sebelumnya saya telah menggunakan konsep sistem operasi novel ini yang disebut "folder". Folder adalah tempat di sistem file saya, saya menempatkan proyek. Dapat memiliki sub-folder dari sana. Anda bahkan dapat menempatkan beberapa folder proyek terkait di dalam satu folder induk. Jadi, apa yang akan saya lakukan tanpa Eclipse? Saya akan menggunakan folder, editor teks dasar, dan kompilasi dan jalankan dari baris perintah. Jadi, jawaban Anda sepertinya mengharapkan kita semua hanya tahu betapa berharganya "ruang kerja" itu, tetapi mungkin Anda harus berkenalan dengan "folder."
Gabriel Staples
3

Pada dasarnya ruang kerja dibagi menjadi dua titik.

Titik pertama (dan utama) adalah gerhana itu sendiri dan terkait dengan pengaturan dan konfigurasi metadata (ctr plugin). Setiap kali Anda membuat proyek, gerhana mengumpulkan semua konfigurasi dan menyimpannya di ruang kerja itu dan jika entah bagaimana di ruang kerja yang sama proyek yang bertentangan hadir Anda mungkin kehilangan beberapa fungsi atau bahkan stabilitas gerhana itu sendiri.

Dan kedua (sekunder) poin strategi pengembangan yang bisa diadopsi. Setelah ruang lingkup utama terpenuhi (dan dikuasai) dan ada kebutuhan untuk penyesuaian lebih lanjut mengenai hubungan proyek (seperti perpustakaan, perspektif ctr) kemudian memulai ruang kerja terpisah (s) dapat sesuai berdasarkan kebiasaan pengembangan atau kemungkinan bahasa / kerangka kerja "perilaku". DLTK untuk contoh adalah binatang buas yang harus dimasukkan dalam kandang terpisah. Banyak keluhan di forum karena berhenti bekerja (dengan benar atau tidak sama sekali) dan solusi yang disarankan adalah membersihkan pengaturan plugin yang setara dari ruang kerja saat ini.

Secara pribadi, saya menemukan diri saya lebih condong ke perbedaan bahasa ketika datang ke ruang kerja terpisah yang relevan dengan masalah yang diketahui yang datang dengan keadaan plugin saat ini digunakan. Lebih disukai saya menyimpannya dalam jumlah minimum karena hal ini menyebabkan frustrasi lebih sedikit ketika proyek menjadi ... banyak dan kontrol versi bukan satu-satunya versi Anda menyimpan proyek Anda. Akhirnya, kecepatan dan kinerja pemuatan adalah masalah yang mungkin muncul jika banyak plugin (yang tidak perlu) dimuat karena ada proyek yang tidak relevan. Intinya; tidak ada satu solusi untuk setiap solusi, tidak ada cetak biru utama yang menyelesaikan masalah. Itu adalah sesuatu yang tumbuh dengan pengalaman, Less is more though!

Lazaros Kosmidis
sumber
Apa yang Anda maksud dengan DTLK?
Ketika Anda meninggalkan editor teks untuk mendukung IDE, drive awal adalah kenyamanan lengkapi-otomatis dan tampilan perpustakaan Anda (dan dokumen) untuk menghindari kesalahan sintaksis untuk mengatakan setidaknya. Dalam keadaan apa pun Anda tidak akan membahayakan fungsi ini.
Lazaros Kosmidis
1

Meskipun saya telah menggunakan Eclipse selama bertahun-tahun, "jawaban" ini hanya dugaan (yang akan saya coba malam ini). Jika tidak ada suara, maka jelas saya salah.

Oracle mengandalkan CMake untuk menghasilkan "Solusi" Visual Studio untuk kode sumber MySQL Connector C mereka. Di dalam Solusi terdapat "Proyek" yang dapat dikompilasi secara individual atau kolektif (oleh Solusi). Setiap Proyek memiliki makefile sendiri, menyusun bagian Solusi dengan pengaturan yang berbeda dari Proyek lainnya.

Demikian pula, saya berharap Eclipse Workspace dapat mengadakan Proyek makefile terkait saya (Eclipse), dengan Proyek master yang dependensinya mengkompilasi berbagai Proyek makefile unik sebagai pra-requites untuk membangun "Solusi" nya. (Struktur folder saya akan seperti yang dijelaskan @Rafael).

Jadi saya berharap cara yang baik untuk menggunakan Workspaces adalah meniru kemampuan Visual Studio untuk menggabungkan Proyek yang berbeda menjadi Solusi.

pbyhistorian
sumber