Engenharia de software

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

6
Valores padrão - eles são bons ou maus?
A pergunta sobre valores padrão em geral - valores de função de retorno padrão, valores de parâmetro padrão, lógica padrão para quando algo está faltando, lógica padrão para tratamento de exceções, lógica padrão para tratamento de condições de borda etc. Por um longo tempo, considerei os valores padrão uma coisa …

2
Por que a classe base precisa ter um destruidor virtual aqui se a classe derivada não aloca memória dinâmica bruta?
O código a seguir causa um vazamento de memória: #include <iostream> #include <memory> #include <vector> using namespace std; class base { void virtual initialize_vector() = 0; }; class derived : public base { private: vector<int> vec; public: derived() { initialize_vector(); } void initialize_vector() { for (int i = 0; i …




1
Usando classes de amigos para encapsular funções privadas de membros em C ++ - boas práticas ou abuso?
Então notei que é possível evitar colocar funções privadas nos cabeçalhos, fazendo algo assim: // In file pred_list.h: class PredicateList { int somePrivateField; friend class PredicateList_HelperFunctions; public: bool match(); } // In file pred_list.cpp: class PredicateList_HelperFunctions { static bool fullMatch(PredicateList& p) { return p.somePrivateField == 5; // or whatever } …

6
O DDD atende ao OOP: como implementar um repositório orientado a objetos?
Uma implementação típica de um repositório DDD não parece muito OO, por exemplo, um save()método: package com.example.domain; public class Product { /* public attributes for brevity */ public String name; public Double price; } public interface ProductRepo { void save(Product product); } Parte da infraestrutura: package com.example.infrastructure; // imports... public …


4
Como fazer melhores análises de código quando as solicitações pull são grandes?
Isenção de responsabilidade: existem algumas perguntas semelhantes, mas não encontrei nenhuma que abordasse especificamente os problemas que você enfrenta ao analisar uma grande solicitação de recebimento. Problema Eu sinto que minhas revisões de código poderiam ser feitas de uma maneira melhor. Estou falando particularmente de grandes revisões de código com …



5
Faz sentido definir uma interface se eu já tiver uma classe abstrata?
Eu tenho uma classe com algumas funcionalidades padrão / compartilhadas. Eu uso abstract classpara isso: public interface ITypeNameMapper { string Map(TypeDefinition typeDefinition); } public abstract class TypeNameMapper : ITypeNameMapper { public virtual string Map(TypeDefinition typeDefinition) { if (typeDefinition is ClassDefinition classDefinition) { return Map(classDefinition); } ... throw new ArgumentOutOfRangeException(nameof(typeDefinition)); } …

4
struct com valor padrão sem sentido
No meu sistema eu freqüentemente operar com códigos de aeroporto ( "YYZ", "LAX", "SFO", etc.), eles estão sempre no mesmo formato exato (3 letras, representado como maiúsculas). O sistema normalmente lida com 25 a 50 desses códigos (diferentes) por solicitação da API, com mais de mil alocações no total, eles …



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.