Desenvolvendo para a Web

Tempo passa, o tempo voa e a Web continua numa boa!

24 de março de 2019

Bacharel em Ciência da Computação (UFBA)

Programadora desde 2005

Engenheira de Software

Projetos que tem o objetivo de incentivar a participação de mulheres da área de tecnologia da informação.

Califórnia/EUA

 1970

~

ARPANET - base da Internet

Ajudar o compartilhamento de informações para objetivos militares nos EUA

 1990

WWW - World Wide Web

HTTP -  HyperText Transfer Protocol: Protocolo que permite pedidos e respostas entre cliente e servidor

Tim Berners-Lee

 1991

HTML - HyperText Markup Language

  • Coluna única
  • Apenas texto e links
  • O visitante era apenas um leitor, sem interação

 1995

Tabelas

  • Simula a organização de um jornal
  • Mostra imagens e textos
  • Múltiplas colunas
  • Quadros
  • Difícil de manter

 1996

Javascript

  • Interações
  • Janelas popup
  • Contador de visitas

~

 1996

FlaSH

  • Animações
  • Sons
  • Incorporação de vídeos
  • Sites dinâmicos
  • Tempo para carregar alto
  • Proprietário
  • 2007: Apple decide não dar suporte ao Flash

 1996

CSS - Cascading Style Sheets

  • Separa o conteúdo da apresentação

 2004

Web 2.0? - "Web enquanto plataforma"

  • Termo foi criado por Tim O´Reilly
  • Ambiente mais dinâmico, com maior interatividade
  • Usuário mais participativo
  • Wikis, redes sociais: aplicativos que aproveitam os efeitos de rede

 2007

Mobile

  • Diferentes telas
  • Muita utilização de dados para a visualização de páginas
  • Utilização de Grid layout
  • Versões do site específicas para mobile

 2009

Node.js

  • Programação orientada a evento
  • Javascript no lado do servidor

 2010

Design responsivo

  • Diferentes layout para o mesmo conteúdo

 2010

AngularJS

  • Framework JS para interface de usuário
  • Mantido pelo Google

 2011

Bootstrap

  • Framework Web para desenvolvimento de componentes de interface e front-end
  • Código aberto
  • Ajuda o desenvolvimento de um site responsivo

 2013

ReactJS

  • Framework JS para interface de usuário
  • Mantido pelo Facebook

Ruby

  • Linguagem criada por Yukihiro “Matz” Matsumoto em 1995
  • União de várias linguagens (Perl, Smalltalk, Eiffel, Python, Ada e Lisp) para formar uma nova linguagem que equilibra a programação funcional com a programação imperativa.
  • Tudo é objeto

Rails

  • Criado em 2004
  • Framework que ajudou a popularizar a linguagem Ruby
  • Também conhecido como Ruby on Rails
  • Coleção de bibliotecas escritas em Ruby
  • Várias formas de fazer a mesma coisa
  • Fácil de usar
  • Faz o esperado
  • DRY: don't repeat yourself

Felicidade do programador

  • Facilita a vida de iniciantes
  • Aumenta a produtividade

Convenção sobre configuração

has_many :people
  • A melhor ferramenta para o trabalho
  • Oferece um conjunto de ferramentas que serve para muitos casos
  • Permite que o desenvolvedor personalize

Estilo Menu Omakase

"I'll leave it up to you"

  • Não é um MVC puro
  • Ideologicamente flexível
  • Poliamor

Não é limitado a um paradigma

  • Simples

Incentiva códigos bonitos

class Product < ActiveRecord::Base
  belongs_to :store
  has_many :buyers, class_name: 'Person'
  validates_presence_of :name
end
class CreateProducts < ActiveRecord::Migration
  def change
    create_table :products do |t|
      t.string :name
      t.text :description
 
      t.timestamps
    end
  end
end
if people.include? person
  …
if person.in? people
  • Acredita que o programador sabe o que está fazendo
  • Monkey patching
  • Liberdade X Segurança

Fornece ferramentas poderosas

irb(main):001:0> puts "Hello".downcase
hello
irb(main):002:0> class String
irb(main):003:1> def downcase
irb(main):004:2> "Olá"
irb(main):005:2> end
irb(main):006:1> end
=> :downcase
irb(main):007:0> puts "Hello".downcase
Olá
  • Fornece ferramentas de backend e frontend
  • Permite entregar um sistema completo

Sistema integrado

  • O framework precisa evoluir
  • As atualizações da versão podem ser traumáticas

Progresso sobre estabilidade

  • Diversidade de pensamentos e pessoas
  • Mais de 3500 contribuidores

Comunidade grande

  • Ruby em 30 minutos:
    • https://ruby.github.io/TryRuby/
  • Ruby warrior:
    • https://www.bloc.io/ruby-warrior/#/
  • Documentação oficial:
    • https://guides.rubyonrails.org/getting_started.html
  • Rails Girls:
    • http://railsgirls.com/

Para aprender

Obrigada!! :)

danielafeitosa@gmail.com

Desenvolvendo para a Web

By danielafeitosa

Desenvolvendo para a Web

  • 107