Sebuah alat baharu berasaskan Python yang dipanggil mblike telah muncul untuk menangani cabaran lama dalam memformat Makefile secara konsisten. Alat ini berjanji untuk memformat Makefile secara automatik mengikut amalan terbaik komuniti, tetapi pelepasannya telah mencetuskan perbincangan hangat mengenai pendekatan teknikal dan pilihan pelaksanaannya.
Pilihan Pemasangan:
- PyPI:
pip install mblike
- Sambungan VSCode: Cari "Makefile Formatter" dalam Extensions
- Dari Sumber: Klon dari GitHub dan jalankan
make install
Kontroversi Pengisytiharan .PHONY
Perdebatan paling hangat tertumpu pada pendekatan mblike dalam menyatukan pengisytiharan .PHONY. Alat ini mengumpulkan berbilang sasaran .PHONY ke dalam pengisytiharan tunggal, tetapi ramai pembangun menentang keras amalan ini. Pengkritik berhujah bahawa pengisytiharan .PHONY harus kekal berdekatan dengan sasaran yang berkaitan untuk kebolehbacaan dan kebolehselenggaraan yang lebih baik. Perselisihan asas ini menyerlahkan perpecahan falsafah yang lebih mendalam dalam komuniti Makefile mengenai prinsip organisasi kod.
Kontroversi ini melangkaui keutamaan pemformatan semata-mata. Sesetengah pembangun melihat penyatuan sebagai anti-ciri yang bertentangan dengan konvensyen Makefile yang telah ditetapkan. Walau bagaimanapun, alat ini menawarkan pilihan konfigurasi untuk melumpuhkan tingkah laku ini, membolehkan pengguna mengekalkan gaya pilihan mereka sambil mendapat manfaat daripada ciri pemformatan lain.
Pilihan Konfigurasi:
{
use_tabs: true,
tab_width: 1,
space_around_assignment: true,
space_around_colon: true,
insert_missing_phony: true,
remove_trailing_whitespace: true,
group_phony_declarations: false // Boleh melumpuhkan penyatuan
}
Pelaksanaan Python Mendapat Reaksi Bercampur
Pilihan untuk melaksanakan mblike dalam Python telah menjana perbincangan ketara mengenai pengedaran alat dan prestasi. Walaupun Python menawarkan keupayaan manipulasi rentetan yang sangat baik dan komuniti pembangun yang besar, pengkritik menunjukkan kepada kerumitan pemasangan dan isu pengurusan kebergantungan. Alat ini memerlukan pemasangan pip, yang secara automatik mengecualikan ramai pengguna berpotensi yang tidak mempunyai alat pengurusan pakej Python yang mudah diakses.
Kebimbangan prestasi juga muncul dalam perbincangan komuniti, dengan sesetengah pembangun menyatakan bahawa alat berasaskan Python seperti yamllint boleh menambah kelewatan yang ketara kepada aliran kerja pembangunan. Ini menjadi masalah terutamanya untuk aliran kerja format-on-save di mana setiap milisaat adalah penting. Walaupun terdapat batasan ini, penyokong berhujah bahawa kehadiran Python di mana-mana dan kemudahan pembangunan mengatasi kelemahan untuk kebanyakan kes penggunaan.
Make sebagai Task Runner Mencetuskan Perbincangan Lebih Luas
Pelepasan alat ini juga telah mencetuskan semula perdebatan mengenai peranan Make dalam pembangunan moden. Walaupun Make pada asalnya direka untuk pengurusan kebergantungan fail berdasarkan tarikh pengubahsuaian, ramai pembangun kini menggunakannya sebagai task runner tujuan umum. Evolusi ini telah mewujudkan ketegangan antara puris yang lebih suka Make untuk tujuan yang dimaksudkan dan pragmatis yang menghargai kehadirannya di mana-mana dan kesederhanaan.
Make ada dalam POSIX, jadi ia biasanya tersedia. Sebab yang sama orang menulis skrip shell.
Perbincangan mendedahkan bahawa ramai pembangun menghargai ketersediaan universal Make berbanding task runner yang lebih khusus, walaupun mengakui batasannya untuk aliran kerja yang kompleks.
Peraturan Pemformatan Utama:
- Indentasi: Menguatkuasakan 1 tab sebagai ganti ruang kosong
- Operator tugasan: Menormalkan jarak di sekeliling
=
,:=
,::=
- Titik bertindih sasaran: Menguruskan jarak di sekeliling titik bertindih kebergantungan
- Ruang kosong mengekori: Membuang ruang kosong mengekori yang tidak perlu
- Pengisytiharan .PHONY: Mengumpul dan menyatukan pengisytiharan (boleh dikonfigurasikan)
Ciri Pengesanan Pintar Menunjukkan Potensi
Walaupun terdapat kontroversi, keupayaan pengesanan .PHONY pintar mblike telah menarik minat. Alat ini menggunakan analisis dinamik untuk mengenal pasti sasaran phony yang hilang dengan memeriksa arahan resipi dan bukannya bergantung pada konvensyen penamaan. Pendekatan ini boleh mengesan sasaran secara automatik yang melakukan tindakan seperti menjalankan arahan Docker atau melaksanakan skrip pembersihan, berpotensi menjimatkan masa pembangun dan mengurangkan ralat.
Alat ini juga menawarkan peraturan pemformatan komprehensif untuk indentasi, jarak dan pengendalian kesinambungan baris. Ciri-ciri ini menangani titik kesakitan biasa dalam penyelenggaraan Makefile, walaupun penyatuan .PHONY kekal kontroversial.
Respons komuniti terhadap mblike mencerminkan ketegangan yang lebih luas dalam pembangunan perisian antara automasi dan kawalan manual, antara kemudahan dan prestasi, dan antara amalan yang telah ditetapkan dan pendekatan baharu. Walaupun alat ini mungkin tidak memenuhi keutamaan semua orang, ia mewakili satu lagi langkah dalam evolusi berterusan alat pembangunan untuk salah satu sistem binaan yang paling berkekalan dalam pengkomputeran.
Rujukan: mblike