You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Olisiko hyvä idea kuvata vähän miten suuri homma oli kyseessä, jotta lukijat saa paremman kuvan mittakaavasta. Ihan vaikka koodirivejä tai sitten monta tiedostoa piti portata tjsp
Olisiko hyvä idea kuvata vähän miten suuri homma oli kyseessä, jotta lukijat saa paremman kuvan mittakaavasta. Ihan vaikka koodirivejä tai sitten monta tiedostoa piti portata tjsp
Hyvä idea, lisätty planning-kohtaan maininta: several tens of thousands of lines
Mielenkiintoinen ja hyvin kirjoitettu postaus. Tällaisia juttuja tuli mieleen lukiessa:
Voisiko joissain kohdissa kun käytetään pelkästään termiä "AI" olla parempi käyttää termiä "agent" tai tietyissä tapauksissa LLM? Ihan vain vaihtelun mutta myös tarkemman ilmaisun takia.
Voisiko testeistä kertoa enemmän? Oliko aiemman toteutuksen testit toteutettu niin, että niitä voitiin käyttää suoraan uuden toteutuksen testaamiseen? Jos ei, niin kuinka varmistettiin, että portatut testit testaavat oikeasti jotain? Oliko käytössä esim. TDD-pohjainen agentti-workflow?
Ja viimeisenä klassikko: Onko postauksen oikeinkirjoitus ja kielioppi jo tarkistettu jollain työkalulla?
Mietin myös, että pitäisikö porttaukseen johtaneita syitä verrattuna porttauksen lopputulokseen käsitellä enemmän. Nopeusetu mainitaan, mutta olisiko tarpeen oma kappaleensa jossa käydään läpi miten uusi toteutus täytti sille asetetut tavoitteet.
Vaihdettu osa soveltuvista "AI" termeistä muotoon "agent". Kieltämättä saman sanan toisteisuus hieman häiritsee lukemista.
Lisäsin yhden kappaleen testikoodista. Iso osa generaattorin testeistä oli tehty Playwrigtilla, joten niitä ei tarvinnut portata vaan voitiin ajaa suoraan uuden generaattorin outputtia vasten. Toki oli sitten kaikenlaista utilityä ym. joiden testit portattiin ja katselmointiin käsin.
Lisätty oma osio porttauksen lopputulemasta
Claude ja eräs toinen katselmoija on tarkistanut kieliopin :)
I might not have dared to start thinking about AI-assisted code porting without previous experience. Luckily, I had already ported my personal chess game project written in Java over 10 years ago into a web-based version. The porting was a success, so I was fairly convinced that AI had reached a level where even larger project's technology — several tens of thousands of lines — could be reasonably switched. The experience also gave me some intuition about how to approach a port and what to expect.
To begin code porting with AI, you need two things: An LLM (Large Language Model), which is essentially a machine that is used to generate text based on statistics and probabilities, and an AI agent that is able to figure things out on its own by using the LLM. In my case, the tool of choise was **GitHub Copilot** (the VS Code extension with agentic capabilities) and **Claude Opus 4.6** model.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.