Halo semuanya.
Saya (kami, sebagai perusahaan) menyelesaikan platform dari pemasok, platform adalah plugin untuk WordPress. Saya kenal dengan frontend, JS, HTML hanya sejauh, oleh karena itu, solusi di atas mungkin tidak terpelajar, tetapi esensi dari artikel ini bukan itu .
Intinya adalah untuk menunjukkan dengan jelas mengapa kadang-kadang alih-alih dua baris kode, itu adalah keputusan yang tepat untuk menulis dua ratus.
Pengembang awal, dan pengembang dengan pengalaman yang pemikiran seperti itu tampaknya diragukan, saya bertanya di bawah kucing.
Pendahuluan
Membaca artikel tanpa membaca komentar dalam kode tidak masuk akal, karena komentar dalam kode tidak digandakan dalam teks artikel dan teks artikel menyiratkan bahwa pembaca telah membaca komentar.
Tantangan
Itu perlu untuk membuat perubahan pada JS, saya membuat perubahan dalam file terpisah, sehingga sesedikit mungkin "mencemari" kode sumber penyedia platform, sehingga di masa depan akan lebih mudah untuk mengadaptasi pembaruan dari sumber platform.
Dengan demikian, kode fungsi baru ada di file baru yang perlu dimuat di halaman.
Tugas: diperlukan untuk memuat file tertentu saat memuat halaman.
Pancake pertama kental
+<script src="e-cryptex.js"></script> +<script src="wp-content/themes/tol-child/js/child_realforex.js"></script>
(baris dengan "+" adalah baris baru dalam kode sumber)
Solusinya diuji untuk halaman utama dan berfungsi di sana, kemudian ternyata untuk halaman dengan alamat example.com/about, solusinya tidak berfungsi, karena browser sedang mencoba memuat example.com/about/e-cryptex.js dan browser menerima kesalahan 404 , karena file tersebut benar-benar di root - example.com/e-cryptex.js.
Opsi kedua
Saya melihat bagaimana pengembang platform menempel pada halaman:
wp_register_script(FILE-ID,FILE-PATH); wp_enqueue_script(FILE-ID);
File dilampirkan menggunakan fungsionalitas WordPress - ok, mari kita lakukan hal yang sama:
(baris dengan "+" adalah baris baru dalam kode sumber, baris dengan "-" adalah baris yang dihapus dari kode sumber).
Diperiksa - berfungsi, kira-kira.
Ada dua baris - menjadi 12, semua dalam file yang sama.
Refactoring
Saya melihat kode ini, dan indera kecantikan saya memberontak:
- seseorang yang tidak terbiasa dengan WordPress tidak akan mengerti apa pun - Anda harus masuk ke direktori untuk memahami tujuan fungsi wp_register_script () dan wp_enqueue_script ()
- jelas hal yang sama dilakukan dua kali berturut-turut, argumennya hanya berbeda - KERING dilanggar
Ok, refactor.
Pertama, kami membuat kelas (satu file), dan kedua, kami menghubungkan dan menggunakan kelas (kami mengubah file lain).
Buat kelas
+class Migesco { + + const SCRIPT = 'script'; + const SOURCE = 'source'; + const DEPENDENCY = 'dependency'; +
Kami terhubung dan menggunakan
<?php
Ada 12 baris kode sumber dalam satu file, ada 35, dan di dua (mendukungnya nanti, cari batang di mana lagi untuk memperbaikinya, agar tidak melupakan apa pun, tidak ketinggalan, tidak ketinggalan).
Dan refactoring lagi
Melihat kode baru:
- beberapa metode statis
- beberapa konstanta ...
terlihat canggung! Saya ingat saran berikut: "jika konstruktor tidak memiliki argumen, apakah kelas seperti itu diperlukan?"
Mari kita membuat ulang, tetapi kelas normal, dengan konstruktor dan metode normal.
Kelas
Gunakan
<?php
Anda dapat melakukan refactoring lagi (platform berjalan pada PHP 5.6 - Saya ingin mengatur jenisnya di mana-mana, tetapi sayangnya Anda tidak bisa, Anda dapat membuat kelas statis Configurator lebih manusiawi, misalnya, menginisialisasi dari daftar file - sumber daya web dan metode attachFiles statis), tetapi hal-hal ideal untuk dunia ideal, kita hidup di dunia nyata, dan itu membuat koreksi sendiri - waktu yang dihabiskan untuk tugas tersebut - mengerjakan tugas dihentikan.
Total: ada 35 baris dalam sumber dalam dua file, menjadi ~ 170, juga dalam dua file.
Apa yang kita dapatkan?
- Sekarang Anda tidak perlu masuk ke bantuan WordPress untuk memahami tujuan dari parameter "fungsi".
- Sekarang kami memiliki pembungkus untuk menghubungkan file dan kami tanpa kesulitan dapat mengubah algoritma untuk menghubungkan file - kami tidak perlu mengedit semua panggilan ke wp_register_script dan wp_enqueue_script
- Sekarang kita dapat mengubah WordPress menjadi apa saja dan hanya kelas yang harus menulis ulang
Registrar, tidak perlu mengganti semua panggilan wp_register_script dan wp_enqueue_script dan ikuti logika WordPress.
Apakah itu sepadan?
Masing-masing memiliki pendekatan sendiri untuk mendukung basis kode dan pendapatnya sendiri.
Jawaban saya adalah ya.