Ваши мысли о “Крупном масштабе Разработка программного обеспечения C++”, [закрытая]

CIL/MSIL :

loop: ldc.i4.0
br loop

Объектный код:

16 2B FD
42
задан 8 revs, 5 users 58% 8 July 2018 в 15:23
поделиться

8 ответов

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

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

Вы начнете писать физически лучший код довольно быстро.

[Изменить] Если вы хотите с чего-то начать и не можете сразу получить книгу, я нашел Серия игр «Игры изнутри» о физической структуре полезной даже после прочтения крупномасштабного проекта C ++.

37
ответ дан 26 November 2019 в 23:31
поделиться

Это немного устарело (фактически, оно было устаревшим на момент написания). Если я правильно помню, в основном это было связано с уменьшением зависимостей, что вы, вероятно, сделали бы сейчас с шаблонами.

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

5
ответ дан 26 November 2019 в 23:31
поделиться

Является ли «Крупномасштабная разработка программного обеспечения C ++» Джона Лакоса раздражающим (но обычно упускаемым из виду) жемчужиной?

Да .

4
ответ дан 26 November 2019 в 23:31
поделиться

Это отличная книга, важная с исторической точки зрения. .

Обратите внимание, что для реализации практик, описанных в книге, вам потребуется значительная дисциплина и согласие внутри команды. Вот несколько вещей, на которые следует обратить внимание:

  1. У Лакоса есть точные определения того, что он называет «компонентами» и «пакетами». Это ключ к крупномасштабному дизайну. Однако они требуют соблюдения соглашений об именах исходных файлов и файлов заголовков и последовательности их включения. Жалко, что большинство людей (включая тех, кто цитирует Лакоса) редко следуют этим соглашениям.

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

  3. Некоторые из предписаний, например, об использовании «пространств имен», могут сейчас считаться спорными. Многие считают, что пространства имен следует использовать в C ++ ограниченным образом.

4
ответ дан 26 November 2019 в 23:31
поделиться

Я читал это давным-давно, но я помню, что получил от него довольно много; хотя, как указывает MadKeithV, это могло быть просто тем, что я тогда знал меньше;)

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

И нет, вы не можете получить мою копию:)

3
ответ дан 26 November 2019 в 23:31
поделиться

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

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

4
ответ дан 26 November 2019 в 23:31
поделиться

Лакос работал в компании Mentor Graphics, которая делает программное обеспечение EDA. Он участвовал в создании программного обеспечения EDA на C ++, где они хотели эффективно использовать C ++ (`` не более 5% накладных расходов на код C '') и разобраться, как создавать программное обеспечение на ранних рабочих станциях, которое действительно потребовало бы много времени для компиляции большое приложение C ++.

Книга неплохая для чтения - в ней обсуждается широкий спектр тем, и Лакос действительно знал свое дело. Он действительно исходит из опыта создания эффективного кода из компилятора C ++, а также из того, как настроить программу на C ++, чтобы ее можно было сопровождать, а также достаточно быстро компилировать и связывать.

Я думаю, что у Лакоса много понимание, и я бы рекомендовал вам прочитать его. Однако это «традиционный» C ++ еще до того, как такие функции, как шаблоны, стали широко доступны.

15
ответ дан 26 November 2019 в 23:31
поделиться

Чтобы предотвратить запуск группы захвата, необходимо выйти из скобок. Шаблон \(. +\) соответствует самой длинной подстроке, которая начинается с ( и заканчивается ) . Это увеличит все до последнего ) , включая любые промежуточные скобки. Наконец, мы заменим этот ряд на содержащий только () :

#!/usr/bin/perl

use strict; use warnings;

my $s = "this is my string (though (I) need (help) fixing it)";

$s =~ s{\(.+\)}{()};

print "$s\n";
-121--4154755-
io:format("~s~n", [element(2, process_info(self(), backtrace))]).

self () может быть заменен любым другим pid (rpc: pinfo должен даже работать с удаленными процессами). Это помогает, если невозможно даже изменить источник или балку.

-121--3255164-

Интересно, что «More C++ Gems» содержит укороченную (до 88 (!) страниц) версию книги Лакоса, которую также можно просмотреть (полностью, я считаю, так как она принадлежит первой половине книги) онлайн в книгах Google .

Итак, наслаждайтесь всеми интересующимися:)

18
ответ дан 26 November 2019 в 23:31
поделиться
Другие вопросы по тегам:

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