Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- **НАДОЕЛИ JAVA-БЛЯДИ? ТОШНИТ ОТ WEB-МАКАК? ХОЧЕТСЯ ПИСАТЬ КОД, КОТОРЫЙ ДЕЛАЕТ СИРИУС ШИТ?
- *ДОБРО ПОЖАЛОВАТЬ В C++ ТРЕД, MOTHERFUCKER!* **
- **1. Почему стоит использовать именно C++:**
- - C++ *действительно* быстрый - по скорости уделывают любой язык, часто - с большим отрывом. Замедление относительно C находится в районе 0-20%. Замедление зависит от вас - девиз языка: "Платишь только за фичи, которые используешь".
- - C++ - очень выразительный язык. В него заимствованы большинство существующих парадигм из всех популярных языков.
- - У C++ очень большое и, самое главное, профессиональное комьюнити. Это так из-за высокого порога вхождения.
- Однако, C++ очень сложный. Прямая работа с памятью и тысяча способов выстрелить себе в ногу - это про него. Не стоит его использовать всегда: нужно понимать, что используемый язык должен соответствовать поставленной задаче. Да, анон, не стоит писать на C++ скрипты или веб-фронтенд, а потом жаловаться, что C++ говно. Плохому танцору и ноги мешают, как говорится.
- **2. Литература для начинающих:**
- Все примерно одинаковой годноты, читать имеет смысл только какой-нибудь один, который больше приглянется.
- - Стэнли Липпман, Жози Лажойе и Барбара Му - Язык программирования C++ (2014) - https://goo.gl/kVaela
- - Стивен Прата - Язык программирования C++ (2012) - https://goo.gl/z7kA8u
- - Бьерн Страуструп - Программирование. Принципы и практика использования C++ (2011) - https://goo.gl/nAFUXa
- **3. Литература для тех, кто осилил предыдущий пункт:**
- Книги про основные подводные камни. Следует пролистать все.
- - Скотт Мейерс - Наиболее эффективное использование C++ (1996) - https://goo.gl/tHa0tO
- - Скотт Мейерс - Эффективное использование STL (2002) - https://goo.gl/QtS8Dc
- - Скотт Мейерс - Эффективное использование C++ (2005) - https://goo.gl/wsDXGz
- - Герб Саттер и Андрей Александреску - Стандарты программирования на языке C++ (2005) - https://goo.gl/Cpk4YR
- - Скотт Мейерс - Эффективный и современный C++ (2015) - https://goo.gl/Im8VYQ
- **4. Наиболее детальные описания языка:**
- - Бьерн Страуструп - Язык программирования C++ (на ангельском) (2013) - https://goo.gl/XkAiOX
- - Николаи Джоссатис - C++. Стандартная библиотека (2012) - https://goo.gl/PEyiMH
- - Стандарт C++14 - https://github.com/cplusplus/draft/raw/master/papers/n4140.pdf
- - Стандарт C++17 - http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4567.pdf (черновик)
- **5. Ньюансы проектирования на C++:**
- Следует пролистать все перед переходом от лаб к написанию настоящего софта.
- - Ален Голуб - Веревка достаточной длины, чтобы выстрелить себе в ногу (2001) - https://goo.gl/fBmuxp
- - Андрей Александреску - Современное проектирование на C++ (2002) - https://goo.gl/e1V5BC %%это - квинтэссенция ГИБКОСТИ, поэтому стоит прочитать в любом случае, чтобы охуеть от того, как можно делать.%%
- - Джеймс Коплиен - Программирование на C++ (2005) - https://goo.gl/Y1WGdU
- **6. Тонкости языка (для гурманов):**
- - Герб Саттер - Решение сложных задач на C++ (2002) - https://goo.gl/iWaa6S
- - Герб Саттер - Новые сложные задачи на C++ (2004) - https://goo.gl/4nn512
- **7. Годные ресурсы по C++:**
- - Годный блог, в котором все просто и понятно %%тян не нужны кококок борщ%% - http://alenacpp.blogspot.ru
- - Блог с хорошо расписанными фичами новых стандартов - http://scrutator.me
- - Краткие описания библиотечных функций и контейнеров - http://ru.cppreference.com/w/ или более подробно на ангельском http://en.cppreference.com/w
- - Блог Герба Саттера (на ангельском) - http://herbsutter.com
- - Блог Скотта Мейерса (на ангельском) - http://scottmeyers.blogspot.ru
- - Блог еще одной тянки, много о Qt и оптимизации (на ангельском) - https://katecpp.wordpress.com
- - Куча других блогов (на ангельском) - https://www.quora.com/What-are-the-best-blogs-on-C++
- - Большой FAQ по C++ (на ангельском) - https://isocpp.org/wiki/faq
- **8.Видеоуроки:** (для совсем уж ленивых пидорасов)
- - Видеокурс на тытрубе - https://www.youtube.com/watch?v=atVgLRzl3rI
- - Еще один - https://youtube.com/watch?v=MOpF5lk3cLY
- - Среди прочих есть несколько курсов по C++ - https://stepic.org
- - Видео с CppCon (на ангельском) - https://youtube.com/user/CppCon/videos
- **9. Куда писать код:**
- - Кроссплатформенные IDE: QtCreator, Eclipse CDT, CLion (Платно, но зато энтерпрайз. Легко сбрасывать пробный период, также можно купить на торрентах)
- - Только на Windows: Microsoft™ Visual Studio®
- - Только *nix: Компилим через консольку с помощью clang или, в крайнем случае, gcc (если хочется смотреть на охуительные мессаги)
- - Для тех, кто капчует с домофона: http://ideone.com
- **10. Code Quality:**
- - CppCheck. Статический анализатор, который умеет находить в коде ошибки и неоптимальные места. Швабодный. Есть плагин для Visual Studio. - http://cppcheck.sourceforge.net
- - Clang Static Analyzer. То же самое, но встроено в одноименный компилятор. Активно пилится Google и Apple. - http://clang-analyzer.llvm.org
- - PVS-Studio. То же самое, но энтерпрайз. Для пиара пишут годные статьи. - http://www.viva64.com/ru/pvs-studio/
- - Visual Leak Detector. Детектор утечек для Visual Studio. Предельно прост в прикручивании - https://vld.codeplex.com
- - Google Sanitizers. Гугловские утилиты для поиска утечек, дедлоков, гонок, неинициализированной памяти и некорректного доступа - https://github.com/google/sanitizers
- - Valgrind. То же самое, но медленно.(Очень. По сути, это - виртуальная машина) http://valgrind.org
- **11. Годные библиотеки:**
- - **Standard Library**. С недавнего времени(С++11) стала годнотой. Например, теперь можно писать кроссплатформенный распределенный код, не подключая boost. Что очень хорошо. Кстати о бусте.
- - **Boost** (http://www.boost.org) - бесспорно, самый популярный набор C++-библиотек. Воистину всеобъемлющий, boost способен удовлетворить твои самые скотские фантазии. В нем есть практически все - от математических функций до сетевых компонент, от инструментов тестирования до динамических типов. Функции для работы с твоей мамашей там тоже есть. Разумеется, все это швабодное и работает на любых платформах. Boost является своеобразным инкубатором хороших библиотек, поэтому наиболее удачные из них с большой вероятностью можно будет увидеть после принятия очередного стандарта уже как часть стандартной библиотеки.
- Недостатком boost можно считать его размер - более 300 мегабайт. Большинство компонентов boost не являются независимыми, и попытка использовать один единственный контейнер обернется фактическим подключением 2/3 всего присутствующего в комплекте. Таким образом, если boost не будет использоваться на полную, лучше юзать другие, более специализированные библиотеки.
- - **Qt** (http://www.qt.io/) - свободный кроссплатформенный фреймворк-надмножество C++ под названием Qt. Он содержит довольно большое количество компонентов (для работы с сетью, базами данных, для юнит-тестирования и др.), но киллер-фичей и основным полем его применения являются возможности по разработке графических интерфейсов. Qt сам по себе, как расширение языка, предоставляет для этого более удобные средства, чем обычные библиотеки, а использование специализированных IDE наподобие Qt Creator позволяет в буквальном смысле собирать интерфейсы мышкой, а код писать только по существу.
- Тем не менее, использование Qt нельзя однозначно назвать хорошей практикой. Во многом это уже не C++, а другой язык, со своими концепциями и паттернами. Qt-код требует дополнительного препроцессинга при помощи встроенных в Qt утилит (т.н. метаобъектная компиляция), поэтому не получится просто подключить Qt как обычную библиотеку и использовать свой любимый компилятор без дополнительного софта. Нельзя сказать, что это существенное препятствие, но есть мнение, что использование Qt нарушает дух C++, раздувает машинный код и порождает макак-любителей кодогенерации.
- В настоящее время основные версии Qt - 4.8 и 5.х, полной обратной совместимости между ними нет как в пистоне, ага.
- - И еще куча библиотек на любой вкус - http://en.cppreference.com/w/cpp/links/libs
- **Итого:**
- Вопросу по синтаксису идут **на хуй**.
- Лабы идут **на хуй**.
- "Как мне сделать Х на чистых крестах без библиотек" идут **на хуй**.
- Все идут **на хуй**.
- Хейтер сосет члены на пару со своей мамашей.
- **Старший брат:** >>609376
- **Предыдущий:** >>631744
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement