5 mins read

Ikhtisar multibahasa tentang cara mengatur kode dan dokumen proyek penelitian Anda – Beragampengetahuan

Oleh: Julia | Victor Bousange

Diposting ulang dari:

Secara pribadi, menurut saya salah satu tantangan terbesar saat melakukan penelitian adalah menjaga segala sesuatunya tetap rapi dan rapi. Memiliki sistem manajemen yang baik untuk kode dan sumber daya Anda adalah kunci untuk mengoptimalkan waktu dan sumber daya mental Anda. Dalam postingan ini, saya membahas berbagai metode untuk menyusun folder proyek penelitian yang mencakup kode, data, publikasi, dll. Selain itu, saya membahas secara spesifik pengorganisasian kode penelitian Anda. Ketika saya memulai PhD, saya berharap mendapat bimbingan seperti itu. Namun memulai dari awal memungkinkan saya membangun, melalui trial and error, sistem yang baik untuk kehidupan saya di kemudian hari. Semoga beberapa di antaranya berlaku untuk Anda!

Postingan ini adalah bagian dari seri praktik terbaik untuk mengelola kode penelitian. Sebagian besar materi ini dikembangkan bekerja sama dengan Mauro Werder sebagai bagian dari Kursus Penelitian yang Dapat Direproduksi, Saluran Data, dan Komputasi Ilmiah (CORDS). Jika Anda memiliki pengalaman untuk dibagikan atau menemukan kesalahan, silakan menghubungi kami!

Contents

Isi

Struktur folder proyek

Saya cukup menyukai struktur folder proyek ini, yang memisahkan data mentah dan hasil dari kode namun tetap menempatkannya relatif berdekatan, bersama dengan admin dan publikasi. Saya juga merekomendasikan memiliki repositori git terpisah untuk artikel tersebut (mungkin ditautkan ke proyek Overleaf).

|-- code/
|-- data/
|-- results
|-- publications
|    |-- talks
|    |-- posters
|    |-- papers
|-- admin
|-- meetings
|-- more-folders
 -- README.md

Anda mungkin ingin memesan results di dalam codedengan data (yang tidak boleh Anda lacak)
Struktur dari code/ patut mendapat perhatian di sini.

code/ tekstur

Bahasa pemrograman sering kali memiliki konvensinya sendiri, tetapi direktori biasanya mengikuti skema ini

  • Satu README.md file di tingkat tertinggi
  • Satu src/ folder yang berisi model, fungsi umum lainnya, dan kelas yang akan digunakan script/ mengajukan,
  • contoh penggunaan, mis examples/
  • skrip untuk menjalankan model, mengevaluasi, dll., mis scripts/
  • (biasanya dihasilkan) dokumen, mis docs/

Masuk akal bagi proyek penelitian untuk membedakan skrip yang ditempatkan di dalamnya scripts/ dan fungsi, model, dll. yang digunakan kembali ditempatkan di dalamnya src.

Struktur direktori Python
|-- src/            # package code
|-- scripts/        # Custom analysis or processing scripts
|-- tests/
|-- examples/       # Example scripts using the package
|-- docs/           # documentation
 -- environment.yml # to handle project dependencies
 -- README.md
Struktur direktori R
|-- R/               # R scripts and functions (package code)
|-- scripts/         # Custom analysis or processing scripts
|-- man/             # Documentation files
|-- tests/
|-- examples/        # Example scripts using the package
|-- vignettes/       # Long-form documentation
 -- DESCRIPTION      # Package description and metadata
 -- NAMESPACE        # Namespace file for package
 -- README.md        # Project overview and details
Struktur direktori Julia
|-- src/            # package code
|-- scripts/        # Custom analysis or processing scripts
|-- test/
|-- examples/       # Example scripts using the package
|-- docs/           # documentation
 -- Project.toml    # to handle project dependencies
 -- README.md

Variabel Anda code/ menjadi sebuah “paket”

Anda mungkin ingin menentukan src folder sebagai sebuah paket. Hal ini mempunyai beberapa keuntungan antara lain

  • Anda tidak perlu berurusan dengan lokasi relatif file untuk memanggil fungsi internal src/
  • Maksimalkan produktivitas Anda dengan membuat paket umum yang melengkapi proyek penelitian utama Anda.

Untuk mengimpor fungsi dan kelas (tipe) di dalamnya src direktori, biasanya Anda perlu menunjukkan jalur relatif di setiap skrip src. Di Julia, Anda biasanya melakukan sesuatu seperti include("../src/path/to/your/src_file.jl"). Dengan Python, Anda akan melakukan sesuatu seperti:

import sys
sys.path.append("../src/")

from src.path.to.your.src_file import my_fun

Jika demikian src/ foldernya bertambah, mengubahnya menjadi paket terpisah akan sangat membantu. Meskipun proses ini sedikit lebih rumit, proses ini menghilangkan kebutuhan akan spesifikasi pipeline, menyederhanakan impor fungsi dan kelas, dan membuat basis kode mudah diakses untuk proyek penelitian lainnya.

Biasanya ada beberapa cara untuk mengubah proyek kode menjadi paket yang dapat diinstal. Ini sangat berguna untuk kode yang digunakan orang lain (atau Anda sendiri) untuk proyek berbeda.

Anda dapat mencapainya dengan mudah menggunakan alat pengembang.

Untuk Python, alat seperti setuptools Dan poetry Memfasilitasi pengembangan paket. Jika Anda bekerja di R, devtools adalah alat penting untuk mengembangkan paket. Di Julia, Pkg alat memiliki tujuan serupa.

Templat paket dapat berguna untuk menyederhanakan pembuatan paket dengan membuat bingkai paket. Dengan Python, pembayaran cookiecutter. Di R, periksa usethis. Untuk Julia, gunakan Pkg.generate() fungsionalitas yang lebih terintegrasi atau canggih PkgTemplates.jl paket.

Perhatikan bahwa terkadang Anda mungkin ingin menentukan lokasi Anda src/ (dan terkait tests, docsdll…) di repositori git terpisah.

Baca lebih lanjut untuk

Akhir

Jelajahi contoh repositori penelitian mainan ini dalam berbagai bahasa pemrograman:

  • Julia, gunakan jalur relatif untuk mengimpor src fungsi.
  • Python sedang dalam proses src sebagai sebuah paket.
  • R, juga sedang dalam proses src sebagai sebuah paket.

Arsip-arsip ini menunjukkan apa yang saya anggap sebagai praktik terbaik dalam mengatur proyek penelitian.

Bawa pulang pesan

  • Tidak ada cara untuk menyusun folder proyek penelitian Anda, hanya pedoman umum. Ciptakan apa yang paling berarti bagi Anda!
  • Struktur yang dipilih harus sesuai untuk pengerjaan selama pengembangan proyek Anda dan untuk pengiriman (sebagiannya) ke repositori pada tahap selanjutnya.
  • Pertimbangkan untuk beralih src/ ke dalam folder. Hal ini dapat meningkatkan produktivitas belajar Anda karena Anda bisa menjadi pengembang paket keren yang dapat digunakan kembali oleh semua orang dengan sedikit usaha!

Software Terbaru Saat Ini



Aplikasi yang sedang trend saat ini

object oriented programming, programming language, programming adalah, web programming, belajar programming, tournament software, software, software adalah, contoh software, apa itu software, pengertian software, aplikasi, aplikasi penghasil uang, aplikasi bokep, aplikasi video, programming

#Ikhtisar #multibahasa #tentang #cara #mengatur #kode #dan #dokumen #proyek #penelitian #Anda

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *