Cassio Greco. Fundador da Conta Simples
|
|
- Sebastião Gentil Conceição
- 6 Há anos
- Visualizações:
Transcrição
1 Cassio Greco Fundador da Conta Simples
2 Porquê usar Go em serviços financeiros
3 Agenda 1. Uma básica introdução sobre Go 2. Porquê e como usamos Go na Conta Simples 3. Resolvendo problemas complexos em Go 4. Conclusão
4 O básico sobre Go
5 O básico sobre Go Procedural, assim como C Possui estruturas normalmente encontradas em OO, i.e. "polimorfismo" (interfaces) Possui ponteiros Fortemente e estaticamente tipado Utiliza garbage collection para livrar memória Compila diretamente em código de máquina compatível com vários SOs. Não precisa de VM Compilação muito rápida Criado para a nova web Opinionated, há uma única maneira de se fazer as coisas Não há exceptions. Erros são retornados pelas funções
6 Porque e como usamos Go na Conta Simples
7 Motivação Estamos criando um banco do zero. Queremos criar um sistema que possa escalar daqui alguns anos Queremos uma linguagem que nasceu pra nova web e que possa se manter moderna nos próximos anos Queremos poder contratar desenvolvedores prontos para trabalharem ou que possam aprender e se adaptar rapidamente Queremos criar um sistema que seja performante Queremos escolher uma linguagem que nos permita ser produtivo Queremos uma linguagem que nos permita aproveitar as melhores tecnologias disponíveis hoje para facilitar a nossa vida
8 Motivação Precisamos de uma linguagem que nos permite atender a todos os pontos mencionados Java 8 vs Go
9 Porque escolhemos Go? Go é uma linguagem altamente opinionated. Mais fácil escrever código em Go Mais fácil trabalhar com concurrency em Go Go é mais rígido com tipos (valores nulos, ponteiros, referência, slices, etc.) Go é mais explícito, o que leva a menos bugs A compilação do código é muito rápida, especialmente comparada com Java Requer menos dependências para se criar um micro serviço e testá-lo Não precisa de uma máquina virtual, compila para quase código de máquina É muito fácil criar um micro serviço em Go. Ótimo para sistemas distribuídos
10 Criando um sistema distribuído em Go
11 Client REST API Gateway grpc Client Microservice grpc REST Microservice Client REST grpc grpc...
12 Criando um sistema distribuído em Go Criado para a nova web => facílimo a criação de servidores REST ou de RPC, precisando de poucas linhas e utilizando somente a standard library de Go Biblioteca de networking extensa dentro da biblioteca padrão de Go Criação de endpoints e chamadas de APIs não necessitam de bibliotecas de terceiros
13 Sistemas distribuídos em Go Mas também há suporte para os mais diversos frameworks e bibliotecas para o desenvolvimento web em Go, como grpc, Protocol Buffers, JWT, etc.
14 Sistemas distribuídos em Go Suporte para os mais diversos bancos de dados, queues, etc. Nos permite escolher a melhor ferramenta para a tarefa Microservice Microservice Put SQS Read
15 Sistemas distribuídos em Go O código é compilado para código de máquina compatível com os principais SOs: Linux, Windows e MacOS Não precisa necessariamente de containers, apenas jogue o executável no servidor e rode Não precisa de VM
16 Concorrência
17 Concorrência Altamente performante e concorrente Compilado em código de máquina => nos permite economizar no número de servidores que usamos Concorrência em Go é feita através de Goroutines Use a palavra chave go para executar código de maneira concorrente, e criar uma nova goroutine
18 Concorrência Comunicação entre goroutines através de channels Permite compartilhar dados sem utilizar locks É blocking. A execução do programa irá esperar o envio de uma mensagem antes de continuar
19 Concorrência Altamente performante e concorrente Microservice Enviar notificação Processar pagamento... Atualizar limite
20 Concorrência Altamente performante e concorrente Microservice Enviar relatórios Gerar relatórios Batch
21 Produtividade em Go
22 Produtividade com Go Não precisa de um framework. Talvez alguma biblioteca de terceiro como grpc ou Gorilla (para criação de endpoints). Mas são uma camada fina. Mensagens de erro são facilmente entendidas, apesar de não serem tão claras quanto em Elixir Go é altamente opinionated Há uma forma de se fazer as coisas. Um for loop, um if Testes são extremamente fáceis de escrever e rápidos de rodar Muito fácil de achar e instalar dependências: github.com/repositorio/biblioteca Inclusive dependências em repositórios privados Compilação do código muito rápida
23 Produtividade com Go Bugs são menos comuns e mais facilmente resolvidos Código altamente explícito Mais boilerplate, menos erros
24 Produtividade com Go Go é extremamente produtivo Possível criar um micro serviço de geração de relatórios ou de notificações totalmente testado, com um único desenvolvedor, em 1 semana Extremamente fácil de aprender Comunidade enorme. Fácil de achar a resposta de suas dúvidas no StackOverflow ou em blogs
25 A comunidade e integrações com Go Go Go foi criado para a nova geração da web Possui suporte para os mais diversos frameworks e bibliotecas para o desenvolvimento web i.e. grpc, JWT, SDKs para o AWS e GCE, Drivers para todos os bancos de dados, etc. Comunidade gigante e ativa no nível mundial Ainda não muito grande no Brasil, mas crescente Algumas das principais ferramentas e banco de dados modernos são escritos em Go Node Python Rust Laravel Ruby
26
27 Alguns projetos em Go
28 Resolvendo problemas complexos em Go
29 Quando usar Go? Go é ideal para: Sistemas web em geral Sistemas distribuídos Sistemas que requerem alta performance e/ou uso intenso de CPU Há uma implementação do TensorFlow para Go O serviço com maior QPS, e de maior uso intensivo de CPU no Uber é escrito em Go Background services Sistemas que requerem alta escalabilidade Sistemas financeiros Sistemas que requerem alta concorrência CLIs
30 Quando não usar Go? Protótipos e aplicações bootstrapped Go pode ser usado para micro serviços, mas é overkill para protótipos e scripts básicos Sistemas simples que não requerem muita performance ou garantias de tipos de dado Sistemas que requerem controle maior sobre a memória do sistema, como com Rust ou C Sistemas de telecomunicações. Use Erlang ou Elixir Se precisar de tipos genéricos
31 Quem está usando Go?
32 Go em Serviços Financeiros
33 Características de Serviços Financeiros Serviços financeiros hoje estão marcados por grandes bancos e instituições financeiras que usam tecnologias ultrapassadas Um setor que, até recentemente, não inovava há muito tempo Altamente regulamentado Sistemas que não deveriam cair nunca. É a sua conexão com o mundo Sistemas que atendem a milhões de pessoas e empresas Base de sustentação da economia Não pode falhar. Um zero a mais ou a menos pode causar muitos problemas
34 Go em Serviços Financeiros Go nos permite desafiar o status quo, criando um sistema moderno, altamente performante, seguro e escalável e que ao mesmo tempo nos permite inovar de forma constante. Nos dá acesso às mais novas tecnologias Nos permite criar um sistema que possa ser usado por milhões de pessoas ao mesmo tempo Concorrência em Go é muito simples e segura Temos segurança aritmética e de tipos de dados (i.e. ints de 64 bits) Determinante. Compila para código de máquina e para vários SOs. Nos dá a segurança que o código que roda em nossas máquinas, rodará igual no servidor Nos permite testar nosso código de forma constante e de maneira muito rápida Nos permite ser altamente produtivos, conseguindo trazer a inovação de forma mais rápida para nossos clientes
35 Fintechs
36 Conclusão
37 Conclusão Use Go
38 Conclusão Go é uma ótima linguagem para criar serviços web modernos, seguros e performantes Go permite a utilização do seu sistema com as mais diversas ferramentas Go foi criada para a nova web e é ideal para sistemas distribuídos Go também é uma ótima escolha para serviços financeiros pela segurança de tipos de dados, aritmética, velocidade e determinismo Go é uma linguagem muito produtiva de se trabalhar e fácil de aprender Consegue-se trabalhar com concorrência de uma maneira extremamente fácil com Go: use apenas a palavra-chave go e channels A comunidade e a adoção de Go por parte das empresas já está muito alta, incluindo Fintechs Go não é a linguagem ideal para algumas circunstâncias, como para a criação de protótipos
39 Obrigado
40 Cassio Greco
Desconstruindo Monolitos. Como construir micro serviços Delphi com agilidade e qualidade
Desconstruindo Monolitos Como construir micro serviços Delphi com agilidade e qualidade Hello World!! Felipe Caputo May Fernandes Desenvolvedor sênior e líder técnico na Softplan, atualmente sou responsável
Leia maisLinguagens de Domínio Específico
Linguagens de Domínio Específico Fabio Mascarenhas 2017.1 http://www.dcc.ufrj.br/~fabiom/dsl Por que DSLs? Melhorar a produtividade dos programadores input =~ /\d{3}-\d{3}-\d{4}/ Facilitar a escrita e
Leia maisFacilitando sua vida com
Facilitando sua vida com Larissa Carvalho Estudante de Sistemas para Internet. AGENDA Apresentação Front-End X Back-End, quais as diferenças? Introdução básica sobre HTML e CSS O que são Pré-Processadores
Leia maisTécnico em Informática. Web JavaScript. Profª Ana Paula Mandelli
Técnico em Informática Web JavaScript Profª Ana Paula Mandelli anapaula_mandelli@hotmail.com Para o JavaScript - NetBeans O NetBeans é um ambiente de desenvolvimento integrado (IDE) Java desenvolvido pela
Leia maisUNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA
1 UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA JUAN CASSIUS CARNEIRO PEREIRA PEDRO M. NETO GOOGLE CLOUD PONTA GROSSA 2017 2 JUAN CASSIUS
Leia maisSistemas Distribuídos
Faculdades SENAC Análise e Desenvolvimento de Sistemas 1 de agosto de 2009 Orientação a Objetos Encapsulamento: Parte interna (privada) dos objetos Implementação: métodos Estado: atributos, variáveis,
Leia maisConceitos de Linguagens de Programação - Características. Paavo Soeiro
Conceitos de Linguagens de Programação - Características Paavo Soeiro Motivação Para que possa escolher uma linguagem apropriada ao problema. Melhorar o entendimento da linguagem utilizada. Facilitar o
Leia maisAULA 1 INTRODUÇÃO AO JAVA
AULA 1 INTRODUÇÃO AO JAVA Ao término dessa aula você terá aprendido: História e características do Java Ambientes e plataformas Java O Java é a base para praticamente todos os tipos de aplicações em rede
Leia maisAula 1: Apresentação, Computação Corporativa
Aula 1: Apresentação, Computação Corporativa Diego Passos Universidade Federal Fluminense Técnicas de Projeto e Implementação de Sistemas II Diego Passos (UFF) Apresentação, Computação Corporativa TEPIS
Leia maisEstrutura do Sistema Operacional
Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Aula 04 Estrutura do Sistema Operacional 2 1 Estrutura do Sistema Operacional
Leia maisDesenvolvimento Web II
Desenvolvimento Web II Web Service PHP Rest Frameworks: Slim e Laravel (get/ post / put / delete) Gil Eduardo de Andrade Web Service Introdução: Um web service pode ser definido como uma tecnologia que
Leia maisSistemas Distribuídos Aula 3
Sistemas Distribuídos Aula 3 Aula passada Processos IPC Características Ex. sinais, pipes, sockets Aula de hoje Threads Kernel level User level Escalonamento Motivação: Servidor Web Considere Servidor
Leia maisO que é um sistema distribuído?
Disciplina: Engenharia de Software 4 Bimestre Aula 1: ENGENHARIA DE SOFTWARE DISTRIBUÍDO O que é um sistema distribuído? Segundo Tanenbaum e Steen (2007) um sistema distribuído é uma coleção de computadores
Leia maisIntrodução. PCO / PPO Departamento de Informática Faculdade de Ciências da Universidade de Lisboa
Introdução PCO / PPO Departamento de Informática Faculdade de Ciências da Universidade de Lisboa Resumo Funcionamento da cadeira Intuição sobre programação orientada-a-objectos A linguagem Java: história
Leia maisSistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais
Sistemas Operacionais e Introdução à Programação Módulo 1 Sistemas Operacionais 1 Competências: SOP 1. Compreender as abstrações de um sistema operacional e operar um sistema operacional Unix/Linux como
Leia maisProgramação Estruturada e OO Aula 1.2 Introdução a Paradigmas de Programação. Prof. Bruno Moreno
Programação Estruturada e OO Aula 1.2 Introdução a Paradigmas de Programação Prof. Bruno Moreno bruno.moreno@ifrn.edu.br Motivação Por que existe mais de uma LP? Propósitos diferentes; Avanços tecnológicos;
Leia maisAgenda da Aula. Reuso de Software. Tipos de Reuso. Potenciais Problemas. Vantagens de Reuso. Introdução a Reuso de Software
Reuso de Software Aula 02 Agenda da Aula Introdução a Reuso de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com Introdução a Reuso de Software Abordagens de Reuso
Leia maisConheça o IBM Cloud Functions A plataforma Serverless da IBM
Conheça o A plataforma Serverless da IBM Giuliano D. Morais Cloud Solutions Architect IBM Cloud / DOC ID / Month XX, 2018 / 2018 IBM Corporation Execute código somente sob demanda Sem gerenciamento e operação
Leia maisCurso online de Fundamentos em Android. Plano de Estudo
Curso online de Fundamentos em Android Plano de Estudo Descrição do programa A Certificação Android ensina como usar as ferramentas necessárias para projetar e implantar aplicativos Android para dispositivos
Leia maisMC-102 Aula 01. Instituto de Computação Unicamp
MC-102 Aula 01 Introdução à Programação de Computadores Instituto de Computação Unicamp 2016 Roteiro 1 Por que aprender a programar? 2 Hardware e Software 3 Organização de um ambiente computacional 4 Algoritmos
Leia maisEstrutura dos Sistemas Operacionais. Adão de Melo Neto
Estrutura dos Sistemas Operacionais Adão de Melo Neto 1 Sistema Operacional -São partes do SO -São ferramentas de apoio ao usuário -São formas de acessar as rotinas do kernel O Sistema Operacional é formado
Leia maisOO Engenharia Eletrônica
OO Engenharia Eletrônica - Programação em C/C++ Slides 18B: Introdução à Multithreading. Exemplos: Programação OO Multithreading com pthreads. Aluno: Vagner Vengue Threads Orientadas a Objeto Thread Orientada
Leia maisLinguagens. Programação
Linguagens de Programação Professor: Vítor Souza Grupo: Gustavo Tavares Linicker Harison Rodrigo Barcellos Seminário Criad apelo Google Lançada em novembro de 2007 Código livre em 2009 Primeira versão
Leia maisProcessos ca 3 pítulo
Processos capítulo 3 Introdução: Threads Para executar um programa, o sistema operacional cria um determinado números de processos virtuais. O sistema operacional mantém uma tabela de processos que contém
Leia maisGerando um programa executável a partir de um módulo Python
Gerando um programa executável a partir de um módulo Python Wendel Melo (Departamento de Ciência da Computação UFRJ), Notas de aula de Computação II 15/03/2012 A linguagem de programação Python segue o
Leia maisProcessos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend
Concorrência Nos sistemas Monoprogramáveis somente um programa pode estar em execução por vez, permanecendo o processador dedicado a esta única tarefa. Os recursos como memória, processador e dispositivos
Leia maisDesenvolvimento de Software I
Desenvolvimento de Software I Prof. Arnaldo Martins Hidalgo Junior arnaldo@flash.tv.br http://aulashidalgo.wordpress.com 5 h/a (2 aulas semanais) http://aulashidalgo.wordpress.com 1 Competências Avaliar
Leia maisWeb Presentation Patterns - Controllers
Instituto Superior Técnico 29 de Novembro de 2004 1 2 3 Page Controller Front Controller 4 5 Porquê Usar Web Applications Não necessita instalar software no cliente. Acesso universal fácil. Interface comum
Leia maisRedes de Computadores
Redes de Computadores Camada de Transporte Antonio Alfredo Ferreira Loureiro loureiro@dcc.ufmg.br Departamento de Ciência da Computação Universidade Federal de Minas Gerais UFMG/DCC Redes de Computadores
Leia maisSistemas Distribuídos Aula 10
Sistemas Distribuídos Aula 10 Aula passada Arquitetura P2P Bittorrent Distributed Hash Table (DHT) Aula de hoje Modelo computação distribuída RPC Marshalling e stubs Semântica operacional RMI Computação
Leia maisTecnologias de Distribuição e Integração. Quais as preocupações a ter com um sistema distribuído?
network link: Tecnologias de Distribuição e Integração ISP intranet backbone desktop computer: server: satellite link no interior de uma organização (intranet) clientes externos entre organizações 2 Quais
Leia maisSoftware Básico. Silvio Fernandes Aula 15: Carregamento dinâmico
Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Software Básico Aula 15: Carregamento dinâmico Silvio Fernandes 2009.1 1 Introdução Bibliotecas
Leia maisIntrodução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan
Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada
Leia maisConceitos de Linguagem de Programação - 2
Conceitos de Linguagem de Programação - 2 Arthur Jovita Guerra Thalles Santos Silva Universidade Estadual de Santa Cruz - Ilhéus, BA 1 de novembro de 2011 1 Revisão Natureza das linguagens de Programação
Leia maisLinguagens de Programação. Introdução. Carlos Bazilio
Linguagens de Programação Introdução Carlos Bazilio carlosbazilio@id.uff.br http://www.ic.uff.br/~bazilio/cursos/lp ??? Pascal aux := 0 for i:=1 to 10 do aux := aux + i 10: i = 1 20: if i > 10 goto 60
Leia maisGo Lang A linguagem do Google
Go Lang A linguagem do Google Suelen Goularte Carvalho Instituto de Matemática e Estatística Universidade de São Paulo Junho/2015 Contents 1 Introdução 3 1.1 Por que uma nova linguagem?....................................
Leia mais[versão para impressão] Link original: comp=24763 Conhecendo o PL/SQL
www.devmedia.com.br [versão para impressão] Link original: http://www.devmedia.com.br/articles/viewcomp.asp? comp=24763 Conhecendo o PL/SQL Veja neste artigo o que é PL/SQL, quando utilizá-la e uma breve
Leia maisPython para web com Flask. #PythonAmazonas
Python para web com Flask #PythonAmazonas @marcosptf Be Free. KDE About me @marcosptf pytero -> Grupy-SP phpzero -> PHPSP javero -> NetCat 2/48 Be Free. KDE Flask? O que é Flask? Flask é um microframework
Leia maisSoluções IoT Inovadoras Plataforma Link IoT
Soluções IoT Inovadoras Plataforma Link IoT Tecnologia Beacon Como Funciona A Taggen está desenvolvendo produtos inovadores para auxiliar na criação de soluções voltadas à Internet das Coisas A Internet
Leia maisPopularidade das Linguagens
Popularidade das Linguagens Utilização em projetos de desenvolvimento de software fonte: TIOBE index http://www.tiobe.com 300 million lines of software Code, world-wide, real-time, each day Dados de Fevereiro/2016
Leia maisAula 2: Arquitetura em Três Camadas e APIs
Aula 2: Arquitetura em Três Camadas e APIs Diego Passos Universidade Federal Fluminense Técnicas de Projeto e Implementação de Sistemas II Diego Passos (UFF) Arquitetura em Três Camadas e APIs TEPIS II
Leia maisImplementação de uma biblioteca gráfica multiplataforma utilizando OpenGL e GLFW.
Universidade Federal de Uberlândia - UFU Faculdade de Computação Bacharelado em Sistemas de Informação Implementação de uma biblioteca gráfica multiplataforma utilizando OpenGL e GLFW. William Johnson
Leia maisGrails. Desenvolvimento Java Açucarado
Grails Desenvolvimento Java Açucarado Joás Garcia TADS asaas.com me@joasgarcia.com 08h30min - 12h Coffee 10h - 10h15min Agenda 20/09 - Groovy e Grails 21/09 - Aplicação de exemplo Sorteio de [ 2 ] ebooks
Leia maisInstalação do Oracle VM Virtual Box
1 de 14 09/08/2012 12:56 Instalação do Oracle VM Virtual Box Após fazer download do Oracle VM VirtualBox o próximo passo é a instalação. Seguindo este tutorial passo-a-passo não haverá qualquer dificuldade
Leia mais1.2- Ambientes de Middleware
1.2- Ambientes de Middleware Applications RMI, RPC and events Request reply protocol Middleware layers External data representation Operating System Fonte: [Coulouris] 1 1.2- Ambientes de Middleware Aplicação
Leia maisEstrutura dos Sistemas Operacionais. Adão de Melo Neto
Estrutura dos Sistemas Operacionais Adão de Melo Neto 1 Sistema Operacional - Formas de acessar o KERNEL do SISTEMA OPERACIONAL (SO) - A linguagem de comandos faz parte do SO O Sistema Operacional é formado
Leia maisSistemas Distribuídos
Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com 1. Que são sistemas abertos? É um sistema que oferece serviços de acordo com
Leia maisAULA 03: FUNCIONAMENTO DE UM COMPUTADOR
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 03: FUNCIONAMENTO DE UM COMPUTADOR Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação O QUE É UM COMPUTADOR?
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 6: Monitores, Troca de Mensagens e Deadlock Diego Passos Última Aulas Mecanismos de Exclusão Mútua Operações atômicas. Protocolos de controle de acesso. Spin-locks.
Leia maisBrilliant Solutions for a Safe World
Componente Biométrico - Íris Componentes do lado do servidor (multi-plataforma): Licenças do Matching Server Licenças do MegaMatcher Accelerator Extended (mecanismo de íris) Licenças do MegaMatcher Accelerator
Leia maisNoções de sistemas de computação
Noções de sistemas de computação Software Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons
Leia maisINE 5612 Professor: Frank Siqueira. Leonardo Silva Jean Ercilio Thiago
INE 5612 Professor: Frank Siqueira Alunos: Gustavo de Geus Leonardo Silva Jean Ercilio Thiago DESENVOLVEDORES JAVA EM TODO MUNDO LIDER GAVIN KING JBOSS MANTEVE O SUPORTE História Hibernate foi criado por
Leia maisProjeto GoHome. Tutorial de Instalação Android Studio e SDK
Projeto GoHome Tutorial de Instalação Android Studio e SDK Antonio Fabricio Almeida e Silva Novembro 2016 Teresina-PI Sumário 1. Descrição da Ferramenta... 3 2. Requisitos de Sistema... 4 3. Download...
Leia maisIntrodução à plataforma Java
Introdução à plataforma Java Apresentação: Professor: Galvez Gonçalves prof.gago@gmail.com O que estudaremos 1. Os conceitos de programação orientada a objetos através de uma linguagem de programação que
Leia maisGrupo: Diogo Furtado Phellipe Perin Stephan Hebeda
Grupo: Diogo Furtado Phellipe Perin Stephan Hebeda INTRODUÇÃO Scala é uma linguagem de programação de propósito geral projetado para expressar padrões de programação comuns de uma forma concisa. Foi desenvolvido
Leia maisSumário. 1 Introdução 1. Parte um: A linguagem Objective-C 2 Programação com Objective-C 7. 3 Classes, objetos e métodos 27
Sumário 1 Introdução 1 O que você vai aprender neste livro 2 Como o livro está organizado 3 Suporte 5 Agradecimentos 5 Prefácio da quarta edição 6 Parte um: A linguagem Objective-C 2 Programação com Objective-C
Leia maisSistemas Distribuídos
Caracterização de Faculdades SENAC Análise e Desenvolvimento de Sistemas 24 de fevereiro de 2010 Caracterização de Histórico Anos 50 - Sistemas Operacionais tipo Lote Aumentar a capacidade de processamento
Leia maisElaine Chen, Gerente de Produto. Como usar o R e o Tableau
Elaine Chen, Gerente de Produto Como usar o R e o Tableau 2 Conteúdo O que é o R?...3 Quais são os benefícios do uso do R?...3 Como é a integração do Tableau com o R?...4 A quem se destina esse recurso?...5
Leia maisMétodos de implementação de linguagens. Kellen Pinagé
Métodos de implementação de linguagens Kellen Pinagé Sumário Métodos de implementação de linguagens Compilação Interpretação pura Híbrido Métodos de implementação de linguagens Principais componentes de
Leia maisRuby e JRuby em... Paralelos e Distribuídos. Felipe Barden Lucas Fialho Zawacki
Ruby e JRuby em... Paralelos e Distribuídos Felipe Barden 151343 Lucas Fialho Zawacki 172072 Sobre o que vamos falar? A linguagem Ruby e suas aplicações em programação paralela e distribuída. A implementação
Leia maisIntrodução ao Desenvolvimento de
Introdução ao Desenvolvimento de Aplicações Web com JSF e PrimeFaces Marcelo Vinícius Cysneiros Aragão ICC Inatel Competence Center marcelovca90@inatel.br Santa Rita do Sapucaí, 15 de março de 2016 Conteúdo
Leia maisSistemas Operacionais. Universidade Federal de Minas Gerais. Aula 1. Introdução
Aula 1 Introdução O que são? Porque estudar? História Componentes de SO Referências Capítulo 1 Capítulos 2 e 3: folhear. O que é um sistema operacional? Um programa governo, controla a interação entre:
Leia maisPlataforma de desenvolvimento JAVA para terminal POS
Plataforma de desenvolvimento JAVA para terminal POS Avenida Viena, 360 Bairro São Geraldo CEP 90240020 Porto Alegre RS Fone 51 3325 2728 Fax 51 3343 9847 azanonatec@azanonatec.com.br Apresentação A plataforma
Leia maisProgramação Concorrente
INE 5410 Programação Concorrente Professor: Lau Cheuk Lung (turma A) INE UFSC lau.lung@inf.ufsc.br Conteúdo Programático 1. 2. Programação Concorrente 3. Sincronização 1. Condição de corrida, região critica
Leia maisIntrodução ao Python. Programa Computacional
Programa Computacional É um algoritmo escrito em uma linguagem computacional (C, Fortran, Pascal, MATLAB, Python, etc.). É a tradução do algoritmo para uma linguagem que será interpretada pelo computador.
Leia maisComponente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída
11 1 Introdução Recentes avanços em redes de computadores impulsionaram a busca e o desenvolvimento de meios para facilitar e acelerar o desenvolvimento de aplicações em sistemas distribuídos, tornando
Leia maisProgramação em Sistemas Computacionais
Programação em Sistemas Computacionais Linguagem C Introdução, tipos Centro de Cálculo Instituto Superior de Engenharia de Lisboa Jorge Martins (jmartins@isel.pt) baseado no slides de Pedro Pereira Enquadramento
Leia maisSistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca
Sistemas Operacionais Processos Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br) Copyright Carlos Ferraz Processo Conceito: Um programa em execução 1. Ao digitar hello, os caracteres
Leia maisLinguagens de Programação Classificação
Classificação Classificação A proximidade que a linguagem de programação tem com a humana determina sua classe (o nível): Linguagem de máquina (primeira geração) Linguagem assembly - de montagem (segunda
Leia maisProgramação Paralela e Distribuída
INE 5645 Programação Paralela e Distribuída Professor: Lau Cheuk Lung (turma A) INE UFSC lau.lung@inf.ufsc.br Conteúdo Programático 1. Introdução 2. Programação Paralela 3. Controle de Concorrência 4.
Leia maisProf. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012 Ementa do Curso Conceitos básicos de programação Orientação a objetos Linguagem Python Simulação com o NS-3 Programação
Leia maisAPRESENTAÇÃO. Página: 1
APRESENTAÇÃO Página: 1 Sumário Apresentação... 3 Principais característica:... 3 Estrutura Way-Z... 4 Vantagens da Plataforma... 6 Atualizações remotas.... 7 Carga da Plataforma e da Aplicação... 8 Obtendo
Leia maisSistemas Operacionais. Conceitos de Hardware e Arquitetura de computadores
Sistemas Operacionais Conceitos de Hardware e Arquitetura de computadores Arquitetura de Von Neumann Criada em 1945 Memória Unidade Lógica-Aritmética Unidade de Controle Entrada e Saída Um desktop atual
Leia maisDesenvolvimento Web III. Prof. Felippe Scheidt
Desenvolvimento Web III Prof. Felippe Scheidt Apresentação da disciplina Compreender os princípios do desenvolvimento de sistemas web e da construção de páginas dinâmicas utilizando padrões de projetos,
Leia maisLinguagens de Programação 10 Avaliação de Linguagens
Linguagens de Programação 10 Avaliação de Linguagens Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal
Leia maisPROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 11 - Threads e Concorrência
Aula 11 - Threads e Concorrência Conteúdo Programático desta aula Apresentar os Conceitos de Threads, Concorrência e Sincronização. Verificar a aplicabilidade destes conceitos no mercado, bem como sua
Leia maisAula 6: Comunicação entre processos. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela
Aula 6: Comunicação entre processos Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela (-- motivação --) Processos em execução no sistema operacional podem ser: Independentes:
Leia maisObjetivos. Responder o que é Java; Mostrar as vantagens e desvantagens do Java; Compilar e executar um programa simples.
O que é Java Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/ 1 Objetivos Responder o
Leia maisComo criar sua aplicação em React em poucos minutos. um ebook produzido por: CodePrestige
Como criar sua aplicação em React em poucos minutos um ebook produzido por: CodePrestige Agradecimentos Seja muito bem-vindo! Você está prestes a criar a sua primeira aplicação em React! Está animado?
Leia maisReinvente-se todos os dias! Sites e aplicativos nativos para sua startup ou empresa www.aplicativosminerva.com Quem somos Nós? Somos uma empresa jovem e inovadora, especializada na criação de Aplicativos
Leia maisEstruturas de Sistemas Operacionais
Estruturas de Sistemas Operacionais Sistemas Operacionais - Tópicos Componentes do Sistema Serviços de Sistemas Operacionais Chamadas ao Sistema Estrutura do Sistema Máquinas Virtuais Chamadas ao Sistema
Leia maisBrilliant Solutions for a Safe World
Componente Biométrico - Voz Componentes do lado do servidor (multi-plataforma): Licenças do Matching Server Licenças do Fast Voice Extractor Licenças do Voice Matcher Componentes do cliente para Windows,
Leia maisTutorial Proteus 02. Como simular o Arduino no Proteus ISIS utilizando a biblioteca "Emulater" por João Vitor
Tutorial Proteus 02 Como simular o Arduino no Proteus ISIS utilizando a biblioteca "Emulater" por João Vitor http://arduinolegal.blogspot.com 1 Bom pessoal, como já foi visto em outro tutorial (Acesse
Leia maisTécnicas Avançadas de Programação
Sumário Técnicas Avançadas de Programação Prof. João Marcos M. da Silva Departamento de Engenharia de Telecomunicações Escola de Engenharia Universidade Federal Fluminense Agosto de 2011 Prof. João Marcos
Leia maisFRAMEWORK PARA GERENCIAMENTO E DISPONIBILIZAÇÃO DE INFORMAÇÕES MULTIMÍDIA GEOLOCALIZADAS NA PLATAFORMA ANDROID
FRAMEWORK PARA GERENCIAMENTO E DISPONIBILIZAÇÃO DE INFORMAÇÕES MULTIMÍDIA GEOLOCALIZADAS NA PLATAFORMA ANDROID Roteiro Introdução Fundamentação teórica Desenvolvimento Conclusões Introdução Plataformas
Leia maisLINGUAGEM C: ARQUIVOS
LINGUAGEM C: ARQUIVOS Prof. André Backes Arquivos 2 Por que usar arquivos? Permitem armazenar grande quantidade de informação; Persistência dos dados (disco); Acesso aos dados poder ser não seqüencial;
Leia maisUniversidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação
Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação Especificação da Projeto de Laboratório de Programação Parte 1 Salvador, 2009 Universidade Federal da Bahia Instituto
Leia maisO Common Language Runtime (CLR) é uma plataforma criada com o objetivo de facilitar a interoperabilidade entre diferentes linguagens de programação,
1 Introdução O Common Language Runtime (CLR) é uma plataforma criada com o objetivo de facilitar a interoperabilidade entre diferentes linguagens de programação, através de uma linguagem intermediária
Leia mais3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Linguagem de programação C 3.1. Conceitos
Leia maisFigura 01 Programa e Processo
02 PROCESSOS 2.1 Introdução Para poder controlar a execução dos diversos programas e o uso concorrente do processador e dos demais recursos um programa deve sempre estar sempre associado a um processo.
Leia maisPROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 12 - Threads e Concorrência em Java
Aula 12 - Threads e Concorrência em Java Conteúdo Programático desta aula Aplicar os conceitos e threads, processos concorrentes e sincronização em pequenos programas. Aplicar e verificar os conceitos
Leia maisLabSO Gerência de Processos. Processos. Porque eu preciso entender este assunto?
LabSO Gerência de AULA 3 Flávia Maristela (flavia@flaviamaristela.com) Romildo Martins (romildo@romildo.net) Porque eu preciso entender este assunto? Para entender como um computador consegue executar
Leia maisJava Standard Edition (JSE)
Java Standard Edition (JSE) 14.Threads Esp. Márcio Palheta Gtalk: marcio.palheta@gmail.com 1 Agenda Conceitos de programação concorrente Estendendo Thread; Troca de contextos; Garbage Collector; Problemas
Leia mais