низкоуровневое программирование сегодня новые...

14
Низкоуровневое программирование сегодня: новые стандарты С++, программирование контроллеров, тренды IoT Антон Семенченко

Upload: comaqaby

Post on 15-Apr-2017

978 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: низкоуровневое программирование сегодня новые стандарты с++, программирование контроллеров, тренды

Низкоуровневое программирование сегодня:

новые стандарты С++, программирование

контроллеров, тренды IoT

Антон Семенченко

Page 2: низкоуровневое программирование сегодня новые стандарты с++, программирование контроллеров, тренды

Обо мне

Антон Семенченкоавтоматизированное тестирование, низкоуровневая разработка, управление, продажиОснователь DPI.SolutionsМенеджер в EPAM SystemsТренер по автоматизации и

управлению

Page 3: низкоуровневое программирование сегодня новые стандарты с++, программирование контроллеров, тренды

Примеры проектов

1. Холодильник спамер2. Безопасный фитнес браслет и стоимость безопасности3. Умный дом симпатизирующий грабителям4. ПО для Атомных Реакторов5. Умный дом, Ардуино, и дети дошкольного возраста6. Умные устройства: например, активные камеры7. Камеры – «хакеры»8. Google Translate и смерть Эсперанто9. Готовь сани \ лыжи летом10.Эмуляция тяжелой техники и снежные истории страховых

агентов11.Дополненая реальность: Магазин, Музей и Банк12.Виртуальная реальность13.Дубайские рассказы о самом умном роботе в мире из

сердца Сибири

Page 4: низкоуровневое программирование сегодня новые стандарты с++, программирование контроллеров, тренды

C++: зарплаты в Минске

https://salaries.dev.by/

Page 5: низкоуровневое программирование сегодня новые стандарты с++, программирование контроллеров, тренды

Разнообразие

Сокращается ли внутреннее разнообразие систем в процессе эволюции?

Живая и неживая природа, язык, культура, технологии

Page 6: низкоуровневое программирование сегодня новые стандарты с++, программирование контроллеров, тренды

История С++

1983 – зарождение языка

1998 – стандарт С++ 98

2003 – стандарт С++ 03

2011 – С++ 11

2014 – С++ 14

2015 – C++ Core Guidelines

2017 – C++ 17 (ожидаемо)

Page 7: низкоуровневое программирование сегодня новые стандарты с++, программирование контроллеров, тренды

C++ Core Guidelines

Бьерн Страуструп

Герб Саттер

● Опубликованы в сентябре 2015● Open source (github)● MIT-style (contributor) лицензия● Открыты для дополнения● Сейчас: около 250 страниц А4

https://github.com/isocpp/CppCoreGuidelines

Page 8: низкоуровневое программирование сегодня новые стандарты с++, программирование контроллеров, тренды

Core Guidelines: идеология

"Within C++ is a smaller, simpler, safer language struggling to get out." - Bjarne Stroustrup

● Современный С++ 11/14/17 (прицел на будущее)● Автоматизируемые правила, где возможно● Безопасность и простота кода● Фокус на высокоуровневых вещах:

○ типы и интерфейсы○ управление ресурсами (в т.ч. памятью)○ потокобезопасность

Page 9: низкоуровневое программирование сегодня новые стандарты с++, программирование контроллеров, тренды

Core Guidelines: цели

● Использование накопленных годами знаний● Унификация практик между организациями● Получить качественный код:

○ статически типо-безопасный○ без утечки ресурсов○ с ранней диагностикой ошибок в логике

● Помочь новичкам в изучении С++

Page 10: низкоуровневое программирование сегодня новые стандарты с++, программирование контроллеров, тренды

1. Непосредственно правила2. Guideline Support Library (GSL, header-only) -

функции и типы, рекомендуемые Гайдланамиhttps://github.com/Microsoft/GSL

3. Checker Tool (Visual Studio Add-in) - автоматическая проверка правилhttps://blogs.msdn.microsoft.com/vcblog/2015/12/03/c-core-guidelines-checkers-available-for-vs-2015-update-1/

Core Guidelines: компоненты

Page 11: низкоуровневое программирование сегодня новые стандарты с++, программирование контроллеров, тренды

С++: полезные ссылки

https://isocpp.org/ – сайт, посвященный работе комитета стандартизации С++ и сопутствующим вопросам

http://open-std.org/JTC1/SC22/WG21/docs/papers/2016/n4606.pdf – черновой вариант следующего стандарта С++17

https://google.github.io/styleguide/cppguide.html – Google C++ Style Guide

http://www.codingstandard.com/section/index/ – High Integrity C++ Coding Standard

Page 12: низкоуровневое программирование сегодня новые стандарты с++, программирование контроллеров, тренды

Литература по С++

1. Гради Буч «Объектно-ориентированный анализ и проектирование с примерами приложений на С++»На мой взгляд это одна из лучших книг для настоящего, а не шапочного, знакомство с ООП.2. Scott Meyers «Effective C++» / «More Effective C++», издание 1, 2 и 3Книга состоит из набора атомарных советов – областей С++. Это одна из настоятельно рекомендованных к прочтению книг в большинстве топовых IT компаний, например Microsoft.3. Scott Meyers «Effective STL»Советую прочитать книгу хотя бы раз и в дальнейшем обращаться как к справочнику.4. Саттер Герб «Решение сложных задач на С++», часть 1 и 2.Очень советую прочитать обе книги дважды от корки до корки, а потом самостоятельно прорешать предложенные задачи.5. Scott Meyers «Effective Modern C++»Советую прочитать дважды. Книга состоит из набора атомарных советов – областей С++. Это одна из настоятельно рекомендованных к прочтению книг в большинстве топовых IT компаний, например Microsoft.

Page 13: низкоуровневое программирование сегодня новые стандарты с++, программирование контроллеров, тренды

CoreHard C++ Community

https://corehard.by/ – сайт сообщества

http://conference.corehard.by/ – сайт конференций сообщества

Page 14: низкоуровневое программирование сегодня новые стандарты с++, программирование контроллеров, тренды

Спасибо! Вопросы?

Антон Семенченко

skype: [email protected]