Частью ценности Open Source является предоставление отличного примера кода людям, начинающим работать с новой платформой или языком.
Какой лучший код с открытым исходным кодом вы встречали, и почему вам нравится ваш выбор? Подойдет любой язык, но мне особенно интересны лучшие примеры Objective-C, на которые вы можете указать.
Очевидно, что это открытый вопрос, поэтому я оставлю вопрос на некоторое время открытым и посмотрю, какие ответы мы получим.
Благодарность!
РЕДАКТИРОВАТЬ: Для «лучшего» я думал о коде, который следует идиомам в данном языке или платформе, а также о частях, которые делают код «профессиональным» - хорошая документация, набор для тестирования и т. Д. Код, который является кратким, но не слишком умный предпочтительнее, чем очень краткий или болтливый код.
Ответы:
Я должен сказать, что, взглянув на кусочки открытого исходного кода на протяжении многих лет, я был сильно разочарован почти всем этим.
Главное раздражение для меня - это то, что комментариев обычно очень мало, часто единственными комментариями являются некоторые длинные и законные уведомления об авторских правах.
Ядро linux является примером, в котором файлы часто даже не содержат комментариев, в которых говорится, для какой цели они служат (например, драйвер для XYZ, по крайней мере, скажет мне, что я нахожусь примерно в нужном месте).
Я пришел из коммерческого и оборонного программирования, где стандарты кодирования требуют разумных вразумительных комментариев не только для того, чтобы сказать, что делает блок кода, но и во всем коде должны быть блоки комментариев, которые описывают алгоритмы, методы, особенности, хаки / умные вещи все так, чтобы любой, кто придет, мог БЫСТРО взглянуть и понять, что делается, а не кропотливо пробираться сквозь реальный код.
Возможно, мораль такова: скажи мне, что ты делаешь, не заставляй меня это понимать.
Я не нашел ЛЮБОГО открытого исходного кода, который делает это хорошо. Что касается использования открытого исходного кода в качестве средства для изучения хороших практик кодирования, мой предвзятый совет: не надо.
источник
Я слышал очень хорошие вещи о базе кода Sqlite .
Из того маленького, который я изучил, все выглядит очень чисто.
источник
Дональд Кнут написал две программы, которые помогли ему набирать математические формулы в своих книгах лучше, чем мог его издатель.
Эти две программы (в их окончательной версии) были написаны с использованием Literate Programming, что позволило создать печатную, набранную версию исходного кода, и они были опубликованы в виде книг. Это просто лучшие документированные программы, которые я когда-либо читал!
Они недоступны для онлайн-чтения, но Amazon также позволяет вам «заглянуть внутрь» книги Metafont по адресу http://www.amazon.com/Computers-Typesetting-D-Metafont-Program/dp/0201134381/.
Предупреждение: это тяжелый материал, поэтому каждая книга занимает 600 страниц.
источник
Книга Beautiful Code пытается ответить на этот вопрос несколькими примерами того, что авторы считают образцами красивого кода из проектов с открытым исходным кодом.
источник
CodeIgniter
Некоторые из самых чистых, лучше всего документированных исходных кодов, которые я видел в проекте ОС.
источник
Я видел 2 проекта, которые очень хорошо структурированы:
Тем более, что второй очень интересный, основанный на нескольких вещах:
Также я слышал, что Postgre написан чисто (в отличие от MySql), но я сам не читал.
источник
Некоторые говорят, что код C для ядра Linux чертовски хорош.
(Не то, чтобы я это понимал! Возможно, это лучший из всех написанных проектов с открытым исходным кодом.)
источник
Я обнаружил, что исходный код LLVM очень удобен для чтения. Я уверен, что это самый чистый C ++, который я когда-либо видел. Если вы не знакомы с ним, это в основном набор инструментов для компиляции.
Это довольно большой проект, поэтому не ожидайте, что сможете быстро понять, как все работает. Но получить обзор высокого уровня довольно просто.
источник
Это не большой проект, но SubSonic ORM было очень легко взломать. Это был первый настоящий проект с открытым исходным кодом, который я смог изменить именно так, как мне было нужно. Большинство других я закончил тем, что посмотрел на источник и ударился головой о стену. Я частично поддерживал PostgreSQL (основываясь на провайдере SQL Server) в течение нескольких часов. Это самый хорошо организованный проект, который я когда-либо видел ... хотя нельзя сказать, что я смотрел на многие проекты с открытым исходным кодом.
источник
Сначала простой пример: код для системы обработки событий zope.event. Я использовал другие системы событий, которые отправляли события различным слушателям событий. Когда я увидел код zope.event, пришло время, когда я понял, насколько простыми могут быть некоторые вещи.
Он написан на Python, и вот код целиком:
Чтобы добавить подписчика, вы делаете это:
Лучший пример поцелуя, который я видел.
Еще более сложный пример: марсианская кодовая база очень приятна и легко читаема, даже несмотря на то, что она использует некоторые умные хаки Python. То же самое касается большей части кода Grok, который построен с использованием марсианского.
источник
Вы можете прочитать эту книгу «Архитектура приложений с открытым исходным кодом» . Это должно дать вам критику того, почему и как проектные решения были приняты в проектах, которые обсуждаются в книге.
Вместо того, чтобы искать лучшее, что может ускользнуть от вас надолго, попытайтесь оценить дизайн некоторых проектов, возможно, выходящий за рамки книги. Это может помочь вам закрепить успехи этих проектов вместо того, чтобы повторять их ошибки (или, как принято называть, изобретать велосипед).
источник