Chandler | woensdag 23 april 2025 @ 07:12 |
Sommige programmeurs/web ontwikkelaars kennen dit vast. Je hebt ooit een project ontwikkeld en deze draait online, draait goed en doet precies wat het moet doen. De tijd loopt door en de jaren gaan snel voorbij, de code raakt verouderd omdat bepaalde functies verdwijnen. Nu wil je wel graag mee maar je code werkt goed en eigenlijk heb je helemaal geen zin om je code weer helemaal door te lopen en alles aan te passen aan de huidige tijd. Dan kun je 4 dingen doen. 1. De website en code zo laten maar blijven draaien op verouderde software 2. De website en code compleet doorlopen en toch maar aanpassen aan de huidige tijd. 3. De website offline halen (ivm veiligheid) 4. Een wrapper gaan (schrijven)gebruiken om de verouderde/verwijderde functies weer ondersteund te krijgen met de huidige technieken. Aan dat laatste zit ik zelf te denken, ik heb een website die draait op verouderde PHP code (Geschreven rond versie 4-5 ![]() Hoe ga jij met dit soort zaken om? | |
Farenji | woensdag 23 april 2025 @ 08:01 |
Hoe langer je wacht met modernisering, hoe lastiger het wordt. Als je te lang wacht is het vaak nauwelijks nog te doen omdat het te veel werk is, omdat allemaal libraries te veel veranderd zijn of niet meer beschikbaar zijn, en de taal zo enorm is veranderd. Als je vandaag nog met php4 code zit dan zou ik alles opnieuw schrijven in een recente versie/framework of desnoods andere taal. Dat is vast sneller dan stokoude code aanpassen. | |
Metalfrost | woensdag 23 april 2025 @ 13:47 |
AI vragen of ie het om wil zetten | |
FlippingCoin | woensdag 23 april 2025 @ 13:58 |
Dat is afhankelijk van de vorm en mate van veroudering. Als er een geïsoleerd deel van de code verouderd is kan je het strangler fig pattern of het parallel run pattern toepassen, maar als het bijvoorbeeld een verouderd framework is welke niet meer gemigreerd kan worden naar iets dat up to date is en het niet logisch is om het op te delen dan ontkom je bijna niet aan een volledige rewrite. Dus zoals altijd, wat flauw maar: ![]() | |
FlippingCoin | woensdag 23 april 2025 @ 13:59 |
ja succes ![]() | |
Chandler | donderdag 24 april 2025 @ 10:17 |
De veroudering zit hem vooral in het communiceren met de database. Alles werkt met mysql_ functies, deze functies werkten perfect en zijn in de code zelf beveiligd tegen injectie en dergelijke. Maar zijn depricated en als ik over wil naar een hogere versie loop ik eigenlijk alleen daar tegen aan.. Dus mogelijk een wrapper schrijven waarbij ik alleen de functie namen bv iets verander (of zelfs niet en overschrijf).. | |
Mr_Belvedere | donderdag 24 april 2025 @ 15:46 |
Dat gaat de veiligheid niet verbeteren en gaat je een keer bijten. | |
Rodgrod | zaterdag 26 april 2025 @ 13:04 |
Een wrapper introduceert wederom techdebt, die wrapper wil je immers uiteindelijk ook weg hebben. Los het gewoon in een keer goed op ![]() | |
Darkomen | zaterdag 26 april 2025 @ 13:21 |
Mijn code heb ik een database class en database driver classes, deze voldoen aan een interface dus ik zou enkel de database driver class voor mysql hoeven te vervangen. Als je frameworks/libraries gebruikt moet je die bijhouden, die hebben altijd wel guides om upgraden makkelijk te houden. Maar het liefst zoveel mogelijk zelf schrijven. Een goede IDE helpt ook met het reactoren van je code. En in het verleden heb ik voor php Rector gebruikt om een project te moderniseren. | |
Chandler | zondag 27 april 2025 @ 10:08 |
We praten over 50k aan regels zelf geschreven code (zonder frameworks en door externe gemaakte libraries), waar de site al sinds het begin goed functioneert. Nooit problemen gehad met beveilgiingskwesties... dus waarom zou een wrapper dan een slechte keuze zijn? enige waar de site op faalt is dat mysql functies depricated raken, niets meer en niets minder. Toen die tijd gebruikte ik nog niet een MCV model of wrappers voor databases... site stamt uit begin 2010.. ![]() Maar allen dank voor de reacties! | |
XDo | zondag 27 april 2025 @ 10:12 |
Ik ben niet erg op de hoogte van PHP specifiek maar kan je niet gewoon find-and-replacen? | |
FlippingCoin | zondag 27 april 2025 @ 21:34 |
Hoever sijpelt de db specifieke code door in je codebase? Met goede cohesie is dit al veel makkelijker dan wanneer dit niet zo is. | |
Chandler | maandag 28 april 2025 @ 06:57 |
Ja mits ik gebruik maak van een wrapper, anders nee... Het zit overal ![]() Wat ik zei, tussen de 10 en 20 jaar oud... dus wil ik alles aanpassen dan heb ik daar echt een weektaak aan.. ![]() | |
Farenji | maandag 28 april 2025 @ 08:04 |
Als het echt alleen om de mysql_* functies gaat is wrappers maken op zich geen heel slechte oplossing. Maar met code van 10-20 jaar oud zou het me hogelijk verbazen als dat het enige issue is. | |
SpecialK | maandag 28 april 2025 @ 08:11 |
het heet refactoring en je doet het stukje bij beetje. klant vraagt om nieuwe feature? cool. dan schat je het 20% hoger in en spendeer je nog even een extra 20% van de tijd om wat gelaagdheid toe te passen in je code en wat snoeiwerk te doen. kan je gewoon open over communiceren met de klant trouwens. mensen hebben vaak wel begrip dat je na 20 jaar voortschrijdend inzicht en library updates en uitgekomen security patches wat dingen wil recht zetten. Het is niet zo moeilijk [ Bericht 14% gewijzigd door SpecialK op 28-04-2025 08:31:36 ] | |
raptorix | vrijdag 9 mei 2025 @ 09:36 |
Mijn lange ervaring is: -Doe helemaal niets, en zorg ervoor dat je in ieder geval je minor patches voor die versie update, en kijk of je eventueel je database extra goed beveiligt op netwerk niveau. -Doe een complete rewrite, overleg eventueel met de klant of bepaalde lastige zaken die veel tijd kosten nog wel noodzakelijk zijn. |