GeoSampa

Módulo de Análise

Do projeto à linha de código

Claudio Santos

Agenda

  • Primeiro contato com o GeoSampa
  • Bolando uma arquitetura menos intrusiva
  • Ferramentas Parte I
  • Ferramentas Parte II
  • Ferramentas Parte III

Primeiro contato

Primeiras Impressões

  • Arquitetura clássica de projetos javascript;
  • Uso de variáveis globais;
  • Load dinâmico de javascript files; \o/
  • OpenLayer 2;
  • Uso de Proxy para evitar cors;

Bolando a estratégia...

  • Orientação a Objetos com Javascript;
  • First Class Functions;
  • Publish/Subscribe Patterns;
  • underscore template;

Orientação a Objetos

var Painel = function() {

    var titulo = "";

    this.render = function(){....}

    this.initialize = function(){....}

}

 

var PainelDeResultados = function() {....}

PainelDeResultados.prototype = Painel;

PainelDeResultados.render();  \m/

 

First Class Functions (FP)

var Painel = function() {

    var titulo = "";

    this.initialize = function(callback){

        callback(parametros);

    }

}

var PainelDeResultados = function() {....}

PainelDeResultados.prototype = Painel;

PainelDeResultados.initialize(function() {

    //faça operações

});

Publish / Subscribe

var Painel = function() {

    var titulo = "";

    this.render = function(){....} //Como saber qdo ocorreu? 

    this.initialize = function(){....}

}

 

 

 

Publish / Subscribe

var Painel = function() {

    this.render = function(){

        ...

        this.emit("renderizou");

    } 

}

PainelDeResultados.on("renderizou",

    function(){

        // desenhe os registros

    }

);

 

Organizando o código

Boa organização

+

Boa interrogação

Projeto Desktop

Projeto Web

Organizando o código

  • Underscore Template

        var compiled = _.template("hello: <%= name %>");
        compiled({name: 'moe'});
        => "hello: moe"

 

  • Load dinâmico com ajax ou com a lib existente

Ferramentas Parte I

Painel de Resultados, Ferramenta de Desenho e Medições

Ferramentas Parte II

Pesquisas simples, avançada, espacial e agrupada

Ferramentas Parte III

Importar e Exportar

Manutenção e Evolução

Manutenção e Evolução

 

  1. Reduzir a infraestrutura do GeoSampa;

  2. Reduzir o número de requests ao carregar o site (Novo LayerSwitcher);
  3. Exigir que todo desenvolvimento novo não dependa do openlayers;
  4. Migrar para linux;
    1. Trocar backend para python ou nodejs;
    2. Trocar solução de proxy para configuração de cors ou ajax reverso com nginx;
    3. Migrar as camadas de forma progressiva para vector tiles; 

c.santos@consultoriasigma.com.br

geo-sampa

By Claudio Santos