Top 10: Os Melhores Trabalhos do Joker 2017



Recentemente, abrimos gravações de vídeo dos relatórios do Joker 2017. E quando quarenta relatórios Java estão imediatamente disponíveis ao público, qual poderia ser o problema? O fato de que os olhos se arregalam! Quando há tantas coisas, não está claro o que procurar em primeiro lugar.

Você pode se concentrar nas classificações de público-alvo: comece com os relatórios mais apreciados pelas pessoas sentadas no salão. Portanto, compilamos para você os dez principais vídeos principais, fornecendo-lhes pequenas descrições.

Geralmente em tais tops designamos estritamente lugares. Mas desta vez, os principais relatórios foram "cabeça a cabeça", e a diferença entre eles às vezes é simbólica. Portanto, embora os vídeos sejam classificados em uma ordem crescente de classificações para a mais alta, essa divisão é bastante arbitrária: é mais importante não na ordem em que eles vão, mas no fato de que o público realmente gostou deles.

Profilers são mentirosos hobbitses


Palestrante: Nitsan Wakart
Link de apresentação


O que você diria se o aplicativo "Contabilização do consumo de tráfego móvel" às vezes dissesse "Aqui ele come tráfego!" não o serviço que realmente gastou toda a sua cota, mas o inocente? Você provavelmente ficaria indignado: o aplicativo não lida com sua tarefa principal e apenas o engana.

A situação com os criadores de perfil Java é geralmente semelhante. Sob certas condições, muitos deles podem ser tão enganadores que, se você não souber, o uso deles pode complicar sua vida, em vez de aliviar. Mas isso não significa que você precisa jogar tudo fora e medir o desempenho "a olho nu". Será muito mais construtivo descobrir o que exatamente está errado e como conviver com isso. É sobre isso que Nitsan Wakart, conhecido por muitos no blog Psicossomático, Lobotomia, Saw , fala.



Um editor de texto não é a sua matemática mais alta, aqui você precisa pensar


Palestrante: Alexey Kudryavtsev
Link de apresentação


O título do relatório, é claro, é provocativo, mas não apareceu do zero. O mesmo acontece com o próprio relatório: falta ironia e "carne". Alexey está trabalhando no JetBrains no IDE (que também é um editor de texto em um certo sentido) - e ele sabe muito bem como lidar com textos de um tamanho que todos nós nunca sonhamos em nossa String. E que tipo de especificidade surge quando as inspeções são realizadas constantemente neste texto.

Aqui, é claro, surge a questão da aplicabilidade prática. Quantos de nós já terão que trabalhar em um editor de texto? Caso contrário, o que esse relatório nos dará? Mas ele pode dar pelo menos isso: no mesmo IDE que você vê todos os dias, depois disso, você parece um pouco diferente.



Fonte de eventos, arquitetura orientada a eventos e CQRS


Palestrante: Sebastian Daschner


Parece que não há escassez de textos na Internet explicando os conceitos de fonte de eventos e Segregação de Responsabilidade de Consulta de Comando ("restaurar o estado atual com base na fonte e nos eventos que ocorreram", "separação de leitura e gravação", isso é tudo). Mas a mesma coisa pode ser explicada de maneiras diferentes, e o feedback do público mostrou: pessoas como o que Sebastian Dashner explica.

Aqui está um exemplo no relatório: "Imagine que você pediu um hambúrguer em um café, sente-se em antecipação e, em seguida, o garçom retorna com as palavras" Sinto muito, eles disseram na cozinha que não havia o ingrediente certo no momento ". Claro, isso é desagradável. Mas, para evitar isso, o garçom precisaria imediatamente após as palavras "posso pedir um hambúrguer?" corra para a cozinha e não volte até que esteja pronto: "sim, você pode, e aqui está ele". Obviamente, essa abordagem não funcionará. Portanto, é mais razoável tornar um sistema complexo de muitos elementos não absolutamente consistente, mas eventualmente consistente. ”

E Sebastian gostaria de entregar uma conquista separada, “espírito da velha escola”, pelo fato de que sua apresentação em vez de Powerpoint foi feita, ao que parece, em Vim (e os esquemas são cuidadosamente pintados com arte ASCII).



DC / OS de uma nuvem em Java e para Java


Palestrante: Oleg Anastasiev
Link de apresentação


A palavra "nuvem" nos últimos anos já se esgotou na impossibilidade. Mas se em muitos casos ele pode ser substituído mentalmente pela Amazon, a situação é completamente diferente.

Inicialmente, em Odnoklassniki, cada servidor era responsável por apenas uma tarefa, o que simplifica bastante (por exemplo, é imediatamente óbvio que tarefa "come" quanto). Mas, à medida que se desenvolveu, ficou claro que o recurso de infraestrutura mais valioso não é um servidor, mas um rack, e precisamos aumentar a utilização do data center, dividindo os recursos de cada servidor entre tarefas diferentes. Como usar o Docker para compartilhar corretamente recursos entre as tarefas da classe "resposta rápida é importante" e a classe "largura de banda é importante"? O que acontece quando o Kubernetes não se encaixa, mas há força para tomar sua própria decisão?

De acordo com a descrição, o relatório pode parecer bastante "impreciso" e infra-estrutural, e não de desenvolvimento. Mas, na realidade, ele se tornou "completamente devorador" não no Joker, mas em nossa outra conferência do DevOops: Oleg preparou versões diferentes do relatório para dois eventos diferentes.



Java Puzzlers NG S03 - De onde vocês estão subindo ?!


Oradores: Tagir Valeev e Baruch Sadogursky
Link de apresentação


Quebra-cabeças, é claro, quero demonstrar com um exemplo específico. Portanto, recontamos o segundo dos problemas expressos por Tagir e Baruch. Suponha que aninhamos um operador ternário em outro (não pergunte o porquê):

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

Suponha também que isUltimateQuestion seja falso. Pergunta: o que o código produzirá e por quê?

Opções:

  1. nulo
  2. Não compilado
  3. 42.
  4. Nullpointerinterception

A resposta correta está no spoiler.

Texto oculto
A opção correta é a última, NullPointerException. Porque Acontece que, de acordo com a especificação, se resultados int e nulos forem possíveis no operador ternário, a expressão como um todo será do tipo Inteiro. E se int e Inteiro, então int. O que isso tudo leva a: será feita uma tentativa de anbox o operador ternário "interno" e tropeçará em nulo.



No entanto, nos relatórios de quebra-cabeças, as tarefas em si são metade da batalha, a apresentação não é menos importante. E aqui ela, como se poderia esperar desses alto-falantes, também é brilhante: camisetas voam para o salão, Baruch brinca no palco, na tela o lobo persegue a lebre. Em uma conferência de uma sala vizinha, eles reclamaram que era audível mesmo lá!



Projeto âmbar: chumbo dos campos


Palestrante: Tagir Valeev
Link de apresentação


E aqui Tagir já está sem Baruch. Ele decidiu entender corretamente “o que o próximo dia está preparando para nós” e estudou as informações do Projeto Amber - uma seleção de pequenas mudanças.

Hoje, o principal problema deste relatório, é claro, é que muita coisa mudou ao longo dos anos. Digamos que o relatório comece com a saída local de variáveis ​​- e agora já o recebemos no Java 10, e já existem muitos materiais do formato "como está", e não "como será". Mas o relatório ainda permanece interessante: tanto porque coloca tudo em contexto (“de fato, a inferência de tipo como tal apareceu na oitava versão”), e porque é interessante ver como tudo estava no final de 2017.



Shenandoah: um coletor de lixo que poderia (parte 2)


Palestrante: Alexey Shipilev .


Este relatório é exigente para o visualizador por dois motivos:

Em primeiro lugar, requer um conhecimento preliminar do relatório anterior de Alexey feito na JPoint 2017 (de fato, daqui vem a "parte 2" no título). Agora que esses dois relatórios estão disponíveis para todos, você pode considerá-los imediatamente como uma "Dilogia sobre GC" integral.

E segundo, este é um relatório de Alexei Shipilev. Não é o mais furioso de tudo o que ele já disse, então você não deve ter medo de se aproximar, mas, no entanto, é necessário algum conhecimento do espectador. E aqui o formato de vídeo pode ser uma vantagem sobre a presença pessoal no relatório. Porque você pode pausar o vídeo e procurar algo incompreensível no Google!



Java 8: bom, ruim, mau


Palestrante: Nikolay Alimenkov
Link de apresentação


Novas versões do Java agora estão se substituindo mais rapidamente do que os novos iPhones, e o décimo primeiro não está mais se aproximando. Mas se perguntarmos "bem, mas que tipo de produção está em sua produção", provavelmente você responderá "oitavo". E isso significa que o relatório sobre os recursos de seu uso ainda permanece relevante.

Sem dúvida, o G8 nos deu muitas novas oportunidades maravilhosas - mas não há uma oportunidade tão grande que não possa ser estragada pelo mau uso. E o relatório é exatamente sobre isso: como é usado incorretamente e como valeria a pena sabiamente. O repositório GitHub vai para o relatório em alguns - se você preferir, pode ver exemplos específicos aqui.



GraphQL - API de uma nova maneira


Palestrante: Vladimir Tsukur
Link de apresentação


Uma pesquisa da platéia no início do relatório mostra que muitas pessoas ouviram falar sobre o GraphQL entre a platéia, mas muito poucas o usaram "em batalha". Obviamente, para toda a comunidade Java, isso pode ser uma amostra não representativa (não é surpreendente que essas pessoas sejam atraídas por esse relatório), mas ainda existe a sensação de que essa tecnologia agora está no status de "é hora de conhecer". É exatamente isso que o relatório oferece - um conhecido alegre e fluente.

Agora, os problemas relacionados à API podem se tornar uma zona de tensão entre o front-end e o back-end. Para o front-end, pode parecer que "meus requisitos mudaram e preciso alterar algo nos pontos de extremidade, mas eles não coçam", para o back-end - "todo mundo vem aqui e quer algo urgentemente quando temos outras tarefas em chamas". Se os frontendders pudessem simplesmente solicitar os dados de que precisavam e receber exatamente, nem mais nem menos, o paraíso na Terra não viria ao mesmo tempo?

Na verdade, eu não teria chegado: o GraphQL tem suas desvantagens. Mas os espectadores elogiaram esse relatório em parte porque ele não os ignorou e não se transformou em uma bela imagem publicitária. E, ao mesmo tempo, muitos indicaram no feedback que agora desejam testar a tecnologia em um rascunho de trabalho. Isso não é um sucesso?



Inicie você mesmo, a primavera está chegando


Oradores: Evgeny Borisov e Kirill Tolkachev

Parte 1:


Parte 2:


Finalmente, a classificação é coroada não apenas em um relatório, mas em um relatório. Ele ocupava dois horários e, ao que parece, poderia facilmente continuar por tanto tempo. Ele se reuniu no salão e pagou transmissões on-line no total mais de mil pessoas. Finalmente, ele exigiu duas pessoas no palco ao mesmo tempo, e isso também é um desafio: um relatório de pares é um formato que nem todos recebem.

Talvez, dada a popularidade do Spring Boot no ecossistema Java, fosse necessário um relatório dessa magnitude. E as análises mostraram que tudo não foi em vão: resultou não apenas um balanço no rublo, mas também um golpe correspondente.

E se você é fã de séries e imediatamente viu no título uma referência a "Prepare-se, o inverno está chegando", então você está certo: Cyril e Eugene estão jogando "Game of Thrones" há duas horas.
Se os relatórios da lista lhe interessam, chamamos sua atenção: já anunciamos o próximo Coringa e você pode ser menos interessante. Ao mesmo tempo, os ingressos ficam mais caros ao longo do tempo e o próximo aumento de preço ocorrerá em 1º de julho. Portanto, não adie a compra de um ingresso para o novo Coringa antes de revisar todos os relatórios do anterior!

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


All Articles