CIL/MSIL :
loop: ldc.i4.0
br loop
Объектный код:
16 2B FD
Я прочитал ее и считаю ее очень полезной книгой по некоторым практическим вопросам, связанным с большими проектами C ++. Если вы уже много читали о C ++ и немного знаете о физическом проектировании и его последствиях, вы можете не найти в этой книге столько ужасно "нового".
С другой стороны, если ваша сборка занимает 4 часов, и вы не знаете, как его сократить, получить копию, прочитать и принять к сведению.
Вы начнете писать физически лучший код довольно быстро.
[Изменить] Если вы хотите с чего-то начать и не можете сразу получить книгу, я нашел Серия игр «Игры изнутри» о физической структуре полезной даже после прочтения крупномасштабного проекта C ++.
Это немного устарело (фактически, оно было устаревшим на момент написания). Если я правильно помню, в основном это было связано с уменьшением зависимостей, что вы, вероятно, сделали бы сейчас с шаблонами.
Хотя это, вероятно, один из уроков, которые нужно усвоить в крупномасштабных проектах, вы обычно не используете передовые функции и инструменты.
Является ли «Крупномасштабная разработка программного обеспечения C ++» Джона Лакоса раздражающим (но обычно упускаемым из виду) жемчужиной?
Да .
Это отличная книга, важная с исторической точки зрения. .
Обратите внимание, что для реализации практик, описанных в книге, вам потребуется значительная дисциплина и согласие внутри команды. Вот несколько вещей, на которые следует обратить внимание:
У Лакоса есть точные определения того, что он называет «компонентами» и «пакетами». Это ключ к крупномасштабному дизайну. Однако они требуют соблюдения соглашений об именах исходных файлов и файлов заголовков и последовательности их включения. Жалко, что большинство людей (включая тех, кто цитирует Лакоса) редко следуют этим соглашениям.
Книга полностью посвящена C ++, но эти концепции применимы более широко. Однако, поскольку C ++ - такой сложный язык, большая часть книги учит вас, как эффективно использовать C ++. Если вы сможете это преодолеть, вы действительно можете найти его полезным, даже если вы используете другие языки.
Некоторые из предписаний, например, об использовании «пространств имен», могут сейчас считаться спорными. Многие считают, что пространства имен следует использовать в C ++ ограниченным образом.
Я читал это давным-давно, но я помню, что получил от него довольно много; хотя, как указывает MadKeithV, это могло быть просто тем, что я тогда знал меньше;)
Конечно, с точки зрения «как мне уменьшить время, необходимое для создания», в нем есть много полезных вещей, особенно в отношении уменьшения зависимостей времени компиляции , хотя, возможно, некоторые из них уже не актуальны или даже возможны, учитывая, сколько шаблонов используется в наши дни.
И нет, вы не можете получить мою копию:)
Да, в некотором смысле книга немного устарела, а некоторые из них специфичны для C ++. Тем не менее, он предлагает множество полезных советов по работе со сложностью и связью в больших программах, и большая часть его советов применима к любому объектно-ориентированному языку. Я также нашел ее очень удобочитаемой.
Если вы сможете найти копию, я уверен, что вам стоит ее прочитать. Он входит в мою десятку лучших книг по программированию.
Лакос работал в компании Mentor Graphics, которая делает программное обеспечение EDA. Он участвовал в создании программного обеспечения EDA на C ++, где они хотели эффективно использовать C ++ (`` не более 5% накладных расходов на код C '') и разобраться, как создавать программное обеспечение на ранних рабочих станциях, которое действительно потребовало бы много времени для компиляции большое приложение C ++.
Книга неплохая для чтения - в ней обсуждается широкий спектр тем, и Лакос действительно знал свое дело. Он действительно исходит из опыта создания эффективного кода из компилятора C ++, а также из того, как настроить программу на C ++, чтобы ее можно было сопровождать, а также достаточно быстро компилировать и связывать.
Я думаю, что у Лакоса много понимание, и я бы рекомендовал вам прочитать его. Однако это «традиционный» C ++ еще до того, как такие функции, как шаблоны, стали широко доступны.
Чтобы предотвратить запуск группы захвата, необходимо выйти из скобок. Шаблон \(. +\)
соответствует самой длинной подстроке, которая начинается с (
и заканчивается )
. Это увеличит все до последнего )
, включая любые промежуточные скобки. Наконец, мы заменим этот ряд на содержащий только ()
:
#!/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 .
Итак, наслаждайтесь всеми интересующимися:)