2026-06-17, 14:46
  #1573
Medlem
Citat:
Ursprungligen postat av Cyborg2030
Men om man betraktar hur det här snabbt det här utvecklas lutar det ju åt att vi har nästan felfria AI-agenter om 1-2 år.
Det har ju nästan stått stilla i över ett år, vad som blivit bättre är verktygen runt om men det är fortfarande deklarativ kod (hårdkodad funktionalitet)

Visa något test som kan kontrollera coupling. Coupling är alla programmerares värsta motståndare och en kamp alla utvecklare hela tiden måste kämpa mot. Man kan inte vinna men man kan hålla den under kontroll.

coupling = https://en.wikipedia.org/wiki/Coupling_(computer_programming))

Det är många andra saker att tänka på när kod skrivs för att få bra arkitektur, copuling är dock den viktigaste
__________________
Senast redigerad av -dev 2026-06-17 kl. 14:51.
Citera
2026-06-17, 15:15
  #1574
Medlem
Cyborg2030s avatar
Citat:
Ursprungligen postat av -dev
Det har ju nästan stått stilla i över ett år, vad som blivit bättre är verktygen runt om men det är fortfarande deklarativ kod (hårdkodad funktionalitet)
Det har inte stått stilla. Mythos är ca 25% bättre på programmering än Opus 4.8.
Citat:
Ursprungligen postat av -dev
Visa något test som kan kontrollera coupling. Coupling är alla programmerares värsta motståndare och en kamp alla utvecklare hela tiden måste kämpa mot. Man kan inte vinna men man kan hålla den under kontroll.

coupling = https://en.wikipedia.org/wiki/Coupling_(computer_programming))

Det är många andra saker att tänka på när kod skrivs för att få bra arkitektur, copuling är dock den viktigaste
Kan du inte bara skriva det i din prompt? Vad händer? Den förstår inte vad du menar eller vad tror du händer?

Jag frågade Opus 4.8 och fick ett bra svar:
The classic move is dependency inversion: have a class depend on an abstraction it owns, not on a concrete implementation it reaches out and grabs. Here's a before/after that shows the difference clearly.
Varför tror du att detta är rocket science? Det är det ju inte.

Det här förstår väl alla som har programmerat i några år och alla stora AI-modeller förstår det också.

Däremot får du ju inte alltid proffessionel och komplett kod från alla prompter alla gånger. Därför är det viktigt att man är tydlig med vilken typ av kod man förväntar sig.

Kod:
public interface IOrderRepository
{
    void Save(Order order);
}

public interface INotificationSender
{
    void Notify(string recipient, string message);
}

public class OrderService
{
    private readonly IOrderRepository _repo;
    private readonly INotificationSender _notifier;

    public OrderService(IOrderRepository repo, INotificationSender notifier)
    {
        _repo = repo;
        _notifier = notifier;
    }

    public void PlaceOrder(Order order)
    {
        _repo.Save(order);
        _notifier.Notify(order.CustomerEmail, "Order confirmed");
    }
}
Kod:
services.AddScoped<IOrderRepository, SqlOrderRepository>();
services.AddScoped<INotificationSender, SmtpNotificationSender>();
services.AddScoped<OrderService>();
Citera
2026-06-17, 15:26
  #1575
Medlem
BeneathTheSurfaces avatar
Citat:
Ursprungligen postat av Cyborg2030
Det har inte stått stilla. Mythos är ca 25% bättre på programmering än Opus 4.8.

Kan du inte bara skriva det i din prompt? Vad händer? Den förstår inte vad du menar eller vad tror du händer?

Jag frågade Opus 4.8 och fick ett bra svar:
The classic move is dependency inversion: have a class depend on an abstraction it owns, not on a concrete implementation it reaches out and grabs. Here's a before/after that shows the difference clearly.
Varför tror du att detta är rocket science? Det är det ju inte.

Det här förstår väl alla som har programmerat i några år och alla stora AI-modeller förstår det också.

Däremot får du ju inte alltid proffessionel och komplett kod från alla prompter alla gånger. Därför är det viktigt att man är tydlig med vilken typ av kod man förväntar sig.

Kod:
public interface IOrderRepository
{
    void Save(Order order);
}

public interface INotificationSender
{
    void Notify(string recipient, string message);
}

public class OrderService
{
    private readonly IOrderRepository _repo;
    private readonly INotificationSender _notifier;

    public OrderService(IOrderRepository repo, INotificationSender notifier)
    {
        _repo = repo;
        _notifier = notifier;
    }

    public void PlaceOrder(Order order)
    {
        _repo.Save(order);
        _notifier.Notify(order.CustomerEmail, "Order confirmed");
    }
}
Kod:
services.AddScoped<IOrderRepository, SqlOrderRepository>();
services.AddScoped<INotificationSender, SmtpNotificationSender>();
services.AddScoped<OrderService>();

Kunde du inte lika gärna frågat om ett exempel i Visual Basic när du ändå ska demonstrera noob kod? Det löjligaste C# exempel man kan tänka sig som om det skulle påvisa något?
Citera
2026-06-17, 15:31
  #1576
Medlem
Citat:
Ursprungligen postat av Cyborg2030
Kod:
public interface IOrderRepository
{
    void Save(Order order);
}

public interface INotificationSender
{
    void Notify(string recipient, string message);
}

public class OrderService
{
    private readonly IOrderRepository _repo;
    private readonly INotificationSender _notifier;

    public OrderService(IOrderRepository repo, INotificationSender notifier)
    {
        _repo = repo;
        _notifier = notifier;
    }

    public void PlaceOrder(Order order)
    {
        _repo.Save(order);
        _notifier.Notify(order.CustomerEmail, "Order confirmed");
    }
}
Kod:
services.AddScoped<IOrderRepository, SqlOrderRepository>();
services.AddScoped<INotificationSender, SmtpNotificationSender>();
services.AddScoped<OrderService>();
Och vad är det för problem med den koden, kan du se det?

Koden är hårdkodad mot en tabell eller ett tabellområde i databasen. Låt säga att du har en databas med 500 tabeller. Hur många objekt kommer du ha för att hantera alla med nära nog identisk logik
Citera
2026-06-17, 15:43
  #1577
Medlem
Cyborg2030s avatar
Citat:
Ursprungligen postat av BeneathTheSurface
Kunde du inte lika gärna frågat om ett exempel i Visual Basic när du ändå ska demonstrera noob kod? Det löjligaste C# exempel man kan tänka sig som om det skulle påvisa något?
Det var ett bra exempel på decoupling. Att du inte gillar C# har ju inte med saken att göra.
Citera
2026-06-17, 15:43
  #1578
Medlem
Cyborg2030s avatar
Citat:
Ursprungligen postat av -dev
Och vad är det för problem med den koden, kan du se det?

Koden är hårdkodad mot en tabell eller ett tabellområde i databasen. Låt säga att du har en databas med 500 tabeller. Hur många objekt kommer du ha för att hantera alla med nära nog identisk logik
Du förstår inte konceptet med ett exempel? Det är absolut inget fel med exemplet om du har 15 tabeller som behöver lite olika repositorylogik. Jag skrev inte i prompten att koden skulle ta hänsyn till att du har 500 tabeller. Detta verkar vara ditt problem med AI: du har orimliga krav som förutsätter telepati. Så bra är den inte än.

Sen om ni har 500 tabeller då har du värre problem. Varför har ni det? Jag misstänker att den designen är mycket äldre än LLMs
__________________
Senast redigerad av Cyborg2030 2026-06-17 kl. 15:47.
Citera
2026-06-17, 15:48
  #1579
Medlem
BeneathTheSurfaces avatar
Citat:
Ursprungligen postat av Cyborg2030
Det var ett bra exempel på decoupling. Att du inte gillar C# har ju inte med saken att göra.

Det var inte språket jag attackerade, utan att exemplet är så trivialt att det inte påvisar om AI förstår programmering eller inte.
Det är bara klassisk dependency injection som varenda skolbok sedan 90 talet haft som introduktionsexempel, oavsett det är C# eller Java osv.
Citera
2026-06-17, 15:50
  #1580
Medlem
Cyborg2030s avatar
Citat:
Ursprungligen postat av BeneathTheSurface
Det var inte språket jag attackerade, utan att exemplet är så trivialt att det inte påvisar om AI förstår programmering eller inte.
Det var inte det som var poängen.
Citat:
Ursprungligen postat av BeneathTheSurface
Det är bara klassisk dependency injection som varenda skolbok sedan 90 talet haft som introduktionsexempel, oavsett det är C# eller Java osv.
-dev påstod att AI-modellerna inte kan det. Poängen var att visa att påståendet var felaktigt. Varför ska du lägga dig i detta och göra bort dig igen med helt irrelevanta invändningar?
Citera
2026-06-17, 15:54
  #1581
Medlem
BeneathTheSurfaces avatar
Citat:
Ursprungligen postat av Cyborg2030
Det var inte det som var poängen.

-dev påstod att AI-modellerna inte kan det. Poängen var att visa att påståendet var felaktigt. Varför ska du lägga dig i detta och göra bort dig igen med helt irrelevanta invändningar?

Modellerna kan allt som är statistiskt överrepresenterat så som att skriva dikter i stil med shakespeare, visa de första 100 decimalerna av π eller ge triviala DI injection exempel.

Men de kan inte räkna antalet r i raspberry...
Citera
2026-06-17, 16:00
  #1582
Medlem
Cyborg2030s avatar
Citat:
Ursprungligen postat av BeneathTheSurface
Modellerna kan allt som är statistiskt överrepresenterat så som att skriva dikter i stil med shakespeare, visa de första 100 decimalerna av π eller ge triviala DI injection exempel.

Men de kan inte räkna antalet r i raspberry...
Opus 4.8 Pro kan det:
Tre. R-a-s-p-b-e-r-r-y: ett i början och två i "berr".
Du pratar kanske om GPT.3.5 som är mer på din mentala nivå.
Citera
2026-06-17, 16:02
  #1583
Medlem
BeneathTheSurfaces avatar
Citat:
Ursprungligen postat av Cyborg2030
Opus 4.8 Pro kan det:
Tre. R-a-s-p-b-e-r-r-y: ett i början och två i "berr".
Du pratar kanske om GPT.3.5 som är mer på din mentala nivå.

Du är inte riktigt rätt person att prata om mentalanivåer.
Citera
2026-06-17, 17:04
  #1584
Medlem
Citat:
Ursprungligen postat av Cyborg2030
Du förstår inte konceptet med ett exempel?
Det är sådan här kod som de flesta som vibekodar genererar gissar jag. För en människa går det att koda så om databasen är liten, kanske 20 tabeller. För lösningen skalar inte och är inte flexibel.

Skall du göra ett RIKTIGT system så är det så mycket mer. om 20% av koden är funktionalitet, resten kan vara annat som måste till för att underhålla systemet.
Validering. Rättigheter och versioner/anpassningar kan vara två område som bara de kan ta lika mycket kod som funktionaliteten.
Eller varför inte ha lite avancerad sökhantering, söka på olika fält

För LLM går det däremot bra för LLM har fantastiskt minne men då behöver den som promptar förstå när gränsen passerats och promptaren inte längre har kontroll på koden.
Kan man sälja system där man inte vet hur systemet fungerar?

De som kan programmera väljer en helt annan arkitektur som skalar
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in