Rumah Tutorial sistem LINUX Sepuluh panduan untuk menjadi pengaturcara terbaik untuk membantu anda menulis kod pengaturcaraan seperti NASA!

Sepuluh panduan untuk menjadi pengaturcara terbaik untuk membantu anda menulis kod pengaturcaraan seperti NASA!

Jan 06, 2024 pm 07:02 PM
linux Topi Merah

Pengenalan Petikan: Adakah anda tahu bagaimana pengaturcara teratas NASA menulis kod kritikal misi? Untuk memastikan kod itu lebih jelas, selamat dan lebih mudah difahami, Makmal Pendorong Jet NASA telah membangunkan 10 peraturan pengekodan.

十条准则帮助你像 NASA 顶级程序员一样编程!

Tugas pembangun di NASA adalah salah satu yang paling mencabar dalam dunia pengaturcaraan. Fokus utama mereka ialah menulis kod dan membangunkan aplikasi yang selamat dan kritikal misi. Atas sebab ini, mematuhi peraturan pengekodan yang ketat menjadi penting. Peraturan ini merangkumi banyak aspek pembangunan perisian, termasuk gaya pengekodan, penggunaan ciri bahasa, dsb. Walaupun sukar untuk bersetuju dengan standard pengekodan yang sesuai, Makmal Pendorong Jet (JPL) NASA mengikut satu set peraturan pengekodan yang dipanggil Powers of Ten: Rules for Developing Secure Critical Code.

Peraturan ini ditujukan terutamanya untuk program yang ditulis dalam C, kerana JPL telah lama menggunakan C. Walau bagaimanapun, peraturan ini boleh digunakan dengan mudah pada bahasa pengaturcaraan lain juga. Peraturan pengekodan ini telah dibangunkan oleh Gerard J. Holzmann, ketua saintis JPL, terutamanya untuk memastikan keselamatan.

10 peraturan NASA untuk menulis kod kritikal misi:

  1. Hadkan semua kod kepada struktur aliran kawalan yang sangat mudah - tiada pernyataan goto, struktur setjmp atau longjmp, tiada panggilan rekursif tidak langsung atau langsung.
  2. Semua gelung mesti mempunyai had atas tetap. Ia mesti disahkan secara statik oleh alat pengesan bahawa gelung tidak dapat mencapai had atas lelaran pratetap. Sekiranya had atas ini tidak dapat dibuktikan secara statik, maka prinsip ini boleh dianggap dilanggar.
  3. Jangan gunakan peruntukan memori dinamik selepas permulaan.
  4. Jika anda merujuk kepada format standard satu pernyataan setiap baris dan satu pengisytiharan setiap baris, maka panjang fungsi tidak boleh lebih panjang daripada sehelai kertas. Biasanya ini bermakna tidak lebih daripada 60 baris kod setiap fungsi.
  5. Ketumpatan penegasan dalam kod purata serendah 2 penegasan setiap fungsi. Penegasan digunakan untuk mengesan situasi yang tidak mungkin berlaku dalam pelaksanaan sebenar. Pernyataan mesti tiada kesan sampingan dan harus ditakrifkan sebagai ujian boolean. Apabila penegasan gagal, tindakan pemulihan eksplisit harus dilakukan, seperti mengembalikan keadaan ralat kepada pemanggil fungsi yang gagal penegasan. Untuk alat statik, sebarang penegasan yang boleh dibuktikan oleh alat statik untuk tidak pernah gagal atau tidak pernah menyala melanggar peraturan ini (contohnya, adalah mustahil untuk memenuhi peraturan ini dengan menambah pernyataan assert(true) yang tidak berguna).
  6. Objek data mesti diisytiharkan dalam skop sekecil mungkin.
  7. Nilai pulangan bagi fungsi bukan batal mesti diperiksa pada setiap panggilan fungsi dan kesahihan parameternya mesti diperiksa dalam setiap fungsi.
  8. Penggunaan prapemproses terhad untuk memasukkan fail pengepala dan takrifan makro ringkas. Penyambungan simbol, senarai hujah variadic (elips) dan panggilan makro rekursif tidak dibenarkan. Semua makro mesti boleh dikembangkan menjadi unit sintaks yang lengkap. Penggunaan arahan kompilasi bersyarat selalunya tidak jelas, tetapi tidak selalu boleh dielakkan. Ini bermakna walaupun dalam pembangunan perisian yang besar perlu ada sebab yang baik untuk lebih daripada satu atau dua arahan penyusunan bersyarat, di luar amalan standard mengelak termasuk fail pengepala beberapa kali. Setiap kali anda melakukan ini dalam kod anda, ia mesti dibenderakan oleh penyemak berasaskan alat, dan untuk alasan yang baik.
  9. Penggunaan penunjuk harus dihadkan. Khususnya tidak boleh lebih daripada satu tahap penyahrujukan penunjuk. Operasi penyahrujukan penunjuk tidak boleh tersirat dalam definisi makro atau pengisytiharan jenis. Juga, penunjuk fungsi tidak dibenarkan.
  10. Dari hari pertama pembangunan, kod mesti disusun dengan pengkompil menghidupkan pilihan amaran tahap tertinggi. Di bawah tetapan ini, kod mesti disusun dengan amaran sifar. Kod mesti disemak dengan alat analisis statik kod sumber sekurang-kurangnya sekali atau lebih setiap hari dan lulus dengan amaran sifar.

Berkenaan peraturan ini, NASA ingin mengatakan ini:

Peraturan ini seperti tali pinggang keledar di dalam kereta Anda mungkin berasa sedikit tidak selesa pada mulanya, tetapi selepas beberapa ketika ia akan menjadi kebiasaan dan anda tidak boleh bayangkan tidak menggunakannya.


Mengenai pengarang:

Adarsh ​​​​Verma ialah pengasas bersama Fossbytes Beliau adalah seorang usahawan yang disegani yang sentiasa memberi perhatian kepada sumber terbuka, penemuan teknologi dan kesempurnaan. Anda boleh menghubunginya melalui e-mel — [email protected]


Atas ialah kandungan terperinci Sepuluh panduan untuk menjadi pengaturcara terbaik untuk membantu anda menulis kod pengaturcaraan seperti NASA!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Android TV Box mendapat peningkatan Ubuntu 24.04 tidak rasmi Android TV Box mendapat peningkatan Ubuntu 24.04 tidak rasmi Sep 05, 2024 am 06:33 AM

Android TV Box mendapat peningkatan Ubuntu 24.04 tidak rasmi

DeepSeek Web Versi Pintu Masuk Laman Web Rasmi DeepSeek DeepSeek Web Versi Pintu Masuk Laman Web Rasmi DeepSeek Feb 19, 2025 pm 04:54 PM

DeepSeek Web Versi Pintu Masuk Laman Web Rasmi DeepSeek

Cara Memasang DeepSeek Cara Memasang DeepSeek Feb 19, 2025 pm 05:48 PM

Cara Memasang DeepSeek

Alamat muat turun aplikasi dompet BitPie Bitpie Alamat muat turun aplikasi dompet BitPie Bitpie Sep 10, 2024 pm 12:10 PM

Alamat muat turun aplikasi dompet BitPie Bitpie

Pemasangan Laman Web Rasmi Bitget (Panduan Pemula 2025) Pemasangan Laman Web Rasmi Bitget (Panduan Pemula 2025) Feb 21, 2025 pm 08:42 PM

Pemasangan Laman Web Rasmi Bitget (Panduan Pemula 2025)

Pemasangan penyusunan kod sumber Zabbix 3.4 Pemasangan penyusunan kod sumber Zabbix 3.4 Sep 04, 2024 am 07:32 AM

Pemasangan penyusunan kod sumber Zabbix 3.4

Penjelasan terperinci: Perintah parameter pertimbangan pembolehubah skrip Shell Penjelasan terperinci: Perintah parameter pertimbangan pembolehubah skrip Shell Sep 02, 2024 pm 03:25 PM

Penjelasan terperinci: Perintah parameter pertimbangan pembolehubah skrip Shell

Pakej pemasangan OUYI OKX disertakan secara langsung Pakej pemasangan OUYI OKX disertakan secara langsung Feb 21, 2025 pm 08:00 PM

Pakej pemasangan OUYI OKX disertakan secara langsung

See all articles