Iniciando desenvolvimento de um novo Sistema

Boa tarde!!

Sou funcionário de uma empresa de desenvolvimento de software especifico para o ramo de transporte rodoviário, porém hoje nosso sistema é desenvolvido na plataforma Delphi desktop, a empresa já esta no mercado a um bom tempo e agora decidiu criar um novo produto voltado para WEB na mesma linha de transporte, porém estamos realizando pesquisas para acharmos uma tecnologia que venha satisfazer as necessidades do mercado.

Umas das soluções possíveis é de optarmos pela linguagem PHP, gostaria de saber se a linguagem é a solução ideal para inciarmos um novo projeto, que ira abranger a emissão de documentos eletrônicos como CT-e, NF-e, MD-e, MDF-e etc…

Queria saber se a linguagem nos forneceria um grande suporte para atender essas necessidades, além de fornecer suporte:

  • consumo e disponibilização de serviços SOAP, JSON,
  • converter esquemas xsd em classes php;
  • converter classes em xml;
  • gerar os serviços a partir dos wsdl disponibilizados pelas SEFAZ;
  • um framework para construções de interfaces ricas de maneira simplificada;
  • persistência simplificada;

etc…

Gostaria da ajuda de vocês para que possa apresentar uma solução para os responsáveis do projeto que não venha no futuro causar transtornos ou ficar amarrado a tecnologia…

fico no aguardo.

A sua aplicação Delphi não foi divida em Aplicação Server e Aplicação Client? Onde trabalho tivemos um projeto muito parecido com o seu, porém criamos uma aplicação Web com ASP.Net MVC que se comunicava com um REST Server Delphi. Dessa forma conseguimos reaproveitar toda a camada de persistência e regras de negócio.

A aplicação se trata de um novo produto não iremos aproveitar nada do sistema anterior, esse sistema seria para adquirir outros tipos de cliente;

Por isso estamos realizando pesquisas para definirmos qual tecnologia utilizar…

A ideia de pesquisar a linguagem ideal com desconhecidos num fórum é nova pra mim? :wink:

Você é desenvolvedor? Possui desenvolvedores na equipe? Então pergunta pra eles. A linguagem ideal é o que sua equipe se sente confortável usar.

[quote=ImpossiveI]A ideia de pesquisar a linguagem ideal com desconhecidos num fórum é nova pra mim? :wink:

Você é desenvolvedor? Possui desenvolvedores na equipe? Então pergunta pra eles. A linguagem ideal é o que sua equipe se sente confortável usar.[/quote]

Nesse caso ele também teria que avaliar outros pontos, como por exemplo a portabilidade da tecnologia a ser usada. Caso pretendam hospedar num server linux,obviamente php será uma opção muito mais viável que asp.net, por exemplo. A não ser que não existam desenvolvedores web na equipe em que ele trabalha, concordo com você.

Estamos começando agora no desenvolvimento
WEB… Não temos muita experiencia no assunto…

Gostaria de saber se a linguagem php fornece os recursos mencionados a cima e se alguém tem algum conhecimento a respeito dos itens citados.

[quote]A ideia de pesquisar a linguagem ideal com desconhecidos num fórum é nova pra mim?

Você é desenvolvedor? Possui desenvolvedores na equipe? Então pergunta pra eles. A linguagem ideal é o que sua equipe se sente confortável usar.[/quote]

Isso seria num mundo ideal, com uma linguagem que tenha tudo que um sistema precisa. Mas não é assim que funciona… a definição de uma linguagem para ser usada num sistema envolve muito mais do que o suporte dela para o sistema. Ex: na nossa área há muita rotatividade de colaboradores dentro de uma empresa, essa tecnologia seria fácil de contratar pessoas que a conheça? A tecnologia tem risco de defasar daqui alguns anos? Ou seu suporte poderá acabar? Entre muitas outras variáveis a se pensar.

Respondendo a sua pergunta, e não querendo ser ignorante, mas o pessoal poderia responder mais se fosse algo relacionado a Java, e perguntas relacionadas a PHP em um fórum de PHP.

Se fosse escolher Java, com certeza daria suporte pra todas essas coisas que voce está querendo

[quote=rxavier]Estamos começando agora no desenvolvimento
WEB… Não temos muita experiencia no assunto…

Gostaria de saber se a linguagem php fornece os recursos mencionados a cima e se alguém tem algum conhecimento a respeito dos itens citados.[/quote]

Eu nunca desenvolvi profissionalmente com PHP, porém, por ser uma linguagem largamente usada no mercado é possível cumpra todos os requisitos do seu projeto.

Em comparação com C#, que é a linguagem com o qual trabalho e desenvolvo para Web, a grande vantagem está na possibilidade de portar sua aplicação tanto para Linux quanto para Windows, assim como em Java. Eu particularmente prefiro C# pois, conforme minha vivência com a plataforma .Net, sinto que tenho benefícios em relação a minha produtividade.

Seria interessante que vocês fizessem um estudo sobre onde pretendem hospedar a aplicação, quais são as limitações técnicas e qual a curva de aprendizado dessa nova tecnologia. Além claro, como foi citado pelo amigo acima, se vocês conseguirão um profissional qualificado com uma certa agilidade caso a equipe fique desfalcada.

[quote=ImpossiveI]A ideia de pesquisar a linguagem ideal com desconhecidos num fórum é nova pra mim? :wink:

Você é desenvolvedor? Possui desenvolvedores na equipe? Então pergunta pra eles. A linguagem ideal é o que sua equipe se sente confortável usar.[/quote]

[quote=Júlio Murta][quote=rxavier]Estamos começando agora no desenvolvimento
WEB… Não temos muita experiencia no assunto…

Gostaria de saber se a linguagem php fornece os recursos mencionados a cima e se alguém tem algum conhecimento a respeito dos itens citados.[/quote]

Eu nunca desenvolvi profissionalmente com PHP, porém, por ser uma linguagem largamente usada no mercado é possível cumpra todos os requisitos do seu projeto.

Em comparação com C#, que é a linguagem com o qual trabalho e desenvolvo para Web, a grande vantagem está na possibilidade de portar sua aplicação tanto para Linux quanto para Windows, assim como em Java. Eu particularmente prefiro C# pois, conforme minha vivência com a plataforma .Net, sinto que tenho benefícios em relação a minha produtividade.

Seria interessante que vocês fizessem um estudo sobre onde pretendem hospedar a aplicação, quais são as limitações técnicas e qual a curva de aprendizado dessa nova tecnologia. Além claro, como foi citado pelo amigo acima, se vocês conseguirão um profissional qualificado com uma certa agilidade caso a equipe fique desfalcada.[/quote]Concordo com as opiniões acima.

Eu também vim do Delphi e agora trabalho C# e ASP.NET MVC/WebApi. Eu e toda equipe que trabalho achamos a melhor linguagem e framework web server para se trabalhar no projeto, mas como sua equipe e projeto são outros, isso não é um fato para seu caso.

A escolha não tem mágica, a equipe tem que decidir junto experimentando na prática as opções. Com já falaram, considerando inclusive requisitos de implantação e o que estiver já bem consolidado no mercado com facilidade de conseguir bons profissionais. Três opções que posso falar pra você experimentar são: C# com ASP.NET MVC ou WebApi (Restful), Java (Spring MVC ou Restful) ou PHP (infelizmente existem trilhões de frameworks web bem cogitados, Laravel o mais atualmente). Não esquecendo que antes de “chegar” nesses frameworks é necessário aprender a base relativa a HTTP aplicada a cada plataforma de desenvolvimento.

Isso é só lado servidor. Lado client é um mundo a parte, podendo ser a parte mais complexa dependendo do caso. Independente do que for escolher no servidor, já comecem a se preparar para o lado client (HTML5, CSS, JavasScript, JQuery e/ou AngularJS etc conforme escolhas). Lembrando que é importante ter web designers na equipe, indispensável se a aplicação for para uso a nível gerencial/diretoria ou público na internet.

[quote=Júlio Murta][quote=ImpossiveI]A ideia de pesquisar a linguagem ideal com desconhecidos num fórum é nova pra mim? :wink:

Você é desenvolvedor? Possui desenvolvedores na equipe? Então pergunta pra eles. A linguagem ideal é o que sua equipe se sente confortável usar.[/quote]

Nesse caso ele também teria que avaliar outros pontos, como por exemplo a portabilidade da tecnologia a ser usada. Caso pretendam hospedar num server linux,obviamente php será uma opção muito mais viável que asp.net, por exemplo. A não ser que não existam desenvolvedores web na equipe em que ele trabalha, concordo com você. [/quote]

Concordo com vc que a decisão sobre a plataforma como todo não é da equipe. Mas uma vez que a plataforma foi escolhida, e neste caso, como PHP pertence a stack LAMP, acredito que a plataforma escolhida foi linux, não faz sentido deixar os programadores decidirem sobre qual linguagem eles querem usar (se a plataforma suportar as opções, claro)?

[quote=rxavier]A aplicação se trata de um novo produto não iremos aproveitar nada do sistema anterior, esse sistema seria para adquirir outros tipos de cliente;

Por isso estamos realizando pesquisas para definirmos qual tecnologia utilizar… [/quote]

Faça testes com a equipe. Tentem desenvolver um cadastro bem simples em cada uma das linguagens plataformas:

  • Java
  • PHP
  • Ruby
  • Python

que estão entre as mais usadas na Web e avaliem com quais vocês se adaptam melhor.

[quote=rxavier]Estamos começando agora no desenvolvimento
WEB… Não temos muita experiencia no assunto…

Gostaria de saber se a linguagem php fornece os recursos mencionados a cima e se alguém tem algum conhecimento a respeito dos itens citados.[/quote]

Infelizmente não sei nada sobre emissão de notas e SOAP em PHP.

Mas em geral, sistemas web possuem a persistência mais complexa do que uma aplicação desktop (pq precisa lidar com requisições simultâneas de users) e a interface baseada em hipertexto e JS, tb é mais simples e limitado do que uma interface construída por um RAD moderno para desktop/mobile.

[quote=igor_ks][quote]A ideia de pesquisar a linguagem ideal com desconhecidos num fórum é nova pra mim?

Você é desenvolvedor? Possui desenvolvedores na equipe? Então pergunta pra eles. A linguagem ideal é o que sua equipe se sente confortável usar.[/quote]

Isso seria num mundo ideal, com uma linguagem que tenha tudo que um sistema precisa. Mas não é assim que funciona… a definição de uma linguagem para ser usada num sistema envolve muito mais do que o suporte dela para o sistema. Ex: na nossa área há muita rotatividade de colaboradores dentro de uma empresa, essa tecnologia seria fácil de contratar pessoas que a conheça? A tecnologia tem risco de defasar daqui alguns anos? Ou seu suporte poderá acabar? Entre muitas outras variáveis a se pensar.
[/quote]

Empresas com problema de rotatividade geralmente se especializam em CRUD e linguagens mainstream porque é mais conveniente.

Usando uma arquitetura microservice, a tendência é certa complexidade ir para o cliente mesmo, ao contrário de uma arquitetura web thin-client convencional onde toda a complexidade fica no servidor.