O numero 6) é o melhor kkkkk
- O Scriptcase não é inteligência artificial e não resolve 100% dos casos. Se você não estudou já era.
O numero 6) é o melhor kkkkk
Exatamente.
Se você estudou e continua estudando, o SC é uma verdadeira mão na roda.
Tópico atualizado com novas dicas!
http://www.scriptcase.com.br/forum/index.php/topic,13927.msg72803.html#msg72803
Já tem quase um ano que adquiri esta ferramenta, e não fiz nenhuma pergunta até o momento, pois as minhas duvidas até agora já foram sanadas por vocês em outros tópicos, e olha que já desenvolvi aplicações que geram alvarás com QRcode e outras mais.
Aprendi e muito com vocês
Resumindo de fato para uma pergunta ser feita, deve se ter explorado todos os meios, pois o que vejo aqui no fórum, neguinho fazendo pergunta e recebendo a resposta “esta pergunta já foi respondida no fórum tal…” PREGUIÇA de PROCURAR.
Excelente Tópico!
Parabéns.
Marco Lima, falou tudo!
Se você é novato e chegou até este tópico.
Saiba que a maioria dos links internos está quebrado devido ao novo fórum.
Eu acredito que as resposta são propriedade intelectual de quem as postou, mas a Netmake não respeita isto. Logo, não consigo arrumar os links da minha própria publicação.
Então, procurem a Netmake para solucionar o casos em que a solução estava neste tópico.
Em breve devo deletar este tópico e colocar diretamente em meu site.
Um lugar onde meus direitos sejam respeitados.
Como não consigo editar o tópico, vou postar aqui:
Fica revogado o licenciamento do Creative Commons Atribuição-NãoComercial 4.0 Internacional
Sim, tentei acessar os links e nenhum funcionou, de outros posts também.
Qual seu site? Tem dicas scriptcase? Estou iniciando no Scriptcase e gostaria de achar algum outro lugar para tirar dúvidas além daqui, aqui nem sempre respondem, e vejo vários tópicos sem resposta para as dúvidas que também são minhas.
Há um tempo atrás fiquei sabendo que existia um grupo de whatsapp também.
Obrigado.
André.
Sim há do Whatsapp e do Telegram.
Se tiver usuário no telegram posso te adicionar lá.
Sobre a página irei montar.
Alexandre, bom dia. Pode me adicionar ao grupo do Whatsapp por favor?
Att.
André.
Boa tarde, O grupo do whatsapp eu não gerencio. Somente do Telegram.
Tem que procurar o tópico com o grupo do whats e pedir nele.
Uma vergonha não consigo nem apagar este tópico. Enquanto outros de minha autoria consigo normalmente. Onde estão meus direitos autorais?
A partir de hoje você também pode encontrar este tópico em: https://forum.simaoebuhler.com.br/index.php/topic,7.0.html
Iremos atualizar este tópico em breve no: https://forum.simaoebuhler.com.br/index.php/topic,7.0.html
Fantástico o tópico.
Os itens 44 e 45 estão indisponíveis.
Interessei por estes assuntos.
Muito bom este post. Ótima contribuição. Estou pesquisando algumas dicas colocadas que vão me ajudar a formar um novo conceito de Software que terá suas limitações e necessidades e onde devo buscar. Valeu muito onde diz como começar e da maneira certa!
Esse tópico é sempre atual.
Pena que a Netmake não permite que eu continue a editar este tópico para ajudar as pessoas. Não consigo nem corrigir os links quebrados. Lastimável.
cria o tópico novamente @buhlerax, vamos atrás dos links quebrados e podemos até implementar dicas novas para usuário iniciante na ferramenta e em linguagem.
Não adianta, depois de passado um tempo bloqueia a edição neste tipo de fórum. Ai o tópico morre de novo.
Mas podemos responder, aí re-editamos e respondemos no mesmo tópico como uma atualização.
Atualizado em 22/07/2021
Colabore com este tópico. Não sou dono da verdade universal e há pessoas precisando da sua ajuda como eu precisei.
Aproveite e também envie o que deve ser corrigido.
Este tópico é fruto da experiência de alguns usuários do Scriptcase.
Portanto pode ou não servir para você. Use por sua própria conta e risco.
1) Escolha clientes que possam remunerar bem o seu software.
Parece óbvio. Mas os novatos esquecem que os custos de desenvolvedores em ferramentas são altos.
Lembre-se: Você não é Madre Teresa! Precisa pagar seus custos pessoais e de sua empresa.
Não existe isto de fazer preço baixo no início. Se começou com valor baixo seu cliente irá querer sempre um valor baixo.
E se quer realmente ganhar dinheiro com Scriptcase desenvolva para quem tem dinheiro.
Somente pode remunerar bem quem tem dinheiro para isto!
2) Sempre guarde dinheiro para renovar seu upgrade no Scriptcase e outras ferramentas.
Correção de bugs em versões (releases) antigas somente sai nas novas versões (releases).
E isto não é uma prática somente da Netmake.
3) Toda ferramenta de desenvolvimento, compiladores, banco de dados e etc tem bugs.
Acostume-se a consultar fóruns, sistema de bug tracker, google, changelog, grupos no Telegram, etc.
lembre-se, que as vezes não é o Scriptcase que tem bug, pode ser o php, bando de dados…
Observação: No caso do Scriptcase além de relatar no fórum envie para bugs@netmake.com.br
A reposta pode demorar um pouco mas vem.
4) Não confie em receitas de bolo na internet.
Reinventar a roda é difícil. Por isto a copiamos na medida do possível.
Somente cuidado! tem muita roda quadrada por ai!
As receitas de bolo podem ser específicas e nem sempre funcionar a contento.
Logo, teste bem o código que você achou na internet antes de colocar em produção.
Observação: sempre que copiar um código não esqueça de dar os créditos nos seus fontes.
5) Faça perguntas inteligentes no Fórum se você quer respostas inteligentes.
Um bom começo de como se portar ao fazer uma pergunta pode se achada aqui:
6) O Scriptcase não é inteligência artificial e não resolve 100% dos casos. Se você não estudou já era.
Não adianta sentar na frente do micro é dizer: Ei Scriptcase! Faça este projeto para mim!
E nem pense que irá usar o Scriptcase sem necessidade de digitar uma linha de código.
Ele ajuda e muito no desenvolvimento.
Mas, chega determinados instantes que você terá que saber no mínimo o que todo programador web tem que saber:
Banco de dados (DDL, DML, DCL, TCL,…), PHP, CSS, HTML, Javascript e por vezes até outras linguagens de programação, ambiente operacional, servidores web, smtp, etc.
7) Escolha corretamente onde hospedar o Scriptcase e/ou seus projetos em produção.
a) Use uma hospedagem compartilhada especializada em Scriptcase.
Se tiver poucos usuários (clientes) e baixo acesso concorrente.
Estiver aprendendo a usar a ferramenta.
Sua empresa está começando agora.
Vantagens de hospedagem compartilhada especializada em Scritpcase:
. Sai mais barato que um servidor dedicado
. Você terá certeza que seus projetos irão funcionar em produção
. A exportação em pdf irá funcionar.
. O php.ini já é compatível com o Scritpcase.
. A quantidade de clientes de hospedagem por servidor é controlada.
. É feito um tuning no servidor sempre que necessário.
. O servidor já é próprio para um consumo maior de recursos pelos usuários.
. O suporte sabe o que você está falando quando surge uma dificuldade com sua aplicação Scriptcase.
. O servidor sempre disponibiliza o software necessário para rodar a última versão do Scriptcase
. Apesar de não se responsabilizar pelo backup e perda de dados. Ele é feito.
Desvantagens de hospedagem compartilhada comum:
. Não há certeza que seus projetos irão funcionar 100%.
. Mesmo que seus projetos funcionem 100% no decorrer do tempo isto pode mudar.
. Não há garantias que a exportação pdf funcione.
. O php.ini pode ser incompatível com algumas funções do Scriptcase.
. Não há controle da quantidade de clientes de hospedagem. Enquanto o servidor aguentar clientes são adicionados.
. Não é feito tuning no servidor. Eles pedem gentilmente que sua hospedagem seja cancelada por consumo excessivo de recurso.
. O suporte desconhece o Scriptcase e nem sempre entenderá o que você quer dizer.
. PHP, SGDB´s e etc em versões desatualizadas.
b) Use um servidor dedicado para o Scriptcase.
Se tiver muitos usuários (clientes) e alto acesso concorrente.
Sua empresa é média ou grande.
Tem disponibilidade financeira para um servidor dedicado.
É experiente em adiminstrar servidores ou tem quem administre por você.
Vantagens de um servidor dedicado.
. Escalabilidade e desempenho somente para você.
. Acesso as todas as configurações do servidor e seus serviços.
. Pode instalar o sofware que quiser.
. Você monta o servidor (hardware e software) do seu jeito.
. Pode adicionar ou remove recursos (hardware e software).
. Pode montar uma topologia de balancemanto de carga com vários servidores.
Desvantagens de um servidor dedicado.
. O suporte para o servidor é você, a não ser que pague por este serviço.
. O custo é mais elevado. Custo inicial médio de R$ 350,00 (cloud virtual) mensais por um hardware decepcionante.
. Hardware bom costuma custar de R$ 1000,00 mensais para cima.
. Serviços de cloud virtual podem ter um custo variável de acordo com seu consumo mensal de recursos.
. O backup é por sua conta e risco quando não contratado.
. Servidores fora do Brasil tem que se tomar cuidado com a latência. Acima de 280ms esqueça.
E sim eu já vi latências maiores que 400ms. Timeout, timeout, timeout e timeout.
8 ) Procure contratar “Servidores Reais” (máquina física) quando escalabilidade não é uma situação que irá pesar a longo prazo.
Servidores montados em máquina virtuais tem desempenho no mínimo 10% menor que uma máquina real com a mesma quantidade de carga.
Mas, como é escolha pessoal não irei comentar aqui vantagens e desvantagens.
9) Trabalhe com UTF8 no Scriptcase, SGDB, PHP e etc.
Sugestão de leitura. Colabore com a sua dica de leitura para eu colocar no post!
Porque usar utf8 -> https://www.w3.org/International/questions/qa-choosing-encodings.pt-br
10) Crie um banco de dados “esqueleto” que possa ser adaptado rapidamente as necessidade de seus futuros clientes.
Isto poupará tempo e terá um banco já testado quanto a confiabilidade e performance.
Uma grande empresa brasileira faz isto. Somente não vou dizer qual explicitamente. Dá para saber pela quantidade de letras -> *****
11) Teste todos seus selects com explain e depois escolha os índices adequadamente.
Uma coisa é percorrer 5.098.456.456 linhas para achar o resultado.
Outra é percorrer 23 linhas com a ajuda de índices para o mesmo resultado.
E sim: Há “n” maneiras de fazer um select. E nem todas significam performance
12) Monitore a performance e consumo do seu banco de dados sempre e faça os ajustes necessários.
Tem cliente que não reclama de lentidão, apenas muda de software.
O mesmo princípio vale para o servidor web, php, etc.
13) Crie o menos possível de passos necessários para chegar ao resultado esperado.
Já vi softwares passando por 5 app´s (janelas) para obter um relatório.
Eu sou preguiçoso, imagine seu cliente? o que nos leva ao ítem 14.
14) Use KISS -> https://pt.wikipedia.org/wiki/Keep_It_Simple
Soluções complexas = bugs complexos + manutenção complexa.
O Scriptcase é bom em gerar aplicações simples (sem sua ajuda) e por vezes complexas (com sua ajuda).
Prefira as simples.
15) Scriptcase executa num ambiente web. Não queira fazer milagres para que seu projeto fique igual a seu software desktop.
Mesmo que use RIA -> https://pt.wikipedia.org/wiki/Internet_rica
Seu projeto não ficará e nem rodará igual a um desktop.
Desktop e web são conceitos diferentes.
Se seu cliente não aceita isto. Será bom ponderar quanto tempo vale a pena ficar com este cliente. Ou ficará preso numa pressão infindável por algo que você não pode fornecer.
16) Scriptcase não imprime diretamente em impressora de rede (remotas) como um software desktop faz.
Isto é uma limitação do PHP e não do Scriptcase.
Use impressoras mapeadas no servidor para que o PHP (Scriptcase) consiga imprimir “localmente” naquela impressora de rede.
Ou use software de terceiros para fazer esta integração.
17) Aplicações Scriptcase corrompem.
Tenha certeza que não é um erro de sintaxe e que seu maravilhoso código esteja correto antes de fazer o procedimento abaixo:
PS: Eu não me responsabilizo por este procedimento. Execute por sua própria conta e risco.
Aconselho a contactar o suporte da Netmake.
Mas para os teimosos lá vai.
a) Limpe o cache do navegador. Tente rodar.
Funcionou?
Sim. Volte a programar.
Não. Próximo passo.
b) Crie outra app com o mesmo código. Tente rodar.
Funcionou?
Sim. Volte a programar apagando a app corrompida e criando outra.
Não. Reveja seu código ou próximo passo.
c) Faça backup da pasta scriptcase.
Apague o conteúdo das pastas: tmp e app/nomedoseuprojetocomappdefeituosa dentro da pasta scriptcase.
Gere todas as aplicações novamente.
Funcionou?
Sim. Volte a programar. Era “cache” do tmp e app
Não. Próximo passo.
d) Deu muito azar sua app corrompeu totalmente, pegou um bug do scritpcase ou a instalação do scriptcase corrompeu.
Retorne seu backup ou mantenha ele num lugar seguro e então:
. Tente uma atualização manual depois de fazer backup da pasta scriptcase e do banco de dados do scriptcase.
. Ou reporte ao bugs@netmake.com.br e espere solução.
. Ou apague e reze para que desta vez funcione criando a app do zero de novo.
. Recomendado: contacte o suporte da Netmake.
18) Somente Jesus salva o resto de nos mortais fazem backup.
Faça backup diários da pasta do scritpcase e do banco de dados do scriptcase.
Para tornar o backup do scritpcase seguro faça estas 3 coisas no mesmo dia:
Use a rotina de backup do scriptcase.
Use exportar projeto. Sei que toma tempo. Mas já notamos que é as vezes é mais seguro que a própria rotina de backup do Scriptcase.
Use copiar toda a pasta do scritpcase e seu banco de dados.
Achou difícil fazer isto? Liga não… Depois é fácil chorar no Fórum ou Telegram sobre como recuperar e ouvir um: Não tem jeito!
19) Scriptcase IDE e produção lento ou travando podem ser:
Banco de dados do Scriptcase fragmentado, antivírus, firewall, servidor com sobrecarga necessitando de tuning (reconfigurar serviços para a carga exigida)
Sugestão de leitura. Colabore com a sua dica de leitura para eu colocar no post!
Procedimentos -> Scriptcase lento? - Desfragmente sua database Sqlite via cmd ou SQLiteStudio! ou
Scriptcase, banco de dados e otimização de performance. Postem suas experiências
20) Scriptcase é um Framework e a IDE do Scriptcase roda sobre este Framework que usa PHP, CSS, AJAX, etc.
Logo, bugs em PHP, CSS, AJAX, etc afetam o Scriptcase.
O pessoal esquece que o Scritpcase é uma mix de tecnologias WEB e todas estão sujeitas a bugs.
21) Algumas macros são funções já existentes no PHP ou outros softwares que foram encapsulados ou trocadas por um objeto com nome iniciado “sc_”.
Para ter certeza que o erro é na macro faça em php puro a mesma função ou use um software que esta na \prod\third\ direto do fabricante em sua versão mais recente.
Exemplo: (macro) sc_send_mail -> (php puro) http://php.net/manual/pt_BR/function.mail.php ou swiftmailer
Observação: irá notar que em \prod\third\ os softwares agregados ao framework do Scriptcase nem sempre estão atualizados e contém bugs.
Se na última versão do fabricante funcionou… Então relate no bugs@netmake.com.br
22) Há coisas que por enquanto é melhor usar o software original por conta das funções “capadas” disponíveis no Scriptcase.
Exemplo: Um dos top 10 (https://forum.scriptcase.com.br/top/all?order=posts) do fórum: UMA ALTERNATIVA AO USO DAS APPS CALENDÁRIO
APP calendário. Não sei porque ela ainda é “capada”.
Fazer a integração manual trás mais benefícios https://fullcalendar.io/
Embora saiba que a Netmake está sempre melhorando suas apps.
23) Use RTFM e STFW no dia a dia. E irá se tornar um excelente profissional.
E quando for ao fórum fazer aquela pergunta fascinante e urgente.
Demonstre que já RTFM e STFW. Assim mais pessoa irão se interessar em lhe responder.
RTFM -> Read The Fucking Manual -> https://pt.wikipedia.org/wiki/RTFM -> Ler a poxxa do manual
STFW -> Search The Fucking Web -> Procurar na poxxa da web
24) Saiba que tipo usar para valores monetários e campos que requerem precisão.
Ou vai sofrer quando quiser saber onde aqueles centavos foram parar.
Exemplo: Bug - Arredondamento de Valores - "Resolvido"
25) Escolha o SGDB correto para você e seu cliente:
Sugestão de leitura. Colabore com a sua dica de leitura para eu colocar no post!
Embora seja a resposta para um tópico específico eu falo sobre o melhor banco de dados em:
26) Não use provedores gratuitos para enviar e-mail.
Usar provedores gratuitos (gmail, yahoo, bol e etc) para enviar e-mail é uma bomba relógio nas suas mãos.
Eles tem limite de envio por hora.
Podem te banir ou cancelar o e-mail se acharem que esta fazendo spam.
Requerem configurações específicas em certas situações. Como liberar acesso a aplicativos menos seguros ou criar senhas para aplicativos.
O fórum está cheio de reclamações sobre não conseguir enviar e-mails por servidores gratuitos.
27) Regra de negócios. Banco de dados ou Scriptcase?
Sugestão de leitura. Colabore com a sua dica de leitura para eu colocar no post!
28) Para recuperar imagem armazenada no banco de dados via Scriptcase numa blank
Sugestão de leitura. Colabore com a sua dica de leitura para eu colocar no post!
29) Guardar imagem no disco ou banco de dados?
Sugestão de leitura. Colabore com a sua dica de leitura para eu colocar no post!
30) Diferença entre onApplicationInit, onScriptInit e onLoad
Sugestão de leitura. Colabore com a sua dica de leitura para eu colocar no post!
31) The requested urls length exceeds the capacity limit for this server.
Isto indica que houve o uso de GET para envio de informações que ultrapassaram a capacidade em bytes suportada.
veja:
32) Posso usar NuSOAP com Scriptcase?
Somente se quiser ter dor de cabeça
Veja: Scriptcase - NuSOAP x extensão nativa SOAP
33) Qual versão do php usar?
Com Zend guard loader
scriptcase 5 -> php 5.2
scritpcase 6 -> php 5.3
scriptase <= 7.0.013 -> php 5.3
scriptcase >= 7.0.014 -> php 5.4
scriptcase 8.0.xxx -> php 5.4
scriptcase 8.1.xxx -> php 5.4 ou php 5.6
Com Source guardian
Scritpcase 9.0.xxx -> php 7.0 para IDE e php 5.6 / php 7.0 para produção
Scritpcase 9.1.xxx -> php 7.0 para IDE e php 5.6 / php 7.0 para produção
Scritpcase 9.2.xxx -> php 7.0 para IDE e php 5.6 / php 7.0 para produção
Scritpcase 9.3.xxx -> php 7.0 para IDE e php 5.6 / php 7.0 para produção
scriptcase 9.4.xxx -> php 7.0 para IDE e php 5.6 / php 7.0 para produção ou
com ioncube php 7.3 para IDE e php 5.6 / 7.0 / 7.1 / 7.2 / 7.3 para produçãoo
scriptcase 9.5.xxx -> php 7.0 para IDE e php 5.6 / php 7.0 para produção ou
com ioncube php 7.3 para IDE e php 5.6 / 7.0 / 7.1 / 7.2 / 7.3 para produção
scriptcase 9.6.xxx -> php 7.0 para IDE e php 5.6 / php 7.0 para produção ou
com ioncube php 7.3 para IDE e php 5.6 / 7.0 / 7.1 / 7.2 / 7.3 para produção
34) Como forçar o uso de HTTPS pela minha aplicação no Scriptcase?
Coloque nos eventos que ocorrem antes da página ser carregada.
Observação: Se estiver usando ISS no lugar o Apache ou Nginx poderá usar a macro sc_site_ssl com redir
35) Porque as máscaras que funcionam na Grid não funcionam no form?
36) Porque a grid não aceita várias máscaras de telefone?
Segundo o manual do Scritpcase a versão 9 agora está aceitando múltiplas máscaras
37) Qual melhor sistema operacional pra instalar aplicativos gerados com Scriptcase?
38) Cálculo errado nos arredondamentos? (campo float)
39) Quais são as diretivas importantes no php.ini para rodar o Scriptcase
max_execution_time = 3600
max_input_time= 3600
max_input_vars = 50000
memory_limit= 1024M
post_max_size = 2048M
upload_max_filesize = 2048M
max_file_uploads = 50
date.timezone = America/Sao_paulo
Observações:
São as configurações mínimas que acho decente para começar a trabalhar bem.
troque o America/Sao_paulo pela sua região.
Também é importante ter o Zend guard loader, Source guardian ou ioncube conforme sua versão do Scritpcase IDE
Os tempos de 3600s são importantes para relatórios grandes ou uploads feitos por clientes com internet lenta.
O uso de memória e tamanho de arquivos no upload devem ser ajustados de acordo com seu hardware e gosto.
Lembro que o post_max_size e upload_max_filesize podem limitar um retorno de backup do Scriptcase.
Exemplo: Seu backup tem 2GB e seu post_max_size e upload_max_filesize limitado a 1GB. Seu restore não vai dar certo. ok?
Não vou explicar aqui o que cada um faz. Tem no manual do PHP
Mas leia pois se o consumo de memória permitido for além do que há no hardware = Servidor travado.
40) Ver memória aplicada, pico de memória e tempo de carregamento da página no Scriptcase
41) Erros ao gerar PDF! Possíveis soluções error 500 e permission denied
a) Certifique-se que a pasta _lib/prod/third/wkhtmltopdf/ suas subpastas e arquivos tenham permissão de execução.
b) https://client.scriptcase.host/knowledgebase.php?action=displayarticle&id=2081&language=portuguese-br
42) Trabalhar com horário GMT no servidor e clientes com seu horário local
43) Quanto cobrar?
Este é uma pergunta séria.
Aconselho ver com seu contador o valor da hora de acordo com sua empresa ou necessidade.
Mas para os indecisos que não sabem por onde começar deixo uma sugestão:
a) http://www.minhahora.entreoutros.com
Esta ferramenta irá te ajudar a ver com outros olhos o cálculo da hora trabalhada.
Se deve usar o valor sugerido por ela? Ai parte de você. Eu uso meu próprio cálculo. Pois ela é bem simples.
Uma leitura sobre o assunto https://engenhariasoftware.wordpress.com/2008/05/28/programadores-sabem-estimar/
44) Aplicações e SGDB no mesmo Servidor
Para pequenas cargas tudo ok.
Grande concorrência de threads, acessos simultâneos, etc.
Além de pedir servidores separados ainda podem exigir um balanceamento de carga no banco e/ou servidor web.
45) Segurança contra invasões e outras ameaças
Proteja seus projetos quando usando Sriptcase instalado com sqlite.
46) Alocação de recursos para servidor versus contrato fechado.
Antes de fechar um contrato ou fazer um orçamento encha com bastante gordura a parte de hardware.
Já vi muitas pessoas começarem cobrando barato para fornecer infra estrutura junto com o Scriptcase.
Ocorre que ao colocar em produção ou com o passar do tempo se veem presos a um preço “x” que o cliente paga e que não cobre mais os gastos com os servidores contratados.
Sendo que o aumento do valor pago somente ocorrerá com a renovação do contratado que pode demorar “n” meses.
Se possível coloque uma cláusula que informe ao cliente que:
Se houver necessidade de aumento do hardware para suportar a demanda da aplicação, espaço em disco, etc, o valor do contrato pode ser renegociado (sofrer um acréscimo) antes do tempo de renovação.
De forma a manter a equidade entre as partes.
Ou sua empresa irá fechar as portas tentando manter a infraestrutura.
Discuta com um advogado a melhor maneira de fazer isto. Ou poderá ter a cláusula invalidada num julgamento.
47) Exemplo de como fazer publicação avançada.
48) Exemplos de instalação manual do Scriptcase
49) Se você possui acesso shell use winscp
50) Mistura de variáveis no Scriptcase afetando aplicações
Se viu erros ou tem sugestões para colocar aqui. Colabore que adiciono com os devidos créditos.
Estas dicas foram licenciadas com uma Licença:
Creative Commons Atribuição-NãoComercial 4.0 Internacional
PS: Sei que é ridículo colocar a CC (Creative commons) aqui, mas se algum dia isto fizer parte de algo quero que reconheçam o tempo gasto dos usuários que enviaram as dicas com estudos e pesquisas. Isto não quer dizer que o conteúdo acima é livre de erros.