A décima conferência do CodeFest foi realizada em Novosibirsk. O programa foi muito agitado: dez seções sobre desenvolvimento, testes, design, gerenciamento e desenvolvimento. Os funcionários da True Engineering descrevem os relatórios há dois dias. Agora, queremos compartilhar esse benefício com você.
Esperamos que nossa análise seja útil para quem assiste a vídeos de performances. Algumas das apresentações já foram publicadas em domínio público, portanto, complementamos algumas revisões com links para elas. Os relatórios são classificados por seções.

Desenho
Como mostrar a interface para alguém que não vê - Valeria Kurmak
Fomos atraídos por um relatório de Valeria Kurmak, do Sberbank, sobre a otimização de software para pessoas com deficiência.
A principal mensagem do relatório é que, de fato, existem muitas pessoas com deficiência. E essas não são apenas pessoas absolutamente cegas. São todos aqueles que não conseguem mais ver tão claramente quanto na juventude: nossos avós, pais e mães. Esses são nossos amigos que perderam temporariamente sua capacidade de trabalhar devido a ferimentos físicos. Isso é de 2 a 8% dos homens que têm dificuldade em perceber as cores.
Mas essas pessoas não precisam de uma versão separada do seu aplicativo - tudo foi inventado por um longo tempo. Ao tornar seu site escalável, você o torna acessível a milhões de pessoas. Usando controles padrão ou layout semântico, você ajuda muito seus usuários.
Valéria, juntamente com a equipe do Sberbank, fez uma excelente orientação sobre esse assunto. A diretriz é dividida em vários tutoriais curtos para diferentes funções:
- para designers
- para desenvolvedores do iOS,
- para desenvolvedores do Android,
- para desenvolvedores web
- e até mesmo para gerentes.
Você pode encontrá-lo
aqui .
Backend
O TCP está morto ou o futuro dos protocolos de rede - Alexander Tobol ( apresentação )
Totalmente repleto de conhecimentos úteis, o relatório sobre o dispositivo de protocolo TCP e os problemas que, nas condições das modernas redes de comunicação móvel, levam ao limite de utilização e à capacidade do canal.
Na Odnoklassniki, a entrega de conteúdo em vídeo e feeds de notícias desempenha um papel crucial no sucesso do serviço. Com um pequeno número de pacotes perdidos e um aumento na latência da rede, sua utilização cai para quase 50%. Para resolver o problema, a empresa está cortando seus próprios protocolos para cada tipo de tráfego para substituir o TCP. (O Google faz a mesma coisa, QUIC). Grande respeito pelos rapazes por não terem medo de abalar os fundamentos fundamentais.
O novo padrão http / 2 também funciona no pescoço do TCP, portanto, o destino correto para os sistemas cliente-servidor é o http / 3, que é executado sobre o QUIC.
Como resultado, o Odnoklassniki recebeu um bom aumento no desempenho do sistema. A demonstração foi visualmente visível, aceleração múltipla do carregamento da fita. Odnoklassniki também foi o primeiro do mundo a transmitir vídeo ao vivo em HD. Exemplo: por alguma razão, os caminhoneiros americanos adoram transmitir gravações de estradas para a rede. Aparentemente, eles o usam como um DVR.
Teamlead
Refatoração: concordamos, planejamos, implementamos! - Alexey Kataev ( apresentação )
Alexey afirma que, ao longo dos dez anos de história da Skyeng, eles nunca reescreveram seu aplicativo do zero. Como eles mantêm a qualidade do código? É simples - eles refatoram :) O relatório em si não é sobre o que significa técnico fazer a refatoração, mas sobre como convencer o gerente de sua necessidade.
A primeira coisa que os desenvolvedores devem fazer é parar de reclamar que o aplicativo precisa ser refatorado por um longo tempo e, em vez disso, encontrar um idioma comum com o gerente e concordar. Em resumo, configure as tarefas de dívida técnica no backlog do seu projeto com antecedência, avalie, priorize-as e entre em contato com o gerente com propostas específicas. E não deixe de ler o livro de Gavin Kennedy, Você pode concordar com tudo!
A segunda idéia importante do relatório é não mentir. Não inclua refatoração nas classificações de recursos. Isso torna o processo de desenvolvimento menos transparente. Você corre o risco de se afundar na refatoração, pois não acompanhará mais o tempo gasto nela.
Alex também contou como eles usam os robôs de telegrama para planejar a refatoração e também compartilhou algumas listas de verificação e uma lista de princípios de sua equipe. Gostaria de agradecer novamente a ele por uma das apresentações mais úteis sobre o Codefest X.
Sobre o chauvinismo da engenharia: nojento ser gerente - Eugene Kot
Relatório premium, o teatro trava nervosamente invejoso. O orador é muito talentoso, vale a pena prestar atenção nos outros relatórios. Uma apresentação maravilhosa na forma de uma história sobre os problemas psicológicos da transformação de um engenheiro em um líder de equipe.
Recomendado para visualização regular para quem escolhe entre gerenciamento e aprofundamento da arquitetura e faz perguntas:
- Se eu me tornar um líder de equipe, não serei reivindicado,
- Se eu me tornar um líder de equipe, não poderei codificar,
- Se eu me tornar um líder de equipe, onde devo me desenvolver.
O orador respondeu-lhes e também introduziu a abreviação "S.O.S.O. Syndrome": medo, desespero, vergonha, alienação. Além disso, descobri de onde vêm essas emoções e como lidar com elas.
Celular
iOS Tudo é MVC: por que precisamos de outras arquiteturas? - Evgeny Rtishchev
Um relatório muito rico de que o MVC no iOS não é percebido por muitos como completamente correto e que isso não é realmente ruim. Curiosamente, há alguns anos atrás, Eugene fez uma
denúncia contra o MVC no Mobius e depois re-percebeu tudo. Ele analisou diferentes tipos de controladores com exemplos do SDK, as vantagens dessa arquitetura e explicou onde crescem as raízes dos problemas que se destacam ao trabalhar com o MVC.
Dicas que Eugene compartilha:
- use 4 tipos de controladores,
- compartilhar responsabilidades
- evitar coesão
- design do modelo,
- mudanças de interface rápidas e fáceis,
- controlador de exibição maciço - um problema rebuscado.
É especialmente interessante ouvir o relatório quando você já experimentou MVCC, MVVM, MVP, VIPER ou outras arquiteturas e compartilhar a dor e as vantagens que existem em cada uma delas. Isso me faz pensar cada vez mais que, em geral, não é assim que o padrão arquitetural é chamado.
testes de interface de usuário do iOS E2E: muito, verde e em solicitação de recebimento - Artyom Razinov
Artyom falou sobre como, reduzindo o volume de testes de regressão obrigatórios e aumentando o volume de testes de interface do usuário, a equipe reduziu significativamente o tempo de testes de regressão de um aplicativo grande e começou a ser liberada com mais frequência.
Foi útil ouvir sobre técnicas e técnicas que podem ser usadas para alcançar melhores resultados. Lembro-me especialmente destes:
- avaliar a adequação dos testes de interface do usuário com base na frequência de lançamentos e no tempo para atualizar os testes,
- Análise de impacto, para não executar todos os testes todas as vezes,
- corridas completas regulares,
- paralelizar testes para acelerar.
Recomendamos este relatório para desenvolvedores de dispositivos móveis.
Android Instant Apps, dois anos depois - Evgeny Saturov
Em 2017, uma ferramenta como o Instant Apps foi introduzida - em termos simples, é um aplicativo com lançamento instantâneo. O surf teve acesso antecipado a esse recurso.
Eugene disse que problemas eles encontraram no processo de desenvolvimento e teste. Em primeiro lugar, havia um SDK rígido que vinha com um arquivo zip. Em segundo lugar, não havia documentação. Também era necessário suportar requisitos rigorosos na arquitetura do aplicativo. O aplicativo não pesava mais de 3 MB e precisava ser dividido em módulos.
Após o desenvolvimento, dois anos depois, o Google lançou outra solução - Android Dynamic Feature Delivery, que permite fazer a mesma coisa, mas com limitações diferentes. O novo SDK também não é particularmente estável, difícil de testar e possui vários bugs e muletas. Uma das principais limitações é que você precisa fornecer ao Google sua chave, com a qual o aplicativo é assinado.
Eugene compartilhou dicas sobre o que ler e como resolver todos esses problemas. Ele falou sobre sua experiência usando o Dynamic Feature Delivery, resumindo o fato de que ainda é uma coisa bruta.
Android Ferramentas para resolver problemas em uma grande equipe - Vladimir Tebloev
O Sberbank possui uma grande equipe de desenvolvimento para Android - mais de 100 pessoas trabalham em um projeto. Em algum momento, a equipe começou a crescer e os desenvolvedores tiveram que controlar de alguma forma. No relatório, Vladimir compartilhou um conjunto de práticas e dicas que podem ajudar na interação com a equipe, mesmo que menos pessoas trabalhem lá.
Por exemplo, novos funcionários sempre recebem um mentor. Para iniciantes, existe uma base de conhecimento: guias sobre design, arquitetura, convenção de código, como os testes e a documentação são organizados no Confluence - tudo é escrito até o ponto de clonagem de um projeto.
Isso não significa que tudo está limitado a uma pilha. Para novas tecnologias, a empresa desenvolve boas e más práticas em módulos separados e, em seguida, faz um guia sobre o uso dessa tecnologia. O processo está estruturado da seguinte forma: eles tentaram, escreveram práticas, comprovaram a necessidade dessa tecnologia, após a qual a equipe a utiliza.
Uma idéia interessante de Vladimir de que às vezes uma ditadura é um mal necessário. Se você ouvir e tentar agradar a cada uma das 130 pessoas, nada de bom resultará disso. Às vezes, você precisa dizer prescritivamente: "Fazemos isso". Essa certeza também é transmitida por esses guias.
Produtos>
Como a inteligência artificial se transforma em nova eletricidade - Ivan Yamshchikov
O relatório é do próprio Ivan Yamshchikov, que participou da criação da rede neural, que escreveu
várias músicas no estilo de Yegor Letov.
O autor acredita que a inteligência artificial mudará nosso mundo tanto quanto antes foi alterado pela eletricidade. A principal mensagem prática do relatório era que era hora de começar a pensar sobre o que poderia ser automatizado usando inteligência artificial. Ao mesmo tempo, a eletricidade tornou possível automatizar muitas indústrias que anteriormente usavam força física. Agora, a inteligência artificial pode substituir as pessoas em atividade intelectual, por exemplo, ao trabalhar com documentos. A inteligência artificial não se cansa, grandes quantidades de dados estão disponíveis e não se engana.
O relatório dá a sensação de que o futuro já está aqui.
Frontend
Imerso na Web - Luis Diego Gonzalez Zuniga
O palestrante falou sobre o que é a web imersiva (imersividade - criando o efeito de imersão, presença). O navegador Samsung, de acordo com suas estatísticas, ocupa o quarto lugar na Rússia em uso. Parece estranho, mas talvez isso se deva ao fato de o navegador padrão estar instalado no novo Samsung.
Em geral, estamos falando sobre a incorporação de realidade virtual (WebXR) nos navegadores. O resultado é um navegador com uma ampla gama de recursos, incluindo vários gamepads, joysticks, etc. bem dentro dele.
Gonzales também falou sobre as diferenças entre VR (realidade virtual) e AR (realidade aumentada), e como juntos ele forma XR. Segundo ele, "o XR abrange plataformas e conteúdos onde o usuário pode levar objetos digitais para a realidade ou, pelo contrário, ver objetos físicos presentes na cena digital". O palestrante também mostrou como ativar o modo de realidade virtual no navegador Samsung. Durante a demonstração, peguei um bug, mas garanti-me que "tudo funcionava antes do relatório".
Como resultado, o que é mostrado parece realmente interessante. Estamos aguardando que essas decisões cheguem às massas e será possível instalar o aplicativo ou navegador em qualquer smartphone.
Até o relatório ser publicado, a web imersiva da Samsung pode ser encontrada
aqui .
Futuro
Tendências do impossível - Evgeny Chereshnev ( apresentação )
Evgeny Chereshnev - pesquisadora e jornalista de TI, participante da conferência TED de Nova York. O relatório foi perfeito para abrir a seção Futuro. Nele, Eugene abordou tópicos sobre os quais não pensamos na vida cotidiana, mas que nos aguardam em um futuro próximo. Em geral, era sobre inovação.
Existem vários pensamentos básicos:
- Somos todos únicos desde o nascimento, mas o sistema nos ajusta à comunidade. Uma pessoa que foi capaz de manter a criança dentro de si mesma retém a curiosidade inerente às crianças e, com ela, a oportunidade de procurar e inventar algo novo. Essas pessoas são referidas no relatório como "a criança que sobreviveu".
- A inovação é possível apenas em pequenas empresas, startups. As grandes empresas, como as pessoas, com idade e crescimento perdem a capacidade de introduzir algo verdadeiramente novo, porque é muito arriscado para elas.
- Os problemas das inovações nas startups russas devem-se principalmente ao fato de que "um engenheiro russo geralmente não se interessa por dinheiro", o que significa que muitas empresas se esgotam logo no início, simplesmente porque pensam em uma categoria de "faça bem", mas não lucrativamente. Chereshnev diz que você precisa poder vender o produto - "primeiro dinheiro, depois código".
- Um dos principais pensamentos do relatório e do Codefest como um todo é que em breve a inteligência artificial estará em todo lugar. Os robôs começarão gradualmente a deslocar uma pessoa, porque não há necessidade, por exemplo, de um trabalhador em uma fábrica, se um robô faz isso melhor, o que ainda não precisa ser pago. Em resposta a essas tendências, o palestrante diz que o DNA humano é o mesmo código, dados, o que significa que você pode trabalhar com eles. A única maneira de a humanidade continuar a existir no modo normal é se transformar, melhorar como um código. O próprio Eugene, por exemplo, já implantou um chip na mão. Quem sabe, talvez em 50 anos sejamos todos um pouco ciborgues.
Além disso, Eugene já falou sobre tendências mais pronunciadas - o que acontecerá no futuro próximo:
- Eco-energia
- Medicina automatizada (o bot responderá às reclamações dos pacientes, portanto a necessidade de uma visita ao terapeuta desaparecerá),
- Educação Omni (em um futuro próximo, uma pessoa não terá uma especialidade, ela terá que ter várias especialidades ao mesmo tempo para alternar entre elas a tempo).
Eugene encerrou seu relatório dizendo que a inovação é inevitável e a evolução "se estende a tudo, vivo e não vivo".
Por que ser bom para todos não é muito bom. E não será - Alexander Orlov
“Por que você é bombardeado pelas palavras e ações de algumas pessoas? Por que você não insiste em falar com alguém?
Este é um relatório útil sobre mapas da realidade, sobre confrontos construtivos, sobre as necessidades que satisfazemos no processo de trabalho, sobre como mudar de irritação para interesse, de "Estou certo, mas você não está" para "por que isso acontece com você?" Será útil para todos que interagem com outras pessoas, isto é, geralmente para todos!
É engraçado que no dia seguinte a técnica sobre a qual Alexander falou tenha sido útil: antes de tirar conclusões e ficar chateada, você pode dizer diretamente sobre suas expectativas e perguntar por que a pessoa com quem você está falando ou pensa de maneira diferente. Pode acontecer que não haja nenhum problema e você tenha uma visão diferente.
Problemas não tecnológicos de produtos “inteligentes” - Andrey Servant ( apresentação )
O relatório foi dedicado ao fato de que não basta apresentar algo inovador, seja inteligência artificial ou veículos não tripulados - é importante preparar as pessoas para o fato de que as inovações não são perigosas e beneficiarão a sociedade.
Sebrant identifica três pontos principais sobre como preparar as pessoas para a inovação:
- você não precisa falar sobre o produto da mesma maneira que falaria com seu colega desenvolvedor - uma pessoa que não está imersa no tópico, isso não está claro,
- nas comunicações com os consumidores, a ênfase não deve ser colocada na racionalidade, mas nas emoções, para tornar o produto uma fonte de emoções para o consumidor,
- o produto do usuário final deve ser mágico, não um instrumento.
Veículos não tripulados são um exemplo dessa inovação. Agora é fácil encontrar na Internet quantos medos esses carros causam - eles são inseguros, movem pessoas, sofrem acidentes, não são feitos para estradas russas e assim por diante.
Sebrant diz que esses carros se tornaram "nova eletricidade" - eles também tinham medo da eletricidade, e agora não podemos imaginar nossa vida sem uma lâmpada comum.
Ele falou sobre a experiência de gerenciar emoções usando o exemplo de um táxi não tripulado desenvolvido pela Yandex. Os primeiros testes nas estradas foram realizados com um motorista dentro, que apenas ficou sentado e não fez nada - o carro dirigiu sozinho. Essa demonstração não impressionou os espectadores despreparados. A presença de uma pessoa dentro do carro sugere que é ele quem controla o carro.
Os seguintes testes foram realizados em um campo de treinamento fechado, onde foi possível dar partida no carro sem motorista. A oportunidade de experimentá-lo foi oferecida às mesmas pessoas comuns que foram espectadores da última vez. É difícil descrever o efeito de um carro em movimento com o banco do motorista vazio. As pessoas olhavam para o mesmo carro de uma maneira completamente nova - o próprio efeito da “mágica, não uma ferramenta” foi criado.
Três baratas a caminho de um grande futuro - Maxim Dorofeev
( apresentação )
O relatório foi significativamente diferente de outros relatórios da seção Futuro: não falou sobre o futuro, mas sobre o que enfrentamos todos os dias - por que nos cansamos, por que não temos tempo para fazer algo, por que não estamos crescendo etc. As principais causas desses problemas cotidianos que Dorofeev chama de "três baratas".
- A primeira barata: "Isso não é urgente, e depois". O erro de muitas pessoas - há tarefas urgentes, não há tarefas urgentes. A sequência de sua implementação geralmente é determinada apenas por um indicador de urgência, mas não de importância - isso está errado.
- A segunda barata: "Agora vou descobrir com um pouco". Você chega de manhã e começa a realizar tarefas pouco a pouco, cada uma das quais leva cerca de 10 a 15 minutos e, como resultado, existem muitas delas e não resta tempo para algo realmente importante.
- Terceira barata: "E se houver algo urgente lá?" Certamente a situação é familiar para todos - você trabalha e, ao mesmo tempo, alguém lhe envia uma carta ou mensagem no Skype com algum tipo de tarefa "importante" - você fica distraído, tudo foi feito e nada foi feito. Há também um efeito de falsa importância - no momento em que a tarefa parece mais importante para você do que é, você a envia para alguém mais, para essa pessoa ela começa a parecer ainda mais importante. No final da cadeia, um desenvolvedor assustado começa em pânico para rapidamente e rapidamente executar essa tarefa inicialmente sem importância.
Dorofeev diz que todos precisamos evitar encontrar essas baratas no trabalho e na vida em geral.
Uma idéia importante no relatório também é a divisão de tarefas em "vermelho" e "verde". Tarefas "vermelhas" são tarefas urgentes, cuja falha será seguida por uma punição inevitável. Tarefas “ecológicas” são tarefas interessantes e importantes para o desenvolvimento, que geralmente são adiadas devido à rotatividade. É melhor, tendo as tarefas “vermelhas” e “verdes”, fazer as duas coisas pelo menos de alguma maneira, mas obter um resultado mais útil do que fazer apenas a tarefa “vermelha”, mas boa.
Em geral, o relatório continha um grande número de conselhos práticos para todos os dias, arquivados com muita acessibilidade e humor. Tais relatórios precisam ser observados.
O carro do futuro. Analisamos Tesla em busca de soluções de engenharia e idéias inovadoras - Igor Antarov
É quase impossível recontar o relatório em formato de texto - a apresentação contém um grande número de materiais, uma história sobre Mask, sobre o que ele faz, exceto Tesla, etc. Vamos analisar os fatos mais interessantes:
- Os carros elétricos podem dominar o mundo por 15 anos,
- A economia será econômica e ecológica - graças aos veículos elétricos,
- , , , ,
- « » : c , , , .
:
- .
- , .
- , 10
- , – .
, ( ), , , , ( ).
. , – , .
– Continuous Integration. , IT-. , ?
30 . 10 . 2 —
, CodeFest « ». , .
, : – , ( , ), – - , , – , .
. , , .
:
:
- -
- -
- driverless ( )
- -
- Deep Space Comms ( )
- ( )
- Drifting Cities: ,
- /
- :
- : ( , , )
- VR-, ( , )
- Full-Time ( , , )
- VR-
- Time-travel Experience ( « » « », , , )
- ( HR – )
:
, , , , .