Engenharia de software

10
E se os globais fizerem sentido?

Eu tenho um valor que muitos objetos precisam. Por exemplo, um aplicativo financeiro com diferentes investimentos como objetos, e a maioria deles precisa da taxa de juros atual. Eu esperava encapsular meu "ambiente financeiro" como um objeto, com a taxa de juros como uma propriedade. Porém,...

10
Como devo encapsular o acesso ao banco de dados?

Quais são alguns exemplos de boas estruturas de classe usadas para gerenciar o acesso ao banco de dados? Sou fã do encapsulamento de classe e preferiria que os contêineres (por exemplo, carro) não executassem tarefas do banco de dados. Eu também gostaria da capacidade de inserir facilmente coisas...

10
HTTPS é suficiente para evitar ataques de repetição?

Estou expondo alguns métodos REST em um servidor para um aplicativo móvel. Gostaria de evitar que os usuários possam farejar como os métodos HTTP são criados (a partir do aplicativo móvel) e enviá-los novamente para o servidor. Exemplo: O aplicativo móvel envia uma solicitação O usuário usa um...

10
Pode-se editar um módulo Python embutido?

Atualmente, estou aprendendo Python e estou no ponto do livro sobre o uso da biblioteca de matemática. Eu olhei no site do Python e notei que a biblioteca era um pouco escassa e estou escrevendo algumas funções mais úteis. Por exemplo, fui adiante e escrevi uma função para obter coeficientes e...

10
Como lidar com a filosofia de reutilização de código?

Sempre me pego pensando na reutilização de código ao iniciar um novo projeto. Até que ponto devo tornar meu código reutilizável? Devo limitá-lo ao escopo do aplicativo ou torná-lo reutilizável fora do projeto? Às vezes, sinto que a reutilização do código pode atrapalhar um design simples. Por...

10
Métodos para testar um aplicativo muito grande

Eu tenho um aplicativo PHP que é muito grande. Geralmente, existem 2-3 desenvolvedores trabalhando nisso em período integral e estamos chegando ao ponto em que estamos fazendo alterações e criando bugs (recursos de tosse!). O software não é complexo, por exemplo, há muita coisa acontecendo (35 ~...

10
TDD: zombando de objetos fortemente acoplados

Às vezes, os objetos só precisam ser bem acoplados. Por exemplo, uma CsvFileclasse provavelmente precisará trabalhar estreitamente com a CsvRecordclasse (ou ICsvRecordinterface). No entanto, pelo que aprendi no passado, um dos principais princípios do desenvolvimento orientado a testes é "Nunca...

10
Executando o software como serviço usando o programa GPL (v2 +) não modificado como uma dependência principal: o código-fonte SaaS deve ser liberado?

Estou criando um projeto de software como serviço, que só será acessado on-line. Eu posso ter uma forte dependência de um executável coberto pelo GNU GPL (v2 ou posterior). Entendo que meu código, para distribuí-lo, também deve ser distribuído sob os termos da GPL. Tenho certeza de que executar o...