Cocycles:一款按功能搜索代碼的新服務
核心要點:
我們都經歷過這種情況:不得不離開代碼編輯器,中斷工作流程,打開瀏覽器搜索代碼片段或如何編寫某些代碼的解釋。這可能是一個耗時且令人沮喪的過程。
多年來,我發現自己大部分時間都在使用Google 和Bing 等熟悉的搜索引擎,提交諸如“JavaScript 解析HTTP 頭”之類的查詢,並祈禱有人在某個地方問過這個問題,並且其他人提供了有用的答案甚至可用的代碼片段。
Google 和 Bing 能夠很好地理解英語,但它們無法閱讀代碼。有時運氣站在我們這邊,有時則不然。
然而,情況並非必須如此。 2016 年 4 月,GitHub 報告稱其擁有超過 3500 萬個代碼庫。 那是大量的代碼行!我敢打賭,開發人員每天搜索的大部分內容都已經存在於開源網絡的某個地方。到目前為止,問題在於我們無法輕鬆地找到它。這就是我們構建 Cocycles(一款代碼搜索引擎)的原因。
在本文中,我將介紹這個新工具,解釋其工作原理以及如何使用它。
Cocycles:一款基於功能的代碼搜索引擎
Cocycles 最重要的功能是組織知識並使其易於訪問。 Cocycles 做的事情很容易描述,但卻極具挑戰性:它渴望能夠找到開源領域中的每一部分代碼,對其進行編目,並使其易於查找和使用。因此,它需要做三件事:
實際上,這是一個持續進行的過程,社區合作是其中的關鍵。
Cocycles 是一種學習理解每段代碼作用的技術。它不僅查看代碼的簽名、文本或文檔,而且主要查看其功能性。 Cocycles 理解代碼及其作用。它實際上能夠判斷哪些代碼最適合交換給定數組中的兩個元素,或者創建隨機字符串,並且能夠識別它們,甚至理解不同部分之間的聯繫。
它目前支持 JavaScript,併計劃在 2016 年晚些時候添加其他語言。
使用純英語搜索代碼
Cocycles 能夠理解英語。它也設計成能夠理解開發者。為了實現這一點,Cocycles 使用自然語言處理算法來理解你需要的代碼描述,並找到你想要的內容。
因此,當通過 Cocycles 搜索時,最好以與在 Google、Bing 等搜索引擎中搜索相同的方式來描述你的需求。然而,與這些搜索引擎不同的是,Cocycles 能夠理解代碼,因此會將你的查詢轉換為所需的代碼功能。
例如,如果你需要交換給定數組中的兩個元素,你只需搜索“交換元素”即可。如果你需要解析 HTTP 請求的頭,請搜索“解析 HTTP 頭”。當查找創建隨機字符串的函數時,嘗試搜索“創建隨機字符串”。
由於具有語義功能,Cocycles 也能夠理解“String”與“Str”相同,而“Create”可能意味著“Generate”。此外,你可以嘗試查找更廣泛的內容,例如“計時器”,並找到具有不同方法的有用計時器類。
另一個巧妙的功能稱為“Cocycles 即時”。當 Cocycles 確切知道你想要查找的內容時,它將提供所需結果的即時描述以及重要的關鍵信息——如下圖所示,其中顯示了對“angular isStr”的搜索:
學習代碼的工作原理
打開結果單元時,Cocycles 會帶你進入類似 IDE 的交互式探索模式。它不僅允許你查看完整的源代碼實現本身,還可以與代碼交互。將鼠標懸停在某些部分上會突出顯示匹配的部分;單擊某個變量或函數會將你移動到其定義;很快就可以在文件甚至整個項目之間跳轉。這使 Cocycles 從“代碼片段”的世界進入學習、探索和使代碼有用的世界。此最後的視圖將適應各種類型的結果。例如,如果選擇的結果是一個類,Cocycles 將列出其方法,並提供它們之間的快速瀏覽。
如果可用,Cocycles 還將為找到的每個代碼單元提供完整的原始文檔。更酷的是,它將找到實際的使用示例,你可以從中學習如何使用找到的代碼以及其他人是如何使用的。如有需要,你也可以直接在 GitHub 中查看代碼的源代碼。
展望未來
Cocycles 並不完美。技術挑戰巨大。這是一個過程,也是一個持續努力組織世界上所有代碼並使其易於訪問的過程。
它是在社區的幫助下,並根據網絡社區一些領導者的建議而構建的。它是免費的,並且是為持久而構建的。
我們還了解到,未來在於為人們提供更多價值——通過利用隱藏在開源世界中的更多潛力。
例如,我們應該能夠實時識別開發人員何時犯錯,或者編寫了不太理想的代碼。我們需要能夠根據開源代碼提供即時解決方案。我們目前正在研究一些將提供所有這些以及更多功能的內容。如果你想收到更新通知,可以訂閱我們的新聞通訊和 Twitter 訂閱。
你可以使用它,任何反饋、想法或想法都將受到歡迎。訪問 cocycles.com 並告訴我們你的想法!
關於 JavaScript 代碼片段的常見問題解答 (FAQ)
JavaScript 代碼片段是可以插入到更大的軟件系統中的小型可重用代碼塊。它們對於開發人員來說至關重要,因為它們通過提供針對常見編程任務的現成解決方案來節省時間和精力。這些代碼片段的範圍可以從小功能到復雜算法,並且可以輕鬆修改以適應特定要求。它們也可以作為初學者學習不同 JavaScript 函數工作原理的絕佳工具。
CoCycles 是專門為查找代碼片段而設計的搜索引擎。你可以使用它按功能查找 JavaScript 代碼片段。只需在搜索欄中輸入你正在查找的功能,CoCycles 就會為你提供相關的代碼片段。如果要查找特定於 JavaScript 的代碼片段,還可以按語言篩選結果。
有幾個 JavaScript 代碼片段是每個開發人員都應該熟悉的。這些包括用於數組操作、字符串操作、日期和時間操作以及事件處理的代碼片段。例如,用於數組操作的常見代碼片段是“map”函數,它使用提供的函數對調用數組中的每個元素進行調用,並創建一個包含結果的新數組。
(以下 FAQ 答案已簡略,保持與原文一致性,並避免重複)
其餘的FAQ 答案與原文基本一致,此處省略,避免重複內容。
以上是通過與Cocycles的功能查找JavaScript代碼段的詳細內容。更多資訊請關注PHP中文網其他相關文章!