Rumah > tutorial komputer > pengetahuan komputer > Prinsip Pengaturcaraan Falsafah Unix

Prinsip Pengaturcaraan Falsafah Unix

王林
Lepaskan: 2024-02-20 10:54:18
ke hadapan
493 orang telah melayarinya

Prinsip Pengaturcaraan Falsafah Unix

1 Falsafah Unix

Falsafah Unix menekankan kepraktisan, diperoleh daripada pengalaman yang kaya, dan tidak dihadkan oleh metodologi atau piawaian tradisional. Pengetahuan ini lebih terpendam dan separa naluri. Pengetahuan yang dikumpul pengaturcara Unix melalui pengalaman pembangunan boleh memberi manfaat kepada pengaturcara lain.

(1) Setiap program harus menumpukan pada menyelesaikan satu tugasan dan memulakan semula apabila menghadapi tugasan baharu untuk mengelakkan penambahan fungsi baharu pada program asal, yang akan membawa kepada peningkatan kerumitan. (2) Dengan mengandaikan bahawa output program akan menjadi input program lain, walaupun program seterusnya belum diketahui, pastikan output tidak mengandungi maklumat yang tidak relevan. (3) Letakkan perisian yang direka bentuk dan bertulis ke dalam penggunaan percubaan secepat mungkin, dan dengan tegas meninggalkan kod berkualiti rendah dan menulisnya semula. (4) Gunakan alat sebelum alat bantu yang tidak cekap untuk mengurangkan beban tugas pengaturcaraan Untuk berusaha mencapai kecemerlangan, anda mesti menggunakan alat dengan baik.

2 Prinsip pengekodan

Intipati falsafah Unix bukan sekadar apa yang disampaikan oleh orang bijak secara lisan, tetapi lebih tercermin dalam amalan mereka dan reka bentuk sistem Unix itu sendiri. Falsafah ini boleh diringkaskan dalam beberapa perkara penting:

  • Prinsip modul: Gunakan antara muka mudah untuk memasang komponen ringkas.
  • Prinsip Kejelasan: Kejelasan lebih baik daripada kepandaian.
  • Prinsip gabungan: Pertimbangkan penyambungan dan gabungan semasa mereka bentuk.
  • Prinsip pemisahan: Strategi diasingkan daripada mekanisme, antara muka diasingkan daripada enjin.
  • Prinsip kesederhanaan: Reka bentuk hendaklah ringkas dan kerumitan hendaklah serendah mungkin.
  • Prinsip parsimoni: Jangan tulis program besar melainkan tiada cara lain.
  • Prinsip ketelusan: Reka bentuk harus kelihatan untuk semakan dan nyahpepijat.
  • Prinsip kekukuhan: Kekukuhan datang daripada ketelusan dan kesederhanaan.
  • Prinsip perwakilan: Tindih pengetahuan ke dalam data untuk mencapai logik yang mudah dan mantap.
  • Prinsip popular: Elakkan kebaharuan dalam reka bentuk antara muka.
  • Prinsip senyap: Jika program tiada apa-apa untuk diperkatakan, diam.
  • Prinsip pemulihan: Apabila pengecualian berlaku, keluar serta-merta dan berikan maklumat ralat yang mencukupi.
  • Prinsip ekonomi: Adalah lebih baik untuk menghabiskan satu minit pada mesin daripada satu saat pada pengaturcara.
  • Prinsip penjanaan: elakkan koyak dengan tangan, cuba tulis program untuk menjana program.
  • Prinsip pengoptimuman: Mempunyai prototaip sebelum mengukir, belajar berjalan sebelum berlari.
  • Prinsip Kepelbagaian: Jangan sekali-kali percaya pada penegasan apa yang dipanggil "satu-satunya kaedah".
  • Prinsip Pengembangan: Reka bentuk dengan memikirkan masa depan, dan masa depan akan sentiasa tiba lebih cepat daripada jangkaan.
  • Ikuti akaun awam WeChat [Sistem Terbenam]
  • Apabila anda mula-mula belajar kejuruteraan perisian, anda harus mempunyai pemahaman yang mendalam tentang prinsip ini. Walaupun kebanyakan artikel mempromosikan prinsip ini, banyak sistem kekurangan alat dan tradisi praktikal yang menghalang pengaturcara daripada melaksanakan prinsip ini. Mereka sering dihalang oleh alatan yang lemah, reka bentuk yang buruk, terlalu banyak kerja dan kod yang berlebihan.

    2.1 Prinsip modul: Gunakan antara muka mudah untuk memasang komponen ringkas

    Inti pengaturcaraan ialah mengurus kerumitan. Menyelesaikan pepijat mengambil sebahagian besar masa pembangunan. Kejayaan sistem yang boleh digunakan adalah lebih hasil daripada percubaan dan kesilapan daripada hanya bakat atau kemahiran reka bentuk.

    Bahasa perhimpunan, bahasa yang disusun, carta alir, pengaturcaraan prosedur, pengaturcaraan berstruktur, berorientasikan objek dan metodologi pembangunan perisian terlalu digembar-gemburkan. Tetapi mereka meningkatkan kerumitan program di luar keupayaan pemprosesan otak manusia.

    Untuk berjaya membangunkan perisian yang kompleks, mengurangkan kerumitan keseluruhan dan menggabungkan modul mudah melalui antara muka yang jelas adalah kunci. Ini memastikan masalah disetempatkan ke bahagian tertentu, menjadikannya lebih mudah untuk memperbaikinya tanpa menjejaskan keseluruhannya.

    2.2 Prinsip Kejelasan: Kejelasan lebih baik daripada kepandaian

    Tulis kod dengan mengambil kira kerumitan penyelenggaraan masa hadapan dan kos. Kod hendaklah mudah dibaca dan difahami supaya mudah diubah suai dan diselenggara oleh orang lain atau diri sendiri jika perlu.

    Dalam tradisi Unix, prinsip ini terpakai kepada lebih daripada sekadar komen kod. Amalan terbaik Unix juga menekankan mengambil kira kebolehskalaan masa hadapan apabila memilih algoritma dan pelaksanaan. Walaupun ia mungkin menarik untuk menambah kerumitan teknikal dan kekeliruan untuk meningkatkan sedikit prestasi program, pendekatan ini tidak berbaloi. Ini bukan sahaja kerana kod kompleks terdedah kepada pepijat, tetapi juga kerana ia menjadikannya lebih sukar untuk dibaca dan diselenggara pada masa hadapan. Sebaliknya, kod yang elegan dan jelas bukan sahaja lebih stabil, tetapi juga lebih mudah untuk orang lain memahami dan mengubah suai. Ini penting, terutamanya kerana orang yang mungkin perlu kembali dan mengubah suai kod ini beberapa tahun dari sekarang mungkin anda.

    Jangan sekali-kali bergelut untuk menguraikan sekeping kod yang tidak jelas sebanyak tiga kali. Anda mungkin terlepas dengannya pada kali pertama, tetapi jika anda mendapati bahawa anda perlu mentafsirnya semula - sudah terlalu lama sejak kali pertama dan anda tidak dapat mengingati butiran khusus, maka sudah tiba masanya untuk mengulas kod itu, jadi bahawa kali ketiga akan menjadi agak kurang menyakitkan.

    2.3 Prinsip Gabungan: Pertimbangkan penyambungan dan gabungan semasa mereka bentuk

    Jika program tidak dapat berkomunikasi secara berkesan antara satu sama lain, maka perisian itu pasti akan terperangkap dalam kerumitan.

    Dari segi input dan output, tradisi Unix sangat menyokong penggunaan format yang mudah, tekstual, berorientasikan aliran, dan bebas peranti. Di bawah Unix klasik, kebanyakan program menggunakan bentuk penapis mudah sebanyak mungkin, iaitu, memproses aliran teks input kepada output aliran teks ringkas. Bertentangan dengan kebijaksanaan konvensional, pengaturcara Unix lebih suka pendekatan ini bukan kerana mereka membenci antara muka pengguna grafik, tetapi kerana program sangat sukar untuk disambungkan jika mereka tidak menggunakan aliran input dan output teks yang mudah.

    Strim teks dalam Unix adalah untuk alat maksud mesej kepada objek dalam persekitaran berorientasikan objek. Kesederhanaan antara muka aliran teks meningkatkan enkapsulasi alat. Banyak kaedah komunikasi antara proses yang canggih, seperti panggilan prosedur jauh, cenderung melibatkan terlalu banyak proses.

    Untuk menjadikan program boleh digubah, adalah perlu untuk menjadikan program bebas antara satu sama lain. Program pada satu hujung strim teks hendaklah, seboleh-bolehnya, tidak mengambil kira program di hujung strim teks yang lain. Ia sepatutnya mudah untuk menggantikan program pada satu hujung dengan yang sama sekali berbeza tanpa mengganggu hujung yang lain sama sekali. GUI boleh menjadi perkara yang baik Sebelum membuat GUI, anda harus memikirkan sama ada anda boleh memisahkan program interaktif yang kompleks daripada program algoritma yang melakukan kerja kasar Setiap bahagian boleh dibuat menjadi bahagian yang berasingan, dan kemudian menggunakan arahan mudah aliran atau protokol aplikasi untuk menggabungkannya.

    Sebelum membina format penghantaran data yang canggih, adalah perlu untuk menyemak di tempat sama ada format data teks mudah boleh digunakan; mentafsir aliran data.

    Apabila program tidak boleh menggunakan antara muka berasaskan protokol bersiri secara semula jadi, reka bentuk Unix yang betul adalah sekurang-kurangnya untuk mengatur seberapa banyak elemen pengaturcaraan yang mungkin ke dalam satu set API yang jelas. Dengan cara ini, aplikasi sekurang-kurangnya boleh dipanggil melalui pautan, atau antara muka yang berbeza boleh dilekatkan bersama mengikut keperluan tugas yang berbeza.

    2.4 Prinsip pemisahan: pemisahan strategi daripada mekanisme, pemisahan antara muka daripada enjin

    Strategi dan mekanisme berubah mengikut skala masa yang berbeza, dan strategi berubah lebih cepat daripada mekanisme. Menggabungkan strategi dengan mekanisme mempunyai dua kesan negatif: Pertama, ia akan menjadikan strategi tegar dan sukar untuk menyesuaikan diri dengan perubahan dalam keperluan pengguna, kedua, ia juga bermakna sebarang perubahan dalam strategi berkemungkinan menggoncang mekanisme; Sebaliknya, menanggalkan kedua-duanya mungkin tidak mencukupi untuk memecahkan mekanisme apabila meneroka strategi baharu. Selain itu, lebih mudah untuk menulis ujian yang lebih baik untuk mekanisme tersebut.

    Satu cara untuk mencapai pelucutan adalah dengan membahagikan aplikasi kepada proses hadapan dan belakang yang boleh bekerjasama dan berkomunikasi melalui protokol aplikasi khusus pada lapisan atas soket. Strategi pelaksanaan bahagian hadapan, mekanisme pelaksanaan bahagian belakang. Berbanding dengan pelaksanaan keseluruhan menggunakan hanya satu proses, reka bentuk dua hujung ini sangat mengurangkan kerumitan keseluruhan dan dijangka mengurangkan pepijat, sekali gus mengurangkan kos kitaran hayat program.

    2.5 Prinsip Kesederhanaan: Reka bentuk hendaklah ringkas dan kerumitan hendaklah serendah mungkin

    Tekanan dari banyak aspek sering menjadikan program lebih kompleks (yang menjadikan program lebih mahal dan mempunyai lebih banyak pepijat Salah satu tekanan datang dari kesombongan teknikal). Pengaturcara adalah bijak dan sering berbangga dengan keupayaan mereka untuk bermain dengan perkara yang kompleks dan konsep abstrak, dan memang wajar. Tetapi kerana ini, mereka sering bersaing dengan rakan sebaya mereka untuk melihat siapa yang boleh bermain-main dengan perkara yang paling rumit dan cantik Keupayaan reka bentuk mereka jauh melebihi keupayaan pelaksanaan dan penyahpepijatan mereka, dan hasilnya adalah sekerap yang mahal.

    "Perkara yang sangat indah" terdengar seperti percanggahan. Pengaturcara Unix bersaing antara satu sama lain untuk melihat siapa yang boleh menjadi "mudah dan cantik." Walaupun ini hanya tersirat dalam peraturan ini, ia patut disebut secara terbuka dan ditekankan.

    Sekurang-kurangnya dalam dunia perisian komersil, kerumitan yang berlebihan selalunya datang daripada keperluan projek, dan keperluan ini selalunya berdasarkan padang jualan dan bukannya berdasarkan keperluan pelanggan dan perkara yang sebenarnya boleh disediakan oleh perisian itu. Banyak reka bentuk yang baik dibunuh oleh senarai panjang ciri yang dipasarkan sebagai ciri yang hampir tidak pernah digunakan. Kemudian, kitaran ganas bermula Cara untuk menjadi lebih mewah daripada orang lain adalah menjadi lebih mewah kepada diri sendiri. Tidak lama kemudian, bloat menjadi standard industri Semua orang menggunakan perisian kembung dengan begitu banyak pepijat sehingga pembangun perisian tidak berani mengambil serius.

    Satu-satunya cara untuk mengelakkan perangkap ini adalah dengan menggalakkan budaya perisian alternatif di mana kesederhanaan adalah keindahan. Ini adalah tradisi kejuruteraan yang mementingkan penyelesaian mudah, sentiasa cuba memecahkan sistem program kepada bahagian-bahagian kecil yang boleh berfungsi bersama-sama, dan secara naluri menentang sebarang percubaan untuk menyelubungi program dengan terlalu banyak gimik.

    2.6 Prinsip kedekut: Jangan tulis program besar melainkan tiada cara lain

    "Besar" mempunyai dua makna: saiz besar dan kerumitan tinggi. Lebih besar program, lebih sukar untuk dikekalkan. Kesukaran untuk berpisah dengan sesuatu yang memerlukan banyak usaha untuk mencipta hasil dalam pembaziran pelaburan dalam program besar yang ditakdirkan untuk gagal atau bukan penyelesaian terbaik. Elakkan kod dan logik yang tidak perlu dan pastikan kod anda ramping.

    2.7 Prinsip Ketelusan: Reka bentuk harus kelihatan untuk semakan dan penyahpepijatan

    Oleh kerana penyahpepijatan sering mengambil masa tiga perempat atau lebih masa pembangunan, adalah berbaloi untuk melakukan lebih sedikit kerja pada permulaan untuk mengurangkan jumlah kerja penyahpepijatan kemudian. Cara berkesan untuk mengurangkan beban kerja penyahpepijatan adalah dengan mempertimbangkan sepenuhnya ketelusan dan keterlihatan semasa mereka bentuk.

    Ketelusan sistem perisian bermakna anda boleh melihat apa yang perisian itu lakukan dan cara perisian itu melakukannya sepintas lalu. Keterlihatan bermaksud program mempunyai keupayaan untuk memantau dan memaparkan keadaan dalamannya, supaya program itu bukan sahaja berjalan dengan baik, tetapi ia juga dapat dilihat dengan cara bagaimana ia berjalan.

    Jika keperluan ini dipertimbangkan sepenuhnya semasa reka bentuk, ia akan membawa manfaat kepada keseluruhan proses projek. Tetapan pilihan penyahpepijatan tidak boleh dilakukan selepas fakta, tetapi harus dipertimbangkan pada permulaan reka bentuk Program ini bukan sahaja dapat menunjukkan ketepatannya, tetapi juga dapat memaklumkan kepada mereka yang datang lewat tentang penyelesaian masalah pemaju asal. model pemikiran.

    Jika program ingin menunjukkan ketepatannya, ia harus menggunakan format input dan output yang cukup ringkas untuk memastikan ia mudah untuk menyemak sama ada hubungan antara input yang sah dan output yang betul adalah betul. Demi ketelusan dan keterlihatan, antara muka yang mudah juga harus dipromosikan untuk memudahkan program lain mengendalikannya, terutamanya alat pemantauan ujian dan skrip penyahpepijatan. Ikuti akaun awam WeChat [Sistem Terbenam]

    2.8 Prinsip Kekukuhan: Kekukuhan datang daripada ketelusan dan kesederhanaan

    Keteguhan perisian bermakna perisian bukan sahaja boleh berjalan dengan baik dalam keadaan biasa, tetapi juga berjalan dengan baik dalam keadaan yang tidak dijangka di luar imaginasi.

    Kebanyakan perisian tidak boleh bertolak ansur dengan lebam dan mempunyai banyak masalah kerana ia terlalu kompleks dan sukar untuk mempertimbangkan segala-galanya. Jika anda tidak dapat memahami logik program dengan betul, anda tidak dapat memastikan ia betul, dan anda tidak boleh membetulkannya apabila berlaku kesilapan. Cara untuk menjadikan program teguh adalah untuk menjadikan logik dalaman program lebih mudah difahami Terdapat dua cara utama untuk melakukan ini: ketelusan dan kesederhanaan.

    Dari segi keteguhan, ia juga penting untuk mereka bentuk dengan keupayaan untuk menahan input yang melampau dalam fikiran. Dalam kes input yang tidak normal, strategi yang sangat penting untuk memastikan keteguhan perisian adalah untuk mengelakkan kes khas dalam kod pepijat biasanya tersembunyi dalam kod yang mengendalikan kes khas dan kod yang mengendalikan operasi interaktif situasi khas yang berbeza. .

    Ketelusan perisian bermakna anda boleh melihat perkara yang sedang berlaku sepintas lalu. Sesuatu program adalah mudah jika "apa yang sedang berlaku" tidak kompleks, iaitu, jika semua senario yang mungkin boleh disimpulkan tanpa memerah otak seseorang. Lebih mudah dan lebih telus program itu, lebih mantap ia.

    Modularisasi (kod ringkas, antara muka ringkas) ialah satu cara untuk mengatur program untuk mencapai tujuan yang lebih ringkas.

    2.9 Prinsip perwakilan: tindih pengetahuan ke dalam data untuk mencapai logik yang mudah dan mantap

    Data lebih mudah dikawal daripada logik pengaturcaraan Dalam reka bentuk, kerumitan kod harus dipindahkan secara aktif kepada data.

    Pertimbangan ini bukan asal kepada Unix, tetapi banyak kod Unix ditunjukkan dipengaruhi olehnya. Khususnya, keupayaan bahasa C untuk mengawal penggunaan penunjuk memudahkan pengubahsuaian dinamik struktur rujukan pada pelbagai peringkat pengekodan di atas kernel. Tugas yang boleh dicapai dengan operasi penunjuk yang sangat mudah dalam struktur selalunya memerlukan prosedur yang lebih kompleks dalam bahasa lain.

    Apabila melakukan pengaturcaraan dipacu data, anda perlu memisahkan kod dan struktur data dengan jelas yang kod bertindak dengan cara ini, apabila menukar logik program, anda hanya perlu mengedit struktur data dan bukannya kod. Pengaturcaraan dipacu data kadangkala dikelirukan dengan pengaturcaraan berorientasikan objek, gaya lain yang berpusat pada organisasi data. Terdapat sekurang-kurangnya dua perbezaan di antara mereka. Pertama, dalam pengaturcaraan dipacu data, data bukan sahaja keadaan objek, tetapi sebenarnya mentakrifkan aliran kawalan atur cara kedua, pertama berorientasikan objek mempertimbangkan enkapsulasi, manakala nilai pengaturcaraan dipacu data menulis sebanyak; Kod yang kurang tetap.

    2.10 Prinsip Popular: Elakkan kebaharuan dalam reka bentuk antara muka

    Ini juga dikenali sebagai "prinsip paling tidak terkejut". Program yang paling mudah digunakan ialah program yang memerlukan pengguna mempelajari perkara baharu yang paling sedikit dan merupakan program yang paling sepadan dengan pengetahuan sedia ada pengguna. Oleh itu, reka bentuk antara muka harus mengelakkan kebaharuan dan kepintaran yang tidak wajar.

    Jika anda memprogramkan kalkulator, ‘+’ hendaklah sentiasa bermaksud penambahan. Apabila mereka bentuk antara muka, cuba modelkannya mengikut antara muka berfungsi yang sama dan aplikasi serupa yang paling mungkin biasa digunakan oleh pengguna.

    Fokus pada khalayak sasaran anda, mereka mungkin pengguna akhir, mereka mungkin pengaturcara lain, mereka mungkin pentadbir sistem. Paling tidak mengejutkan bermakna perkara yang berbeza kepada kumpulan orang yang berbeza ini. Fokus pada konvensyen tradisional, yang wujud atas sebab yang baik: untuk memudahkan keluk pembelajaran.

    Sisi lain dari prinsip inovasi minimum adalah untuk mengelakkan perkara yang kelihatan serupa tetapi sebenarnya berbeza sedikit. Ini boleh menjadi sangat berbahaya kerana persamaan yang jelas sering menyebabkan orang ramai membuat andaian yang salah. Jadi adalah lebih baik untuk mempunyai perkara yang berbeza yang jelas berbeza, daripada kelihatan hampir serupa.

    2.11 Prinsip berdiam diri: Jika program tiada apa-apa untuk diperkatakan, diamlah

    Program yang berkelakuan baik harus berfungsi secara senyap dan tidak pernah berceloteh. Kesunyian adalah keemasan. Prinsip ini berpunca daripada fakta bahawa apabila Unix dilahirkan, tiada pemantau video Setiap baris keluaran berlebihan akan memakan masa berharga pengguna. Keadaan ini tidak lagi wujud, tetapi tradisi yang baik untuk memastikan segala-galanya mudah diteruskan sehingga hari ini.

    Kesederhanaan ialah gaya teras program Unix. Sebaik sahaja output program menjadi input program lain, adalah mudah untuk memilih data yang diperlukan. Dari perspektif manusia, maklumat penting tidak boleh dicampur dengan maklumat yang panjang tentang tingkah laku dalaman program. Jika maklumat yang dipaparkan semuanya penting, maka tidak perlu mencarinya. Program yang direka bentuk dengan baik menganggap perhatian pengguna sebagai sumber yang terhad dan berharga, memerlukan penggunaannya hanya apabila perlu untuk mengelak daripada mengganggu pengguna dengan maklumat yang tidak diperlukan.

    2.12 Prinsip remedi: Apabila pengecualian berlaku, keluar serta-merta dan berikan maklumat ralat yang mencukupi

    Perisian harus mempunyai logik telus yang sama apabila ralat berlaku seperti yang berlaku di bawah operasi biasa. Senario kes terbaik, sudah tentu, perisian itu boleh menyesuaikan diri dan menghadapi operasi yang tidak normal; .

    Oleh itu, perisian mesti menangani pelbagai input yang tidak betul dan ralat berjalannya sendiri setenang mungkin.

    "Terima dengan toleransi dan hantar dengan berhati-hati". Walaupun data input tidak diseragamkan, program yang direka bentuk dengan baik akan cuba memahami maksudnya dan bekerjasama dengan program lain sebanyak mungkin kemudian, ia akan sama ada runtuh dengan kuat atau mengeluarkan data yang ketat, bersih dan betul untuk program itu; pautan seterusnya rantai kerja.

    Toleransi harus dipertimbangkan semasa mereka bentuk, dan tidak menggunakan pelaksanaan yang terlalu memanjakan untuk mengimbangi kekurangan piawaian, jika tidak, anda akan mati dengan buruk jika anda tidak berhati-hati.

    2.13 Prinsip ekonomi: Lebih baik menghabiskan satu mata pada mesin daripada satu saat untuk pengaturcara

    Pada era komputer mini awal Unix, pandangan ini masih agak radikal dengan perkembangan teknologi, syarikat pembangunan dan kebanyakan pengguna boleh mendapatkan mesin murah, jadi rasional prinsip ini tidak perlu diperkatakan.

    Di bawah premis memastikan kualiti, cuba gunakan sumber komputer untuk menyelesaikan tugas dan kurangkan beban pengaturcara satu lagi cara untuk menjimatkan masa pengaturcara dengan ketara adalah dengan mengajar mesin cara melakukan lebih banyak kerja pengaturcaraan peringkat rendah. Ikuti akaun awam WeChat [Sistem Terbenam]

    2.14 Prinsip penjanaan: elakkan koyak dengan tangan, cuba tulis program untuk menjana program

    Kita semua tahu bahawa manusia sangat hebat dalam melakukan kerja terperinci yang keras. Sebarang kerja manual dalam program adalah tempat pembiakan untuk ralat dan kelewatan, dan kod yang dijana program hampir selalu lebih murah dan lebih dipercayai daripada kod tulisan tangan.

    Untuk penjana kod, kod bahasa peringkat tinggi berulang dan kebas yang memerlukan tulisan tangan boleh dihasilkan secara besar-besaran sama seperti kod mesin. Menggunakan penjana kod membuahkan hasil apabila ia meningkatkan tahap abstraksi, iaitu, apabila pernyataan deklaratif penjana adalah lebih mudah daripada kod yang dijana, dan kod yang dijana menghilangkan keperluan untuk pemprosesan manual yang susah payah. Penjana kod digunakan secara meluas dalam Unix untuk mengautomasikan kerja yang terperinci dan rawan ralat.

    2.15 Prinsip pengoptimuman: Mempunyai prototaip sebelum mengukir, belajar berjalan sebelum berlari

    Prinsip paling asas reka bentuk prototaip ialah, "90% daripada fungsi boleh direalisasikan sekarang, yang lebih baik daripada 100% daripada fungsi yang tidak boleh direalisasikan." Prototaip dengan baik boleh mengelak daripada melabur terlalu banyak masa hanya untuk keuntungan kecil.

    "Peningkatan kecekapan untuk keuntungan kecil tidak harus dipertimbangkan, pengoptimuman pramatang adalah punca segala kejahatan." Tergesa-gesa untuk mengoptimumkan tanpa mengetahui di mana kesesakan itu mungkin satu-satunya kesilapan yang merosakkan reka bentuk lebih daripada menambah ciri rawak. Daripada kod yang cacat kepada susun atur data yang tidak teratur, mengejar kepantasan yang berat sebelah dengan mengorbankan ketelusan dan kesederhanaan menimbulkan banyak pepijat dan memakan masa berjuta-juta orang. Manfaat kecil ini jauh daripada mengimbangi kos penyelesaian masalah berikutnya.

    Pengoptimuman tempatan pramatang sebenarnya boleh menghalang pengoptimuman global, sekali gus mengurangkan prestasi keseluruhan. Pengubahsuaian yang akan membawa faedah yang lebih besar kepada reka bentuk keseluruhan sering diganggu oleh pengoptimuman tempatan pramatang, menghasilkan produk dengan prestasi yang lemah dan kod yang terlalu kompleks.

    Dalam dunia Unix, terdapat tradisi yang sangat jelas dan lama: prototaip dahulu, kemudian perhalusi. Sebelum mengoptimumkan, pastikan ia boleh digunakan Mula-mula, anda boleh berjalan, kemudian belajar berlari. Berkesan meluaskan ini daripada budaya yang berbeza: lari dahulu, betul-betul seterusnya, dan pergi pantas terakhir.

    Intipati semua perkataan ini sebenarnya bermaksud perkara yang sama: mula-mula reka bentuk pelaksanaan yang tidak dioptimumkan, berjalan perlahan, memakan memori tetapi betul, dan kemudian buat pelarasan sistematik untuk mencari yang boleh mencapai hasil yang lebih besar dengan mengorbankan kesederhanaan tempatan yang minimum diperbaiki.

    2.16 Prinsip Kepelbagaian: Jangan sekali-kali percaya pada penegasan apa yang dipanggil "satu-satunya kaedah"

    Malah perisian terbaik sering dihadkan oleh imaginasi perekanya. Tiada siapa yang cukup bijak untuk mengoptimumkan segala-galanya, dan mereka juga tidak dapat meramalkan semua kemungkinan penggunaan perisian.

    Untuk reka bentuk dan pelaksanaan perisian, satu perkara yang baik tentang tradisi Unix ialah ia tidak pernah mempercayai apa-apa yang dipanggil "pendekatan satu saiz untuk semua". Unix meneruskan penggunaan meluas berbilang bahasa, sistem berskala terbuka, dan mekanisme penyesuaian pengguna; ia menyerap dan menggunakan pelbagai idea reka bentuk yang sangat baik, dan terus menambah baik kaedah dan gaya reka bentuknya sendiri.

    2.17 Prinsip Pengembangan: Reka bentuk dengan memikirkan masa depan, masa depan sentiasa lebih pantas daripada jangkaan

    Tinggalkan ruang untuk pengembangan format data dan kod, jika tidak, anda akan sering mendapati diri anda terikat dengan pilihan asal yang tidak bijak, kerana anda tidak boleh mengubahnya sambil mengekalkan keserasian dengan yang asal.

    Apabila mereka bentuk protokol atau format fail, jadikan ia cukup menggambarkan diri supaya boleh dikembangkan. Sama ada sertakan nombor versi, atau gunakan penyataan bebas yang menerangkan sendiri untuk mengatur format sedemikian rupa sehingga yang baharu boleh dimasukkan dan yang lama ditukar pada bila-bila masa tanpa melanggar kod yang membaca format tersebut. Pengalaman Unix menunjukkan bahawa dengan meningkatkan sedikit overhed untuk membuat penempatan data menggambarkan sendiri, anda boleh membuat skala tanpa memusnahkan keseluruhannya, dan usaha kecil boleh diberi ganjaran beribu kali ganda.

    Apabila mereka bentuk kod, ia harus disusun dengan baik supaya pembangun masa depan boleh menambah ciri baharu tanpa meruntuhkan atau membina semula keseluruhan seni bina. Prinsip ini tidak bermakna anda boleh menambah fungsi yang tidak digunakan sesuka hati, tetapi anda harus mempertimbangkan keperluan masa hadapan semasa menulis kod untuk memudahkan anda menambah fungsi pada masa hadapan. Antara muka program hendaklah fleksibel Tambah komen "Jika perluasan...memerlukan..." dalam kod Anda diwajibkan untuk melakukan sesuatu yang baik untuk mereka yang menggunakan dan mengekalkan kod yang anda tulis pada masa hadapan kod itu sendiri pada masa hadapan dan reka bentuknya dengan mengambil kira masa depan yang anda simpan mungkin tenaga anda sendiri.

    3 Mengaplikasikan falsafah Unix

    Prinsip falsafah ini sama sekali tidak kabur dan umum. Dalam dunia Unix, prinsip ini datang terus daripada amalan dan membentuk peraturan khusus.

    Menggunakan falsafah Unix, anda harus sentiasa mengejar kecemerlangan. Reka bentuk perisian adalah kraf yang layak untuk kebijaksanaan, kreativiti dan semangat. Jika tidak, anda tidak akan melampaui reka bentuk dan pelaksanaan yang mudah dan lama anda akan tergesa-gesa untuk memprogramkan apabila anda sepatutnya berfikir, anda akan merumitkan masalah apabila anda harus dengan kejam memotong kompleks dan memudahkan, dan anda akan mengadu tentang sebabnya; kod itu sangat Kembung dan sukar untuk dinyahpepijat.

    Untuk menggunakan falsafah Unix dengan baik, jangan sekali-kali bertindak melulu; gunakan lebih banyak kemahiran dan simpan tenaga anda untuk digunakan apabila diperlukan. Manfaatkan alatan dan automasi segala-galanya sebanyak mungkin.

    4 Sikap

    Reka bentuk dan pelaksanaan perisian ialah seni yang penuh kegembiraan, permainan peringkat tinggi. Mengapa anda perlu melibatkan diri dalam reka bentuk perisian dan bukannya apa-apa lagi Mungkin sekarang ia hanya untuk membuat wang atau meluangkan masa, atau mungkin anda pernah berfikir bahawa reka bentuk perisian mengubah dunia dan bernilai minat.

    Atas ialah kandungan terperinci Prinsip Pengaturcaraan Falsafah Unix. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Label berkaitan:
    sumber:mryunwei.com
    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
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan