Практика разработки программного обеспечения в [закрытом] C

Для языков ООП существует много книг, описывающих, как разработать программное обеспечение, и шаблоны разработки главным образом для языков ООП.

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

19
задан Matthew Murdoch 4 January 2010 в 15:08
поделиться

11 ответов

Книга Дэйва Хэнсона C Interfaces and Implementations - замечательный пример того, как можно делать крупномасштабное программирование на C: разделяя вашу систему на интерфейсы и реализации. С первого взгляда в книге приведены хорошие примеры, а также полезные строительные блоки. Для людей, которые были рядом, это во многом переосмысление объектно-ориентированного дизайна, как это практиковалось Барбарой Лисковой (недавно получившей за это награду Turing Award). Считайте это программированием OO, но без наследования.

Потрясающая книга для всех, кому приходится писать C.

.
5
ответ дан 30 November 2019 в 03:16
поделиться

Если вам нужна более конкретная книга на Си, то вы можете посмотреть Практика программирования Кернигана и Пайка.

NB: Я всегда думал об ООП как о способе взглянуть на дизайн; тот факт, что некоторые языки предоставляют явное сопровождение, приятен, но несущественен.

.
7
ответ дан 30 November 2019 в 03:16
поделиться
4
ответ дан 30 November 2019 в 03:16
поделиться

Те же принципы для ООП применимы и к ООП, за исключением того, что у вас нет классов. Однако, идея, применимая к ООП, реализацией которой является ООП, - это концепция Abstract Data Structures - ADT.

Книга "Структуры и алгоритмы данных" является классикой и должна быть прочитана.

http://www.amazon.ca/Data-Structures-Algorithms-Alfred-Aho/dp/0201000237

В общем, те же самые принципы, которые применяются к ООП, могут быть применены к ООП. Читайте книги по проектированию для принципов, а не для подробностей.

.
3
ответ дан 30 November 2019 в 03:16
поделиться

Вы должны прочитать Expert C Programming Питера ван дер Линдена.

alt text

2
ответ дан 30 November 2019 в 03:16
поделиться

Вот PDF на объектно-ориентированном языке C. Статья достаточно старая, но стоит прочитать.

http://www.planetpdf.com/codecuts/pdfs/ooc.pdf

1
ответ дан 30 November 2019 в 03:16
поделиться
[
    ] [
  1. ][]C FAQ[][
  2. ] [
  3. ] [] K & R [] [
  4. ] [
  5. ] Исходный код ядра Linux [
  6. ] [
]
5
ответ дан 30 November 2019 в 03:16
поделиться

G'day,

Хотя в книге Джона Лакоса "Крупномасштабный дизайн программного обеспечения на C++G'day,

Несмотря на то, что она в основном посвящена C++, в книге Джона Лакоса "Крупномасштабный дизайн программного обеспечения на C++" содержится много информации, которая очень важна для разработки программного обеспечения, написанного на C.

Edit: Oooh. Увидев предложение Джексона об отличной "Практике программирования", я бы также настоятельно рекомендовал отличную книгу Эрика Рэймонда "The Art of UNIX Programming. ". Спасибо за напоминание @Jackson.

HTH

cheers,

8
ответ дан 30 November 2019 в 03:16
поделиться

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

Я знаю, что такое утверждение вызывает резкую реакцию фанатов, но для всех остальных, включая авторов языка, это очевидный факт. Например, вот отрывок из истории, когда Министерство обороны искало язык для поддержки еще в конце 70-х годов ( Рабочая группа по языкам высокого порядка ):

Другие языки были рассмотрены для формальной оценки, но не были включены, потому что предварительная экспертиза заставила предположить, что они не будут соответствовать требованиям, поэтому не являются жизнеспособными кандидатами для целей Министерства обороны. Одним из таких языков был C. В то время DARPA работало с Western Electric / Bell Labs над UNIX, поддерживая контракты с некоторыми подрядчиками DARPA и другими государственными учреждениями, использующими UNIX. Политика оценки заключалась в том, чтобы владельцы предоставляли оценки на своем родном языке в дополнение к оценкам по контракту, поэтому HOLWG воспользовалась этой связью между DARPA и Bell Labs, чтобы попросить их о сотрудничестве. Когда Bell Labs пригласили оценить C на соответствие требованиям Министерства обороны, они сказали, что нет никаких шансов, что C будет соответствовать требованиям читаемости, безопасности и т. Д., К которым мы стремились, и что он даже не должен быть включен. список оцениваемых языков. Мы признали истину в их наблюдениях и выполнили их просьбу.

4
ответ дан 30 November 2019 в 03:16
поделиться

Чеширский кот идиома является полезным способом уменьшения муфты в C и очень полезен при разработке крупных проектов.

http://en.wikipedia.org/wiki/cheshire_cat_idiom_ (Programming_technique) #c

1
ответ дан 30 November 2019 в 03:16
поделиться

Код Complete Complete 1-й Эд Стивом Макконеллом более ориентирован на C, что может стоить также выглядеть. Во всяком случае его книги отлично читают для любого профессионального программиста.

1
ответ дан 30 November 2019 в 03:16
поделиться
Другие вопросы по тегам:

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