Kapan Anda harus memangkas input?


11

Saya magang belajar banyak tentang industri di luar akademisi.

Satu hal yang saya pikirkan hari ini adalah memangkas input.

Di satu sisi mata uang, saya tidak ingin pengguna / pelaksana terus-menerus menerima hasil yang tidak terduga karena input mereka memiliki terlalu banyak ruang, jadi saya perlu terus-menerus memotong input pengguna setelah setiap panggilan fungsi.

Tetapi pada saat yang sama Jika saya membuat pustaka API untuk penggunaan internal di sini, di kantor trailing / whitespace terkemuka mungkin penting untuk hasilnya.

Lalu ada beberapa contoh yang saya tidak yakin apakah spasi akan menjadi penting atau tidak.

Masalah besar bagi saya adalah saya menemukan saya terus-menerus memanggil .trim () di mana-mana dalam kode saya.

Adakah yang punya tips / aturan praktis atau hanya pemikiran tentang bagaimana menangani situasi tertentu?


1
Ketika Anda mengatakan "API" di sini, apakah Anda berbicara tentang menulis perpustakaan atau Anda berbicara tentang semacam layanan web internal? Ini detail penting.
Sean McSomething

Ini sebenarnya akan menjadi Perpustakaan yang saya bangun (terima kasih)
TacticalMin

Ini kedengarannya menjawab sendiri ... jika tidak yakin bahwa ruang putih tidak diperlukan, Anda mungkin tidak perlu memotong teks.
GrandmasterB

Jawaban:


13

Jangan pernah memotong spasi putih secara sewenang-wenang dalam API.

Satu-satunya alasan untuk memotong spasi putih secara sewenang-wenang adalah sebagai fitur UI. Orang sering meninggalkan ruang di akhir bidang yang dimasukkan tetapi tidak dapat melihat bahwa mereka telah melakukannya. Sangat membingungkan untuk mengembalikan pesan, jadi - kecuali dalam kasus yang jarang terjadi di mana pengguna dapat memasukkan "A" berarti sesuatu selain "A" - Anda biasanya dapat membuang ruang yang tidak berguna.

Tetapi komputer tidak menambahkan ruang secara tidak sengaja, mereka menambah ruang karena seorang programmer menyuruh mereka, dan jika mereka merusak implementasi API Anda, Anda harus melemparkan kesalahan kembali ke pengembang. Jika tidak, Anda harus menggunakannya.

Tentu saja ada kemungkinan bahwa data ini berasal dari manusia melalui aplikasi, tapi itu masalah pengembang aplikasi, bukan milik Anda. Sekali lagi, jika mereka akan menyebabkan masalah bagi Anda, tolaklah; jika tidak, terimalah. Jangan memotongnya dan menganggap konsumen Anda tahu itu akan terjadi.


Terima kasih telah meluangkan waktu untuk menjawab. Anda menyimpulkan apa yang orang lain katakan.
TacticalMin

3

Salah satu prinsip yang berguna di sini adalah YAGNI : "Kamu Tidak Akan Membutuhkannya." Apa artinya adalah bahwa, ketika Anda memiliki ide untuk fitur yang Anda tidak yakin Anda benar-benar harus, tidak menerapkannya sampai Anda berada yakin Anda membutuhkannya. Kemudian, ketika kebutuhan untuk itu menjadi jelas, tempat-tempat di basis kode Anda di mana sebenarnya diperlukan juga harus jelas.


1

Tergantung apa input yang akan digunakan. Jika Anda memangkas ruang putih dari data yang telah dimasukkan sebagai istilah pencarian, maka saya dapat mengerti mengapa Anda melakukannya. Ini kebiasaan yang baik untuk belajar tidak memercayai data yang masuk ke sistem, saya berpikir terutama tentang SQL Injection tetapi ada aspek-aspek lain juga.

Anda mungkin tidak perlu selalu memotong input tetapi Anda harus selalu memeriksa input.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.