Есть ли веб-сайт для поиска общих, уже написанных функций? - PullRequest
11 голосов
/ 12 мая 2010

Я сижу здесь и пишу функцию, которая, как я уверен, была написана ранее, где-то на земле. Это просто слишком часто, чтобы не пытаться, и я удивляюсь, почему я не могу просто зайти на сайт и найти функцию, которую я могу затем скопировать и вставить в свой проект за 2 секунды, вместо того, чтобы тратить свой день заново колесо.

Конечно, есть определенные библиотеки, которые вы можете использовать, но где вы находите эти библиотеки и когда их нет, есть сайт, который я описываю?

Возможно, вики какого-то типа, которая содержит бесплатный код, который любой может редактировать и улучшать?

Редактировать: Я могу хорошо кодировать вещи, я просто не знаю, КАК это делать. Так, например, сейчас я пытаюсь локализовать робота / машину / точку в пространстве. Я ЗНАЮ, что есть способ сделать это, основываясь только на расстоянии и расстоянии. Триангуляция и трилатерация. Как кодировать это другая история. Сайт, который мог бы иметь псевдо-код, шаг за шагом, как это сделать, было бы смехотворно полезно. Это также обеспечит оптимальное решение, так как каждый может его редактировать. Я также пишу в Matlab, который я ненавижу, потому что это странно, добавляя мое желание создать сайт, как я описываю.

Ответы [ 7 ]

21 голосов
/ 12 мая 2010

StackOverflow.com. Нет, я не шучу.

В лучшем случае, люди приходят сюда, говоря: «Не сделала ли уже какая-то библиотека X», и очень часто Коллективная Мудрость отвечает «да». Но самое большое препятствие - отсутствие языка описания: даже здесь, большая проблема для многих авторов состоит в том, чтобы описать проблему достаточно ясно, чтобы другие могли распознать ее как нечто, что они видели раньше.

И если люди не могут понять, что вы пытаетесь сделать, поисковая система этого не сделает.

14 голосов
/ 12 мая 2010

Во-первых, две оговорки:

  1. Копировать и вставлять код, который вы не понимаете, - плохая идея. Убедитесь, что вы точно понимаете, что делает код, прежде чем использовать его.
  2. Убедитесь, что вы уважаете лицензию кода, который вы копируете. Это важно!

Эти оговорки в стороне, это часто зависит от языка. Языки с открытым эталоном разработки (не просто реализация с открытым исходным кодом, подумайте Python по сравнению с Java) имеют тенденцию иметь официальных архивов библиотек с открытым исходным кодом. Например:

Кроме того, не забудьте заглянуть в стандартную библиотеку ваших языков. Некоторые современные языки имеют массовые стандартные библиотеки, которые часто содержат функции, которые я ищу:

Неразвитые языки часто имеют неофициальные общественные архивы. Например:

Третья категория сайтов не зависит от языка. Они часто лучше всего искать через POG (обычный старомодный Google). Например:

Наконец, четвертая категория сайтов, которые я считаю все более полезными, - это поисковые системы с исходным кодом:

Вы также можете найти полезный исходный код или, по крайней мере, получить помощь в написании чего-либо, с помощью различных вставок.

  • Pastebin не зависит от языка
  • HPaste в основном Haskell, но немного на других языках.

Часто в конце дня проще всего погуглить.

5 голосов
/ 14 мая 2010

Существует вики, которая содержит бесплатный код, который каждый может редактировать и улучшать:

Код Розетты .

В качестве обзора приводится страница « Решения по программированию ».


С предыдущей страницы:

"Rosetta Code - это сайт, посвященный программированию. Идея состоит в том, чтобы представить решения той же задачи в много разных языков, насколько это возможно, чтобы продемонстрировать как языки похожи и различны, и чтобы помочь человек с заземлением в одном подходе к проблеме в изучении другого. "

2 голосов
/ 12 мая 2010

Вырезание и вставка кода, который вы находите в Интернете, в рабочий код будет похожа на жевательную резинку, найденную на улице . - Майк Джонсон

Имея это в виду, попробуйте сайты, на которых размещаются проекты с открытым исходным кодом, такие как GitHub , CodePlex , code.google.com и т. Д.

0 голосов
/ 12 мая 2010

Книжная полка Safari от O'Reilly имеет много, много книг, которые содержат множество реализаций, из которых можно выбирать.

http://my.safaribooksonline.com/

Я был подписчиком в течение нескольких лет, прежде чем перейти на мою нынешнюю работу, где у нас есть корпоративный аккаунт! Это один из лучших льгот и один из лучших доступных мне ресурсов. Я не покупал компьютерную книгу годами.

0 голосов
/ 12 мая 2010

Я не уверен, что этот вопрос не зависит от языка, но я использую GitHub таким образом;) На других языках могут быть места, где это возможно.

0 голосов
/ 12 мая 2010

Помимо таких сайтов, как this (переполнение стека), я не думаю, что их много, может быть CodePlex , но я почти отметил вас -1 за то, что вы предположили, что код найден в Интернете твое копирование.

Я бы посоветовал прочитать о лицензировании программного обеспечения, надеюсь, вы хотя бы прокомментируете, откуда вы взяли его.

...