亚州天堂爱爱,做爱视频国产全过程在线观看,成人试看30分钟免费视频,女人无遮挡裸交性做爰视频网站

? ? ?

Laravel 代碼簡潔之道(12-22)

Laravel 代碼簡潔之道(12-22)

12、避免使用助手類

有時候人們會使用類來歸類助手函數,可要小心了,這可能會讓代碼變得更混亂。常見的做法是定義一個只包含一個作為助手函數使用的靜態方法的類。更好的做法是將這些方法放入具有具體邏輯的類中,或者是只將它們當做是全局函數。

// 壞的class Helper{ public function convertCurrency(Money $money, string $currency): self { $currencyConfig = config("shop.currencies.$currency"); $decimalDiff = ... return new static( (int) round($money->baseValue() * $currencyConfig[value] * 10**$decimalDiff, 0), $currency ); }}// 使用use AppHelper;Helper::convertCurrency($total, 'EUR');

// 好的class Money{ // 其他的 money/currency 邏輯 public function convertTo(string $currency): self { $currencyConfig = config("shop.currencies.$currency"); $decimalDiff = ... return new static( (int) round($this->baseValue() * $currencyConfig[value * 10**$decimalDiff, 0), $currency ); }}// 使用$EURtotal = $total->convertTo('EUR');

13、拿出一個周末來學習 OO

了解靜態(static)/ 實例(instance)方法和變量,還有私有的(private)/ 保護的(protected)/ 公共的(public)之間的可見性的區別。還要了解 Laravel 如何使用魔法方法。當你是初學者的時候可能不會很常用,但是隨著你的編碼水平增長,這些是至關重要的。

14、不要在類中只寫過程代碼

這將前面的推文與此處的其他提示聯系起來。OOP 的存在就是為了讓你的代碼更加具有可讀性,請使用 OOP。不要再在控制器中寫好幾百行的過程代碼了。

15、閱讀 SRP 之類的內容,并進行合理的擴展

避免使用那種處理很多和當前類不相關邏輯的類,但是也不要為每件事都創建一個類。你是為了寫干凈的代碼,而不是想在每件事上都做分離。

16、避免函數中參數過多

當您看到具有大量參數的函數時,它可能意味著:

  1. 該函數包含太多職責,應該分離。
  2. 職責沒問題,但你應該學會重構他的長簽名.

以下是修復第二種情況的兩種策略.

17、使用數據傳輸對象 (DTO)

與其以特定順序傳遞大量參數,不如考慮創建一個具有屬性的對象來存儲這些數據。 如果您發現某些行為可以移入此對象,則可以加分。

// 糟糕的示例public function log($url, $route_name, $route_data, $campaign_code, $traffic_source, $referer, $user_id, $visitor_id, $ip, $timestamp){ // ...}

// 推薦的示例public function log(Visit $visit){ // ...}class Visit{ public string $url; public string $routeName; public array $routeData; public string $campaign; public array $trafficSource[]; public string $referer; public string $userId; public string $visitorId; public string $ip; public Carbon $timestamp; // ...}

18、創建流式對象

你可以使用流式 API 來創建對象。使用單獨的方法調用來逐漸添加數據,并且只要構造函數中的絕對最小值。正是因為每個方法都返回 $this ,你可以在任意一次調用后讓整個流程停下來。

Visit::make($url, $routeName, $routeData) ->withCampaign($campaign) ->withTrafficSource($trafficSource) ->withReferer($referer) // ... 等等

19、使用自定義集合

創建自定義集合可以更好地寫出更富有表現力的語法。參考這個訂單合計的示例:

// 壞的$total = $order->products->sum(function (OrderProduct $product) { return $product->price * $product->quantity * (1 $product->vat_rate);});

// 好的$order->products->total();class OrderProductCollection extends Collection{ public function total() { $this->sum(function (OrderProduct $product) { return $product->price * $product->quantity * (1 $product->vat_rate); }); }}

20、不要使用縮寫

不要覺得很長的變量名 / 方法名就是不對的,才不是這樣,它們很有表現力。使用一個長的方法名比短的更好,配合查閱文檔能更完整地了解它的功能。變量也是如此。不要使用無意義的幾個字母的縮寫。

// 壞的$ord = Order::create($data);// ...$ord->notify();

// 好的$order = Order::create($data);// ...$order->sendCreatedNotification();

21、嘗試在控制器中只使用 CURD 動作

如果可以的話,只使用控制器中的 7 個 CURD 動作,通常來說會更少。不要在控制器中創建 20 多個方法,更短的控制器更好一些。

22、使用更具有表現力的方法名稱

考慮「這個對象可以完成什么事情」,而不是「這個對象能做什么」。也會有例外,比如操作類。這是個很好的經驗。

// 壞的$gardener->water($plant);$orderManager->lock($order);// 好的$plant->water();$order->lock();

版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。

(0)
上一篇 2024年7月5日 下午5:17
下一篇 2024年7月5日 下午5:29

相關推薦

  • 高等教育研究課題級別

    高等教育研究課題級別: 培養具有創新能力的高素質人才 摘要: 隨著經濟全球化和信息技術的飛速發展,高等教育已成為社會發展的重要支撐。然而,目前高等教育的人才培養還存在一些問題。本文…

    科研百科 2024年12月4日
    1
  • 信息系統項目管理師招騁

    信息系統項目管理師招騁 隨著信息技術的不斷發展,信息系統項目管理師這個職位也逐漸成為了熱門職業之一。作為負責信息系統項目的管理專業人員,信息系統項目管理師需要具備豐富的項目管理經驗…

    科研百科 2025年1月25日
    0
  • 國有企業內控指南(國有企業內控指南是什么)

    文章來源:果信求實管理咨詢 作 者:國信求實 按照往年的節奏,各中央企業已經接到了國資委改革局發布的《關于中央企業開展2020年全面風險管理工作的通知》,正在準備讓各下屬單位開展2…

    科研百科 2024年1月22日
    84
  • 科研項目申請選題

    科研項目申請選題 隨著科技的不斷發展,科研項目申請選題也越來越重要。一個合適的選題不僅能夠提高科研項目的可行性,還能夠為科研項目的成功提供重要保障。本文將介紹一些科研項目申請選題的…

    科研百科 2025年2月17日
    2
  • ecn和ecr變更是什么意思

    ECN和ECR變更是什么意思? ECN(Engine Control Unit)和ECR(Electronic Control Unit)是計算機控制系統中的兩個重要組件,它們都是…

    科研百科 2024年10月23日
    0
  • 適合企業用的項目管理軟件

    適合企業用的項目管理軟件 隨著企業業務的不斷發展,項目管理軟件已經成為了企業管理中不可或缺的一部分。選擇合適的項目管理軟件可以幫助企業更好地管理項目進度、成本、質量等信息,提高項目…

    科研百科 2024年7月28日
    48
  • 文件檔案管理系統

    文件檔案管理系統是計算機系統中非常重要的一部分,用于管理文件和文件夾。它可以幫助用戶方便地存儲、組織和訪問文件,同時也提供了許多高級功能,如搜索、共享和備份。 文件檔案管理系統的設…

    科研百科 2024年9月24日
    22
  • 橫向課題經費管理辦法有哪些(橫向課題經費管理辦法)

    橫向課題經費管理辦法橫向課題經費管理辦法1.我班為余力工作辦經費支持學校經費支持。2.班主任和同學們對我們完成教師工作的期待和愿望。3.我班對我們開展“向上級匯報工作”的積極回應。…

    科研百科 2024年5月17日
    83
  • 5款顏值+實力并存的APP(顏值最高的幾款車)

    今天和大家分享5款顏值 實力并存的APP,一起來看看吧! 說球帝 說球帝 是一款體育賽事直播軟件,支持蘋果TF和安卓和網頁版。 說球帝是一款免費無廣告觀看賽事直播軟件,可以觀看 足…

    2022年9月16日
    131
  • 賓鴻項目管理系統

    賓鴻項目管理系統: 現代項目管理的利器 隨著現代項目管理的重要性不斷凸顯,項目管理系統已經成為許多企業和個人的必備工具。賓鴻項目管理系統是一款功能強大、易于使用、高效的項目管理工具…

    科研百科 2024年12月19日
    0