Mengapa kita terus menggunakan CSV?
Baru-baru ini saya membuat perubahan untuk bekerja di domain kesehatan dan meskipun pekerjaan yang luar biasa dalam standar transfer data, semua transfer data dalam CSV , baik untuk pelaporan ke organisasi eksternal, dan untuk migrasi data ketika menerapkan sistem baru.
Sayangnya penggunaan CSV adalah penyebab pengulangan tanpa akhir dari kesalahan bodoh yang sama, dengan waktu pengembang yang sama. (melarikan diri dengan buruk, gagal menangani bidang nol, dll.)
Saya tahu kita bisa melakukan yang lebih baik, dan apa pun antara JSON dan XML (tergantung pada instance) akan baik-baik saja. (Sebagian besar waktu ini adalah data dari satu MS SQLserver 2005 ke yang lain!)
Saya merasa seolah-olah setiap kali saya melihat ini terjadi, saya benar-benar menonton satu pengembang membuang waktu.
Jadi mengapa kita terus saling shafting? Kapan kita akan berhenti?
sumber
Jawaban:
Dalam kasus Anda, sepertinya CSV tidak cocok karena kurangnya spesifikasi yang sulit.
Untuk data non-sepele itu bukan pilihan yang tepat.
Mengapa / Kapan CSV adalah pilihan yang baik? Mungkin terlalu banyak contoh untuk disebutkan, manfaat kesederhanaan untuk data datar jelas. Selama data disanitasi / lolos dengan benar tidak ada masalah. Namun secara umum, semua kasus ini akan sederhana / sepele. Tentu saja, pembatas standar yang muncul dalam konten seringkali menyebalkan ketika berhadapan dengan CSV.
Tetapi jika Anda melakukan sesuatu yang lebih terlibat daripada mendapatkan klien non-teknis untuk mengirim data dari lembar Excel atau kasus penggunaan serupa lainnya, maka CSV mungkin tidak cukup untuk penggunaan serius.
XML lebih cocok (ya bahkan lebih daripada JSON) karena Anda dapat melakukan spesifikasi skema standar terperinci untuknya. (Belum lagi bahwa spesifikasi / skema menikmati fleksibilitas dari beberapa gaya implementasi, XSD, DTD & Relax NG)
Untuk sistem loop tertutup, terutama di mana bandwidth menjadi perhatian, JSON bisa lebih cocok daripada XML, tetapi kurangnya bahasa spesifikasi skema sering menghalangi itu dari aplikasi tingkat perusahaan.
sumber
write('"');write(fld1);write('"');
ad nauseum.) Kemudian mereka kehilangan menempatkan tanda kutip di sekitar sesuatu. Kemudian mereka menulis parser mereka sendiri ....Biarkan saya membuang beberapa poin yang mendukung CSV:
sumber
Kompatibilitas mundur. Jika layanan web organisasi eksternal Anda menangani CSV, dan semua alat Anda yang ada menangani CSV, tidak ada pihak yang memiliki motivasi untuk pindah ke layanan baru. Mengapa org eksternal Anda mulai mendukung format yang berbeda? Tidak seorang pun yang bekerja dengan mereka dapat menggunakannya! Mengapa Anda mulai memproduksi format yang berbeda? Tak satu pun dari organisasi tempat Anda bekerja menerimanya!
Masalah sebenarnya yang saya lihat di sini adalah, mengapa pengembang Anda menggulirkan kode CSV mereka sendiri setiap saat? Jika mereka menggunakan pustaka CSV yang stabil dan solid, mereka tidak akan memiliki masalah yang Anda gambarkan. Masalahnya disebabkan oleh pengembang meluncurkan solusi mereka sendiri daripada menggunakan perpustakaan, dan saya jujur tidak melihat bagaimana pindah ke JSON atau XML secara ajaib memperbaikinya. Anda masih memiliki orang yang mencoba meregisternya alih-alih menggunakan perpustakaan.
sumber
CSV sedikit lebih cepat , lebih kecil ukurannya , sangat mudah ditangani (bahkan di Excel) dan banyak aplikasi yang ada memahaminya, ini adalah standar yang banyak digunakan .
Itu masih pilihan pertama dalam banyak situasi.
Saya pribadi masih sangat menyukai format itu. Tapi saya menggunakan JSON juga, tetapi untuk aplikasi lain seperti web UI.
sumber
Pertama dan terutama, karena walaupun mengkonsumsi data CSV bisa (sedikit) tidak mudah, menghasilkannya sangat mudah.
Saya juga menunjukkan bahwa JSON atau XML tidak mudah untuk mendapatkan yang benar (baik untuk produsen atau konsumen). Faktanya, seseorang hampir tidak perlu melihat-lihat sama sekali untuk mengetahui bahwa banyak orang mencoba menggunakan regex untuk mem-parsing data XML, meskipun sama sekali tidak ada pertanyaan bahwa hal itu tidak dapat dan tidak akan berhasil.
Sebagian besar masalah yang dapat (dan lakukan) muncul dengan CSV dapat (dan lakukan) juga muncul dengan JSON dan XML. XML, khususnya, menambahkan lebih banyak masalah potensial sendiri. Pustaka untuk mem-parsing data XML umumnya lebih besar, lebih lambat, dan lebih sulit digunakan daripada pustaka serupa untuk data CSV.
sumber
Pertama, saya setuju bahwa ada beberapa masalah nyata dengan format:
NULL
dan''
, yang merupakan masalah ketika mengimpor file CSV ke dalam database SQL.&#xNNNN;
atau JSON\uNNNN
) berarti tidak ada cara standar untuk mewakili karakter kontrol atau karakter non-ASCII.Tetapi di sisi lain:
sumber
Karena banyak analis menggunakan Excel (untuk tabel pivot dan semacamnya), dan jauh lebih mudah untuk menghasilkan CSV daripada menghasilkan format Excel asli.
Catatan Kaki: mengingat berapa banyak masalah yang saya lihat dengan Excel menangani file CSV, seperti menghapus angka nol terkemuka dan kehilangan presisi, ini mungkin merupakan perasaan salah yang lebih mudah.
sumber
Jika ada satu hal yang salah dengan CSV, itu adalah bahwa CSV tampak sangat sederhana sehingga banyak pengembang mencoba untuk membuat parser / penulis mereka sendiri dan kemudian menyalahkan CSV karena tidak menangani melarikan diri dengan benar. Dengan parser CSV yang bagus (banyak yang bagus di luar sana), tidak akan ada masalah sama sekali.
Seseorang menyebutkan CSV tidak baik untuk data non-sepele tapi saya tidak setuju. XML memungkinkan data non-sepele karena set data yang berbeda dapat dimasukkan ke tag "wadah" yang berbeda. Dengan CSV, Anda selalu dapat memasukkan data yang berbeda ke file yang berbeda untuk mencapai efek yang sama.
Lebih lanjut, menurut pendapat saya, menggunakan XML untuk transfer data secara fundamental bertentangan dengan tujuan XML - transfer data biasanya menyiratkan kontrak yang stabil antara penyedia dan konsumen sementara XML dimaksudkan untuk membawa informasi yang dapat diperluas, tunduk pada interpretasi ketika dikonsumsi.
sumber
Saya kira CSV hanya bagus ketika Anda hanya memiliki data teks sederhana, dengan hanya koma dan titik koma / endline di akhir.
Data arsitektur pohon atau data gabungan hampir tidak dapat digunakan dengan CSV.
CSV hanyalah sebuah array teks 2D biasa seperti pada excel, tidak banyak ...
sumber
Ini semua tentang mainframe dan unggul di sini.
Mainframe karena sistem lama itu menemukan cara berkomunikasi menggunakan CSV. Jadi aplikasi besar yang membuang data dapat membaca dan menulisnya dan tidak punya alasan untuk mengubahnya sekarang.
Unggul karena dapat membuka CSV secara langsung. Bahkan, dibutuhkan ekstensi .csv saat Anda menginstalnya. Pengguna cukup mengklik ikon excel yang tampak sedikit lucu dan terbuka dan membuat kisi yang bagus yang bisa mereka pertengkarkan.
Sekarang, versi excel modern cukup mampu membaca, katakanlah, XML, secara langsung. Tetapi untuk melakukannya, pengguna harus memahami sedikit lebih banyak bahwa "klik dua kali pada gambar itu." Dan mengklik ganda pada gambar yang tepat bisa menjadi terlalu banyak untuk ditanyakan di beberapa industri. . .
sumber
Saya telah melihat banyak jawaban teknis tetapi saya curiga alasan orang menggunakan CSV adalah alasan yang sama mengapa orang menggunakan banyak teknik / teknologi lain: karena itulah yang paling mereka kenal
sumber
mengapa saya menggunakannya?
dll. dll
sumber