FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Har WN som tidsfördriv
|
Hej,
Jag har precis genomfört ett projekt modell större där jag gjorde om en sida från php till Ruby on Rails. Projektet var i princip mitt första och tog ganska lång tid. Det är ganska många som varit nyfikna på varför osv så jag tänkte att det kanske kunde vara passande med en tråd om mina erfarenheter. Det bör påpekas att jag jobbat med php i fem år men aldrig använt ett ramverk så eventuella jämförelser är lite haltande. Därtill har jag bara jobbat med rails i 6 mån nu men har gått djupare in i det än jag någonsin gjort med php. Jag är en medelgod programmerare som gärna "klipper och klistrar". Först och främst. Anledningarna till att jag valde att göra om sidan (som var fullt fungerande) till Rails var att jag blev övertygad om en Rails-frälst vän att prova. Att jag sedan bestämde mig berodde på: - Att jag kunde få ut mycket mer av sidan. Bättre funktionalitet etc. Jag kände helt enkelt att jag kunde göra mer med Rails. - Gems - de olika sorters plugin som finns till Rails gör att man slipper programmera en massa saker. - Programmeringsspråket i sig är riktigt elegant. En kommando rad kan liksom bara läggas på, tex Time.now.to_date + 4.days = dagens datum + 4 dagar. - Strukturen - Ruby är ju själva programmeringsspråket och Rails ramverket. Detta gör det lätt att veta var man ska sätta saker. Koden blir mycket lättare att hålla koll på. - Konsol och felsökning. Man har en konsol som skapar mycket åt en automatiskt, därtill en aktiv webblogg där man hela tiden kan se parametrar och vad som händer i webbservern vilket är mycket praktiskt i felsökning. Jag famlar inte lika mycket i mörkret som med php och det gör programmeringen roligare. Några nackdelar jag upplevt: - Det är en viss tröskel att lära sig språket. Man kan inte bara tuta och köra på samma sätt som med php. På gott och ont. Jag har svurit en hel del kan erkännas. - Det är inte riktigt lika lätt att hitta svar via Google. - Ibland skiter man i om det är 100% rätt men det vill inte gärna Rails. Det kan vara lite frustrerande ibland när man bara vill fulhacka (även detta på gott och ont). - Server och publicering är mer komplicerat / dyrare. Jag stod mellan att välja mellan en VPS med Ubuntu (vilket i princip innebar att jag var tvungen att lära mig Ubuntu...halvsugen) eller använda Heroku.com. Det temporära valet föll på Heroku.com som är snyggt och välgjort men dyrt. Man betalar för prestanda och funktion och jag betalar för närvarande $35 i månaden. För mindre applikationer (nya sidor tex) är det dock gratis! Så, fråga så ska jag se om jag kan svara. Jag hade själv velat ha en sån här tråd när jag började. |
|||
![]() |
![]() |
![]() |
#2 | |||
|
||||
Bara ett inlägg till!
|
Spontant, mycket spännande projekt. Har du någon uppfattning om prestanda / RoR vs. PHP?
|
|||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Har WN som tidsfördriv
|
Nej, inte direkt. Jag har inte gjort några såna tester...
|
|||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Klarade millennium-buggen
|
Intressant.
Hur gick själva processen till när du skrev om sidan? Du skriver att du inte jobbat i ramverk tidigare, är det så att sidan inte var uppbyggd i MVC och du fick göra en sådan omarbetning också? Hittade du enkla procedurer för att omvandla rutiner i php till nya rutiner i Ruby/Rails? |
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Supermoderator
|
Jag är främst nyfiken på vad du kunde göra i Ruby on Rails som du inte kunde göra med php. Vilken databas använder du? Har du bytt databas också?
__________________
Jonny Zetterström se.linkedin.com/in/jonnyz | bjz.se | sajthotellet.com | kalsongkungen.se | zretail.se | zetterstromnetworks.se | webbhotellsguide.se | ekonominyheter24.se | nyamobiltelefoner.se | gapskratt.se | antivirusguiden.se | jonny.nu |
||
![]() |
![]() |
![]() |
#6 | |||
|
||||
Har WN som tidsfördriv
|
Edit: Kan nog vara relevant att nämna att sidan är kalkylera mera .se för att förstå mina exempel.
Magnus: Sidan var uppbyggd dels i form av strukturen på sidan men mycket av "intelligensen" ligger i algoritmerna jag gjort för kalkylerna på sidan. Själva strukturen gjorde jag om såpass att jag inte återanvände så mycket från den men algoritmerna för beräkningarna återanvände jag. I praktiken klistrade jag in dem först och översatte till Ruby allt eftersom. Min gamla sida var långt ifrån MVC (har aldrig provat Zend eller Cake) så hela det tänket var nytt också. Jag har gjort ett mindre (offline) projekt innan så jag hade lärt mig grunderna då. Jonny: Jag tror det intressanta i din fråga ligger i ordet "jag" för jag kunde inte göra speciellt mycket i php innan utan förlitade mig ganska mycket på grundfunktionaliteter. If-satser, loopar, post, smarta sätt att hantera databaser etc. Ganska grundläggande saker. Jag kunde dock pussla ihop dem till ganska komplexa sidor. Med Rails kunde jag tex mycket, mycket enklare räkna med datum, återanvända kod, centralisera koden (så att en funktion löste samma sak över hela sidan på ett sätt jag inte lyckades med innan). Ett konkret exempel är att när jag gjorde konverteringar mellan mått för konverteraren kunde jag återanvända detta enkelt överallt på sidan (tex när man räknar volym och får resultatet i olika enheter). Jag använde mysql lokalt och postgre-sql på Heroku.com. Det var relativt smärtfritt med ett undantag (rand() heter random() i postgre, det tog ett tag innan jag fattade varför det blev fel). Jag skulle vilja jämföra detta med php + cakephp men orkar inte lära mig ett nytt ramverk igen. Generellt sett är dock ruby-koden mycket renare, svårt att uttrycka det bättre. En mycket stor poäng är att jag med RubyOnRails också enkelt kunde göra sidan på flera språk (bara eng & sv än så länge) vilket var omöjligt på det sättet jag gjorde innan. Vet dock inte hur det är med php med ramverk dock. |
|||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Supermoderator
|
Håller med om att är ett intressant projekt. Om inte syftet var att bredda kunskaperna och lära sig ett nytt språk / ramverk så försvinner poängen lite grann. Allt du nämner går alldeles utmärkt att göra i PHP (med eller utan ramverk) eller .NET också. Den stora nackdelen med RoR är ju som du själv nämner att man inte har någon direkt valfrihet när det gäller hosting vilket är lite extra trist när man arbetar med svenska webbplatser på det sättet du gör. Jag hade inte tagit samma beslut själv men det betyder naturligtvis inte att det är fel.
Bara för att ta datumberäkningen som exempel så går det ju att använda "+1 week" eller "next Thursday" direkt i PHP och på DateTime i .NET har du addDays, addMinutes etc. Du kan till och med göra detta direkt i js om så önskas. Det som inte finns är bara att bygga egna funktioner och klasser för så har man återanvändbar kod även där. Att bygga webbplatser i flera språk är heller inga direkta svårigheter oavsett språk. Jag menar inte att RoR skulle vara sämre på något vis utan snarare att flera av fördelarna du nämner är mer subjektiva sådana. Däremot tror jag mycket väl att programmeringsspråk kan passa personer olika bra. Vi är alla olika, lyckligtvis. Med tanke på det svenska hostingutbudet så är det nog ändå en bra idé att du lär dig VPS ganska så snart om du tänker fortsätta med RoR. Prestandan ska väl rent generellt inte vara något problem för RoR idag. Liksom för PHP och .NET handlar det mer om hur koden skrivs än vilket språk som används.
__________________
Full-stack developer, free for smaller assignments Senast redigerad av tartareandesire den 2011-10-25 klockan 15:35 |
||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Klarade millennium-buggen
|
Varför valde du postgresql som databas?
|
||
![]() |
![]() |
![]() |
#9 | ||
|
|||
Medlem
|
Tycker du gör lite fel i att jämföra ett ramverk (RoR) med ett programmeringsspråk (PHP). Du kanske hade sett annorlunda på saken om du börjat med Zend, eller annat ramverk, för fem år sedan, eller om du för 6 månader sedan började programmera i ruby direkt istället för RoR.
PHP's motsvarighet till Gems heter pear, finns tonvis med färdig kod att använda sig av. PHP's low-barrier-to-entry som gör det möjligt, som du säger, att fulhacka saker är inte att se som något positivt. Det skapar en acceptans för slarv, det sprids dålig kod, folk lär sig "dålig" programmering etc... Har svårt att tro att det skulle finnas något som du kan göra i ruby som du inte kan göra i PHP, möjligtvis multitrådning om nu det kommer native i ruby |
||
![]() |
![]() |
![]() |
#10 | |||
|
||||
Mycket flitig postare
|
Citat:
![]() Näe. men jag tror att jag förstår vad du menar. Hur PHP är som språk att jobba med kan jag inte svara på men jag kan dra vissa paralleller till Java vs C# av det jag har sett av både Ruby och PHP. Är det inte så att Ruby som språk är tydligare för utvecklaren och att det leder till ökad produktivitet jämfört med PHP som språk? Jag tänker på språkets uppbyggnad och standard-API:et. Citat:
Själv har jag gått över från ASP/VBScript > Java > Asp.Net (C#) och kan säga att jag lärt mig massor vid varje byte. Lustigt nog var det krångligaste bytet det från Java, där man i regel använder sig av MVC-ramverk, till .NET. Trots att språken i sig är lika. |
|||
![]() |
![]() |
Svara |
|
|