Я пытаюсь улучшить свою технику кодирования на С ++, читая исходный код на С ++. Какой проект с открытым исходным кодом вы бы порекомендовали? Хороший ли код библиотек Boost C ++ ?
Я пытаюсь улучшить свою технику кодирования на С ++, читая исходный код на С ++. Какой проект с открытым исходным кодом вы бы порекомендовали? Хороший ли код библиотек Boost C ++ ?
Ответы:
Я бы порекомендовал любой код Google C ++ с открытым исходным кодом, например:
Преимущества использования кода Google:
Руководство ++ Style Google C , что Google в C ++ код использует , как правило , хорошо, но у него есть некоторые довольно необычные биты (например, некоторые из их руководящих принципов присвоения имен или их запрещая исключения), так что имейте в виду , что их C ++ код будет отличаться в этих отношениях от что вы увидите в поле.
Я бы не рекомендовал читать базу кода. Я бы рекомендовал прочитать C ++ FAQS . Есть также отличная книга, которая идет вместе с сайтом. Лучший способ улучшить свои навыки программирования на C ++.
Чтение существующего чистого кода C ++ - отличный способ выучить язык.
Например, код в наборе инструментов OpenFST очень чистый. Он читабелен и использует слегка расширенные функции, не выходя за рамки.
С другой стороны, Boost может быть немного сложным для чтения, отчасти потому, что в нем используются хитрости C ++, которые трудно понять, и потому, что они часто обсыпают код разными обходными путями для разных версий компилятора.
Я бы посоветовал прочитать « Эффективный C ++ » Скотта Мейерса и использовать его предложения в маленьких игрушечных программах.
Попробуйте прочитать что-то, что существовало годами и имеет большой размер. Потребуется несколько месяцев, чтобы начать понимать код и что-то делать в нем.
Firefox, Thunderbird, OpenOffice.org, LibreOffice приходят на ум. Там должно быть еще много подобных. Эти проекты работают на многих операционных системах и аппаратных платформах. Также им приходится забивать на удобочитаемость. Это могут быть методы, которые вы ищете.
Даже лучше, чем читать код, было бы работать с этим кодом в форме исправления ошибок и добавления небольших улучшений здесь и там. Выберите какую-нибудь программу, желательно ту, для которой вы используете, зарегистрируйтесь в списке рассылки, начните просматривать их баг-трекер и попытайтесь диагностировать некоторые ошибки. Спросите в списке рассылки, нашли ли вы решение для чего-либо, разумно ли это или когда вы застряли. Это даст вам определенные цели при чтении кода, заставит вас по-настоящему понять и это то, чем вы будете заниматься большую часть времени в любой работе.
Возможно, вы можете посмотреть на какое-то приложение KDE. Большинство написано на C ++, и вы можете начать с небольшого.
Да, код библиотек Boost C ++ - отличный ресурс для изучения, если не один из лучших на планете. Тем не менее, для новичка изучение кода Boost может сделать процесс обучения очень крутым. Если вы действительно хотите попробовать читать Boost, начните с небольших и простых библиотек, таких как Boost.Array .
Попробуйте прочитать C ++ PDF. Это бесплатно, и я изучил C ++ из него, хотя у меня не было никакого другого опыта программирования, и мне только 14. Удивительно.