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

? ? ?

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

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

12、避免使用助手類

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

// 壞的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

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

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

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

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

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

16、避免函數中參數過多

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

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

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

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

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

// 糟糕的示例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、創(chuàng)建流式對象

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

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

19、使用自定義集合

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

// 壞的$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 動作,通常來說會更少。不要在控制器中創(chuàng)建 20 多個方法,更短的控制器更好一些。

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

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

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

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

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

相關推薦

  • 業(yè)務員專用軟件(業(yè)務員管理軟件)

    業(yè)務員管理軟件:優(yōu)化業(yè)務員工作效率的利器 隨著市場競爭的加劇,業(yè)務員的工作負擔也越來越大。他們需要不斷地開拓市場,與客戶溝通,處理客戶投訴等,但這些工作往往需要耗費大量的時間和精力…

    科研百科 2024年8月26日
    20
  • 檔案管理系統(tǒng)app

    檔案管理系統(tǒng)app: 讓文件管理更高效 隨著科技的不斷進步,人們對于文件管理的需求也越來越多樣化。檔案管理系統(tǒng)app的出現,讓文件管理變得更加高效和便捷。本文將介紹檔案管理系統(tǒng)ap…

    科研百科 2024年8月19日
    28
  • 南通項目預算管理系統(tǒng)

    南通項目預算管理系統(tǒng) 隨著現代項目管理的不斷進步,預算管理已經成為了項目管理中不可或缺的一部分。預算管理不僅可以幫助項目經理更好地控制成本,還可以提高項目的效率和質量。南通項目預算…

    科研百科 2025年6月8日
    1
  • 信息系統(tǒng)項目管理工程書

    信息系統(tǒng)項目管理工程書 隨著信息技術的不斷發(fā)展,信息系統(tǒng)項目已經成為項目管理中的重要領域。信息系統(tǒng)項目管理工程書是項目管理中的一個重要文檔,包含了項目的范圍、目標、計劃、資源、風險…

    科研百科 2025年1月24日
    1
  • 農行吉林白城分行開展“兩項管理”培訓提升黨建水平

    為持續(xù)以高質量基層黨建引領高質量業(yè)務發(fā)展要求,切實提升基層黨組織建設標準化規(guī)范化水平,在全行范圍內全面落實基層黨組織清單式管理和黨員積分制管理。農行吉林白城分行制定辦法,并于2月1…

    科研百科 2023年11月4日
    51
  • 互聯網協(xié)同辦公軟件

    互聯網協(xié)同辦公軟件:企業(yè)數字化新選擇 隨著互聯網技術的不斷發(fā)展,協(xié)同辦公軟件已經成為現代企業(yè)數字化的必備工具。互聯網協(xié)同辦公軟件不僅可以幫助企業(yè)提高工作效率,還可以幫助企業(yè)更好地與…

    科研百科 2025年1月2日
    1
  • BAC EAC ETC英文全稱

    BAC EAC ETC: 詳解五大家 在信息技術領域,BAC EAC ETC(Basic Access Control and Encryption Key Management)…

    科研百科 2024年10月14日
    13
  • 辦公智能監(jiān)控系統(tǒng)

    辦公智能監(jiān)控系統(tǒng): 提升工作效率和員工滿意度 隨著科技的不斷發(fā)展,現代辦公室已經不再局限于傳統(tǒng)的監(jiān)控方式,而是采用了更加智能的監(jiān)控系統(tǒng),以提高員工的工作效率和提升員工滿意度。本文將…

    科研百科 2024年9月19日
    21
  • 2024年基層衛(wèi)生院黨建工作整改方案

    2024年基層衛(wèi)生院黨建工作整改方案2024年基層衛(wèi)生院黨建工作整改方案2022年全國黨組織領導的我國中共中央、國務院、外交部、國務院關于黨在新時代中國特色社會主義總體布局的最新戰(zhàn)…

    科研百科 2024年11月18日
    5
  • “黨建+微網格+微樓棟”模式 松崗開創(chuàng)樓棟長治理新局面

    讀特客戶端·深圳新聞網2022年10月8日訊(晶報記者 柯季 通訊員 文建清)近日,寶安松崗街道網格綜合管理中心和樓棟長聯合會組織召開物業(yè)小區(qū)樓棟長隊伍建設工作會議,共同商討樓棟長…

    科研百科 2023年2月4日
    70