Для языков ООП существует много книг, описывающих, как разработать программное обеспечение, и шаблоны разработки главным образом для языков ООП.
Я задаюсь вопросом, существуют ли какие-либо книжные статьи обучающие / хорошие статьи, обучающие, как использовать C в большом проекте, как он хорошая практика для использования статических функций, когда эта функция используется только в единственном файле.
Книга Дэйва Хэнсона C Interfaces and Implementations - замечательный пример того, как можно делать крупномасштабное программирование на C: разделяя вашу систему на интерфейсы и реализации. С первого взгляда в книге приведены хорошие примеры, а также полезные строительные блоки. Для людей, которые были рядом, это во многом переосмысление объектно-ориентированного дизайна, как это практиковалось Барбарой Лисковой (недавно получившей за это награду Turing Award). Считайте это программированием OO, но без наследования.
Потрясающая книга для всех, кому приходится писать C.
.Если вам нужна более конкретная книга на Си, то вы можете посмотреть Практика программирования Кернигана и Пайка.
NB: Я всегда думал об ООП как о способе взглянуть на дизайн; тот факт, что некоторые языки предоставляют явное сопровождение, приятен, но несущественен.
.Те же принципы для ООП применимы и к ООП, за исключением того, что у вас нет классов. Однако, идея, применимая к ООП, реализацией которой является ООП, - это концепция Abstract Data Structures - ADT.
Книга "Структуры и алгоритмы данных" является классикой и должна быть прочитана.
http://www.amazon.ca/Data-Structures-Algorithms-Alfred-Aho/dp/0201000237
В общем, те же самые принципы, которые применяются к ООП, могут быть применены к ООП. Читайте книги по проектированию для принципов, а не для подробностей.
. Вы должны прочитать Expert C Programming Питера ван дер Линдена.
Вот PDF на объектно-ориентированном языке C. Статья достаточно старая, но стоит прочитать.
G'day,
Хотя в книге Джона Лакоса "Крупномасштабный дизайн программного обеспечения на C++G'day,
Несмотря на то, что она в основном посвящена C++, в книге Джона Лакоса "Крупномасштабный дизайн программного обеспечения на C++" содержится много информации, которая очень важна для разработки программного обеспечения, написанного на C.
Edit: Oooh. Увидев предложение Джексона об отличной "Практике программирования", я бы также настоятельно рекомендовал отличную книгу Эрика Рэймонда "The Art of UNIX Programming. ". Спасибо за напоминание @Jackson.
HTH
cheers,
Я знаю, что иногда этого нельзя избежать, и это, вероятно, ваша ситуация, но вам не следует использовать C для больших проектов, если вы вообще можете помочь.
Я знаю, что такое утверждение вызывает резкую реакцию фанатов, но для всех остальных, включая авторов языка, это очевидный факт. Например, вот отрывок из истории, когда Министерство обороны искало язык для поддержки еще в конце 70-х годов ( Рабочая группа по языкам высокого порядка ):
Другие языки были рассмотрены для формальной оценки, но не были включены, потому что предварительная экспертиза заставила предположить, что они не будут соответствовать требованиям, поэтому не являются жизнеспособными кандидатами для целей Министерства обороны. Одним из таких языков был C. В то время DARPA работало с Western Electric / Bell Labs над UNIX, поддерживая контракты с некоторыми подрядчиками DARPA и другими государственными учреждениями, использующими UNIX. Политика оценки заключалась в том, чтобы владельцы предоставляли оценки на своем родном языке в дополнение к оценкам по контракту, поэтому HOLWG воспользовалась этой связью между DARPA и Bell Labs, чтобы попросить их о сотрудничестве. Когда Bell Labs пригласили оценить C на соответствие требованиям Министерства обороны, они сказали, что нет никаких шансов, что C будет соответствовать требованиям читаемости, безопасности и т. Д., К которым мы стремились, и что он даже не должен быть включен. список оцениваемых языков. Мы признали истину в их наблюдениях и выполнили их просьбу.
Чеширский кот идиома является полезным способом уменьшения муфты в C и очень полезен при разработке крупных проектов.
http://en.wikipedia.org/wiki/cheshire_cat_idiom_ (Programming_technique) #c
Код Complete Complete 1-й Эд Стивом Макконеллом более ориентирован на C, что может стоить также выглядеть. Во всяком случае его книги отлично читают для любого профессионального программиста.