🕵️ SicherheitslückenWeb Application Firewall Rule Bypass in Jetpack WAF Runtime(17.09.2026 um 16:34 Uhr)
🕵️ SicherheitslückenCross-Site Request Forgery in WooCommerce Product and Term Ordering(17.09.2026 um 16:34 Uhr)
🕵️ SicherheitslückenUnescaped Output in Enable Media Replace Error View(17.09.2026 um 16:34 Uhr)
🕵️ SicherheitslückenStored Cross-Site Scripting in WooCommerce Order Notes REST API v4(17.09.2026 um 16:34 Uhr)
🕵️ SicherheitslückenUnescaped Attribute Output in Enable Media Replace Upsell View(17.09.2026 um 16:34 Uhr)
🕵️ SicherheitslückenWeb Application Firewall Rule Bypass in Jetpack WAF Runtime(17.09.2026 um 16:34 Uhr)
🕵️ SicherheitslückenCross-Site Request Forgery in WooCommerce Product and Term Ordering(17.09.2026 um 16:34 Uhr)
🕵️ SicherheitslückenUnescaped Output in Enable Media Replace Error View(17.09.2026 um 16:34 Uhr)
🕵️ SicherheitslückenStored Cross-Site Scripting in WooCommerce Order Notes REST API v4(17.09.2026 um 16:34 Uhr)
🕵️ SicherheitslückenUnescaped Attribute Output in Enable Media Replace Upsell View(17.09.2026 um 16:34 Uhr)
🔧 Programmierung 🕛 vor 1 Jahr 4 Min Lesezeit
0

Las sugerencIAs de código consideradas dañinas

↗ Quelle (dev.to)
🗣️ Stimme:
📺
dev.to

Recientemente estaba impartiendo clases y puse un ejemplo sobre una clase Poligono.




CODE
public class Poligon {
public Poligon()
{
this._points = new List<Point>( 3 );
}

public void Add(Point p)
{
this._points.Add( p );
}

public int Count => this._points.Count;

public Point this[int i] {
get {
if ( i < 0
|| i >= this.Count )
{
throw new IndexOutOfRangeException( "" + i );
}

return this._points[ i ];
}
}

public override string ToString() => String.Join( ", ", this._points );

private readonly IList<Point> _points;
}






En clases utilizo Rider, ya que es una solución multiplataforma, y resulta que... bueno, como ya todo en esta vida, y cuando digo todo, me refiero a que probablemente vas a utilizar. Supongo que la idea es que 1) vayas más rápido programando, y 2) puedas confiar en código que no tiene errores.



¿No? Pues va a ser que no.



Resulta que, para , decidí crear una propiedad Points, que devolvería una colección con todos los puntos del polígono. Así que escribo public IList<Point> ... y lo que me sugiere la IA es:




CODE
public IList<Point> Points => this._points;






Venga ya.



Tengo que reconocer que fue una forma de reforzar aún más este tema. Reirse de la IA suele ser una buena forma de hacerlo: si vas a devolver una colección encapsulada dentro de una clase, entonces la clase no sirve para nada.



Otra forma de entenderlo es que si realmente pulsáramos el tabulador para aceptar este código, habríamos abierto una puerta de dos hojas al contenido de la clase, mientras que el objetivo central de cualquier clase es que solo se pueda acceder a lo que la interfaz (la colección de miembros públicos), permita.



O dicho de otra forma, a partir de este código:




CODE
var p0 = new Point{ X = 11, Y = 12 };
var p1 = new Point{ X = 21, Y = 42 };
var p2 = new Point{ X = 19, Y = 39 };

var p = new Poligon();
p.Add( p0 );
p.Add( p1 );
p.Add( p2 );

Console.WriteLine( p ); // (11, 12), (21, 42), (19, 39)






...podríamos llegar a esto:




CODE
var p0 = new Point{ X = 11, Y = 12 };
var p1 = new Point{ X = 21, Y = 42 };
var p2 = new Point{ X = 19, Y = 39 };

var p = new Poligon();
p.Add( p0 );
p.Add( p1 );
p.Add( p2 );

p.Points.Clear();
p.Points.Add( 111, 111 );

Console.WriteLine( p ); // (111, 111)






...código que no tiene sentido, dado que la única forma de modificar la colección que hemos diseñado solo acepta Add(p: Point) como manera de modificar la colección.



La forma correcta de crear la propiedad Points es una de las siguientes:




CODE
public IList<Point> Points => this._points.AsReadOnly();
public IReadOnlyList<Point> Points => this._points.AsReadOnly();
public IList<Point> Points => new List<Point>( this._points
p.);






El primero devuelve lo que es aparentemente una lista normal, pero cualquier llamada a un método que la modifique (Add(), Clear()...), produce una excepción.



El segundo devuelve una lista de solo lectura, de forma que los métodos que la modifican han desaparecido.



La tercera es la más categórica: crea una nueva lista (es decir, duplica el contenido en memoria), de forma que cualquier modificación que se haga sobre ella... se perderá... .



Lo mejor es que, aunque desactives el plugin, sigue sugiriendo código. En fin...

Vollständiger Original-Artikel
Den kompletten Beitrag mit allen Details direkt auf dev.to lesen.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
1 Quelle
Bolt.new launches Forge to widen who gets to build with AI
1 Quelle
Common Pitfalls in RAG Applications: What to Avoid When Using Vector Search and Embeddings
1 Quelle
Turn Your Android Phone Into a Local Development Server With Termux
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Las sugerencIAs de código consideradas dañinas

Thematisch verwandte Begriffe: sugerencIAs, código, consideradas, dañinas · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...