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
tags
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!