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

資訊專欄INFORMATION COLUMN

Debugging collections(譯)

lunaticf / 2392人閱讀

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

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/30598.html

相關(guān)文章

  • []14個(gè)你可能不知道的JavaScript調(diào)試技巧

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

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

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

    endless_road 評(píng)論0 收藏0
  • 2017-06-27 前端日?qǐng)?bào)

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

    Eidesen 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<