Ir para o conteúdo

 Voltar a i-Educar De...
Tela cheia

Desenvolvimento

20 de Maio de 2009, 17:58 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 27 vezes

Como anda o desenvolvimento do i-Educar? Existe algum plano de desenvolvimento duma nova versão, ou correções de bugs?

Queria ajudar no desenvolvimento de uma nova versão porém não encontro nada a respeito. Onde está a comunidade de desenvolvedores (se existe)?

Já percebi quase toda a estrutura de i-Educar, e o que posso concluir é que muita coisa pode ser melhorada. Existe muita duplicação de códigos e classes similares, o que torna lento o seu desempenho.

Tenho conhecimentos sólidos em PHP e SQL, e gostaria muito de ajudar.

Autor: Charles Maciel


77 comentários

  • 1544109014316148197d1ee8b79970f3?only path=false&size=50&d=404José Max Deivys Alves de Moura Moura(usuário não autenticado)
    21 de Maio de 2009, 12:34

     

    olá maciel,

    o projeto i-educar já conta com um gerenciador de projetro (trac + svn). lá cv pode saber mais: svn.​soft​ware​publ​ico.​gov.​br/t​rac/​iedu​car

     

    ps.: usar o mesmo usuario do forum

    flw

     

    • 16d4fdd326d5d155986fba4748ca6d77?only path=false&size=50&d=404Charles Maciel(usuário não autenticado)
      21 de Maio de 2009, 19:12

       

      Isso eu já sabia. Porém vejo que só Eriksen está ativo no desenvolvimento. Onde está a comunidade de 3000 programadores que existe?

      • 503e17102f7c813397aa672a32756b54?only path=false&size=50&d=404Eriksen Costa(usuário não autenticado)
        24 de Maio de 2009, 16:20

         

        Charles,Você citou só uma parte da frase. Na verdade, o i-Educar "é mantido pela comunidade i-Educar, formada por mais de 3.000 programadores, administradores de sistemas e usuários espalhados por todo o Brasil". Isso quer dizer que ele é mantido, ou seja, existem X mil pessoas pelo país usando-o de alguma forma. Manter pode significar abrir tickets, ajudar nos fóruns e, é claro, desenvolver.Software livre nenhum é desenvolvido por milhares de desenvolvedores. Até mesmo porque nem todos tem a menor ideia de contribuir, seja por falta de consciência em manter o ecossistema (seja pessoa física ou funcionário de empresas) ou simplesmente por falta de conhecimento técnico suficiente para participar de um esforço de desenvolvimento colaborativo. Exemplos disso são o OpenOffice, com ~22 desenvolvedores (apesar do processo do OO ter outras complicações), do Kernel Linux com ~120 ou o Drupal com uns ~20.O que estamos tentando estimular é que as empresas que tem algum tipo de faturamento com o i-Educar retornem para o projeto (assim como a IBM ao kernel Linux, O Yahoo! no PHP, o Google no Python...). Nós, na Cobra Tecnologia, estamos conseguindo isso junto com nossos clientes: toda e qualquer melhoria/correção vai ser disponibilizada a comunidade. Isso é importante pois é difícil que desenvolvedores independentes adotem o i-Educar como um projeto de tempo livre (por ser grande, por ter aplicação comercial reduzida ao governo, etc, etc), além de ter um efeito multiplicador incrível (imagine que cada cliente seu tenha um desenvolvedor trabalhando em conjunto com você). Mais importante ainda é que melhorias criadas por uma prefeitura estará disponível para qualquer outra prefeitura do país, reduzindo os custos de desenvolvimento (na verdade, dividindo, já que o investimento é feito com dinheiro público).Hoje as nossas contribuições resumem-se a respostas no fórum e alguma documentação. É apenas o início e somente entregando um software melhor e mais fácil poderemos conseguir contribuições (código/documentação/suporte). Estamos ainda na etapa de consolidação e poucos tem consciência do que é software livre, isso se reflete em pedidos como "quero um módulo disso", "deveria ter aquilo" ou "cadê a documentação X". Quando as pessoas (e empresas!) deixarem de ser passivas e começarem a agir como "desenvolvi módulo tal, aqui está", "aqui está o diagrama Y" é que teremos um desenvolvimento colaborativo verdadeiro. No Drupal, temos a expressão do-ocracy (façacracia), se você quer algo, faça e compartilhe.Você pode estar pensado: "precisava desse texto todo?". Eu só quis passar uma visão geral de onde estamos hoje. Sim, o software tem duplicações, lógicas e algumas falhas de design estúpidas mas, somente corrigindo uma a uma conseguiremos tirar a duplicação, que atrapalha demais no desenvolvimento. Tem muita coisa que estou aplicando no desenvolvimento para tornar menos dolorosa a correção dos bugs, como desenvolvimento orientado a testes e algumas práticas das metodologias ágeis. Quero que apareçam mais desenvolvedores para melhorar o processo que adoto hoje e tornar o código menos propício a bugs.Se você quiser começar, eu sugiro que corrija algum bug conhecido (ou que você tenha encontrado) e forneça um patch junto ao ticket. Com o tempo, pode ser concedido acesso direto ao SVN. Se quiser orientações sobre TDD e como eu estou mexendo na base de código, é só entrar em contato ou continuar aqui nesse fórum.Abs,Eriksen CostaAnalista DesenvolvedorCobra Tecnologia S.A. 

        • 16d4fdd326d5d155986fba4748ca6d77?only path=false&size=50&d=404Charles Maciel(usuário não autenticado)
          26 de Maio de 2009, 13:14

           

          Realmente exagerei sobre o número.

          Sobre desenvolvedores independentes, sou um deles. Não moro no Brasil há mais de 5 anos e não tenho qualquer vínculo com as entidades do governo brasileiro. Não estou interessado em usar o software pois não preciso disto. O que me despertou interesse em ajudar, é o espirito de ajuda.

          O sistema está muito desorganizado e não segue nenhum padrão de programação. O que sugeria era a criação de uma interface (API) para programação modular.

          Seguindo o trac, pelos bugs conhecidos, peguei no primeiro para analizar. A segunda parte já se encontra resolvida, porém a primeira ainda não. Para a minha surpresa, vi que em cada classe instanciada pela página educar_reservada_vaga_det.php cria uma nova classe de conexão com o banco de dados e faz uma ou mais consultas.

          Vem a pergunta: Porque não usar Singleton para a classe do banco de dados, assim teriamos somente uma conexão, o que aumentaria a performance.

          Devemos saber que a conexão com a base de dados pode demorar mais do que uma consulta.

          Outra coisa extremamente sem nexo, nesta mesma página são executadas 63 consultas do mesmo tipo: SELECT caminho FROM portal.imagem WHERE cod_imagem = 1

          Para não dizer que reclamei e não corrigi, o código com o bug corrigido foi enviado no respectivo ticket. Note que não usei aquelas e sim  uma única consulta para obter os dados do aluno (era usado no mínimo umas 6).

          • 16d4fdd326d5d155986fba4748ca6d77?only path=false&size=50&d=404Charles Maciel(usuário não autenticado)
            26 de Maio de 2009, 13:22

             

            Correção do último paragrafo:

            Para não dizer que reclamei e não corrigi, o bug foi corrigido por mim e enviado no respectivo ticket. Não utilizei as diversas classes que não faziam sentido usar-as nesta página, poupando assim umas conexões e consultas.

          • 503e17102f7c813397aa672a32756b54?only path=false&size=50&d=404Eriksen Costa(usuário não autenticado)
            27 de Maio de 2009, 1:11

             

            Charles,

            Se você acompanhar o changelog, verá que o código está sendo padronizado ao longo das correções dos bugs.

            A criação de uma nova API virá naturalmente quando novas funcionalidades começarem a ser desenvolvidas. No momento, estamos estabilizando o software e a prioridade é corrigir bugs.

            Quanto a usar Singleton, vamos ver: para isso eu precisaria mudar o construtor, tornando-o privado. Daí seria necessário criar um método static e alterar centenas de códigos clientes da classe para usar o static. Na verdade esse não é o problema, entendo que Singleton diminui o uso do recurso (instanciar o objeto, economizando memória) além de tornar o código mais elegante mas note que  a função pg_connect, usada para conectar ao banco de dados, só irá abrir a criar a conexão uma vez, somente na primeira chamada. Temos apenas uma conexão, sempre.

            Toda vez que falamos em performance temos que ter algum teste mostrando alguma anomalia. Não houve nenhuma reclamação no momento a cerca de performance, o que nos deixa confortáveis para evitar gastar tempo com otimizações (no momento). E enquanto corrigimos bugs, acabamos melhorando a interface e o código também, melhorando a performance.

            Quanto ao bug, a correção foi muito boa mas você acabou colocando código SQL numa classe que não deveria ter SQL (apesar dos pesares...). O melhor é criar o método na classe que faz o mapeamento com a tabela do banco de dados, ficará mais fácil de manter depois.

            Eu tenho uma sugestão. Refatore essa sua correção, colocando o código SQL necessário para trazer os dados necessários dentro da classe de banco de dados. Na hora de criar a conexão com o banco de dados, refatore a classe criando um singleton. Você só não poderá colocar o construtor de clsBanco como private, senão quebrará todo o resto do código. Aí eu substituo toda vez que encontrar uma criação de objeto clsBanco pela chamada static.

            Siga a documentação de padrões de codificação e envie as correções como um patch. Vai ser mais rápido para eu testar e fazer o commit.

            Ainda não está documentado mas tem classes de unit test dentro do diretório tests/. Para usá-las, você precisa ter o phpunit instalado.

            Me passe o seu msn para o meu e-mail, eu posso te explicar melhor o processo que estou usando. Como até agora somente eu e o Pedro subimos código no repositório, a gente acabou não criando documentação mais extensiva para desenvolvedores.

            Abs,
            Eriksen Costa
            Analista Desenvolvedor
            Cobra Tecnologia S.A.

      • 2595280885ef15bfb03d5de11d222925?only path=false&size=50&d=404Pedro Luiz Eyng Simões(usuário não autenticado)
        22 de Maio de 2009, 17:09

         

        Charles,

        Esse pode ser um passo para você se tornar um dos colaboradores no desenvolvimento. Poderia comecar por identificar bugs, lançar tickets e tentar corrigi-los.

        Em momento algum falamos em 3000 desenvolvedores, uma vez que sabemos que o público que busca o i-educar não é só desenvolvedor, mas é composto principalmente de usuários de secretarias de educação, prefeituras, escolas e usuários comuns, que vêm procurar uma solução que atendam as suas necessidades

        Pode ter certeza que se quiser começar a colaborar com o desenvolvimento será de grande valia para o i-Educar. Trabalhei numa etapa do i-educar para torná-lo instalável, agora estou trabalhando em melhorar o conteúdo que facilita o acesso ao usuário. Porém precisamos também de desenvolvedores e toda a estrutura está disponível no portal com conteúdo, e repositório.

         

        Obrigado pelo seu interesse em ajudar

        Pedro

        Secretaria de Logística e Tecnologia da Informação
        Ministério do Planejamento
         

Mapeamento do i-Educar por todo o Brasil

23 de Abril de 2018, 16:31, por Tiago Giusti

A Portabilis, organização que é integrante da comunidade desde 2009 e que atua no papel de mantenedora do projeto, propôs uma renovação de energias, ao final de 2017, para levar o i-Educar ainda mais longe.



Situação atual do lançamento do maior software livre de gestão escolar do Brasil

10 de Abril de 2018, 11:29, por Tiago Giusti

O Coordenador da Comunidade i-Educar e CEO da Portabilis, Tiago Giusti, foi a Brasília, no fim do ano passado, representando a Comunidade i-Educar numa visita ao Ministério do Planejamento para discutir soluções para alguns assuntos de interesse da Comunidade, tais como:



Em 2018, queremos o i-Educar por todo o Brasil

28 de Dezembro de 2017, 23:08, por Tiago Giusti

Esta mensagem é diferente das de retrospectiva dos anos anteriores. Vamos abordar primeiro sobre o futuro, encerrando com um resumo de como foi 2017.



Prefeitura de Criciúma implanta o i-Educar na rede municipal de ensino

20 de Dezembro de 2017, 11:04, por Tiago Giusti

Buscando melhorar o sistema de informações da rede municipal de ensino de Criciúma, a Administração Municipal, através da Secretaria de Educação e da Diretoria de Tecnologia da Informação (TI), implantará um software de gestão de dados nas unidades educacionais. Denominado i-Educar, o sistema aperfeiçoará o armazenamento de dados e auxiliará gestores e professores de Criciúma.



Retrospectiva i-Educar 2016: o que conseguimos realizar?

31 de Dezembro de 2016, 12:00, por Tiago Giusti

Chegamos a mais um 31/12 e é hora de fazermos a retrospectiva da Comunidade i-Educar, como temos feito todos os finais de ano.