国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Debugging collections(譯)

lunaticf / 2382人閱讀

摘要:注本文是翻譯寫的關于調試技巧,讀完以后很實用,分享給大家閱讀過程中,翻譯有錯誤的希望大家指正原文鏈接最近我一直在使用的,如果你還不了解,我簡單說下一個集合就是一個功能強大的數組有很多強大處理其內部數據的函數但是唯一讓我頭疼的地方是如何調試的

注:本文是翻譯Freek Van der Herten寫的關于Collection
調試技巧,,讀完以后很實用,分享給大家.閱讀過程中,翻譯有錯誤的希望大家指正,thx..
原文鏈接: https://murze.be/2016/06/debu...

最近我一直在使用Laravel的collection,如果你還不了解collection,我簡單說下:一個collection(集合)就是一個‘功能強大’的數組,有很多強大處理其內部數據的函數.但是唯一讓我頭疼的地方是如何調試collection的鏈式操作,以下是我改善過的業務處理. 使用Collection類你可以使用鏈式的方式,通過操作函數來處理數據,舉個例子如下(為了讓代碼更簡短,我把函數體中的具體實現給省略了)
collect($items)
  ->filter(function() { 
     ... 
   })
   ->unique(function() { 
      ... 
   })
   ->map(function() {
     ... 
   })
   ->sortBy(function() { 
      ...
   });
想象一下如果你需要調試這段代碼,你想要獲取map函數的返回值,你會怎么做?那么你可能會用dd()把這"整個操作"包起來,得出返回值.
 dd(collect($items)
      ->filter(function() { 
         ... 
       })
       ->unique(function() { 
          ... 
       })
       ->map(function() {
         ... 
       }))
       ->sortBy(function() { 
          ...
       });
的確,這樣足夠了,整個操作的返回值也能打印出來,但是還是有點瑣碎,你必須要要在每次測試操作的開始和結尾加點東西(開頭:"dd(",結尾:")"),我覺得這樣可讀性上不太好.并且移動dd語句測試也是很麻煩,結尾的括號又特別容易被忽略,so,雖然我看似解決了這個問題,但是我敢保證如果像這樣調試的話,你很快就覺得很繁瑣.ok,其實是有解決方案的. laravel的Collection類是Macroable(暫且譯為:可擴展的),這意味著我們可以在運行時添加相應的函數.為了提高我們調試流程,我們可以創建簡單的dd macro:
Collection::macro("dd", function () {
    dd($this);
});
為了能在項目中使用這個函數,需要將以上代碼放到服務提供者中.ok,如下,看下這個Blender--我們的laravel模板,舉個例子 使用macro debugging調試Collection,對于我們來說變得很簡單了.ok,我們來看看它如何使用.
collect($items)
  ->filter(function() { 
     ... 
   })
   ->unique(function() { 
      ... 
   })
   ->map(function() {
     ... 
   })
   ->dd()
   ->sortBy(function() { 
      ...
   });
為了測試特定鏈式操作的返回值,你可以將"->dd()"放到該操作的最后即可,這樣一來,相比較直接"dd(....)",可讀性就高了.在完成調試后,我們只需把鏈式操作尾部的代碼去掉即可.還有你可用使用PHPStrom的快捷鍵"alt+shift+arrow-up" 和"alt+shift+arrow-down"可以將"->dd()"部分更方便移到前一個或下一個鏈式操作之后. 結語 你還可以去看Laravel的官方文檔和Refactoring to Collection 試讀篇章中文版:Refactoring to Collection

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30598.html

相關文章

  • []14個你可能不知道的JavaScript調試技巧

    摘要:在控制臺中使用,當到達傳入的函數時,代碼將停止。但除了私有和匿名函數這可能是找到調試函數的最快方法。在控制臺中輸入,當調用時,將以調試模式停止屏蔽不相關代碼現在,我們經常在應用中引入幾個庫或框架。 譯者:SlaneYang原文:https://raygun.com/javascript-debugging-tips 以更快的速度和更高的效率來調試JavaScript 熟悉工具可以讓工具...

    CODING 評論0 收藏0
  • Java語言十五講(前言)

    摘要:發布史年月日,公司正式發布語言,這一天是的生日。年月日,發布,成為語言發展史上的又一里程碑。年月,發布,三個版本分別改為,,,。年月日,以億美元收購公司,并取得了的版權。年月日,發布,并改用的命名方式。 特此聲明:本文為本人公司郭總原創書籍的前言,該書還未出版,作為該書籍的初版在接下來的時間里,將免費在本人微信公眾號內不間斷更新與大家一起學習閱讀。喜歡學習的小伙伴可以搜索微信公眾號:程...

    endless_road 評論0 收藏0
  • 2017-06-27 前端日報

    摘要:前端日報精選漫談函數式編程一十年蹤跡的博客前端每周清單的優勢與劣勢有望超越在嵌入式及物聯網的應用現狀進階系列高階組件詳解一前端之路譯如何充分利用控制臺掘金程序猿升級攻略眾成翻譯中文譯如何充分利用控制臺掘金前端從強制開啟壓縮探 2017-06-27 前端日報 精選 漫談 JS 函數式編程(一) - 十年蹤跡的博客前端每周清單: Vue的優勢與劣勢;Node.js有望超越Java;JS在嵌...

    Eidesen 評論0 收藏0

發表評論

0條評論

lunaticf

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<