JavaRush /Blogue Java /Random-PT /Java. Plano de ação

Java. Plano de ação

Publicado no grupo Random-PT
Java.  Plano de Ação - 1

Contente:

  1. Seção Zero - Java Core
  2. Ferramentas
  3. API JDK
  4. O que há de novo no Java 8
  5. SQL, bancos de dados, JDBC
  6. Estruturas
  7. Bibliotecas e frameworks para testes
  8. Bibliotecas de serviço
  9. Clientes de API
  10. Padrões de design
  11. Conhecimento adicional
O que um potencial Java Junior deve saber para conseguir um primeiro emprego ou pelo menos se candidatar a uma vaga de Trainee em uma boa empresa? Quais ferramentas ajudarão um programador Java a alcançar o próximo nível? Quais tecnologias estudar e quais deixar para depois? Não existe uma resposta padrão para essas perguntas, assim como não existe um plano de ação único que sirva para absolutamente todos. Algumas empresas buscam o desenvolvimento, introduzindo constantemente novas tecnologias e testando os recursos de novas versões da linguagem, enquanto outras se apegam obstinadamente às antigas. Existem também opções “intermediárias” e, talvez, existam mais delas. No entanto, elaboramos um roteiro ou roteiro para um aspirante a desenvolvedor Java. Num esforço para torná-lo o mais simples possível, indicamos apenas as tecnologias e tópicos necessários para a grande maioria dos “javistes”. É importante lembrar que nem tudo precisa ser estudado detalhadamente (alguns dos itens acima só podem ser dominados trabalhando em equipe), mas não custa nada ter um entendimento geral deles.

0. Seção Zero - Java Core

Inserimos a seção zero no artigo para o caso de uma pessoa que está apenas planejando aprender Java e não sabe por onde começar entrar aqui. Java Core é algo que até um iniciante deve conhecer muito bem. Ou seja, saber coisas básicas, guiar-se pelo que a linguagem oferece para resolver um determinado problema, e em casos simples poder aplicar esse conhecimento. Você pode praticar Java Core no JavaRush e, se ainda não fez isso, convidamos você a fazer o curso ! Bem, para todos os outros, vamos lembrá-los dos principais marcos do Java Core:
  • Construções, operadores e tipos de dados Java básicos
  • OOP e sua implementação em Java
  • Exceções
  • Coleções Java
  • Genéricos
  • Multithreading

1. Ferramentas

IDE ou ambiente de desenvolvimento integrado

A principal ferramenta de um desenvolvedor moderno é um IDE. Existem muitos deles no mercado hoje, mas no desenvolvimento profissional de Java geralmente existem apenas dois nomes. Este é o Eclipse gratuito , baseado em plug-ins , que manteve a palma da mão por muitos anos consecutivos, e o IntelliJ IDEA , que vem substituindo ativamente o Eclipse nos últimos anos, e isso apesar do fato de que uma assinatura da versão Ultimate necessária para profissionais custa dinheiro. Lembramos que no curso JavaRush utilizamos a edição gratuita do Community IntelliJ IDEA, que possui certas limitações funcionais em relação ao Ultimate. A frase “Eu conheço o IDE” significa que você está familiarizado com os recursos básicos do ambiente de desenvolvimento, sabe como compilar, executar, depurar e testar arquivos e refatorar código. Dominar as teclas de atalho será uma boa ajuda para acelerar o seu trabalho. Não seja preguiçoso, passe algumas horas aprendendo sobre recursos do IDE que você não conhecia e comece a usá-los na prática. E não negligencie a depuração, é uma habilidade muito útil. Todas essas ações ajudarão a melhorar significativamente a velocidade e a qualidade do seu trabalho.

Ferramentas para montagem automática

Hoje, os projetos Java usam com mais frequência ferramentas como Maven e Gradle. Não é necessário estudá-los a fundo, mas será útil entender como eles diferem entre si, em que se baseiam, quais são as tarefas (no Gradle) e as fases com objetivos no Maven. Será suficiente ler sobre os sistemas e implantar alguns pequenos projetos neles. Isso é bastante simples de fazer e você entenderá os detalhes em condições reais de trabalho.

Sistemas de controle de versão e serviços de hospedagem online

Um sistema de controle de versão é o que ajuda os programadores a trabalhar em equipe em um projeto comum sem “quebrá-lo”, sincronizar trechos diferentes de código feitos por pessoas diferentes, reverter atualizações malsucedidas e adicionar novas. Os mais comuns são dois sistemas de controle de versão. Um deles é distribuído e se chama Git, o segundo é centralizado, chamado SVN (também conhecido como Subversion). Hoje, o Git é o padrão de fato. Trabalhar com este sistema é mais conveniente e fácil, pois é suportado por todos os IDEs (assim como pelo SVN). Trabalhar com Git pode ser experimentado de forma rápida e fácil, felizmente há muita informação sobre este assunto na Internet. Por exemplo, o livro interativo GitHowTo, disponível em russo (é lido muito rapidamente). É muito importante para um desenvolvedor iniciante dominar os serviços de hospedagem online para sistemas de controle de versão. Na maioria das vezes eles são baseados em Git e são chamados de plataformas Git (embora alguns deles possam funcionar com diferentes sistemas de controle de versão). O mais popular deles é o GitHub. BitBucket e GitLab também são bastante comuns. Esses sistemas ajudam você a armazenar e recuperar código, e também a fazer o que o Git pode fazer, só que não por meio da linha de comando, mas por meio da interface. O GitHub também permite verificar códigos e oferecer soluções para problemas diretamente no site. Lá você também pode encontrar o projeto de código aberto de outra pessoa e tentar oferecer suas próprias soluções para melhorá-lo. Essencialmente, o GitHub é uma espécie de rede social para desenvolvedores. Então, se ainda não o fez, crie uma conta no GitHub e hospede seus projetos lá. Leia também sobre GitLab e BitBucket, e se tiver tempo, você pode experimentá-los, eles têm versões gratuitas. A propósito, todas essas plataformas estão totalmente integradas aos IDEs modernos. Java.  Plano de Ação - 2

2. API JDK

Esta seção destaca as APIs JDK que um desenvolvedor Java moderno precisa conhecer com bastante confiança. Não faria mal nenhum para um programador examinar o código-fonte dessas bibliotecas de vez em quando, navegar por elas e entender quando elas precisam ser usadas e por quê. Efeito colateral: se você for bem versado nessas APIs, provavelmente será muito mais fácil para você acertar sua entrevista.

Estrutura de coleções Java

O Java Collection Framework é uma das APIs mais importantes da linguagem Java e todo desenvolvedor deve conhecê-lo. Representa uma hierarquia de interfaces e implementações de estruturas de dados padrão em Java, como lista, lista vinculada, conjunto, pilha, fila, tabela hash e muitas outras. O desenvolvedor deve ter um bom conhecimento das classes ArrayList, HashMap, HashSet, LinkedHashSet, TreeSet e outras, e conhecer suas propriedades. Em particular, você precisa entender os custos de tempo e memória de uma determinada coleção para operações padrão (indexação, pesquisa, inserção, exclusão) e, com base nisso, aplicá-los corretamente em seus projetos. As coleções em Java são muito bem implementadas, mas se houver necessidade, o desenvolvedor pode oferecer sua própria implementação. Um programador bem versado em coleções pode estender ou redefinir a lógica em classes já escritas ou implementar tudo do zero.

API de simultaneidade Java

Java foi originalmente projetado para suportar programação paralela e, desde a versão 5.0, a linguagem inclui APIs de alto nível para threads paralelos. Portanto, um desenvolvedor Java competente simplesmente deve ter um bom entendimento de multithreading e das principais APIs dos pacotes java.util.concurrent.* . No mínimo, você precisa saber e entender claramente o que são Thread, Runnable, bloqueio de objeto e sincronização. Certifique-se de compreender os conceitos de impasse, livelock, condições de corrida e o que fazer com tudo isso. Para se sentir confiante, aprenda sincronizadores em java.util.concurrent.*, como Semaphore, CyclicBarrier, CountDownLatch, Phaser, Exchanger<V>, CompleteableFuture e assim por diante. E também as interfaces Callable e Future.

API de E/S Java

Os desenvolvedores novatos geralmente ignoram o estudo aprofundado de Java I/O e Java Non-blocking I/O . Mas em vão: essas APIs Java facilitam o trabalho com threads e são usadas regularmente em aplicações reais. Especialmente classes como File, InputStream, OutputStream, Reader e Writer do pacote java.io, que é o núcleo da API Java IO. Java E/S sem bloqueio (java.nio) é uma coleção de interfaces de programação de aplicativos projetadas para implementar operações de E/S de alto desempenho. Estes incluem, em particular, ByteBuffer, FileChannel e Selector, entre outros. Dê-se ao trabalho de entender essas APIs, você não se arrependerá.

Classe de dispositivo Objeto

Depois de entender a superclasse Object, de certa forma você se torna um “falante nativo de Java”, muito mais consciente da estrutura OOP e de muitos processos. A classe java.lang.Object está no topo da hierarquia de classes. Além de uma melhor compreensão do que está acontecendo, conhecer os métodos da classe tornará as entrevistas muito mais fáceis – os entrevistadores adoram testar candidatos com a classe Object e seus objetos.

3. Novos recursos em Java 8

Apesar de o tempo ter passado desde o lançamento do Java 8 e outras atualizações numeradas já terem aparecido, foi a oitava versão que se tornou icônica. Introduziu inovações importantes que simplificam e, em certo sentido, mudam as abordagens de programação em Java. Você deve entender como usar expressões lambda, bem como a API Stream no Java 8 e as novas APIs de data e hora.

4. SQL, bancos de dados, JDBC

Poucos desenvolvedores Java não encontram consultas SQL e bancos de dados em seu trabalho. Portanto, é importante entender o que são bancos de dados SQL e relacionais, como funcionam e ser capaz de escrever consultas simples para unir duas tabelas. Para treinamento, você pode tentar trabalhar com um dos SGBDs, por exemplo, PostgreSQL ou MySQL . Também seria bom obter conhecimento básico de bancos de dados não relacionais, abordagens noSQL e uma familiaridade superficial com o SGBD MongoDB orientado a documentos . Para trabalhar com bancos de dados em Java puro, você pode usar o padrão JDBC junto com a API de mesmo nome. Ele é implementado como o pacote java.sql, incluído no JDK. Hoje ele raramente é usado em sua forma pura, mas muitas vezes pode ser encontrado em aplicativos de suporte mais antigos, e ferramentas mais modernas e geralmente aceitas são frequentemente baseadas neste padrão.

5. Estruturas

Entre os requisitos para um Desenvolvedor Java Júnior hoje é possível encontrar cada vez mais “conhecimento de Spring, Hibernate, Spring Boot”. Aprender essas tecnologias por conta própria é uma tarefa muito difícil, mas mesmo assim é possível, principalmente em um nível superficial. Uma compreensão mais profunda surgirá à medida que você trabalha. Então.

Estrutura Primavera

Quase todos os aplicativos desenvolvidos em Java atualmente usam o Spring Framework. Esta estrutura poderosa fornece um sistema de coordenadas específico, a espinha dorsal com a qual o aplicativo é construído. Um aplicativo Spring é muito mais fácil de testar e manter. E tudo graças à injeção de dependência.

Hibernar

Outra estrutura mais importante para desenvolvedores Java é o Hibernate. Ele implementa a especificação JPA (Java Persistence API), que resolve problemas de mapeamento objeto-relacional (ORM). A maioria dos aplicativos Java interage com bancos de dados e, se estamos falando de bancos de dados relacionais, trabalhar com eles sem o Hibernate é inconveniente. Esta estrutura fornece aos desenvolvedores uma série de recursos importantes, em particular, cache e transações prontas para uso, o que por sua vez lhes permite concentrar seus esforços no desenvolvimento da lógica do aplicativo e libera o programador de muitas tarefas de baixo nível ao trabalhar com bancos de dados relacionais. . Isso melhora significativamente a produtividade do desenvolvedor.

Primavera MVC

Este framework garante o desenvolvimento de aplicações de acordo com o padrão Model - View - Controller, utilizando componentes prontos e fracamente acoplados. Estude esse padrão (os padrões de design são discutidos abaixo) e a lógica do Spring MVC. Na prática, é usado com bastante frequência.

Bota Primavera

Com a habilidade certa, o Spring facilita a criação de um aplicativo Java. Por sua vez, o Spring Boot facilita a criação de um aplicativo Java baseado no Spring. Spring Boot permite que você crie facilmente aplicativos Enterprise Spring completos que podem ser iniciados com esforço mínimo: a configuração automática elimina a maioria dos problemas associados à configuração de aplicativos Spring.

6. Bibliotecas e frameworks para testes

Alguns futuros desenvolvedores têm certeza de que testar o código não é preocupação deles, mas de pessoas especiais chamadas testadores. Na prática, não é bem assim. O teste, especialmente o teste unitário (geralmente chamado de teste unitário), é uma habilidade muito importante para todo programador. Além disso, os recém-chegados que acabaram de iniciar suas funções geralmente têm a tarefa de cobrir o código de alguém com testes unitários. Portanto, é altamente recomendável aprender a biblioteca JUnit e desenvolver o hábito de escrever testes unitários para o seu código. Confira também o framework Mockito, que pode ser usado com JUnit para criar classes de dependência simuladas.

7. Bibliotecas de serviço

Java possui um grande número de bibliotecas de serviços que ajudam a resolver quase todos os problemas enfrentados por um desenvolvedor. É impossível estudar todos eles e não há nenhum sentido particular em fazê-lo. Mas navegar por eles é uma ótima ideia. Aqui destacaremos apenas alguns daqueles que são frequentemente utilizados na prática.

Bibliotecas para registro

Em primeiro lugar, podemos citar log4j e Slf4j . Essas bibliotecas são projetadas para ocultar a implementação de operações de registro de rotina que ocorrem enquanto aplicativos Java estão em execução.

Bibliotecas para JSON

JSON, o formato para transferência de informações do cliente para o servidor, é o formato mais usado atualmente. Existem diversas bibliotecas boas que funcionam com JSON, sendo as mais populares Jackson e google-gson .

Google Goiaba

Guava é um projeto com bibliotecas Java básicas desenvolvidas pelo Google. Aqui você encontra novos tipos de coleções (multimap, multiset e outras), coleções imutáveis, gráficos, funcionais, utilitários para paralelismo, I/O, hashing, processamento de strings e muito mais.

Apache Commons

Commons é um projeto enorme que contém muitos utilitários Java úteis para diversos fins. Assim, as bibliotecas Apache Commons são a base do Tomcat, do Hibernate e de vários outros grandes projetos. Existem muitas bibliotecas no Apache Commons. Vamos mencionar o Commons IO, que simplifica as operações de E/S, o Commons CSV para trabalhar com arquivos csv, o Commons Math para trabalhar com operações e cálculos matemáticos e estatísticos complexos, o Commons CLI para analisar argumentos de linha de comando.

8. Clientes API

REST é um estilo de nomenclatura para terminais para acessar recursos na rede em um formato legível por humanos. É melhor para um desenvolvedor Java moderno entender a ideologia REST e também conhecer Spring RestTemplate , uma biblioteca muito útil para criar um cliente REST.

9. Padrões de projeto

Se um desenvolvedor novato estiver familiarizado com os padrões de design, ou seja, as regras de boas maneiras na programação Java, e ainda souber como aplicá-las na prática, ele aumentará instantaneamente seu valor no mercado de trabalho. Os iniciantes geralmente subestimam os padrões porque raramente criam aplicativos complexos enquanto estudam. Porém, se os padrões não forem aplicados a projetos sérios, manter e adaptar o código torna-se uma tarefa extremamente difícil. Então não tenha preguiça, estude os padrões e aplique-os em seus projetos pessoais. Seu futuro empregador ficará muito grato por isso.

10. Conhecimento adicional

Algoritmos e estruturas de dados

“Algoritmos e Estruturas de Dados” é o nome de um curso completo ministrado em universidades técnicas. Revela a base teórica para a construção de diversas estruturas de dados. E nas aulas práticas aprendem a trabalhar com eles – colocando e recuperando dados, pesquisando e classificando-os. Na verdade, “Algoritmos” nesta frase significa exatamente classificação e pesquisa. Ao longo dos anos, os cientistas da computação desenvolveram muitos algoritmos. Alguns deles são de natureza educacional, pois apesar da relativa facilidade de implementação, não são muito eficazes na operação. Por exemplo, eles funcionam lentamente, o que pode ser notado em grandes conjuntos de dados. Ou eles consomem muita memória. Outros algoritmos provaram ser muito eficazes. Tanto que foram incluídos nas bibliotecas oficiais da maioria das linguagens de programação. Conseqüentemente, hoje não é necessário desenvolver tais algoritmos de forma independente. Basta saber onde eles estão. Mesmo assim, a maioria dos desenvolvedores experientes recomenda que os iniciantes passem pela “escola de algoritmos” – implementando-os por conta própria enquanto estudam. Isso desenvolve o pensamento do programador. Também ajuda nas entrevistas; eles realmente gostam de perguntar problemas de classificação e pesquisa.

Servlets

Um servlet é uma maneira de lidar com uma solicitação do usuário. Hoje eles não são usados ​​em todos os lugares e nem sempre, mas será útil ter uma ideia sobre eles.

HTML e CSS

Todos devem saber os fundamentos do layout. Esse conhecimento é muito fácil de obter e, se ainda não o fez, dedique alguns dias a esta lição. Ao mesmo tempo, você fará uma pausa em tópicos mais complexos.

XML

A Extensible Markup Language costumava ser onipresente no desenvolvimento Java. Ele está sendo gradualmente substituído pelo JSON, mas o XML ainda é usado hoje. Não é difícil de aprender, então você pode dar um pouco de atenção a esse idioma.

JavaScript

Pesquisas com desenvolvedores mostram que mesmo aqueles que não têm absolutamente nada a ver com desenvolvimento front-end escrevem scripts em JavaScript de vez em quando. Conhecer o básico desta linguagem pode ser considerado uma regra de bons costumes, então não tenha preguiça, leia sobre o assunto e crie uma dezena ou dois scripts. Não será redundante.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION