Reflexões sobre Arquitetura de Software

Olá,

       Já faz um tempo que não apareço por aqui não é mesmo? A explicação é bem simples: não tinha assunto. Fiquei envolvido em vários projetos de software aqui em SP, por isso acabei dedicando muito tempo em aprender novos conceitos. Agora que me sinto mais seguro, em breve trago estes novos assuntos para o blog, além de relatos interessantes do que tenho visto no mercado aqui do sudeste do pais.
       Aproveitando que estou matando a saudade de escrever, hoje trago um vídeo até bem antigo, mas de uma das minhas maiores influencias de carreira,  Martin Fowler! Super recomendo para todos que acreditam na arquitetura de software como vital para o sucesso de um bom projeto de desenvolvimento. 

 

    Infelizmente diversas empresas mal sabem o que um arquiteto de software faz, acham que um arquiteto é aquele que conhece bem apenas o sistema da empresa, ou simplesmente promovem pessoas para ocupar cadeiras vazias, nesse último caso até mais comum.
    Ficar anos dentro de uma mesma empresa as vezes de traz conhecimento e também reconhecimento, mas sem o cuidado devido, também te cega para as mudanças do mercado. Por isso sempre carrego um mantra:  “Sejamos o profissional do mercado e não da empresa”.
    Ser arquiteto é uma opção na carreira, que exige muito estudo e discernimento. 

Think it!

Abrcs.
Natanael Fonseca

Impulsionando a Segurança de sua Aplicação Angular 2

   Angular é um dos Frameworks mais populares para desenvolvimento de aplicações SPA, sendo Google então, faz com que sua adoção seja realmente maior do que outros FwKs,  há um monte de informações disponíveis sobre a construção de aplicações, melhorando o desempenho e vários outros tópicos. Mas você sabe como tornar suas aplicações Angulares seguras? Que tipo de recursos de segurança o Angular oferece e quais passos adicionais você pode tomar para realmente aumentar a segurança? Neste vídeo, você aprenderá como a mudança de paradigma de aplicativos do lado do servidor para aplicativos cliente afeta a segurança. Vamos discutir ameaças baseadas em script contra aplicações Angulares, e as defesas concretas Angular oferece para prevenir ou minimizar esses ataques. Além disso, vamos cavar em vários problemas de gerenciamento de sessão em combinação com Angular. Nós investigamos tópicos como Cross-Site Request Forgery (CSRF), Cookies flags, cabeçalhos de autorização e tokens JWT. 

TypeScript

Olá Pessoal,

    
  Já expliquei em outro post o que significa transpilar e o porque esta é uma técnica interessantíssima quando estamos trabalhando com JavaScript, e para quem vai trabalhar com o framework Angular 2, recomendo e muito a utilização do TypeScript nesse sentido.
  TypeScript  nada mais é do que um superset da linguagem JavaScript, basicamente é uma linguagem que fornece a tipagem que falta no JS, além é claro de uma série de outras vantagens. E falando um pouco sobre a minha experiencia nesse campo, confesso que no começo dos meus estudos fiquei me perguntando o porque escrever em uma linguagem que depois de compilada vira JS, parece meio estranho de primeira vista não é não? Fato que passado alguns meses logo se justificou, dado as vantagens em tempo de compilação que você tem de cara, e se você utilizar um Editor ou IDE que suporta TypeScript em poucas horas você vai ver entender o porque programadores C# e Java se dão tão bem com essa linguagem, afinal existe uma semelhança muito grande.
   A linguagem é Open-Source e foi criada pela Microsoft, possui um site excelente e cheio de recursos para quem se interessar em aprender, logo abaixo:
Site Oficial:  www.typescriptlang.org

     Pra quem trabalha com JavaScript, sabe que pelo menos no ES5, versão mais utilizada atualmente e suportada pelos browsers, não possui suporte a classes e interfaces, logo o que vemos na verdade são técnicas que alguns programadores JavaScript utilizam para representam essas estruturas, o que funciona, mas causa bastante estranhismo principalmente de quem vem de uma linguagem orientada a objetos na qual temos as palavras reservadas class, interface, enum e etc, por exemplo, Java e C#. Dito isso então de cara então temos as principais vantagens:

  • TypeScript é Baseada no ES6;
  • Tipagem Estática Opcional;
  • Possui suporte a O.O;
  • Encapsulamento de Código por meio de Classes e Interfaces;
  • Já existem basantes arquivos de tipos definidos em TypeScript;
  • Suporte a Enum.

    Indo para a prática, vejamos o exemplo abaixo, nele estamos criando uma classe chamada Car, que possui um construtor e um método, perceba que não chega a ser nem de perto dificil de entender por um programador Java ou C#, esse código após compilado gerará o código visto a direita, ou seja, um código JavaScript.

Do lado esquerdo o código TypeScript e do lado direito o código gerado em JavaScript

   Irei trazer mais exemplos práticos no futuro, espero que gostem!

Abrcs.
Natanael Fonseca

Visual Studio Code

Ola Pessoal,
    Eis que depois um tempo resolvo falar sobre um produto Microsoft, quem diria hein?  A verdade é que brincadeiras a parte, a MS nos últimos anos tem feito uma grande revolução nas suas estratégias e também nos seus produtos, principalmente naqueles relacionados a desenvolvimento de software. 
    Tenho me dedicado nos últimos meses a estudar Angular 2 e TypeScript e vasculhando a gama de Editores e IDEs que podemos utilizar para trabalhar com essas tecnologias, acabei encontrando o VSCODE, que no primeiro momento assusta por ser tão leve, mas depois surpreende por ter tantos recursos que chega a quase perder o título de “Editor de Texto”.
   Ele pode ser baixado no site https://code.visualstudio.com/  e sua instalação segue o padrão windows de viver, muita moleza e next next next! Mas antes que alguém fale que eu estou apenas citando o windows, saibam que o VSCODE roda no linux, e dica-se de passagem, MUITO BEM!
      Sua interface gráfica é simples e creio que em pouco tempo o programador consegue se habituar e já sair codando rapidamente, como pode ser visto na imagem abaixo, existe o suporte a cores para as mais diversas linguagens e principalmente JavaScript, C#.
  
Visual Studio Code
    Mas o grande barato deste editor de texto, na minha humilde opinião, são os plugins que são chamados de extensions. No momento em que escrevo este post existem uma variedade enorme deles e podem ser baixado diretamente na opção “extensions” que fica no canto esquerdo, como também pelo site:  https://marketplace.visualstudio.com/VSCode.  Logo abaixo uma lista dos que eu mais gostei e estou utilizando em meus projetos pessoais:
Minhas Extensions favoritas
    Fica então essa dica, se forem trabalhar com Angular 2, TypeScript vale muito a pena utiliza-lo, um grande abraço a todos.
Att.
Natanael Fonseca

Projeto no GitHub ( Angular 2 DashBoard )

Olá Pessoal,

   Estou criando um projeto open-source que pode ser utilizado em treinamentos para aprender a desenvolver em Angular 2 com TypeScript, NodeJS e no futuro próximo MongoDB. O projeto foi criado por mim mesmo durante o último curso que ministrei no grupo segurador Banco do Brasil e MAPFRE e atualmente está bem no começo, mas pretendo melhora-lo incluindo suporte a autenticação com OpenID e persistência com MongoDB.
    Quem quiser ficar por dentro, basta seguir o repositório no GitHUb:

   https://github.com/natanaelfonseca/angular2-dashboard

Abrcs.
Natanael Fonseca