Rumah  >  Artikel  >  Tutorial sistem  >  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!

王林
王林ke hadapan
2024-01-06 19:02:161241semak imbas
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:
Artikel ini dikembalikan pada:linuxprobe.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam