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
-
Reduzir a infraestrutura do GeoSampa;
- Reduzir o número de requests ao carregar o site (Novo LayerSwitcher);
- Exigir que todo desenvolvimento novo não dependa do openlayers;
- Migrar para linux;
-
- Trocar backend para python ou nodejs;
- Trocar solução de proxy para configuração de cors ou ajax reverso com nginx;
- Migrar as camadas de forma progressiva para vector tiles;
c.santos@consultoriasigma.com.br
geo-sampa
By Claudio Santos
geo-sampa
- 682