Supongamos que tengo un segmento de código para conectarme a internet y mostrar resultados de conexión como este:
HttpRequest* httpRequest=new HttpRequest();
httpRequest->setUrl("(some domain .com)");
httpRequest->setRequestType(HttpRequest::Type::POST);
httpRequest->setRequestData("(something like name=?&age=30&...)");
httpRequest->setResponseCallback([=](HttpClient* client, HttpResponse* response){
string responseString=response->getResponseDataString();
if(response->getErrorCode()!=200){
if(response->getErrorCode()==404){
Alert* alert=new Alert();
alert->setFontSize(30);
alert->setFontColor(255,255,255);
alert->setPosition(Screen.MIDDLE);
alert->show("Connection Error","Not Found");
}else if((some other different cases)){
(some other alert)
}else
Alert* alert=new Alert();
alert->setFontSize(30);
alert->setPosition(Screen.MIDDLE);
alert->setFontColor(255,255,255);
alert->show("Connection Error","unknown error");
}
}else{
(other handle methods depend on different URL)
}
}
el código es largo y se usa comúnmente, pero el código anterior no requiere elementos adicionales como la función personalizada y la clase (HttpRequest y Alert se proporcionan de forma predeterminada por el marco), y aunque el segmento de código es largo, es sencillo y no complejo (es largo solo porque hay paquetes de configuraciones como url, tamaño de fuente ...), y el segmento de código tiene pequeñas variaciones entre clases (por ejemplo: url, datos de solicitud, casos de manejo de código de error, manejo normal casos...)
Mi pregunta es, ¿es aceptable copiar y pegar código largo pero directo en lugar de envolverlos en una función para reducir la dependencia del código?

Alertobjetos?) Ahora imagine que tiene que encontrar cada instancia copiada de este código para corregir el error. Ahora imagine que no es usted quien tiene que hacerlo, sino un asesino de hachas loco que sabe que usted fue quien creó todas estas copias en primer lugar.