Saya mulai belajar Java EE 7 dan saya sering menemukan istilah "standar" ini, dan saya tidak mengerti apa artinya.
Jadi, misalnya, inilah kutipan dari buku ini :
Berlawanan dengan SOAP dan WS-* stack, yang mengandalkan standar W3C, REST tidak memiliki standar dan hanya gaya arsitektur dengan prinsip-prinsip desain. Aplikasi REST sangat bergantung pada banyak standar lain: HTTP, URI, URL ...
Saya memiliki beberapa gagasan tentang apa artinya itu, tetapi saya tidak yakin.
Penjelasan terbaik yang saya temui adalah definisi dari sini .
coding-standards
standards
Djole Pi
sumber
sumber
Jawaban:
Istilah "standar" dalam pemrograman sering merujuk pada teknologi / dokumen yang diatur oleh suatu kelompok atau komunitas. Anggota kelompok itu sering berbagi tujuan yang diinvestasikan bersama, adalah pengguna aktif teknologi itu dan ingin memastikan teknologi terus berlanjut.
Ada banyak "hal" dalam pemrograman yang memiliki komunitas yang mengaturnya. Anggota ini dapat berkisar dari pemrogram hingga perwakilan perusahaan (mis. Apple, Microsoft, IBM, dll.)
W3C adalah kelompok yang sangat besar yang bekerja bersama untuk mendefinisikan banyak standar.
Berikut adalah daftar anggota.
http://www.w3.org/Consortium/Member/List
REST adalah contoh dari teknologi, dengan popularitasnya digunakan oleh banyak orang, tetapi tidak ada kelompok atau komunitas yang mengaturnya. Oleh karena itu, tidak ada satu tempat untuk menunjuk dan mengatakan "begitulah standar mengatakan itu harus dilakukan" .
Perusahaan seperti IBM, Microsoft dan yang lainnya telah menerbitkan dokumentasi tentang cara mengimplementasikan REST. Bisa dikatakan ada "cara umum" menerapkan REST. Anda dapat memilih sumber otoritatif yang menggambarkan implementasi REST, dan klaim untuk mengikuti referensi itu. Penggunaan sumber otoritatif adalah salah satu cara kami menangani masalah kompatibilitas di browser web.
sumber
Standar adalah dokumen teknis yang menjelaskan bagaimana suatu teknologi berperilaku. (Untuk beberapa teknologi, itu mungkin semacam standar teknis lainnya .) Hanya itu yang ada dan mengapa ada: itu adalah dokumen, dan mereka menggambarkan teknologinya.
Dokumen-dokumen ini ditulis oleh badan pengatur yang memiliki wewenang dan kepercayaan yang diperlukan agar mereka dapat memutuskan bagaimana teknologi itu bekerja, dan bagi orang-orang untuk peduli ketika mereka merilis dokumen spesifikasi sebagai standar. Badan pengatur dapat menghasilkan banyak standar, untuk berbagai teknologi atau versi teknologi yang berbeda. Badan pengurus dapat juga dikenal sebagai pengelola, penulis, penjaga, dll dari standar.
(Berbeda dengan yang dijelaskan oleh Mathew, standar bukanlah badan pengatur atau teknologi itu sendiri. Ini adalah dokumen yang menggambarkan teknologi, atau versi tertentu darinya.)
Beberapa contoh standar untuk teknologi yang telah Anda sebutkan (dan lainnya):
HTML adalah contoh yang baik dari fakta bahwa berbagai versi bahasa sering kali memiliki standar yang berbeda. Berbagai versi memiliki dokumen berbeda yang menjelaskan bagaimana berbagai versi bahasa seharusnya ditangani.
HTTP, sementara itu, adalah salah satu dari banyak contoh yang bergerak standar antara kelompok: pertama oleh Kelompok Kerja Jaringan, kemudian ke Kelompok Kerja HTTP, meskipun kedua kelompok adalah bagian dari IETF tersebut. Teknologi lain telah berpindah antar perusahaan, seperti HTML (lagi), versi 2 di antaranya ditulis oleh IETF di RFC1866 .
Mengapa standar ada?
Mereka ada untuk memberi kita jaminan tentang bagaimana hal-hal akan bekerja.
Spesifikasi HTML5 memberi tahu saya bagaimana berbagai browser akan menangani dan menampilkan markup HTML5 yang saya tulis, dengan asumsi mereka menerapkan standar dengan benar (yang secara historis menjadi masalah). Standar C ++ 11 akan memberi tahu saya hal-hal tentang berbagai kode C ++ 11 yang saya tulis akan atau tidak akan lakukan.
Demikian juga, jika saya sedang menulis browser, standar HTML5 akan memberi tahu saya bagaimana saya harus menangani berbagai potongan markup HTML5 agar orang mendapatkan apa yang mereka harapkan. Jika saya menulis kompiler C ++ 11, standar C ++ 11 akan memberi tahu saya apa yang perlu saya lakukan untuk mengimplementasikan bahasa dengan benar dan membuat kode orang bekerja sesuai cara yang mereka harapkan berfungsi.
Sebagai contoh, penulis Microsoft C #. Anda dapat mengunduh C # Language Spesifikasi 5.0 untuk diri Anda sendiri. Dokumen ini adalah janji bahwa kode C # yang Anda tulis harus berperilaku seperti yang dijelaskan dalam spesifikasi, di setiap kompiler yang benar-benar mengimplementasikan spesifikasi dengan benar.
( Jika Anda melakukan hal-hal di luar spesifikasi , Anda berada di wilayah yang tidak ditentukan dan tidak ada jaminan apa pun tentang apa yang akan atau tidak akan terjadi.)
Secara historis, standar kembali ke hal-hal seperti ulir sekrup , sehingga saya dapat memiliki jaminan bahwa jika saya memesan sekrup tipe X, itu akan masuk ke dalam lubang yang telah saya bor, dan akan dapat dipertukarkan dengan sekrup lain dari tipe X.
Yang membawa kita kembali ke definisi kata "standar" :
yaitu hal yang Anda bandingkan barang-barang Anda untuk memastikan Anda akan mendapatkan apa yang Anda harapkan.
sumber
Standar teknologi adalah spesifikasi sedemikian rupa sehingga dua implementasi dari standar yang sama diharapkan dapat interoperable atau dipertukarkan. Contoh: USB, Bluetooth, Java EE7, HTTP.
Lalu ada standar "de facto": konvensi yang memungkinkan interoperabilitas, tetapi tanpa spesifikasi yang disepakati secara eksplisit. Contoh: Format DOC Microsoft secara historis menjadi standar de facto, karena banyak produk dapat membaca dan menulis DOC, tetapi spesifikasi kanonik tidak tersedia (sampai jauh kemudian). Dokumen masih umum didistribusikan dalam format DOC, dengan harapan bahwa setiap penerima akan dapat membacanya, sehingga telah menjadi standar de facto.
Untuk mengatasi contoh spesifik Anda, REST tidak memiliki spesifikasi yang disepakati secara eksplisit dan oleh karena itu bukan standar yang benar, dan hampir tidak merupakan standar de facto karena memiliki ambiguitas yang cukup besar dalam bagaimana hal itu harus dilakukan dengan benar, dan tidak ada implementasi dominan yang ada. menyelesaikan ambiguitas ini. (Saya tidak menentang REST. Ini adalah cara yang sangat baik untuk membangun layanan web)
sumber
Standar adalah konvensi terstandarisasi - baik dengan spesifikasi formal, atau hanya karena konvensi umum telah mendapatkan popularitas yang cukup untuk menjadi dominan.
A
de jure standard
adalah spesifikasi yang diterbitkan oleh komite standar. Beberapa komite standar adalah ISO, ECMA, DIN, ANSI, dan W3C.Beberapa contoh
de jure standards
adalah ukuran kertas A4 (standar ISO 219), bahasa c # (ECMA-334), dll.Istilah 'de jure' jarang digunakan, dan 'standar de jure' sering hanya disebut standar.
(sumber: wikipedia - Saya sendiri tidak bisa menulisnya dengan lebih baik)
Standar de facto tidak harus mengikuti spesifikasi formal apa pun.
Seperti yang ditulis Gudmundur Orn dalam jawaban ini , format DOC Microsoft Office adalah standar de facto. Itu memiliki posisi dominan, dan biasanya diasumsikan bahwa orang dapat membaca dokumen MS Word.
JSON adalah binatang yang lucu, karena dimulai sebagai standar de facto. Namun sejak itu telah diresmikan sebagai ECMA-404 , sehingga sekarang menjadi 'standar de jure'.
Namun ini juga merupakan format utama untuk bertukar data dengan API berbasis HTTP (setahu saya), sehingga menjadikannya juga 'standar de facto' tujuan ini.
sumber
Untuk pertanggungjawaban produk hukum, cacat diklasifikasikan sebagai desain, manufaktur, atau dokumentasi. Sebuah desain tidak cacat jika didasarkan pada standar, apakah standar itu rusak atau tidak. Standar yang berlaku adalah yang berlaku saat produk dibuat. Standar dapat berupa standar yang diterbitkan (ISO) atau standar industri yang diterima yang tidak diterbitkan oleh asosiasi standar. Jadi TCP / IP dengan semua cacat bawaannya seperti spoofing adalah standar dan jika Anda membuat teknologi baru seperti VOIP dan tidak melakukan apa pun untuk melindungi pengguna dari masalah yang diketahui dengan teknologi yang mendasarinya maka Anda aman untuk melanjutkan kekacauan. Atau saya mungkin salah dan memiliki cacat dokumentasi di sini ...
sumber