De 7 a 8 de abril, a comunidade CoreHard realizou a 8ª conferência internacional CoreHard Spring 2018 em Minsk na linguagem C ++ e tecnologias "hardcore" relacionadas em Minsk. Participaram da conferência palestrantes das principais empresas de TI da Bielorrússia, Rússia, Ucrânia, Alemanha e Holanda. Eles falaram sobre sua experiência em desenvolvimento e teste.
Agora, os relatórios da conferência estão disponíveis gratuitamente no YouTube e todos podem se familiarizar com eles. Obrigado aos organizadores da conferência.
O autor do relatório conheceu o C ++ em 1991 e, desde 1992, o C ++ é a principal linguagem de desenvolvimento do orador. O que aconteceu com a língua durante esse tempo? Como e por que ele se tornou popular? Como começou a estagnação no desenvolvimento de C ++? Como o C ++ perdeu sua popularidade? Existe espaço para C ++ no mundo moderno? Vamos tentar falar sobre isso, com base em 25 anos de experiência em programação C ++.
Vamos falar sobre como as abordagens para trabalhar com objetos de jogo nos jogos do terceiro jogo foram alteradas e como chegamos à atual abordagem de componente de recurso para criar objetos de jogo mutáveis. Quais são as suas vantagens em relação a outras abordagens testadas e testadas para criar tutoriais, vários modos e também revisão de código.
Vamos falar sobre ganchos de função em aplicativos escritos em vários idiomas e tecnologias. O relatório considerará: conceitos básicos, aplicações, variedades de métodos de interceptação e seus recursos técnicos, bibliotecas prontas.
No relatório, o autor fala sobre sua experiência prática na compilação e uso de C ++ em páginas da Web, sobre o que precisa ser feito para portar um aplicativo em C ++ para a Web, sobre as limitações associadas a isso, sobre a integração do código C ++ com JavaScript e outros elementos da Web páginas.
3.5 blockchain de 2 megabytes: como, por que e por que. Recursos para o desenvolvimento de soluções blockchain de plataforma cruzada.
Neste relatório, o autor fala sobre o fato de que o Obj-C / C ++ é uma extensão do C / C ++ existente. Ele também considerará os recursos da linguagem, falar sobre gerenciamento de memória (reter / liberar vs. ARC vs. shared_ptr / unique_ptr), sobre Swift e por que é melhor ou pior que Obj-C / C ++.
No C ++, existem várias maneiras de resolver o mesmo problema. Vamos pegar o problema real da prática do autor e explorar várias ferramentas C ++ para resolvê-lo: contêineres STL, boost.range, intervalos C ++ 20, corotinas. Compararemos as soluções em termos de suas interfaces e desempenho, e também veremos como uma solução pode ser facilmente obtida de outra se o código estiver organizado adequadamente. No processo, examinamos os recursos do C ++ 17: constexpr if, instruções de seleção com inicializador, std :: not_fn, etc. Atenção especial será dada aos algoritmos padrão (meu tópico favorito).

O Analysis Data Flow (fluxo de dados) é uma tecnologia para analisar o código fonte dos programas que é amplamente usado em várias ferramentas de desenvolvimento: compiladores, linters, IDEs. Falaremos sobre isso usando o desenvolvimento de um analisador estático como exemplo. Considere a classificação e os vários tipos de análise de fluxo de dados, tecnologias relacionadas que se complementam e os problemas que surgem durante seu desenvolvimento e as surpresas que o C ++ nos apresenta quando tentamos analisá-lo. Durante o relatório, analisaremos vários erros encontrados em projetos reais usando essa tecnologia.

Acontece que, às vezes, seu aplicativo começa a executar tarefas aparentemente comuns por um longo tempo e consome uma grande quantidade de RAM. E você, como desenvolvedor, não tem idéia do por que isso está acontecendo (mas você está interessado). No decorrer da palestra, falaremos sobre ferramentas que podem entender as razões do comportamento estranho de nossos programas. Se você não tem medo de palavras como Valgrind, gprof, gperftools e muitas outras - seja bem-vindo!
Como configurar / atualizar ambientes de maneira rápida e fácil para projetos de compilação cruzada para várias plataformas (com base no docker), como alternar rapidamente entre eles, como organizar o IC e o teste (com base no GitLab e no Docker) usando esses tijolos.
O relatório considerará a geração de código ao compilar várias construções de linguagem, simples e complexas, em várias plataformas, tanto o x86 / x64 comum quanto as que recebem menos atenção: ARM, AVR. Também haverá exemplos de processadores completamente exóticos, como PowerPC e até MicroBlaze. A ênfase principal será colocada não no processamento de dados, mas na comparação de várias construções de código com instruções das plataformas de destino.
A programação de hoje está dividida em muitas áreas bastante distantes uma da outra. Existe alguma programação conceitual unificada e sobre o que essa unidade repousa? As respostas para essas e outras perguntas são dadas pelo autor do relatório.
O diabo está nos detalhes. Isso também se aplica ao C ++ 17. Temos novos recursos interessantes, mas também temos coisas novas para cuidar e lembrar. Esta palestra discute alguns dos recursos interessantes quando eles podem levar a surpresas.
Discussões
Não perca as discussões que levantaram vários tópicos sobre a discussão das linguagens Rust e C ++, bem como as respostas às perguntas dos membros do Comitê de Normalização C ++.