quote:Op dinsdag 22 april 2014 19:51 schreef pascal08 het volgende:
[..]
Dat is gewoon niet wat ik zoek. Ik heb zelf inmiddels al een code geschreven. Kostte uiteindelijk minder moeite dan een geschikte library vinden.
Interessante praatjes zijn datquote:Op dinsdag 15 april 2014 21:26 schreef slacker_nl het volgende:
https://www.destroyallsoftware.com/talks/boundaries
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <?php if(!empty($resultaat["matches"])) { $current_count = 0; $topic_ids = array(); $users_topics = array(); $this->cl->resetGroupBy(); # loop over de gevonden topic-id's foreach($resultaat["matches"] as $mId => $mData) { $current_count++; $pCounts = $mData['attrs']; $topic_ids[] = $pCounts['topic_id']; # verwerk het in stukken van 32 topics zodat het max uit de volgende query nooit boven de 10.000 (max Sphinx) uitkomt met 310 posts per topic gerekend if(count($topic_ids) == 32 || ($current_count == $total_found && !empty($topic_ids))) { $this->cl->resetFilters(); $this->cl->SetFilter("topic_id", $topic_ids); $topic_ids = array(); $this->cl->SetLimits(0, 10000, 10000); $resultaat = $this->cl->Query('', $this->config['indices']); $total_query_time += $resultaat["time"]; if(!empty($resultaat["matches"])) { # loop over de teruggegeven posts en voeg de topic-id's toe aan de array welke de unieke topics per gebruiker bevat, dit wordt later dvm de count functie toegevoegd aan de lijst welke wordt weergegeven in de tool # dit stuk is erg traag en doet er enkele seconden over om een lijst van 15.000 posts te verweken (ingevoerde gebruiker heeft in dit geval in 50 topics gepost) foreach($resultaat["matches"] as $mId => $mData) { if($mData['attrs']['auteur_id'] != $auteurId) { if(!isset($users_topics[$mData['attrs']['auteur_id']][$mData['attrs']['topic_id']])) { $users_topics[$mData['attrs']['auteur_id']][$mData['attrs']['topic_id']] = 1; } } } } } } } ?> |
Bij dit stuk gaat het traag:quote:Op vrijdag 25 april 2014 23:02 schreef zoem het volgende:
Wat is precies de bottleneck? Om wat voor orde van grootte gaat het in die loops? Zegt bijv. de xdebug profiler iets zinnigs?
1 2 3 4 5 6 7 8 9 | <?php foreach($resultaat["matches"] as $mId => $mData) { if($mData['attrs']['auteur_id'] != $auteurId) { if(!isset($users_topics[$mData['attrs']['auteur_id']][$mData['attrs']['topic_id']])) { $users_topics[$mData['attrs']['auteur_id']][$mData['attrs']['topic_id']] = 1; } } } ?> |
1 2 3 4 5 6 7 8 9 | <?php foreach($resultaat["matches"] as $mId => $mData) { if($mData['attrs']['auteur_id'] != $auteurId) { if(!isset($users_topics[$mData['attrs']['auteur_id']][$mData['attrs']['topic_id']])) { $users_topics[$mData['attrs']['auteur_id']][$mData['attrs']['topic_id']] = 1; } } } ?> |
Ik denk dat in het eerste if statement met de $auteurId wordt gekeken of de post niet van degene zelf is.quote:Op zaterdag 26 april 2014 09:31 schreef Light het volgende:
[ code verwijderd ]
Hier vallen me een paar dingen op. Om te beginnen ben ik benieuwd wat er in $auteurId staat en waarom er een != wordt gebruikt voor die vergelijking. Verder heb je de isset()-check niet nodig. Je set de waarde op 1, en als die toevallig al geset was, verandert er niets. En je benadert (ook zonder isset()) $mData['attrs']['auteur_id'] meerdere keren. Niet fout, maar ik zou er een variabele van maken (en dat waarschijnlijk ook doen voor $mData['attrs']['topic_id']), al was het maar voor een betere leesbaarheid.
Kan je deze logica niet veel beter in je SQL oplossen, dat lijkt me vele malen sneller dan het oplossen in PHP.quote:Op vrijdag 25 april 2014 22:56 schreef bondage het volgende:
Het script doet het volgende:
1. Haal alle topic-id's op waar de ingevoerde gebruiker heeft gereageerd
2. Haal alle posts behorende bij de topic-id's op in delen van 32 topics, dit omdat Sphinx is ingesteld op max 10.000 resultaten
3. Loop over alle posts en voeg de bijbehorende topic-id's toe aan een array welke de unieke topic's per gebruiker gevat.
In $auteurId staat het id van de user welke de post heeft geplaatst, aangezien ik de posts van degene waar op wordt gezocht wil negeren (wat Maringo al aangaf) gebruik ik die vergelijking.quote:Op zaterdag 26 april 2014 09:31 schreef Light het volgende:
[ code verwijderd ]
Hier vallen me een paar dingen op. Om te beginnen ben ik benieuwd wat er in $auteurId staat en waarom er een != wordt gebruikt voor die vergelijking. Verder heb je de isset()-check niet nodig. Je set de waarde op 1, en als die toevallig al geset was, verandert er niets. En je benadert (ook zonder isset()) $mData['attrs']['auteur_id'] meerdere keren. Niet fout, maar ik zou er een variabele van maken (en dat waarschijnlijk ook doen voor $mData['attrs']['topic_id']), al was het maar voor een betere leesbaarheid.
Dank. Ik ga het ff aanpassen en checken of het winst oplevertquote:Op zaterdag 26 april 2014 10:36 schreef Maringo het volgende:
Mijn idee is om die eruit te halen en eventueel na de foreach loop die ene entry uit $users_topics ($users_topics[$auteurId]) te halen.
Geprobeerd, met de volgende query:quote:Op zaterdag 26 april 2014 11:55 schreef slacker_nl het volgende:
[..]
Kan je deze logica niet veel beter in je SQL oplossen, dat lijkt me vele malen sneller dan het oplossen in PHP.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | SELECT COUNT(*), naam FROM ( SELECT fok_user.naam, `fok_post`.auteur FROM `fok_post` RIGHT JOIN ( SELECT DISTINCT topicid FROM `fok_post` WHERE `auteur` = 128465 AND `fok_post`.`tijdstip` BETWEEN UNIX_TIMESTAMP('2014-04-01 00:00:01') AND UNIX_TIMESTAMP('2014-04-26 23:59:59') AND `fok_post`.`year` = 2014 ) AS t ON (`fok_post`.topicid = t.topicid) JOIN fok_user ON `fok_post`.auteur = fok_user.id WHERE `fok_post`.auteur != 128465 GROUP BY `fok_post`.auteur, `fok_post`.topicid ) AS u GROUP BY auteur ORDER BY COUNT(*) DESC LIMIT 100 |
Ahja, je wilt een overzicht van vriendjes maken. Hoe moet ik dat zien? Een lijst van users die in dezelfde topics gepost hebben?quote:Op zaterdag 26 april 2014 16:03 schreef bondage het volgende:
[..]
In $auteurId staat het id van de user welke de post heeft geplaatst, aangezien ik de posts van degene waar op wordt gezocht wil negeren (wat Maringo al aangaf) gebruik ik die vergelijking.
Die isset is idd niet nodig, dom dat ik me dat niet eerder had gerealiseerd aangezien ik heel goed weet dat het in dit geval geen effect op de resulterende array heeft. Ik haal deze sowieso weg.
De waarden in $mData['attrs']['auteur_id'] en $mData['attrs']['topic_id'] zet ik in een variable, zelfs al levert het maar weinig op ben ik al blij.
In ieder geval heel erg bedankt voor het meedenken.
Klopt. Zo is dit mijn lijstje wat ie eens op verzoek maakte:quote:Op zaterdag 26 april 2014 16:58 schreef Light het volgende:
[..]
Ahja, je wilt een overzicht van vriendjes maken. Hoe moet ik dat zien? Een lijst van users die in dezelfde topics gepost hebben?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 142 Rezania 139 d4v1d 120 Amarantha 118 FL_Freak 118 Lt.Surge 103 SgtPorkbeans 96 LittleBrownie 96 Flippiee 95 gianni61 94 Fopje 91 BBQSausage 85 Bitterlemon 84 Snowbells 74 Roburtt 72 HeaN82 |
Exactquote:Op zaterdag 26 april 2014 16:58 schreef Light het volgende:
[..]
Ahja, je wilt een overzicht van vriendjes maken. Hoe moet ik dat zien? Een lijst van users die in dezelfde topics gepost hebben?
Ik heb je query wat herschreven, zonder subqueries en right joins. Ongetest, uiteraard.quote:
1 2 3 4 5 6 7 8 9 10 11 12 13 | SELECT count(DISTINCT friend_post.topic_id) cnt, u.naam FROM fok_user u INNER JOIN fok_post search_user_post ON search_user_post.auteur = 128465 AND search_user_post.tijdstip BETWEEN UNIX_TIMESTAMP('2014-01-01 00:00:01') AND UNIX_TIMESTAMP('2014-04-26 23:59:59') AND search_user_post.year = 2014 INNER JOIN fok_post friend_post ON friend_post.auteur = u.id AND friend_post.auteur != 128465 AND friend_post.topic_id = search_user_post.topic_id GROUP BY u.naam ORDER BY cnt DESC LIMIT 100; |
Oeh, ik ga hem ff testen.quote:Op zaterdag 26 april 2014 17:33 schreef Light het volgende:
SELECT count(DISTINCT friend_post.topic_id) cnt, u.naam
FROM fok_user u
INNER JOIN fok_post search_user_post
ON search_user_post.auteur = 128465
AND search_user_post.tijdstip BETWEEN UNIX_TIMESTAMP('2014-01-01 00:00:01') AND UNIX_TIMESTAMP('2014-04-26 23:59:59')
AND search_user_post.year = 2014
INNER JOIN fok_post friend_post
ON friend_post.auteur = u.id
AND friend_post.auteur != 128465
AND friend_post.topic_id = search_user_post.topic_id
GROUP BY u.naam
ORDER BY cnt DESC
LIMIT 100;
1 2 3 4 | id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE search_user_post ref topicid,tijdstip,auteur,year auteur 4 const 12009 Using where; Using temporary; Using filesort 1 SIMPLE friend_post ref topicid,auteur topicid 4 fokstats.search_user_post.topicid 100 Using where 1 SIMPLE u eq_ref PRIMARY PRIMARY 4 fokstats.friend_post.auteur 1 |
1 2 3 4 5 6 | id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2919 Using temporary; Using filesort 2 DERIVED <derived3> ALL NULL NULL NULL NULL 110 Using temporary; Using filesort 2 DERIVED fok_post ref topicid,auteur topicid 4 t.topicid 100 Using where 2 DERIVED fok_user eq_ref PRIMARY PRIMARY 4 fokstats.fok_post.auteur 1 3 DERIVED fok_post ref tijdstip,auteur,year auteur 4 12008 Using where; Using temporary |
De rest van de stats worden gegenereerd door Sphinx, echter heeft Sphinx niet de mogelijkheid om op meerdere velden te groeperen. Als ik dit volledig in Sphinx zou kunnen doen zou het een stuk sneller gaan.quote:Op maandag 28 april 2014 09:40 schreef Sitethief het volgende:
Is het niet sowieso handiger om zoveel mogelijk het ophalen van de juiste data door een database engine te laten doen ipv dat ik PHP na te gaan bootsen? De database engine zal hierin bijna altijd sneller zijn, tenzij je 10 subqueries ofzo gebruikt.
Voer je die query uit op een 'eigen' server? Als in een database-server die je zelf beheert en waar je indexen kunt aanpassen? Dan moet er nog wel wat snelheidswinst te behalen zijn.quote:Op maandag 28 april 2014 10:27 schreef bondage het volgende:
[..]
De rest van de stats worden gegenereerd door Sphinx, echter heeft Sphinx niet de mogelijkheid om op meerdere velden te groeperen. Als ik dit volledig in Sphinx zou kunnen doen zou het een stuk sneller gaan.
Maar ik realiseer me nu dat ik dit beter op kan lossen dmv een query ipv de data door php te laten verwerken.
Een andere optie is een betere server aanschaffen, daar heb ik echter op dit moment geen geld voor
Jup, is mijn eigen server. Dit zijn de velden en indexen die ik momenteel heb:quote:Op maandag 28 april 2014 19:09 schreef Light het volgende:
[..]
Voer je die query uit op een 'eigen' server? Als in een database-server die je zelf beheert en waar je indexen kunt aanpassen? Dan moet er nog wel wat snelheidswinst te behalen zijn.
Hmm... year heeft een kardinaliteit van 1. Heb je alleen posts uit 2014 in de database staan?quote:Op maandag 28 april 2014 22:54 schreef bondage het volgende:
[..]
Jup, is mijn eigen server. Dit zijn de velden en indexen die ik momenteel heb:
[ afbeelding ]
[ afbeelding ]
Dat viel mij ook al op idd. Er staat 6 jaar aan data in die tabel.quote:Op maandag 28 april 2014 22:59 schreef Light het volgende:
[..]
Hmm... year heeft een kardinaliteit van 1. Heb je alleen posts uit 2014 in de database staan?
Mooiquote:Op maandag 28 april 2014 23:01 schreef bondage het volgende:
[..]
Dat viel mij ook al op idd. Er staat 6 jaar aan data in die tabel.
Nee, dat getal maakt alleen uit als je zerofill gebruikt. En dat wil je niet (want voorloopnullen toevoegen hoort de database niet te doen).quote:Is het overigens erg dat id een int(15) is? Ik heb deze database ooit van iemand overgenomen en hier niet bij stilgestaan, ik weet echter dat een gewone int niet tot 15 gaat.
Dank, ik ga die twee indices even combineren en de query dan nogmaals testen. Ik gebruik geen zerofill dus dat is dan geen probleem gelukkig.quote:Op maandag 28 april 2014 23:13 schreef Light het volgende:
[..]
MooiDan zou ik de index "auteur" wijzigen en er "year" als tweede kolom aan toevoegen. Een index mag namelijk meer dan 1 kolom bevatten
(Je zou ook nog in plaats van "year" de kolom "tijdstip" kunnen toevoegen, maar ik vermoed dat het verschil vrij klein is terwijl de index veel groter kan worden.)
[..]
Nee, dat getal maakt alleen uit als je zerofill gebruikt. En dat wil je niet (want voorloopnullen toevoegen hoort de database niet te doen).
Als ik year uit de query haal en vervolgens dit jaar uitdraai duurt de query een stuk langer dan met year erin. Blijkbaar heeft de index voor dat veld wel effect. Ik had het primair toegevoegd voor het indexeringsproces omdat er per jaar een losse Sphinx index wordt gemaakt, op deze manier hoeft niet steeds alle data opnieuw verwerkt te worden. Dmv het year veld en bijbehorende index is ook die query een stuk sneller.quote:Op dinsdag 29 april 2014 09:59 schreef KomtTijd... het volgende:
Volgens mij kun je year beter helemaal uit de query halen en gewoon zorgen dat je tijdstippen nooit meerdere jaren overspannen.
Dan wil je wel heel zeker weten dat er een index op (auteur, tijdstip) wordt gebruikt. En ik weet niet hoe goed MySQL omgaat met een index die als range wordt gebruikt (BETWEEN) in combinatie met een andere index. Hoe beperkter het resultaat van een index is, hoe beter.quote:Op dinsdag 29 april 2014 09:59 schreef KomtTijd... het volgende:
Volgens mij kun je year beter helemaal uit de query halen en gewoon zorgen dat je tijdstippen nooit meerdere jaren overspannen.
Je maakt het MySQL op die manier makkelijker om twee kolommen te gebruiken in een index, waardoor de resultaatset kleiner wordt. En dat helpt weer om de snelheid omhoog te krijgenquote:Op maandag 28 april 2014 23:19 schreef bondage het volgende:
[..]
Dank, ik ga die twee indices even combineren en de query dan nogmaals testen. Ik gebruik geen zerofill dus dat is dan geen probleem gelukkig.
Wat is eigenlijk het voordeel van het combineren van die twee?
Duidelijk.quote:Op dinsdag 29 april 2014 21:27 schreef Light het volgende:
[..]
Je maakt het MySQL op die manier makkelijker om twee kolommen te gebruiken in een index, waardoor de resultaatset kleiner wordt. En dat helpt weer om de snelheid omhoog te krijgenMySQL wordt ook wel beter in het combineren van twee losse indexen, maar dat levert volgens mij nog niet hetzelfde resultaat op.
Overigens is een index op (auteur, year) ook nog steeds te gebruiken als index op auteur maar het is niet te gebruiken als index op year. Als je die ook los nodig hebt, moet je daar dus een aparte index voor maken / houden.
quote:Op woensdag 30 april 2014 15:01 schreef slacker_nl het volgende:
Omdat ik soms zo loop te miepen over tests:
[ afbeelding ]
100% code coverage! (dit laat Devel::Cover zien en aangezien er weinig perl mensjes zijn ging ik de PHP mensjes spammenquote:
Ziet er wel leuk uit, die statistiekenquote:Op woensdag 30 april 2014 17:53 schreef slacker_nl het volgende:
[..]
100% code coverage! (dit laat Devel::Cover zien en aangezien er weinig perl mensjes zijn ging ik de PHP mensjes spammen)
Dat is 000-package.t, daarin worden de volgende zaken getest:quote:Op woensdag 30 april 2014 18:42 schreef Light het volgende:
[..]
Ziet er wel leuk uit, die statistieken
Maar wat is er zo bijzonder aan die test met als time 85.9? Die duurt wel erg lang.
Dan snap ik wel dat die tests ook lang duren (in ieder geval in verhouding).quote:Op woensdag 30 april 2014 20:59 schreef slacker_nl het volgende:
[..]
Dat is 000-package.t, daarin worden de volgende zaken getest:
1) MANIFEST file ok
2) Modules compilen ok
3) POD (documentatie) syntax ok
4) POD coverage ok (dus doc je ook al je functies)
5) Compilen je scripts ok
Die duren wat langer, echt niet zo spannend allemaal. Dat zijn eigenlijk release-only tests.
1 2 3 4 5 6 7 8 9 10 11 12 13 | SELECT count(DISTINCT friend_post.topicid) cnt, u.naam FROM fok_user u INNER JOIN fok_post search_user_post ON search_user_post.auteur = 128465 AND search_user_post.tijdstip BETWEEN UNIX_TIMESTAMP('2014-04-01 00:00:01') AND UNIX_TIMESTAMP('2014-04-26 23:59:59') AND search_user_post.year = 2014 INNER JOIN fok_post friend_post ON friend_post.auteur = u.id AND friend_post.auteur != 128465 AND friend_post.topicid = search_user_post.topicid GROUP BY u.naam ORDER BY cnt DESC LIMIT 100; |
Hmm... da's wel onverwacht... het (geschatte) aantal rijen voor de eerste query gaat van 12.000 naar 2.400 en toch is de query veel trager...quote:Op woensdag 30 april 2014 22:15 schreef bondage het volgende:
Hmm, de query is met deze nieuwe index trager geworden. Hij duurde eerst 0,83 seconden, nu 3,46. Ik heb exact dezelfde parameters gebruikt als de vorige keer toen de indices nog niet gecombineerd waren.
Dit is de explain:
[ afbeelding ]
Ik heb de query van Light gebruikt aangezien die sowieso al sneller was dan die van mij.
[ code verwijderd ]
FORCE INDEX gebruiken misschien?
Jup, ik snap er ook niets vanquote:Op woensdag 30 april 2014 22:35 schreef Light het volgende:
[..]
Hmm... da's wel onverwacht... het (geschatte) aantal rijen voor de eerste query gaat van 12.000 naar 2.400 en toch is de query veel trager...
Ik kan me niet voorstellen dat dat helpt, omdat de juiste index al wordt gebruikt.quote:Op woensdag 30 april 2014 22:36 schreef bondage het volgende:
[..]
Jup, ik snap er ook niets vanIk ga voor de zekerheid toch ff FORCE INDEX proberen.
Zou een gecombineerde index op topic_id en auteur misschien een optie zijn?quote:Op woensdag 30 april 2014 22:37 schreef Light het volgende:
[..]
Ik kan me niet voorstellen dat dat helpt, omdat de juiste index al wordt gebruikt.
Dat lijkt me niet nuttig, in ieder geval niet in die volgorde.quote:Op woensdag 30 april 2014 23:15 schreef bondage het volgende:
[..]
Zou een gecombineerde index op topic_id en auteur misschien een optie zijn?
Dit doet mij vermoeden dat het alleen om een standaardwaarde gaat en dit verder geen invloed heeft op de data in de tabel.quote:The table character set and collation are used as default values for column definitions if the column character set and collation are not specified in individual column definitions. The table character set and collation are MySQL extensions; there are no such things in standard SQL.
Ik heb alle bedrijven dat wel eens horen zeggen. Maar nog nooit een bedrijf tegengekomen die het geheel volgens het boekje heeft geïmplementeerd. Jammer hoor. Het scheelt zoveel in tijd en kwaliteit.quote:Op maandag 5 mei 2014 22:06 schreef TwenteFC het volgende:
Oh god, heb een boek gekocht over Test driven development, gaat het dan toch nog gebeuren?
Krijg binnenkort de kans om een gehele shop vanaf scrap op te zetten, waarbij de oude database slechts als api wordt gebruikt.quote:Op maandag 5 mei 2014 22:09 schreef Juicyhil het volgende:
[..]
Ik heb alle bedrijven dat wel eens horen zeggen. Maar nog nooit een bedrijf tegengekomen die het geheel volgens het boekje heeft geïmplementeerd. Jammer hoor. Het scheelt zoveel in tijd en kwaliteit.
Ja dan is het zeker een goed voornemen om tests te schrijven. Heb het zelf vaak genoeg in projecten geprobeerd erdoorheen te krijgen, maar dan komt er een deadline om de hoek kijken en krijgt het geen prioriteit meer enzo.quote:Op maandag 5 mei 2014 22:17 schreef TwenteFC het volgende:
[..]
Krijg binnenkort de kans om een gehele shop vanaf scrap op te zetten, waarbij de oude database slechts als api wordt gebruikt.
Ik weet hoe rampzalig niet geteste spaghetticode is, wil het dus deze keer meteen "goed" doen.
Dat het tijd bespaart wil er bij de hogere heren nog niet in, maar heb als excuus gebruikt dat dit verplicht is voor mijn opleiding. (deeltijd hbo).
Hier net zo, een klein bedrijf waar we eigenlijk meer misbruikt worden als helpdesk dan dat we daadwerkelijke nieuwe webapplicaties opzetten.quote:Op maandag 5 mei 2014 22:23 schreef Juicyhil het volgende:
[..]
Ja dan is het zeker een goed voornemen om tests te schrijven. Heb het zelf vaak genoeg in projecten geprobeerd erdoorheen te krijgen, maar dan komt er een deadline om de hoek kijken en krijgt het geen prioriteit meer enzo.
Ik voel je. Dat heb ik ook vaker meegemaakt. Met alle drama zoals security issues en jankende klanten eromheen. Maar dat is nu voorbijquote:Op maandag 5 mei 2014 22:27 schreef TwenteFC het volgende:
Wat dus soms ook een ramp is, omdat de code een ramp is. Oorspronkelijk gemaakt door een 16 jarige als bijbaantje 10 jaar geleden.
Ok, de enige andere optie die ik kan bedenken is dat ik een snellere server nodig heb en dat de huidige gewoon niet voldoet om dit soort statistieken uit te draaien. In ieder geval bedankt voor het meedenkenquote:Op vrijdag 2 mei 2014 21:50 schreef Light het volgende:
[..]
Dat lijkt me niet nuttig, in ieder geval niet in die volgorde.
Dat herken ik, zo hebben wij 2 sites onder onze hoeden gekregen die zijn gebouwd door een gast in Bangladesh...quote:Op maandag 5 mei 2014 22:27 schreef TwenteFC het volgende:
Wat dus soms ook een ramp is, omdat de code een ramp is. Oorspronkelijk gemaakt door een 16 jarige als bijbaantje 10 jaar geleden.
Lezen? Of daadwerkelijk TDD gaan gebruiken?quote:Op maandag 5 mei 2014 22:06 schreef TwenteFC het volgende:
Oh god, heb een boek gekocht over Test driven development, gaat het dan toch nog gebeuren?
En is de database wel op orde? Als dat namelijk ook niet op orde is loop je alsnog tegen allerlei shit aan, tenzij je wat handige mappers gaat maken, maar dan moet je maar zien of dat ook performed. Overigens snap ik niet waarom bedrijven nog steeds hun eigen webshops ontwikkelen, het is duur in onderhoud, en je haalt nooit de kwaliteit die bestaande software levert.quote:Op maandag 5 mei 2014 22:17 schreef TwenteFC het volgende:
[..]
Krijg binnenkort de kans om een gehele shop vanaf scrap op te zetten, waarbij de oude database slechts als api wordt gebruikt.
Ik weet hoe rampzalig niet geteste spaghetticode is, wil het dus deze keer meteen "goed" doen.
Dat het tijd bespaart wil er bij de hogere heren nog niet in, maar heb als excuus gebruikt dat dit verplicht is voor mijn opleiding. (deeltijd hbo).
Helemaal mee eens, maar helaas mag ik het niet herbouwen van mijn baas... kost te veel tijd.quote:Op dinsdag 6 mei 2014 11:44 schreef Chandler het volgende:
Voordeel is wel dat de code gelijk up to date is, je niet steeds je hoeft in te lezen in de 'oude' code.scheelt soms erg veel tijd/stress/frustraties om gewoon overnieuw te beginnen dan door te gaan op andermans werk
Beidequote:Op dinsdag 6 mei 2014 09:02 schreef slacker_nl het volgende:
[..]
Lezen? Of daadwerkelijk TDD gaan gebruiken?
De database is ook pure troep, maar daar gooien we gewoon een api service tegenaan.quote:Op dinsdag 6 mei 2014 11:21 schreef raptorix het volgende:
[..]
En is de database wel op orde? Als dat namelijk ook niet op orde is loop je alsnog tegen allerlei shit aan, tenzij je wat handige mappers gaat maken, maar dan moet je maar zien of dat ook performed. Overigens snap ik niet waarom bedrijven nog steeds hun eigen webshops ontwikkelen, het is duur in onderhoud, en je haalt nooit de kwaliteit die bestaande software levert.
Moet je eens kijken hoeveel Magentodevelopers er gevraagd worden om van alles te herschrijven omdat Magento apenballen zuigt.quote:Op dinsdag 6 mei 2014 11:21 schreef raptorix het volgende:
[..]
Overigens snap ik niet waarom bedrijven nog steeds hun eigen webshops ontwikkelen, het is duur in onderhoud, en je haalt nooit de kwaliteit die bestaande software levert.
En je bent nog min of meer afhankelijk van een externe partij ook. Nooit leuk.quote:Op dinsdag 6 mei 2014 18:51 schreef Boze_Appel het volgende:
[..]
Moet je eens kijken hoeveel Magentodevelopers er gevraagd worden om van alles te herschrijven omdat Magento apenballen zuigt.
De grootste reden voor eigen webshopsoftware is vaak omdat ze allerlei dingen erin willen hebben die niet met plugins te regelen is en niet standaard in de shops zit, dus dan kan je bestaande code gaan hacken waarvan steeds nieuwe updates komen of een net framework pakken en vanaf daar aan de slag gaan. Bovendien hebben ze vaak al hun eigen facturatiesysteem, dus heel dat stuk heb je niet nodig.
Je kunt toch zelf initiatief tonen als je het zo'n leuk project vind om in je eigen tijd het zelf te schrijven? en dan eventueel verkopen (of via half jaar betaald vakantie, ken een persoon die zo een lange tijd vrij was op de kosten van de baas!, betaald vakantie dus.) ? neem aan dat het idee vrij te gebruiken is?! staat dan ook zeer goed op je cvquote:Op dinsdag 6 mei 2014 12:03 schreef Darkomen het volgende:
[..]
Helemaal mee eens, maar helaas mag ik het niet herbouwen van mijn baas... kost te veel tijd.
En grootte kans dat hij het dan niet meer snapt
Mijn baas snapt ook niet wat ik doe, maakt ook niet uit, ik mag zelf bepalen waar ik aan werk. Als ik maar oplever wat er wordt gevraagd.quote:Op dinsdag 6 mei 2014 12:03 schreef Darkomen het volgende:
[..]
Helemaal mee eens, maar helaas mag ik het niet herbouwen van mijn baas... kost te veel tijd.
En grootte kans dat hij het dan niet meer snapt
In n vrijetijd ben ik druk met mn eigen sites ;-)quote:Op dinsdag 6 mei 2014 22:42 schreef Chandler het volgende:
[..]
Je kunt toch zelf initiatief tonen als je het zo'n leuk project vind om in je eigen tijd het zelf te schrijven? en dan eventueel verkopen (of via half jaar betaald vakantie, ken een persoon die zo een lange tijd vrij was op de kosten van de baas!, betaald vakantie dus.) ? neem aan dat het idee vrij te gebruiken is?! staat dan ook zeer goed op je cv
Helaas programmeert mijn baas ook mee aan onze projecten.quote:Op dinsdag 6 mei 2014 22:46 schreef bondage het volgende:
[..]
Mijn baas snapt ook niet wat ik doe, maakt ook niet uit, ik mag zelf bepalen waar ik aan werk. Als ik maar oplever wat er wordt gevraagd.
En wat is je maandelijkse onderhoudsbudget als ik vragen mag?quote:Op dinsdag 6 mei 2014 18:09 schreef TwenteFC het volgende:
[..]
BeideIn eerste instantie voor een eigen thuisprojectje zodat ik er vast aan kan wennen en daarna op het werk.
[..]
De database is ook pure troep, maar daar gooien we gewoon een api service tegenaan.
Dus de database van het nieuwe product kan ik ook zelf opzetten.
En dat bestaande software dezelfde kwaliteit levert dat is niet helemaal waar, wij zullen sowieso functionaliteit gaan missen of welke niet volledig aan onze wensen voldoen.
En daarbij krijg je met bestaande software vaak het zelfde als wat we nu hebben; troep.
Waarom je uberhaupt Magento zou gebruiken is me een raadsel, ik heb het ooit wel eens bekeken, wat een bagger zeg, alleen al de honderden zo niet duizenden files waarmee je te maken hebt.quote:Op dinsdag 6 mei 2014 18:51 schreef Boze_Appel het volgende:
[..]
Moet je eens kijken hoeveel Magentodevelopers er gevraagd worden om van alles te herschrijven omdat Magento apenballen zuigt.
De grootste reden voor eigen webshopsoftware is vaak omdat ze allerlei dingen erin willen hebben die niet met plugins te regelen is en niet standaard in de shops zit, dus dan kan je bestaande code gaan hacken waarvan steeds nieuwe updates komen of een net framework pakken en vanaf daar aan de slag gaan. Bovendien hebben ze vaak al hun eigen facturatiesysteem, dus heel dat stuk heb je niet nodig.
Een goede webshop in een halfjaar schrijven? GL, gaat je niet lukken.quote:Op dinsdag 6 mei 2014 22:42 schreef Chandler het volgende:
[..]
Je kunt toch zelf initiatief tonen als je het zo'n leuk project vind om in je eigen tijd het zelf te schrijven? en dan eventueel verkopen (of via half jaar betaald vakantie, ken een persoon die zo een lange tijd vrij was op de kosten van de baas!, betaald vakantie dus.) ? neem aan dat het idee vrij te gebruiken is?! staat dan ook zeer goed op je cv
En je configfile in een .xml die alleen met een .htaccess afgeschermd is. Zit je dus op een gare (shared) server waarbij je niet alle functies van .htaccess kan gebruiken staat je config open voor heel de wereld.quote:Op woensdag 7 mei 2014 10:58 schreef raptorix het volgende:
[..]
Waarom je uberhaupt Magento zou gebruiken is me een raadsel, ik heb het ooit wel eens bekeken, wat een bagger zeg, alleen al de honderden zo niet duizenden files waarmee je te maken hebt.
Ik zit me dit echt af te vragen. Geen geld hebben om webshopsoftware naar je wensen aan te passen (door middel van plugins en/of patchen en upstream gooien), maar wel geld hebben om het van scratch te bouwen. Raar.quote:Op dinsdag 6 mei 2014 18:51 schreef Boze_Appel het volgende:
De grootste reden voor eigen webshopsoftware is vaak omdat ze allerlei dingen erin willen hebben die niet met plugins te regelen is en niet standaard in de shops zit, dus dan kan je bestaande code gaan hacken waarvan steeds nieuwe updates komen of een net framework pakken en vanaf daar aan de slag gaan. Bovendien hebben ze vaak al hun eigen facturatiesysteem, dus heel dat stuk heb je niet nodig.
Zelf ben ik wel gecharmeerd van NOP commerce, opensource (wel c#/.net).quote:Op woensdag 7 mei 2014 11:32 schreef slacker_nl het volgende:
[..]
Ik zit me dit echt af te vragen. Geen geld hebben om webshopsoftware naar je wensen aan te passen (door middel van plugins en/of patchen en upstream gooien), maar wel geld hebben om het van scratch te bouwen. Raar.
Het lijkt me dat die software inmiddels best lekker is uitgekristalliseerd en je dus makkelijk met een off-the-shelf products aan de gang kan gaan.
Mag ik vragen waarom niet? en wat is goed? ebay? marktplaats? 1 produkt webshop? je vergelijkt gelijk peren met kruidnoten...quote:Op woensdag 7 mei 2014 10:59 schreef raptorix het volgende:
Een goede webshop in een halfjaar schrijven? GL, gaat je niet lukken.
ASP / MS SQL webshop. The horror!quote:Op woensdag 7 mei 2014 13:51 schreef raptorix het volgende:
[..]
Zelf ben ik wel gecharmeerd van NOP commerce, opensource (wel c#/.net).
http://www.nopcommerce.com/downloads.aspx
De webshop zelf is 2 jaar geleden opnieuw gebouwd, en qua werk wat er daarna ingestopt is niet erg veel. Programmeer werk dan.quote:Op woensdag 7 mei 2014 10:57 schreef raptorix het volgende:
[..]
En wat is je maandelijkse onderhoudsbudget als ik vragen mag?
quote:Op woensdag 7 mei 2014 10:59 schreef raptorix het volgende:
[..]
Een goede webshop in een halfjaar schrijven? GL, gaat je niet lukken.
Wat snap je niet aan een goede webshop?quote:Op woensdag 7 mei 2014 17:12 schreef Chandler het volgende:
[..]
Mag ik vragen waarom niet? en wat is goed? ebay? marktplaats? 1 produkt webshop? je vergelijkt gelijk peren met kruidnoten...
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |