Engenharia de software

Perguntas e respostas para profissionais, acadêmicos e estudantes que trabalham no ciclo de vida de desenvolvimento de sistemas


2
Tarefas de desenvolvimento compartilhadas para histórias de usuários ágeis
Minha equipe usará o Visual Studio Team Services para um próximo projeto. As ferramentas Agile permitem organizar hierarquicamente histórias e tarefas do usuário da seguinte maneira: Epic> Feature> História do usuário> Task / Bug Digamos que estou projetando um sistema de gerenciamento da organização estudantil (clube) para estudantes e conselheiros …

4
Verificando o resultado de um construtor em C #
Estou trabalhando em uma base de código com um colega de trabalho que tem o hábito de verificar os resultados de um construtor por um nulo de maneira semelhante a esta Person p = new Person(); if (p != null) { p.Name = "John Smith"; } Meu entendimento do cenário …

2
Prática recomendada para informações confidenciais no controle de origem
Sei que este tópico foi abordado bastante, mas não consigo encontrar uma resposta para minha situação específica. Atualmente, estou usando .gitignorepara excluir conteúdo confidencial e mantê-lo (arquivos de configuração, etc.) separadamente. À medida que minha base de código se expande para mais e mais projetos, isso está se tornando bastante …
8 git  security 

2
Zero construtores de argumento e entidades Always Valid
Recentemente, li muito sobre entidades de domínio Always Valid. Eu acredito que, para garantir que as entidades sejam sempre válidas, preciso: 1) Remova a obsessão primitiva e coloque regras de validação / domínio nos construtores de objetos de valor, conforme explicado aqui: https://enterprisecraftsmanship.com/2016/09/13/validation-and-ddd/ . 2) Coloque regras de validação / …



5
Projetando API RESTful baseada em função
Por favor, acerte uma discussão entre mim e um amigo. No momento, estamos projetando uma API do produto. Nossa entidade de produto se parece com isso { "Id": "", "ProductName": "", "StockQuantity": 0 } As vendas dos produtos são realizadas por terceiros e são obrigadas a nos informar a quantidade …


4
Quando escrever métodos de extensão para suas próprias classes?
Eu vi recentemente uma base de código que tinha uma classe de dados Addressdefinida em algum lugar e depois em um lugar diferente: fun Address.toAnschrift() = let { address -> Anschrift().apply { // mapping code here... } } Achei confuso não ter esse método no endereço diretamente. Existem padrões estabelecidos …
8 c#  design 

2
Princípio de substituição de Liskov: Se o subtipo possui algum comportamento extra implementado, que não está presente no tipo, então esta violação do LSP?
Na minha busca por escrever um código melhor e mais limpo, estou aprendendo sobre os princípios do SOLID. Nisso, o LSP está se mostrando pouco difícil de entender adequadamente. Minha dúvida é: se eu tiver alguns métodos extras no meu subtipo, S, que não existiam no tipo, T, isso sempre …


2
Qual é a diferença entre um Mixin e um Trait?
Pelo que posso dizer de Scala e Hack- Mixins: Pode ter estado (por exemplo, propriedades da instância) Só pode fornecer métodos concretos Pode ter construtores, chamados na mesma ordem em que suas classes foram misturadas Se Amisturar Be C, A instanceof B == falseeA instanceof C == false Traços: Só …

7
Prática recomendada para "continuar" de dentro de um loop aninhado?
Aqui está uma amostra simplificada. Basicamente, ele verifica uma string de uma lista de strings. Se a verificação for aprovada, ela removerá a string ( filterStringOut(i);) e não será mais necessário continuar com outras verificações. Assim, continuepara a próxima string. void ParsingTools::filterStrings(QStringList &sl) { /* Filter string list */ QString …

2
"Muitos parâmetros" é um problema visual ou lógico?
de acordo com Existem diretrizes sobre quantos parâmetros uma função deve aceitar? , um método não deve ter muitos parâmetros. No entanto, algumas respostas sugerem que esse problema pode ser resolvido pelo padrão do construtor: Builder b=new Builder(); b.setParm1("a"); b.setParm2("b"); . . . Obj obj=b.createObj(); ou encapsular parâmetros em um …

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.