подсказки для приобретения знаний из [закрытого] открытого исходного кода

5
задан skaffman 6 June 2010 в 11:38
поделиться

6 ответов

Несколько вещей для обучения навыкам решения проблем, связанных с разработкой программного обеспечения (как только вы найдете интересующий вас проект, который также написан на языке, который вам нравится):

  • Подпишитесь на список рассылки
  • Спрятаться в IRC проекта канал (при условии, что он есть)
  • Прочтите отчеты об ошибках (открытые те, чтобы попытаться решить их, и закрытые, чтобы увидеть, как другие решают их).

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

Надеюсь, это хоть немного помогло, Добро пожаловать в мир открытого кода и удачи!

5
ответ дан 18 December 2019 в 13:11
поделиться

Что я нашел полезным за эти годы, так это проверка вашего кода, изучение конвенций кодирования и лучших практик для различных языков. Открытые стандарты - это неизбежная часть программного обеспечения с открытым исходным кодом. Для того чтобы поддерживать успешный проект OSS, он должен иметь некоторые общие позиции в сообществе, поэтому, например:

Наконец, но не менее важно, изучите объектно-ориентированное программирование и различные архитектуры, используемые для разработки программного обеспечения, например, паттерн MVC.

2
ответ дан 18 December 2019 в 13:11
поделиться

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

В этой ситуации я ищу ответы самостоятельно: беру терминал и использую grep.

Угадав именование классов/функций, с которыми связана ваша проблема, вы найдете путь к модулю, где написаны интересные биты.

1
ответ дан 18 December 2019 в 13:11
поделиться

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

Я бы не сказал, что это правильно. Конечно, это не обязательно . Чтение чужого кода обычно не объясняет , почему они решили решить проблему определенным образом, и какие альтернативы они рассмотрели, а затем отклонили. Кроме того, нередко можно найти открытый исходный код, который плохо спроектирован и / или плохо реализован.

Проблема в том, что ... но иногда я не могу решить проблемы самостоятельно.

Ах. Что ж, решение этого - практиковаться, практиковаться, практиковаться и не бояться делать ошибки. Будьте самокритичны, но не позволяйте этому мешать вам «попробовать». Чем больше вы будете решать проблемы самостоятельно, тем легче будет это сделать.

2
ответ дан 18 December 2019 в 13:11
поделиться

Обязательно анализировать код других людей ... Я студент ... общедоступные репозитории с открытым исходным кодом могут быть ответом?

Проблема с открытым исходным кодом в том, что качество варьируется слишком.(В общедоступных репозиториях с открытым исходным кодом есть много моего собственного кода, из которого я бы не хотел, чтобы кто-нибудь пытался увидеть , не говоря уже о изучать . И все же часть моего кода, код, на который я потратил время и внимание, очень хорош - по крайней мере, так мне говорят мои коллеги.) Так что вы не хотите выбирать проект с открытым исходным кодом и учиться у J. Random Hacker. Вы хотите учиться у лучших хакеров.

Вот несколько стратегий:

  • Если вы студент, у вас есть доступ к учителям. Один или двое из них могут иметь представление о программном обеспечении. Спросите их, что стоит прочитать - чему вы научитесь.

  • Посмотрите конференции и журналы, в которых публикуются материалы о программном обеспечении: SIGPLAN, SIGSOFT, USENIX, Программное обеспечение - практика и опыт , Journal of Functional Programming . Прочтите о системах, которые вам интересны. Напишите авторам и спросите их, рекомендуют ли они вам попробовать учиться на их коде. Внимательно слушайте, что они говорят; большинство лучших хакеров знают, что могут добиться большего. Если вы получите неохотное признание с кучей оговорок, что, возможно, там есть чему поучиться, вы нашли нужного человека.

  • Если вы изучаете C, многие из старых вещей Bell Labs действительно заслуживают внимания (а многие - нет). Я восхищаюсь работами Джона Бентли, Брайана Кернигана, Роба Пайка и многих других. Вы можете загрузить и прочитать исходный код исходного awk или интерпретатора Пайка для Newsqueak.

  • Популярность не коррелирует с пригодностью к обучению.Инструменты GNU очень популярны, но почти любой, кто видел оба, скажет вам, что вы узнаете больше из версий Bell Labs. И Linux очень популярен, но люди, которым я доверяю, которые работают в этой области, говорят мне, что если вы хотите узнать об операционных системах, вам следует изучить BSD. Я сам работаю в области компиляторов и могу сказать вам, что если вы хотите написать компилятор на C, модель для подражания - это малоизвестная lcc , а не очень популярная gcc ].

Наконец, я настоятельно рекомендую работы Ричарда Берда, Ханса Боэма, Ральфа Хинце и Фонга Во (двух программистов на Haskell и двух программистов на C / C ++).

3
ответ дан 18 December 2019 в 13:11
поделиться

Спрашивайте, спрашивайте, спрашивайте, спрашивайте, если вы сталкиваетесь с конкретной проблемой или решением, которое вы не понимаете. Приложите добросовестные усилия, чтобы решить проблему или понять решение, поделитесь своим мыслительным процессом и спросите. SO - отличное место для того, что вы, несомненно, уже открыли. Удачи!

1
ответ дан 18 December 2019 в 13:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: