mboost-dp1

Ny engine på Newz.dk


Gå til bund
Gravatar #1 - _tweak
6. sep. 2016 11:44
Vi har i det sidste stykke tid været ved at konvertere newz.dk- og railgun.dk-koden til noget mere ensartet og moderne versus den kodebase, der har drevet newz tidligere. Den nye kode er baseret på Laravel 5, den er udviklet via Docker, vi har brugt atom/coda/phpstorm og atlassian bitbucket. Vi er hostet, som nu, ved Google Cloud – og databasen er baseret på MySQL, ligesom tidligere.

Vi har valgt Laravel, fordi vi ønsker en ren PHP-implementation (versus f.eks. Phalcon); det er alene for at holde det enkelt – også selvom native-compilende udgaver (igen, som Phalcon) er betydeligt hurtigere. Med Laravel i hånden vil vi gå i gang med næste projekt; at udvide og re-designe newz.dk.

Implementationen af det nye system har også givet lidt problemer; vi har været ustabilt i ca. 24 timer nu, men det er ved at kommer på plads. Det forventes vi er nede igen i aften, i en 10-30 minutters tid.

Vi har sammen med dette nye build indarbejdet en række af de ændringer, I har ønsket jer på siden:

Nyheder og forum
* Det er nu muligt at indsende rettelser til nyheder.
* Man kan markere indlæg som spam. Markeres et indlæg som spam, vil den skjules for en selv, og en intern tæller vil vægte indlægget tættere mod ”spam” faktoren. En staff/administrator vil kunne markere et indlæg som spam.
* Systemet understøtter brugere både som moderatere, redaktører, staff og administratorer nu.
* Man kan vælge at følge eller ikke følge en tråd. Skriver man en kommentar, følger man automatisk tråden.

Profil og beskeder
* Personlige oplysninger om kontis er generelt fjernet; nu vises kun profil-tekst og statistik.
* Venneliste og ignorerliste er fjernet.
* Der er tilføjet mulighed for at slette alle login cookies.
* Profil-tekst og signatur kan rettes.
* Det er muligt at fravælge de e-mail-adresser man evt. får tilsendt beskeder på.
* Besked systemet er oppe og køre igen. Man kan p.t. kun sende beskeder til de brugere, der har været logget ind det sidste år, men dette bliver der lavet om på, så snart vi har sikret os, alt fungerer, som det skal.
* Man kan deaktivere en bruger, så profilen ikke længere vises, og man kan derefter ikke logge ind på den.

Til ovenstående feature-rettelser og gen-implementering er der garanteret kommet en masse små fejl rundt omkring; vi har trods alt ryddet grundigt op i databasen og skrevet meget af koden forfra. Skulle I støde på en fejl, der ikke var der før (eller en fejl der var der før men ikke er rettet i denne omgang) så skriv dem fortsat gerne inde på Manglende features på newz.dk-tråden.

Den nye implementation har nogle fejl der stadig lever videre, f.eks. er "Aktivitet i tråde du følger" fyldt med gamle tråde, man formentlig allerede har læst, ligesom login-cookies p.t. ikke virker så godt. Det er problemer vi regner med at kommer til livs snarligt.
Gravatar #2 - _tweak
6. sep. 2016 12:01
(rediger indlæg mangler forøvrigt stadig, på nogle tråde, som en af de større irritationer p.t. - også nævnt i manglende features)
Gravatar #3 - arne_v
6. sep. 2016 20:36
_tweak (1) skrev:
Den nye kode er baseret på Laravel 5


Er der nok controllers, actions og views til at et generelt MVC framework er godt?

Jeg ville have troet at newz.dk var forholdsvis få "items" men med en del "items" som meget komplekse.
Gravatar #4 - _tweak
6. sep. 2016 20:41
arne_v (3) skrev:
Er der nok controllers, actions og views til at et generelt MVC framework er godt?

Jeg ville have troet at newz.dk var forholdsvis få "items" men med en del "items" som meget komplekse.


Overraskende nok ja - og der kommer ikke færre. Den første kode var bygget op om netop ideen at newz.dk ikke burde kunne rumme alt for meget hemmelig gøgl. Problemet er så bare den rækker over en del flere facetter, der kunne komme som en overraskelse, men som også legitimerer et MVC framework.

Flyttet har ikke været problemfrit; og man mister selvfølgelig lidt af den bevægelighed der ligger i custom kode - til gengæld har det være utrolig hurtig at konvertere til Laravel - det er et behageligt og meget forståeligt framework, der har gjort det (og gør det) nemt at implementere nye funktioner.

Vores serverload er forøvrigt uændret med laravel versus det gamle system; hvilket i sig selv er en fryd.
Gravatar #5 - arne_v
6. sep. 2016 20:49
_tweak (1) skrev:
Vi har valgt Laravel, fordi vi ønsker en ren PHP-implementation (versus f.eks. Phalcon); det er alene for at holde det enkelt – også selvom native-compilende udgaver (igen, som Phalcon) er betydeligt hurtigere.


Jeg er noget skeptisk overfor at Phalcon skulle vaere saa meget hurtigere for newz.dk.

Der er ingen tvivl om den extension kører langt hurtigere end den tilsvarende PHP kode.

Men den samlede effekt begrænses jo af hvor stor eller lille del af tiden der bruges på det som den extension laver.

Eksempelvis vil:
- extension 10 gange hurtigere end tilsvarende PHP kode
- 5% af den samlede tid bruges i den PHP kode (resten bruges i diverse database extensions, database libraries, C runtime, OS kernel etc.)
jo resultere i en reduktion af tid på kun 4.5%.

Reelt set Amdahls lov anvendt på en anden problem stilling.

:-)

Gravatar #6 - _tweak
6. sep. 2016 21:07
Man kan sige, vi har ikke testet det, da det ville kræve to gange implementation, bare for at kunne sige "hah, det var hurtigere" :-) Men tidligere tests har vist at phalcon, om ikke andet til nogle ting, var markant hurtigere. Jeg synes at have læst tests der sammenligner frameworks der giver phalcon en faktor 10 over andre (som laravel) på tunge requests (der, som du siger, involverer php)?
Gravatar #7 - arne_v
6. sep. 2016 23:43
#6

Det vil være pærenemt at lave en mikro-benchmark som viser en stor forskel såsom x10.

Men jeg tror stadigvæk ikke at det har den effekt for et web site som newz.dk.

Hvis deler en side visning op i:
1) læse request fra net kort
2) parse request
3) transfer execution til PHP
4) route til controller + action
5) udfør specific logik
6) kald database extension
7) få query sendt ud på net kort
A) modtage query fra net kort
B) fortolke query
C) lave et antal disk IO
D) formatere result set
E) skrive result set til net kort
8) læse result set fra net kort
9) generer HTML
10) skriv response til net kort

Så vidt jeg kan læse vil Phalcon løse #4 super hurtigt og muligvis hjælpe på #9 også.

Men al resten er det samme.

Det må begrænse effekten af Phalcon.
Gravatar #8 - _tweak
7. sep. 2016 05:39
#7: Som sagt, vi har ikke testet det på newzdk, vi har læst benchmarks og brugt det til et tidligere projekt med stor dataload / millioner af requests i minuttet - hvor phalcon var mærkbar anderledes. Det har ikke været noget der var relevant i forhold til newzdk projektet. Vi bruger OPCache, så vi er formentlig så tæt på som vi kan komme.
Gravatar #9 - dk_picard
7. sep. 2016 11:30
Der er fejl på jeres side hvis man bruger www.newz.dk.
Så kommer der certifikat fejl samt "Whoops, looks like something went wrong." når men fortsætter.
Gravatar #10 - _tweak
7. sep. 2016 11:47
dk_picard (9) skrev:
Der er fejl på jeres side hvis man bruger www.newz.dk.
Så kommer der certifikat fejl samt "Whoops, looks like something went wrong." når men fortsætter.

Tak. Den burde gerne redirecte. Fikser det asap!
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login