Post has attachment
Приблизительно раз в полгода нам пишет кто-то из сотрудников компании Yandex, интересуется лицензированием PVS-Studio, качает триал и пропадает. Это нормально, мы привыкли к медленным процессам продажи нашего анализатора в крупные компании. Однако, раз представился повод, будет не лишним передать разработчикам Yandex привет и напомнить об инструменте PVS-Studio. https://habrahabr.ru/company/pvs-studio/blog/337182/

Post has shared content
Антон Полухин рассказывает некоторые тонкости STL:
1) использование std::char_traits для крассивого и эффективного решения ряда задач - создание строки, хранящей символы в нижнем регистре, выполняющей сравнение без учета регистра. Это наиболее скучная часть доклада, которую я бы пропустил (идет до 13:30), но запомнил бы, что это трейты, которые иногда могут творить чудеса;
2) рассказывается про асимптотическую сложность алгоритмов, очень коротко. Если знакомы - смотрите, иначе - проматывайте до 16:00.
3) рассматривается std::nth_element, std::partial_sort. До 25:30.
4) std::less и трейты в С++14.
#video #cppcodehard #stl
https://www.youtube.com/watch?v=83ci6JeZIG4&index=10&list=PLgsLnJ-wgYTZRDRK3jrSOoarFg0ART6Ea

Post has shared content
Простой для восприятия доклад про обеспечение качества кода. Упоминаются такие моменты разработки, как сборка (в т.ч. менеджеры зависимостей), проверка кода на соответствие стандартам кодирования, ревью кода, статический анализ, модульное тестирование, интрузивная и неинтрузивная верификация, непрерывная интеграция.

Про все это говорится очень поверхностно, ценность доклада в том, что выдаются списки инструментов по каждой теме. Я выписал для себя:
- conan.io (читал про него когда-то, но не пробовал);
- cpplint (скрипт на питоне от google, проверяющий код на С++ на соответствие стандартам кодирования, основанный на регулярных выражениях);
- clang-tidy (описан в отдельном докладе, как и cpplint, но на нем проще писать свои проверки);
- gerrit - инструмент для ревью кода, интегрируемый с git.

В моем списке нет инструментов, которые я уже использую (поэтому смотрите видео). Вообще, доклад построен вокруг страницы из книги Макконнелла "Совершенный код", на которой показано соответствие практик (таких как ревью кода, прототипирование, модульное тестирование и т.п.) проценту ошибок, которые они позволяют выявить.

В конце доклада есть (32:13) есть очень ценный слайд, на котором показано как эти практики внедрены на их предприятии.

В обсуждении доклада речь, в основном, идет о каких-то психологических и административных проблемах, сопротивлении команды и начальства.

https://www.youtube.com/watch?v=Q3xtKUp6cAo #cplusplus #cplusplusrussia #video

Post has shared content
Сенсация - открытие по Ладоням.
https://plus.google.com/u/0/communities/113212550145584484572 - http://vk.com/club119917820 - READ SENSATION - OPENING ON HANDS AND MATHEMATICS - LOOK INTERESTING PHOTOS - FACES OF PEOPLE, SIGNS ON HANDS, EYES AND AS ANIMALS ON FINGERS OF THE PERSON AND ARE A LOT OF THINGS FROM THIS, YOU LOOK ALL IN THE DEPTH OF THE ALBUM, THERE THERE ARE MANY INTERESTING - HERE - THE SCIENTIFIC TRUTH - REPORTS OF OPENING ARE IN ALBUM DEPTH - THERE, 69 SHEETS - OPEN ALL PHOTOS AND READ THERE ABOUT IT HOW TO UNDERSTAND PALMS OF EACH PERSON ALSO FIND ME IN THE SOCIAL NETWORK MY WORLD THERE SENSATION OF OPENING - http://vk.com/club119917820- Так же - смотрите и здесь - открытие по Рукам - https://www.facebook.com/pages/%D0%A5%D0%B8%D1%80%D0%BE%D0%BC%D0%B0%D0%BD%D1%82%D0%B8%D1%8F-%D0%9D%D0%B0%D1%83%D0%BA%D0%B0-%D0%B8-%D0%9B%D1%8E%D0%B4%D0%B8/420666718080421?ref=hl
и так же - заходите сюда - -http://ok.ru/group51628325208209

Post has shared content
Диаграмма классов занимает центральное место в проектировании объектно–ориентированной системы. Нотация классов используется на разных этапах проектирования и строится с различной степенью детализации. Язык UML применяется не только для проектирования, но и с целью документирования, а также эскизирования проекта. Я (в отличии от Гради Буча) не являюсь сторонником разработки проекта с использованием всех видов UML диаграмм, а также детального проектирования. Читать далее: https://pro-prof.com/archives/3212

При описании нотации (первый раздел) я ориентировался на подход, который продвигает Розенберг (он использует не все средства UML, но его инструментов хватает в 99.99% случаев). В этом отличие раздела от классических книг (в т.ч. Буча, Лармана и Фаулера) — у них нотация традиционно размазывается на два раздела по 20 страниц.

Во втором разделе приведена информация об использовании диаграммы классов. Во многих книгах (например, у Леоненкова, в объектно–ориентированном анализе Буча и у Фаулера) такой информации вообще нет. У Розенберга и Лармана — очень специфический материал (я его использовал и переработал).
#uml

Post has shared content
Очень интересный доклад о стандартной библиотеки #cplusplus с конференции #cplusplusrussia. Рассказывается о современном С++ и старых методах повышения эффективности кода, которыми теперь (в современном С++) пользоваться не стоит.
https://www.youtube.com/watch?v=rJWSSWYL83U&list=PLZN9ZGiWZoZojYik8EdApUgPwa0YM3Yuz&index=14
Содержание:
1) [до 18 минуты] на примере класса строки (типичный пример велосипеда) рассказывается о подходе COW (Copy On Write), сокращающем число вызовов конструкторов при работе с временными объектами. Подход хорошо описан в интернете, но пользоваться им уже не стоит - рассказывается почему COW плохо работает в параллельных программах. Поясняется чем семантика перемещения лучше COW.
2) [до 26 минуты] рассказывается интересная оптимизация класса строки - small string optimisation. Когда-то из за этой оптимизации компании переписывали стандартную строчку. Теперь в стандартной библиотеке есть эта оптимизация. Кроме того, в С++17 поддерживается guaranteed copy elision.
3) [до 32 минуты] рассказывается о std::variant из С++17. Показаны интересные ошибки, допускаемые при написании std::variant.
4) [до 40 минуты] рассказывается про force inline и почему им не стоит пользоваться.
5) [до 44 минуты] рассказывается про aliasing. А точнее, про опцию -fno-strict-aliasing, которую иногда используют при переносе кода на другю платформу. Объсняется что делает эта опция и почему ей не стоит пользоваться.
6) [до 60 минуты] даются "советы на каждый день" - на очень простых примерах рассказываются некоторые моменты стандартной библиотеки, которые позволяют улучшить код: vector.reserve, std::make_shared, std::move, применение auto&& в range based for, std::string_view, constexpr, override (показано как помогает избежать ошибок при рефакторинге), final (помогает оптимизировать код компилятору), анонимный namespace, перемещающие конструкторы, noexcept (тоже помогает оптимизатору), конструкторы по умолчанию (помогают сильно упростить код и не ошибиться)
7) [до 68 минуты] интересный пример с кэшированием деления.
С 70 минуты идет обсуждение доклада (длится 40 минут). Тоже очень интересное.

Post has attachment

Post has attachment

Post has attachment

Post has attachment
Wait while more posts are being loaded