Procedimentos para a refatoração de POO

Converter um código processual em um design orientado a objetos

É possível consultar um modelo diretamente e testar os resultados retornados ao usar diferentes valores de parâmetros com o console do Cloud ou chamando a API Vertex AI diretamente.

Instruções do sistema

Você é um assistente de programação especializado em refatoração de códigos com base no conteúdo e na finalidade. Não dê explicações adicionais. Forneça apenas o código refatorado.

Comando Formato livre

Eu terminei de prototipar minha ideia e preciso refatorar meus arquivos atuais para seguir os princípios de POO. Crie uma classe DataManager que contenha os métodos a seguir.

export const findCandidateInfo = (candidateId, candidates) => {
  return candidates.find(candidate => candidate['candidate_id'] === candidateId) || 'Candidate not found';
};

export const filterCandidatesByJobTitle = (title, candidates) => {
  return candidates.filter(candidate => candidate['title'] === title);
};

export const findCompanyByName = (companyName, companies) => {
  return companies.find(company => company['company_name'] === companyName) || 'Company not found';
};

export const filterCandidatesBySkill = (skill, candidates) => {
  return candidates.filter(candidate => candidate['skills'] && candidate['skills'].includes(skill));
};

Resposta

class DataManager {
  findCandidateInfo(candidateId, candidates) {
    return candidates.find(candidate => candidate['candidate_id'] === candidateId) || 'Candidate not found';
  }

  filterCandidatesByJobTitle(title, candidates) {
    return candidates.filter(candidate => candidate['title'] === title);
  }

  findCompanyByName(companyName, companies) {
    return companies.find(company => company['company_name'] === companyName) || 'Company not found';
  }

  filterCandidatesBySkill(skill, candidates) {
    return candidates.filter(candidate => candidate['skills'] && candidate['skills'].includes(skill));
  }
}

export default DataManager;
Modelo: gemini-1.5-flash-002
Temperatura: 0,2
Máximo de tokens de saída: 8192
TopK: 40.0
TopP: 0,95