Обзоры, статьи, исследования



Поиск для веб-разработчиков - ищем код


Часто бывает нужно (или просто интересно) найти возможные варианты использования кода, способы реализации определённого функционала.
При этом стандартные приёмы поиска не всегда дают быстрый и нужный результат. Для этих целей существуют специализированные поисковики по коду и профильной литературе.
Поиск по исходному коду в профильной литературе
1. O`Reilly Labs Code Search - поиск в 700 книгах издательства, в 2,6 млн. строк кода - 123 тыс. примеров. Поскольку издательство весьма авторитетное, то и код достаточно высокого качества. Опции поиска - язык, категория, isbn книги, автор, год издания, глава. На стартовой странице раздела приведены примеры запросов.

2. CodeFetch - поиск программного кода в книгах, посвящённых программированию. Поиск ведётся по 22 языкам: C, C#, C++, Delphi Pascal, Java, Objective-C Cocoa, Python, Ruby / Rails, Cold Fusion, Flash ActionScript, HTML / CSS, Javascript / Ajax, JSP / JSTL / JSF, Perl, PHP, Ant, Apache Configuration, AppleScript, SQL, Unix / Shell, XML-Schema, XSLT / XPATH. В выдаче результатов указаны книги, в которых найден код, приведён сам фрагмент кода.

Поиск по исходному коду в Open Source проектах
1. Krugle - специализированная поисковая система по коду. Поиск ведётся по 43 языкам: ActionScript, Ada, AppleScript, ASP, Assembly, Awk, BASIC, C, C++, C#, ColdFusion, Common Lisp, CSS, Delphi/Pascal, Eiffel, Emacs Lisp, Erlang, Expect, Fortran, Groovy, Haskell, Java, JavaScript, JSP, Lex/Flex, Lua, ML, Objective C, Pascal/Delphi, Perl, PHP, Python, Ruby, Scheme, Shell Script, SQL, Tcl, Visual Basic, VB .NET, VBScript, VHDL, XML, Yacc/Bison.
Второй важной опцией поиска является область поиска - комментарии, исходный код, объявления функций, вызов функций, обяъвления классов. Есть текстовое поле для ввода названия проекта, где есть желание найти код.
Существенным преимуществом по сравнению с аналогами является современный интерфейс для работы с найденным кодом (файлы открываются в табках) и набор дополнительных функций, как поиск в директории найденного файла, сохранение, повторного поиска выделенного фрагмента и т.д.

2. Google Code Search - поиск по коду от Google. Поиск ведётся по 50 языкам: Ada, AppleScript, ASP, Assembly, Autoconf, Automake, Awk, Basic/Visual Basic, C, C#, C++, COBOL, ColdFusion, D, Eiffel, Erlang, Fortran, Haskell, Java, JavaScript, JSP, Lex, Limbo, Lisp, Lua, Makefile, Mathematica, Matlab, Modula-2, Modula-3, ObjectiveC, OCaml, Pascal/Delphi, Perl, PHP, Prolog, Python, R, REBOL, Ruby, Scheme, Shell, Smalltalk, SQL, Standard ML, Tcl, Troff, VHDL, Vim script, Yacc.
На стартовой есть соответствующие примеры составления поисковых запросов, а также небольшой справочник в виде FAQ.
В дополнительных функциях поиска есть выборка по лицензиям и поиск в именах файлов.
3. Koders - специализированная поисковая система по коду, на момент написания статьи поиск вёлся по 717,762,497 строкам кода. Поиск ведётся по 32 языкам: ActionScript, Ada, ASP, Assembler, C, C#, C++, Cobol, ColdFusion, Delphi, Eiffel, Erlang, Fortran, Java, JavaScript, JSP, Lisp, Lua, Mathematica, Matlab, ObjectiveC, Perl, PHP, Prolog, Python, Ruby, Scheme, Smalltalk, SQL, Tcl, VB, VB.NET. Хочу обратить внимание на то, что есть такие языки как Mathematica, Matlab и Prolog.
Можно искать также в именах классов, методов, интерфейсов, файлов. На стартовой есть соответствующие примеры для таких поисков. Также есть выборка по лицензиям. В результатах поиска можно ограничиться поиском в выбранном проекте (мне кажется это более удобно, чем вводить название проекта в Krugle).

Дополнительная информация:
1. Список готовых плагинов для установки в Firefox и MSIE7 (англ). Поиск будет вестись по языку Java, при желании можно адаптировать под свои нужды.
2. Взгляд изнутри на поисковики по коду (англ.) - статья Java-программиста Marcelo Mayworm об эволюции поисковых систем по исходному коду.