slogan3

Verbeter mijn programmeerervaring met Cursor

description

Met deze prompt krijg je gepersonaliseerde adviezen om Cursor effectiever in te zetten, waardoor je sneller code kunt schrijven en minder fouten maakt. Dit lost algemene productiviteitsproblemen op en biedt praktische oplossingen specifiek voor jouw situatie, wat beter is dan standaard handleidingen of algemene tips.

prompt

Help me om mijn code sneller en nauwkeuriger te schrijven met behulp van Cursor. Mijn programmeertaal: <voer je programmeertaal in>. Specifieke f ...

try_prompt

generate_helper
disclaimerOnPageApi

ai_answers

provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier zijn enkele tips en voorbeelden om je code sneller, nauwkeuriger en herbruikbaarder te maken met behulp van cursors in Python, vooral als je bijvoorbeeld met databases werkt: 1. Gebruik contextmanagers voor cursors Door `with` te gebruiken, zorg je ervoor dat cursors automatisch worden gesloten, wat je code betrouwbaarder maakt. ```python import sqlite3 with sqlite3.connect('mijn_database.db') as conn: with conn.cursor() as cursor: cursor.execute("SELECT * FROM mijn_tabel") resultaten = cursor.fetchall() ``` *(Let op: in standaard sqlite3 is er geen ingebouwde contextmanager voor cursors, dus je kunt zelf een helper maken.)* 2. Maak herbruikbare functies voor database-operaties Door functies te schrijven die een cursor en query parameters accepteren, kun je je code modulariseren. ```python def voer_query_uit(db_path, query, params=None): with sqlite3.connect(db_path) as conn: cursor = conn.cursor() if params: cursor.execute(query, params) else: cursor.execute(query) return cursor.fetchall() ``` Gebruik deze functie telkens weer voor verschillende queries. 3. Gebruik parameter binding Voorkom SQL-injecties en vergemakkelijk herbruikbaarheid door parameters te gebruiken. ```python query = "INSERT INTO mijn_tabel (naam, leeftijd) VALUES (?, ?)" params = ('Jan', 30) voer_query_uit('mijn_database.db', query, params) ``` 4. Herbruikbare functies voor veelvoorkomende taken Maak generieke functies voor veelgebruikte operaties zoals invoegen, bijwerken en verwijderen. ```python def voeg_toe(db_path, tabel, kolommen, waarden): kolommen_str = ', '.join(kolommen) placeholders = ', '.join(['?'] * len(waarden)) query = f"INSERT INTO {tabel} ({kolommen_str}) VALUES ({placeholders})" return voer_query_uit(db_path, query, waarden) ``` 5. Optimaliseer je workflow - Scheid data-acquisitie, verwerking en opslag in aparte functies. - Gebruik duidelijke namen en documenteer je functies. - Test je functies met verschillende inputs om betrouwbaarheid te vergroten. 6. Voorbeeld van een herbruikbare cursor-functie met contextmanager Omdat standaard cursors geen contextmanager zijn, kun je zelf een maken: ```python from contextlib import contextmanager @contextmanager def get_cursor(db_path): conn = sqlite3.connect(db_path) cursor = conn.cursor() try: yield cursor conn.commit() finally: conn.close() # Gebruik: with get_cursor('mijn_database.db') as cursor: cursor.execute("SELECT * FROM mijn_tabel") resultaten = cursor.fetchall() ``` Door deze aanpak te gebruiken, minimaliseer je herhaling en verbeter je de onderhoudbaarheid van je code. Heeft u specifieke functies of problemen waar u hulp bij nodig heeft?
provider: deepseek
model: deepseek-chat
Zeker! Hier zijn praktische tips en aanpassingen om je Python-code sneller en nauwkeuriger te maken met Cursor, specifiek gericht op herbruikbare functies: ## 1. **Cursor's AI-assistentie voor functie-optimalisatie** - Gebruik `Ctrl+K` voor context-specifieke suggesties - `Ctrl+L` laat Cursor je bestaande code analyseren en verbeteren ## 2. **Patronen voor herbruikbare functies** ```python # VOOR: Niet-herbruikbare functie def bereken_som(getallen): totaal = 0 for num in getallen: totaal += num return totaal # NA: Meer herbruikbaar met parameters en type hints from typing import List, Union def bereken_som(getallen: List[Union[int, float]], startwaarde: int = 0) -> Union[int, float]: """ Bereken de som van een lijst met getallen. Args: getallen: Lijst met integers of floats startwaarde: Beginwaarde voor de som (standaard 0) Returns: De som van alle getallen """ return sum(getallen, startwaarde) ``` ## 3. **Gebruik decorators voor herbruikbare functionaliteit** ```python from functools import wraps import time def timing_decorator(func): """Decorator om uitvoeringstijd te meten""" @wraps(func) def wrapper(*args, **kwargs): start = time.time() result = func(*args, **kwargs) end = time.time() print(f"{func.__name__} duurde {end-start:.4f} seconden") return result return wrapper @timing_decorator def mijn_trage_functie(): # je code hier pass ``` ## 4. **Maak gebruik van Cursor's code generation** Prompt voor Cursor: *"Genereer een herbruikbare data validation functie met type checking en custom exceptions"* ## 5. **Creëer utility modules** ```python # utils/validatie.py def valideer_email(email: str) -> bool: """Valideer email formaat""" import re pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$' return bool(re.match(pattern, email)) # utils/bestandswerk.py def lees_bestand_veilig(bestandspad: str) -> str: """Veilig een bestand lezen met error handling""" try: with open(bestandspad, 'r', encoding='utf-8') as f: return f.read() except FileNotFoundError: raise ValueError(f"Bestand niet gevonden: {bestandspad}") ``` ## 6. **Cursor shortcuts voor workflow** - `Ctrl+I`: Genereer code op basis van comments - `Ctrl+Shift+R`: Refactor code met AI-suggesties - Gebruik de chat-functie voor specifieke vragen over je codebase ## 7. **Test je herbruikbare functies** ```python # test_utils.py import pytest from utils.validatie import valideer_email def test_valideer_email(): assert valideer_email("test@example.com") == True assert valideer_email("ongeldig") == False ``` ## **Aanbevolen Cursor-instellingen:** - Zet "Auto-completion" aan - Gebruik "Inline Suggestions" - Stel in op Python-specifieke optimalisaties Start met het refactoren van je meest gebruikte code naar aparte utility modules en gebruik Cursor's AI om consistente parameterlijsten en documentatie te genereren!