Del 7 al 8 de abril, la comunidad CoreHard celebr贸 la octava conferencia internacional CoreHard Spring 2018 en Minsk sobre lenguaje C ++ y tecnolog铆as relacionadas "hardcore" en Minsk. A la conferencia asistieron oradores de las principales empresas de TI en Bielorrusia, Rusia, Ucrania, Alemania y los Pa铆ses Bajos. Hablaron sobre su experiencia en desarrollo y pruebas.
Ahora los informes de la conferencia est谩n disponibles gratuitamente en YouTube y todos pueden familiarizarse con ellos. Gracias a los organizadores de la conferencia.
El autor del informe conoci贸 a C ++ en 1991, y desde 1992, C ++ ha sido el principal lenguaje de desarrollo para el hablante. 驴Qu茅 le pas贸 a la lengua durante este tiempo? 驴C贸mo y por qu茅 se hizo popular? 驴C贸mo comenz贸 el estancamiento en el desarrollo de C ++? 驴C贸mo ha perdido C ++ su popularidad? 驴Hay espacio para C ++ en el mundo moderno? Tratemos de hablar sobre esto, basado en 25 a帽os de experiencia en programaci贸n en C ++.
Hablemos de c贸mo han cambiado los enfoques para trabajar con objetos de juego en juegos de match 3, y c贸mo llegamos al enfoque actual de componente de caracter铆stica para crear objetos de juego mutables. 驴Cu谩les son sus ventajas sobre otros enfoques probados para crear tutoriales, numerosos modos y revisi贸n de c贸digo?
Hablemos de enlaces de funciones en aplicaciones escritas en varios lenguajes y tecnolog铆as. El informe considerar谩: conceptos b谩sicos, aplicaciones, variedades de m茅todos de intercepci贸n y sus caracter铆sticas t茅cnicas, bibliotecas listas para usar.
En el informe, el autor habla sobre su experiencia pr谩ctica en la compilaci贸n y uso de C ++ en p谩ginas web, sobre lo que se debe hacer para portar una aplicaci贸n en C ++ a la web, sobre las limitaciones asociadas con esto, sobre la integraci贸n del c贸digo C ++ con JavaScript y otros elementos web p谩ginas
3.5 blockchain de 2 megabytes: c贸mo, por qu茅 y por qu茅. Caracter铆sticas del desarrollo de soluciones blockchain multiplataforma.
En este informe, el autor habla sobre el hecho de que Obj-C / C ++ es una extensi贸n de C / C ++ existente. Tambi茅n considerar谩 las caracter铆sticas del lenguaje, hablar谩 sobre la administraci贸n de memoria (retener / liberar vs. ARC vs. shared_ptr / unique_ptr), sobre Swift y por qu茅 es mejor o peor que Obj-C / C ++.
En C ++, hay muchas formas de resolver el mismo problema. Tomaremos el problema real de la pr谩ctica del autor y exploraremos una serie de herramientas de C ++ para resolverlo: contenedores STL, boost.range, rangos de C ++ 20, rutinas. Compararemos las soluciones en t茅rminos de sus interfaces y rendimiento, y tambi茅n veremos c贸mo una soluci贸n puede obtenerse f谩cilmente de otra si el c贸digo est谩 organizado correctamente. En el proceso, observamos las caracter铆sticas de C ++ 17: constexpr if, sentencias de selecci贸n con inicializador, std :: not_fn, etc. Se prestar谩 especial atenci贸n a los algoritmos est谩ndar (mi tema favorito).

Analysis Data Flow (flujos de datos) es una tecnolog铆a para analizar el c贸digo fuente de los programas que se utiliza ampliamente en diversas herramientas de desarrollo: compiladores, linters, IDE. Hablaremos de ello utilizando el desarrollo de un analizador est谩tico como ejemplo. Considere la clasificaci贸n y los diversos tipos de an谩lisis de flujo de datos, las tecnolog铆as relacionadas que se complementan entre s铆 y los problemas que surgen durante su desarrollo, y las sorpresas que C ++ nos presenta cuando tratamos de analizarlo. Durante el informe, analizaremos varios errores encontrados en proyectos reales que utilizan esta tecnolog铆a.

Sucede que a veces su aplicaci贸n comienza a realizar tareas aparentemente mundanas durante mucho tiempo y consume una gran cantidad de RAM. Y usted, como desarrollador, no tiene idea de por qu茅 sucede esto (pero le interesa). En el transcurso de la charla, hablaremos sobre herramientas que pueden comprender las razones del comportamiento extra帽o de nuestros programas. Si no le temes a palabras como Valgrind, gprof, gperftools y muchas otras, 隆bienvenido!
C贸mo configurar / actualizar entornos de manera r谩pida y f谩cil para proyectos de compilaci贸n cruzada para varias plataformas (basadas en Docker), c贸mo cambiar r谩pidamente entre ellas, c贸mo organizar CI y pruebas (basadas en GitLab y Docker) utilizando estos ladrillos.
El informe considerar谩 la generaci贸n de c贸digo al compilar varias construcciones de lenguaje, tanto simples como complejas, en varias plataformas, tanto las comunes x86 / x64 como aquellas que reciben menos atenci贸n: ARM, AVR. Tambi茅n habr谩 ejemplos de procesadores completamente ex贸ticos como PowerPC e incluso MicroBlaze. El 茅nfasis principal se colocar谩 no en el procesamiento de datos, sino en la comparaci贸n de varias construcciones de c贸digo con instrucciones de las plataformas de destino.
La programaci贸n de hoy est谩 dividida en muchas 谩reas que est谩n bastante lejos unas de otras. 驴Existe una programaci贸n conceptualmente unificada y sobre qu茅 descansa esta unidad? Las respuestas a estas y otras preguntas son proporcionadas por el autor del informe.
El diablo est谩 en los detalles. Esto tambi茅n se aplica a C ++ 17. Obtenemos nuevas caracter铆sticas interesantes, pero tambi茅n obtenemos cosas nuevas para cuidar y recordar. Esta charla discute algunas de las caracter铆sticas interesantes cuando pueden dar lugar a sorpresas.
Discusiones
No se pierda las discusiones que plantearon varios temas relacionados con la discusi贸n de los lenguajes Rust y C ++, as铆 como las respuestas a las preguntas de los miembros del Comit茅 de Normalizaci贸n de C ++.