Rumah > pembangunan bahagian belakang > tutorial php > Seni Bina Kod Bersih dalam Laravel: Panduan Praktikal

Seni Bina Kod Bersih dalam Laravel: Panduan Praktikal

Mary-Kate Olsen
Lepaskan: 2024-10-22 06:09:31
asal
908 orang telah melayarinya

Clean Code Architecture in Laravel: A Practical Guide

Jika anda telah lama membangunkan Laravel, anda mungkin pernah mendengar frasa "kod bersih" dilambungkan. Tetapi apakah maksud sebenarnya dalam konteks pembangunan Laravel? Lebih penting lagi, mengapa anda perlu mengambil berat?

"Kod Bersih" merujuk kepada kod yang mudah difahami, diselenggara dan dilanjutkan. Seni bina kod bersih mengambil langkah ini lebih jauh dengan menyediakan struktur yang memudahkan untuk memastikan pangkalan kod anda bersih semasa aplikasi anda berkembang. Dalam blog ini, kami akan meneroka cara anda boleh melaksanakan seni bina kod bersih dalam Laravel untuk menjadikan projek anda lebih berskala, boleh diselenggara dan menyeronokkan untuk diusahakan.

Jadual Kandungan

  1. Apakah Seni Bina Kod Bersih?
  2. Mengapa Anda Perlu Mementingkan Kod Bersih
  3. Prinsip Utama Seni Bina Kod Bersih
  4. Melaksanakan Seni Bina Kod Bersih dalam Laravel
    • Entiti dan Kes Penggunaan
    • Repositori dan Antara Muka
    • Pengawal dan Suntikan Kebergantungan
    • Perkhidmatan dan Logik Perniagaan
  5. Contoh Dunia Sebenar: Membina Platform Blog
  6. Amalan Terbaik untuk Kod Bersih dalam Laravel
  7. Pemikiran Akhir

Apakah Seni Bina Kod Bersih?

Seni bina kod bersih ialah cara mengatur aplikasi anda untuk memudahkan penyelenggaraan dan skala. Ia tidak terikat dengan mana-mana rangka kerja atau bahasa tertentu, dan ia memisahkan aplikasi anda ke dalam lapisan. Setiap lapisan mempunyai tanggungjawab tertentu dan digandingkan secara longgar kepada yang lain.

Perpisahan ini membantu anda mengelakkan "kod spageti" yang terkenal di mana segala-galanya berselirat. Dengan seni bina kod yang bersih, logik perniagaan anda dipisahkan daripada antara muka pengguna dan akses data anda, membolehkan anda membuat perubahan pada satu bahagian aplikasi tanpa melanggar keseluruhan sistem.

Mengapa Anda Perlu Mengambil berat tentang Kod Bersih

Menulis kod bersih bukan sekadar menjadikan kod anda kelihatan bagus; ia mengenai menjadikan hidup anda lebih mudah dalam jangka masa panjang. Apabila kod anda bersih:

  • Lebih mudah untuk nyahpepijat: Kod yang jelas dan tersusun dengan baik membantu anda mencari dan membetulkan pepijat dengan lebih cepat.
  • Skala lebih mudah: Apabila apl anda berkembang, kod yang bersih memudahkan anda menambah ciri baharu tanpa merosakkan ciri sedia ada.
  • Lebih mudah untuk bekerja dengan orang lain: Sama ada anda bekerja dengan pasukan atau berkongsi projek anda dengan komuniti sumber terbuka, kod bersih lebih mudah difahami oleh orang lain.

Dalam rangka kerja seperti Laravel, yang menggalakkan pembangunan pesat, mungkin tergoda untuk menumpukan pada pembinaan dengan cepat dan bukannya bersih. Tetapi dengan mengikut prinsip kod yang bersih, anda akan menjimatkan masa dan usaha dalam jangka masa panjang.

Prinsip Utama Seni Bina Kod Bersih

Sebelum kita mendalami cara melaksanakan seni bina kod bersih dalam Laravel, mari kita semak beberapa prinsip utama:

  • Pemisahan Kebimbangan: Setiap lapisan dalam seni bina anda harus mempunyai tanggungjawab khusus dan anda harus mengelak daripada mencampurkan kebimbangan (cth., jangan letakkan logik pangkalan data dalam pengawal anda).
  • Penyongsangan Kebergantungan: Modul peringkat tinggi tidak seharusnya bergantung pada modul peringkat rendah. Sebaliknya, kedua-duanya harus bergantung pada abstraksi (seperti antara muka).
  • Prinsip Tanggungjawab Tunggal: Setiap kelas atau fungsi harus melakukan satu perkara dan melakukannya dengan baik. Ini menjadikannya lebih mudah untuk menguji dan mengekalkan kod anda.

Melaksanakan Seni Bina Kod Bersih dalam Laravel

Sekarang, mari lihat cara anda boleh melaksanakan seni bina kod bersih dalam aplikasi Laravel.

Entiti dan Kes Penggunaan

Di teras seni bina kod bersih ialah entiti dan kes penggunaan. Entiti ialah objek teras dalam sistem anda (seperti Siaran atau Pengguna), dan kes penggunaan menentukan perkara yang boleh anda lakukan dengan entiti tersebut (seperti membuat siaran atau memadamkan pengguna).

Dalam Laravel, entiti boleh diwakili sebagai model Eloquent, manakala kes penggunaan lazimnya ialah perkhidmatan yang melakukan tindakan khusus pada model ini.

Sebagai contoh, mari buat kes penggunaan mudah untuk membuat catatan blog:

// app/Domain/Post/Post.php
class Post {
    private $title;
    private $content;

    public function __construct($title, $content) {
        $this->title = $title;
        $this->content = $content;
    }

    // Getter methods and other domain logic
}
Salin selepas log masuk

Dan berikut ialah kes penggunaan untuk membuat siaran baharu:

// app/Services/Post/CreatePostService.php
class CreatePostService {
    private $postRepository;

    public function __construct(PostRepositoryInterface $postRepository) {
        $this->postRepository = $postRepository;
    }

    public function execute($data) {
        $post = new Post($data['title'], $data['content']);
        $this->postRepository->save($post);
    }
}
Salin selepas log masuk
Salin selepas log masuk

Repositori dan Antara Muka

Dalam seni bina kod bersih, repositori mengendalikan akses data dan antara muka mentakrifkan kaedah yang harus dilaksanakan oleh repositori. Dengan cara ini, logik perniagaan anda tidak bergantung pada pangkalan data atau ORM yang anda gunakan—ia bergantung pada abstraksi.

Mari buat antara muka untuk PostRepository:

// app/Repositories/PostRepositoryInterface.php
interface PostRepositoryInterface {
    public function save(Post $post): void;
    public function findById($id): ?Post;
}
Salin selepas log masuk

Dan pelaksanaan repositori ini dengan Fasih:

// app/Repositories/EloquentPostRepository.php
class EloquentPostRepository implements PostRepositoryInterface {
    public function save(Post $post): void {
        // Save post using Eloquent
    }

    public function findById($id): ?Post {
        // Fetch post using Eloquent
    }
}
Salin selepas log masuk

Pengawal dan Suntikan Ketergantungan

pengawal anda hendaklah nipis, bermakna mereka hanya perlu mengendalikan permintaan HTTP dan menyerahkan tugasan berat kepada perkhidmatan. Dengan menggunakan suntikan kebergantungan, anda boleh menyuntik perkhidmatan yang diperlukan ke dalam pengawal anda.

// app/Http/Controllers/PostController.php
class PostController {
    private $createPostService;

    public function __construct(CreatePostService $createPostService) {
        $this->createPostService = $createPostService;
    }

    public function store(Request $request) {
        $this->createPostService->execute($request->all());
        return response()->json(['message' => 'Post created!']);
    }
}
Salin selepas log masuk

Perkhidmatan dan Logik Perniagaan

Semua logik perniagaan anda harus hidup dalam perkhidmatan. Ini memastikan pengawal anda bersih dan memastikan logik anda boleh digunakan semula merentasi bahagian aplikasi anda yang berbeza.

// app/Services/Post/CreatePostService.php
class CreatePostService {
    private $postRepository;

    public function __construct(PostRepositoryInterface $postRepository) {
        $this->postRepository = $postRepository;
    }

    public function execute($data) {
        $post = new Post($data['title'], $data['content']);
        $this->postRepository->save($post);
    }
}
Salin selepas log masuk
Salin selepas log masuk

Contoh Dunia Sebenar: Membina Platform Blog

Mari kita lihat contoh dunia sebenar membina platform blog yang ringkas. Begini cara anda menstrukturnya menggunakan seni bina kod bersih:

  1. Entiti: Model Siaran dan Pengguna Anda.
  2. Repositori: Antara muka seperti PostRepositoryInterface dan UserRepositoryInterface, dan pelaksanaan seperti EloquentPostRepository.
  3. Perkhidmatan: CreatePostService, DeletePostService, dsb.
  4. Pengawal: Pengawal nipis yang mewakilkan kerja kepada perkhidmatan.

Pengasingan ini memastikan kod anda kekal modular dan mudah untuk diuji. Contohnya, jika anda memutuskan untuk menukar daripada Eloquent kepada ORM lain, anda hanya perlu mengemas kini pelaksanaan repositori, bukan keseluruhan aplikasi anda.

Amalan Terbaik untuk Kod Bersih dalam Laravel

  1. Pastikan Pengawal Nipis: Biarkan perkhidmatan anda mengendalikan logik perniagaan.
  2. Gunakan Suntikan Ketergantungan: Ini menjadikan kod anda lebih mudah untuk diuji dan diselenggara.
  3. Tulis Ujian Unit: Seni bina kod yang bersih memudahkan anda menulis ujian, jadi pastikan anda memanfaatkannya.
  4. Kebimbangan Berasingan: Simpan logik perniagaan, akses data dan kod pembentangan berasingan.

Fikiran Akhir

Seni bina kod bersih bukan hanya untuk aplikasi perusahaan besar—ia merupakan satu pemikiran yang membantu anda memastikan pangkalan kod anda bersih dan teratur, walaupun untuk projek kecil hingga sederhana. Dengan memisahkan kebimbangan, menggunakan suntikan pergantungan dan mengikut prinsip tanggungjawab tunggal, anda akan mendapati aplikasi Laravel anda lebih mudah untuk diselenggara, diuji dan skala.

Mulakan dari kecil. Cuba pemfaktoran semula satu bahagian apl Laravel anda untuk mengikuti seni bina kod bersih dan anda akan segera melihat faedahnya.

Selamat pengekodan!

Atas ialah kandungan terperinci Seni Bina Kod Bersih dalam Laravel: Panduan Praktikal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan