99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Laravel 項(xiàng)目開發(fā)規(guī)范 過于靈活是一件糟糕的事情

2023-02-16 17:10 更新

舉例說明

Laravel 文檔和網(wǎng)上的各種教程,會教授我們同一個任務(wù),可以使用好幾種方法來完成。

對于框架設(shè)計(jì)而言,靈活是件好事,能提供給開發(fā)者不同的選項(xiàng),能讓框架適用更多的用戶場景。

但對于團(tuán)隊(duì)開發(fā)來說,大部分時候,更多的選項(xiàng)反而是累贅。因?yàn)槊總€人都可能寫出不一樣的代碼,這無疑增加了項(xiàng)目維護(hù)的難度,影響效率。

重點(diǎn): 規(guī)范化,其實(shí)就是在減少這些選項(xiàng)。選擇一個最優(yōu)的方案,然后所有人遵循,即可讓所有人編碼思維統(tǒng)一起來。

下面來舉一個例子說明,假如你在為項(xiàng)目開發(fā) 用戶授權(quán) 相關(guān)功能,僅 注冊用戶權(quán)限 這塊你就會有以下三個選項(xiàng):

選項(xiàng) 1. 閉包:

你可以在 AuthServiceProvider 中使用 閉包注冊用戶權(quán)限

Gate::define('update-post', function (User $user, Post $post) {
    return $user->id === $post->user_id;
});

選項(xiàng) 2. 類方法:

你可以在 AuthServiceProvider 中指定 類方法注冊用戶權(quán)限

Gate::define('update-post', [PostPolicy::class, 'update']);

這個時候又有決策需要你去做:

  • ?SomeClass.php? 放在哪個文件夾合適呢?
  • 方法應(yīng)該怎么取名合適呢?
  • 我放在這里是對的嗎?
  • 大家都是怎么做的呢?

選項(xiàng) 3. Policy 授權(quán)策略類:

你可以使用 Policy 授權(quán)策略類 來實(shí)現(xiàn)。如:

<?php

namespace App\Policies;

use App\Models\Post;
use App\Models\User;

class PostPolicy
{
    /**
     * 確定用戶是否可以更新給定的帖子
     *
     * @param  \App\Models\User  $user
     * @param  \App\Models\Post  $post
     * @return bool
     */
    public function update(User $user, Post $post)
    {
        return $user->id === $post->user_id;
    }
}

結(jié)論

上面的例子,如果你獨(dú)自開發(fā)個人項(xiàng)目倒是問題不大,最多一兩年后回來看你的項(xiàng)目需要浪費(fèi)點(diǎn)時間熟悉而已。

然而,如果是在一個中大型的商業(yè)項(xiàng)目開發(fā)中,團(tuán)隊(duì)中有著幾個甚至十幾個開發(fā)者,沒有規(guī)范的情況下,開發(fā)者會根據(jù)各自的喜好去選擇,有時甚至出現(xiàn)一個開發(fā)者嘗試多個選項(xiàng)的可能,就會造成整個團(tuán)隊(duì)產(chǎn)出的代碼可讀性極低,代碼結(jié)構(gòu)混亂,也為后面的項(xiàng)目代碼的維護(hù)帶來了難度。

與其無休止的爭論哪種選項(xiàng)最好,還不如只知道 一種選項(xiàng)。這 一種選項(xiàng) 能覆蓋大部分的用例,且兼?zhèn)溟_發(fā)效率、程序執(zhí)行效率、擴(kuò)展性、安全性等最佳實(shí)踐,當(dāng)再次遇到此類需求時,毫不猶豫地使用這 一種選項(xiàng) 直接了當(dāng)?shù)亟鉀Q問題。

決策已提前做好,沒必要浪費(fèi)時間多次決策,節(jié)省時間,提高效率。

開發(fā)規(guī)范一旦統(tǒng)一,所有團(tuán)隊(duì)成員嚴(yán)格遵守,你會發(fā)現(xiàn),你的隊(duì)友寫的代碼就如你自己寫的一樣,編碼愉悅感提高了,整個項(xiàng)目代碼閱讀起來更加流暢,工作效率自然也會因此提高,同時代碼的健壯性也得到了保障。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號