Top 10: los mejores documentos de Joker 2017



Recientemente, abrimos grabaciones de video de los informes de Joker 2017 a todos. Y cuando cuarenta informes de Java están disponibles de inmediato para el público, ¿cuál podría ser el problema? El hecho de que los ojos se abren de par en par! Cuando hay tantas cosas, no está claro qué buscar en primer lugar.

Puede centrarse en las calificaciones de la audiencia: comience con los informes que más les gusten a las personas que se sientan en el pasillo. Por lo tanto, hemos compilado para usted los diez principales videos principales, proporcionándoles pequeñas descripciones.

Por lo general, en tales cimas designamos estrictamente lugares. Pero esta vez, los principales informes fueron "cabeza a cabeza", y la diferencia entre ellos a veces es simbólica. Por lo tanto, aunque los videos están clasificados más abajo en orden ascendente de calificaciones a los más altos, esta división es bastante arbitraria: es más importante no en el orden en que van, sino en el hecho de que al público realmente les gustaron.

Los perfiladores mienten hobbitses


Ponente: Nitsan Wakart
Enlace de presentación


¿Qué diría si la aplicación "Contabilización del consumo de tráfico móvil" a veces le dijera "¡Aquí come tráfico!" ¿No el servicio que realmente gastó toda su cuota, sino el inocente? Probablemente se indignará: la aplicación no hace frente a su tarea principal y solo lo engaña.

La situación con los perfiladores de Java es generalmente similar. Bajo ciertas condiciones, muchos de ellos pueden ser tan engañosos que si no lo sabe, su uso puede complicar su vida en lugar de aliviarlo. Pero esto no significa que deba tirarlos a todos y medir el rendimiento "a simple vista". Será mucho más constructivo descubrir qué es exactamente lo que está mal y cómo vivir con él. Esto es de lo que habla Nitsan Wakart, conocido por muchos en el blog Psychosomatic, Lobotomy, Saw .



Un editor de texto no es su mejor matemática, aquí debe pensar


Ponente: Alexey Kudryavtsev
Enlace de presentación


El título del informe, por supuesto, es provocativo, pero no apareció desde cero. Lo mismo con el informe en sí: carece de ironía y de "carne". Alexey está trabajando en JetBrains en el IDE (que también es un editor de texto en cierto sentido), y sabe muy bien cómo lidiar con textos de una longitud que nunca habíamos soñado en nuestra cadena. Y qué tipo de especificidad surge cuando las inspecciones se llevan a cabo constantemente en este texto.

Aquí, por supuesto, surge la cuestión de la aplicabilidad práctica. ¿Cuántos de nosotros tendremos que trabajar en un editor de texto? Si no, ¿qué nos dará este informe? Pero él puede dar al menos esto: con el mismo IDE que ves todos los días, después de eso miras unos ojos un poco diferentes.



Fuente de eventos, arquitectura basada en eventos y CQRS


Ponente: Sebastian Daschner


Parecería que no faltan textos en Internet que explican los conceptos de abastecimiento de eventos y segregación de responsabilidad de consulta de comandos ("restaurar el estado actual basado en la fuente y los eventos que ocurrieron", "separación de lectura y escritura", eso es todo). Pero lo mismo puede explicarse de diferentes maneras, y los comentarios de la audiencia mostraron: a la gente le gusta cómo explica Sebastian Dashner.

Aquí hay un ejemplo en el informe: "Imagina que ordenaste una hamburguesa en un café, siéntate con anticipación, y luego el camarero regresa con las palabras" Lo siento, dijeron en la cocina que no había el ingrediente correcto en este momento ". Por supuesto, esto es desagradable. Pero para garantizar que se evite tal cosa, el camarero tendría que hacerlo inmediatamente después de las palabras "¿puedo pedir una hamburguesa?" corre a la cocina y no regresa hasta que esté listo: "sí, puedes, y aquí está". Obviamente, este enfoque no funcionará en absoluto. Por lo tanto, es más razonable hacer que un sistema complejo de muchos elementos no sea absolutamente consistente, pero eventualmente consistente ”

Y a Sebastian le gustaría entregar un logro separado "espíritu de la vieja escuela" por el hecho de que su presentación en lugar de Powerpoint se hizo, al parecer, en Vim (y los esquemas allí están pintados cuidadosamente con arte ASCII).



DC / OS de una nube en Java y para Java


Ponente: Oleg Anastasiev
Enlace de presentación


La palabra "nube" en los últimos años ya se ha desgastado hasta la imposibilidad. Pero si en muchos casos se puede reemplazar mentalmente con Amazon, entonces la situación es completamente diferente.

Inicialmente, en Odnoklassniki cada servidor era responsable de una sola tarea, lo que simplificaba enormemente (por ejemplo, es inmediatamente obvio qué tarea "come" cuánto). Pero a medida que se desarrolló, quedó claro que el recurso de infraestructura más valioso no es un servidor, sino un bastidor, y debemos aumentar la utilización del centro de datos, dividiendo los recursos de cada servidor entre diferentes tareas. ¿Cómo utilizar Docker para compartir correctamente los recursos entre las tareas de la clase "la respuesta rápida es importante" y la clase "el ancho de banda es importante"? ¿Qué sucede cuando Kubernetes no encaja, pero existe la fuerza para tomar su propia decisión?

Según la descripción, el informe puede parecer bastante "desalentador" e infraestructural, más que de desarrollo. Pero en realidad, se volvió "completamente despectivo", no en Joker, sino en nuestra otra conferencia DevOops: Oleg preparó diferentes versiones del informe para dos eventos diferentes.



Java Puzzlers NG S03 - ¿De dónde están escalando?


Ponentes: Tagir Valeev y Baruch Sadogursky
Enlace de presentación


Puzzlers, por supuesto, quiero demostrar con un ejemplo específico. Por lo tanto, volvemos a contar el segundo de los problemas expresados ​​por Tagir y Baruch. Supongamos que hemos anidado un operador ternario en otro (no pregunte por qué):

System.out.println(isUltimateQuestion ? 42 : isUltimateQuestion ? 42 : null); 

Supongamos también que isUltimateQuestion es falso. Pregunta: ¿qué producirá el código y por qué?

Opciones:

  1. nulo
  2. No compilado
  3. 42
  4. Ninterpointerinterception

La respuesta correcta está debajo del spoiler.

Texto oculto
La opción correcta es la última, NullPointerException. Por qué Resulta que, de acuerdo con la especificación, si los resultados int y nulos son posibles en el operador ternario, la expresión en su conjunto será de tipo Integer. Y si int e Integer, entonces int. A qué lleva todo esto: se intentará anbox el operador ternario "interno", y se encontrará con nulo.



Sin embargo, en los informes de rompecabezas, las tareas en sí son la mitad de la batalla, la presentación no es menos importante. Y aquí ella, como cabría esperar de estos oradores, también es brillante: las camisetas vuelan al pasillo, Baruch bromea en el escenario, en la pantalla el lobo persigue a la liebre. En una conferencia desde una habitación vecina se quejaron de que era audible incluso allí.



Proyecto ámbar: plomo desde los campos.


Ponente: Tagir Valeev
Enlace de presentación


Y aquí Tagir ya está sin Baruch. Decidió comprender adecuadamente "lo que el día que viene nos prepara", y estudió la información sobre el Proyecto Amber, una selección de pequeños cambios.

Hoy, el principal problema con este informe, por supuesto, es que muchas cosas han cambiado con los años. Digamos que el informe comienza con la salida local de variables, y ahora ya lo hemos recibido en Java 10, y ya hay muchos materiales del formato "tal como está" y no "cómo será". Pero el informe sigue siendo interesante: tanto porque pone todo en contexto ("de hecho, la inferencia de tipos como tal apareció en la octava versión"), y porque es interesante ver cómo se veía todo a fines de 2017.



Shenandoah: un recolector de basura que podría (parte 2)


Ponente: Alexey Shipilev .


Este informe exige al espectador por dos razones:

En primer lugar, requiere un conocimiento previo del informe anterior de Alexey realizado en JPoint 2017 (de hecho, de aquí viene la "parte 2" en el título). Ahora que ambos informes están disponibles para todos, puede considerarlos inmediatamente como una "Dilogía sobre GC" integral.

Y en segundo lugar, este es un informe de Alexei Shipilev. No es el más furioso de todo lo que ha dicho, por lo que no debe tener miedo de acercarse, pero sin embargo, se requiere algo de conocimiento del espectador. Y aquí el formato de video puede ser una ventaja sobre la presencia personal en el informe. ¡Porque puedes pausar el video y googlear algo incomprensible!



Java 8: bueno, malo, malo


Ponente: Nikolay Alimenkov
Enlace de presentación


Las nuevas versiones de Java ahora se reemplazan entre sí más rápido que los nuevos iPhones, y la undécima ya no se acerca. Pero si preguntamos "bueno, pero qué tipo de producción hay en su producción", lo más probable es que responda "octavo". Y esto significa que el informe sobre las características de su uso ahora sigue siendo relevante.

Sin lugar a dudas, el G8 nos ha brindado muchas oportunidades nuevas y maravillosas, pero no existe una oportunidad tan grande que no se pueda desperdiciar con el mal uso. Y el informe es solo sobre esto: cómo se usa incorrectamente y cómo valdría la pena sabiamente. El repositorio de GitHub va al informe en un par; si lo prefiere, puede ver ejemplos específicos allí mismo.



GraphQL - API de una nueva manera


Ponente: Vladimir Tsukur
Enlace de presentación


Una encuesta de la audiencia al comienzo del informe muestra que mucha gente escuchó sobre GraphQL entre la audiencia, pero muy pocos lo usaron "en la batalla". Por supuesto, para toda la comunidad Java, esta puede ser una muestra no representativa (no es sorprendente que esas personas se sientan atraídas por dicho informe), pero aún existe la sensación de que esta tecnología ahora está en el estado de "es hora de conocer". Esto es exactamente lo que ofrece el informe: un conocido alegre y fluido.

Ahora los problemas relacionados con la API pueden convertirse en una zona de tensión entre el front-end y el back-end. Para el frontend, puede verse como "mis requisitos han cambiado y necesito cambiar algo en los puntos finales, pero no pican", para el backend: "todo el mundo viene aquí y necesita urgentemente algo cuando tenemos otras tareas en llamas". Si los frontendistas pudieran simplemente solicitar los datos que necesitaban y recibirlos exactamente, ni más ni menos, ¿no sería el paraíso en la Tierra al mismo tiempo?

De hecho, no habría venido: GraphQL tiene sus inconvenientes. Pero los espectadores elogiaron este informe en parte porque no los omitió y no se convirtió en una hermosa imagen publicitaria. Y al mismo tiempo, muchos indicaron en los comentarios que ahora quieren probar la tecnología en un borrador de trabajo. ¿No es esto un éxito?



Arranca tú mismo, la primavera se acerca


Ponentes: Evgeny Borisov y Kirill Tolkachev.

Parte 1:


Parte 2:


Finalmente, la calificación se corona no solo como un informe, sino también como un informe. Ocupaba dos franjas horarias y, al parecer, podría continuar fácilmente todo el tiempo. Se reunió en el pasillo y pagó transmisiones en línea en total más de mil personas. Finalmente, exigió a dos personas en el escenario a la vez, y esto también es un desafío: un informe de pareja es un formato que no todos obtienen.

Quizás, dada la popularidad de Spring Boot en el ecosistema de Java, se necesitaba un informe de tal magnitud. Y las revisiones mostraron que no todo fue en vano: resultó no solo un golpe en el rublo, sino también un golpe correspondiente.

Y si eres fanático de las series e inmediatamente viste en el título una referencia a "Brace Yourselves, Winter is Coming", entonces tienes razón: Cyril y Eugene han estado jugando a "Juego de Tronos" durante dos horas.
Si los informes de la lista son de su interés, llamamos su atención: ya hemos anunciado el próximo Joker , y allí no puede ser menos interesante. Al mismo tiempo, los boletos se vuelven más caros con el tiempo, y el próximo aumento de precios ocurrirá el 1 de julio. ¡Así que no posponga la compra de un boleto para el nuevo Joker antes de revisar todos los informes del anterior!

Source: https://habr.com/ru/post/es415701/


All Articles