成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Debugging collections(譯)

lunaticf / 2396人閱讀

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

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

最近我一直在使用Laravel的collection,如果你還不了解collection,我簡單說下:一個collection(集合)就是一個‘功能強大’的數(shù)組,有很多強大處理其內(nèi)部數(shù)據(jù)的函數(shù).但是唯一讓我頭疼的地方是如何調試collection的鏈式操作,以下是我改善過的業(yè)務處理. 使用Collection類你可以使用鏈式的方式,通過操作函數(shù)來處理數(shù)據(jù),舉個例子如下(為了讓代碼更簡短,我把函數(shù)體中的具體實現(xiàn)給省略了)
collect($items)
  ->filter(function() { 
     ... 
   })
   ->unique(function() { 
      ... 
   })
   ->map(function() {
     ... 
   })
   ->sortBy(function() { 
      ...
   });
想象一下如果你需要調試這段代碼,你想要獲取map函數(shù)的返回值,你會怎么做?那么你可能會用dd()把這"整個操作"包起來,得出返回值.
 dd(collect($items)
      ->filter(function() { 
         ... 
       })
       ->unique(function() { 
          ... 
       })
       ->map(function() {
         ... 
       }))
       ->sortBy(function() { 
          ...
       });
的確,這樣足夠了,整個操作的返回值也能打印出來,但是還是有點瑣碎,你必須要要在每次測試操作的開始和結尾加點東西(開頭:"dd(",結尾:")"),我覺得這樣可讀性上不太好.并且移動dd語句測試也是很麻煩,結尾的括號又特別容易被忽略,so,雖然我看似解決了這個問題,但是我敢保證如果像這樣調試的話,你很快就覺得很繁瑣.ok,其實是有解決方案的. laravel的Collection類是Macroable(暫且譯為:可擴展的),這意味著我們可以在運行時添加相應的函數(shù).為了提高我們調試流程,我們可以創(chuàng)建簡單的dd macro:
Collection::macro("dd", function () {
    dd($this);
});
為了能在項目中使用這個函數(shù),需要將以上代碼放到服務提供者中.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

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

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

相關文章

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

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

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

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

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

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

    Eidesen 評論0 收藏0

發(fā)表評論

0條評論

lunaticf

|高級講師

TA的文章

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