slogan3

Ontwerp een aangepaste code generator op basis van mijn specificaties

description

Met deze prompt kun je een op maat gemaakte code generator ontwikkelen die specifiek is afgestemd op jouw behoeften, waardoor je repetitieve programmeertaken automatiseert en de productiviteit verhoogt. Het helpt je ook om inzicht te krijgen in de architectuur en implementatie van dergelijke tools, wat uniek is vergeleken met bestaande prompts die zich richten op debugging of optimalisatie.

prompt

Help me een op maat gemaakte code generator te ontwerpen die automatisch code genereert volgens mijn specificaties. Mijn specificaties zijn: <beschrijf j ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een overzicht van een op maat gemaakte codegenerator die automatisch code genereert op basis van jouw specificaties. **Architectuur:** 1. **Inputverwerking:** Ontvangt specificaties in JSON-formaat met className, attributes en methods. 2. **Codegeneratie Engine:** Een module die op basis van de input een class-definitie in Python aanmaakt. 3. **Output:** Genereerde Python-code wordt als string teruggegeven, klaar voor gebruik of opslaan. **Gebruikte technologieën:** - Python (voor de implementatie) - JSON (voor input specificaties) - Stringverwerking en formatting voor codegeneratie --- ### Voorbeeldimplementatie in Python: ```python import json def genereer_code(specificaties): class_name = specificaties['className'] attributes = specificaties['attributes'] methods = specificaties['methods'] # Begin van de class code = f"class {class_name}:\n" # Constructor genereren code += " def __init__(self" for attr in attributes: code += f", {attr}=None" code += "):\n" for attr in attributes: code += f" self.{attr} = {attr}\n" code += "\n" # Method(en) toevoegen for method in methods: if method == "groet": code += f" def {method}(self):\n" # Voorbeeld van een standaard groet code += f" print(f\"Hallo, mijn naam is {{self.naam}} en ik ben {{self.leeftijd}} jaar oud.\")\n\n" else: # Optioneel: generiek voor andere methodes code += f" def {method}(self):\n" code += " pass\n\n" return code # Voorbeeld gebruik: specificaties_json = ''' { "className": "Persoon", "attributes": ["naam", "leeftijd"], "methods": ["groet"] } ''' specificaties = json.loads(specificaties_json) gegenereerde_code = genereer_code(specificaties) print(gegenereerde_code) ``` **Uitleg:** - De functie `genereer_code()` neemt een dictionary met specificaties. - De class wordt opgebouwd met een constructor die de attributen initialiseerd. - Voor elke methode wordt een standaard implementatie gegenereerd, bijvoorbeeld de `groet()` methode. - Het resultaat is een string met de volledige class-definitie in Python. --- **Gebruik:** Je kunt deze code aanpassen om meer methodes, andere talen of complexere logica toe te voegen, afhankelijk van jouw wensen. Voor uitgebreide functionaliteit kun je ook gebruik maken van code templating libraries zoals Jinja2.
provider: deepseek
model: deepseek-chat
Zeker, ik help je een op maat gemaakte code generator te ontwerpen. Hier is een complete oplossing: ## Architectuur **Drie-laags architectuur:** 1. **Input Laag**: Verwerkt JSON-specificaties en valideert de structuur 2. **Template Laag**: Bevat sjablonen voor klassen, attributen en methodes 3. **Generator Laag**: Combineert input met templates om code te genereren ## Gebruikte Technologieën - **Python 3.x** (hoofdprogrammeertaal) - **Jinja2** (templating engine voor flexibele codegeneratie) - **JSON** (voor specificatieformaat) - **Built-in string formatting** (alternatief voor templates) ## Voorbeeldimplementatie ```python import json from typing import Dict, Any class CodeGenerator: def __init__(self): self.templates = { 'class': ( "class {class_name}:\n" " def __init__(self, {init_params}):\n" " {init_body}\n\n" " {methods}\n" ), 'method': ( " def {method_name}(self{method_params}):\n" " {method_body}\n" ) } def generate_code(self, spec: Dict[str, Any]) -> str: """Genereert Python code op basis van specificaties""" # Valideer specificaties if not all(key in spec for key in ['className', 'attributes', 'methods']): raise ValueError("Ongeldige specificatiestructuur") # Genereer __init__ parameters en body init_params = ', '.join([f"{attr}=None" for attr in spec['attributes']]) init_body = '\n '.join([f"self.{attr} = {attr}" for attr in spec['attributes']]) # Genereer methodes methods_code = [] for method in spec['methods']: method_template = self.templates['method'] method_body = self._get_method_body(method) method_code = method_template.format( method_name=method, method_params="", method_body=method_body ) methods_code.append(method_code) methods = '\n\n'.join(methods_code) # Genereer complete klasse class_code = self.templates['class'].format( class_name=spec['className'], init_params=init_params, init_body=init_body, methods=methods ) return class_code def _get_method_body(self, method_name: str) -> str: """Retourneert method body op basis van methodenaam""" method_bodies = { 'groet': 'return f"Hallo, mijn naam is {self.naam} en ik ben {self.leeftijd} jaar oud."', # Voeg hier meer method bodies toe voor andere methodes } return method_bodies.get(method_name, 'pass') # Gebruik van de code generator if __name__ == "__main__": # Jouw specificaties specificaties = { "className": "Persoon", "attributes": ["naam", "leeftijd"], "methods": ["groet"] } # Genereer code generator = CodeGenerator() gegenereerde_code = generator.generate_code(specificaties) print("Gegenereerde Python code:") print("=" * 50) print(gegenereerde_code) # Optioneel: opslaan naar bestand with open("Persoon.py", "w", encoding="utf-8") as f: f.write(gegenereerde_code) ``` ## Uitvoer De gegenereerde code ziet er als volgt uit: ```python class Persoon: def __init__(self, naam=None, leeftijd=None): self.naam = naam self.leeftijd = leeftijd def groet(self): return f"Hallo, mijn naam is {self.naam} en ik ben {self.leeftijd} jaar oud." ``` ## Uitbreidingsmogelijkheden 1. **Meer templates**: Voeg ondersteuning toe voor andere programmeertalen 2. **Validatie**: Uitgebreidere validatie van input specificaties 3. **Configuratie**: Laat gebruikers templates aanpassen via configuratiebestanden 4. **Import statements**: Automatisch genereren van benodigde imports 5. **Documentatie**: Auto-generatie van docstrings Deze architectuur is schaalbaar en kan eenvoudig worden uitgebreid met nieuwe functies en ondersteuning voor extra programmeertalen.