Kom ihåg mig?
Home Menu

Menu


Gjorde om sida från php till Ruby on Rails

 
Ämnesverktyg Visningsalternativ
Oläst 2011-10-23, 17:33 #1
clirres avatar
clirre clirre är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Nov 2005
Inlägg: 1 035
clirre clirre är inte uppkopplad
Har WN som tidsfördriv
clirres avatar
 
Reg.datum: Nov 2005
Inlägg: 1 035
Standard Gjorde om sida från php till Ruby on Rails

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.
clirre är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-10-23, 21:22 #2
coredevs avatar
coredev coredev är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Sep 2007
Inlägg: 1 554
coredev coredev är inte uppkopplad
Bara ett inlägg till!
coredevs avatar
 
Reg.datum: Sep 2007
Inlägg: 1 554
Spontant, mycket spännande projekt. Har du någon uppfattning om prestanda / RoR vs. PHP?
coredev är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-10-24, 07:55 #3
clirres avatar
clirre clirre är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Nov 2005
Inlägg: 1 035
clirre clirre är inte uppkopplad
Har WN som tidsfördriv
clirres avatar
 
Reg.datum: Nov 2005
Inlägg: 1 035
Nej, inte direkt. Jag har inte gjort några såna tester...
clirre är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-10-24, 08:05 #4
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
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?
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-10-24, 08:58 #5
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
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 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-10-24, 22:53 #6
clirres avatar
clirre clirre är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Nov 2005
Inlägg: 1 035
clirre clirre är inte uppkopplad
Har WN som tidsfördriv
clirres avatar
 
Reg.datum: Nov 2005
Inlägg: 1 035
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.
clirre är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-10-25, 15:14 #7
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
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
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-10-25, 16:44 #8
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Varför valde du postgresql som databas?
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-10-25, 19:15 #9
znap znap är inte uppkopplad
Medlem
 
Reg.datum: Jun 2007
Inlägg: 114
znap znap är inte uppkopplad
Medlem
 
Reg.datum: Jun 2007
Inlägg: 114
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
znap är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-10-25, 19:44 #10
dAEks avatar
dAEk dAEk är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2006
Inlägg: 678
dAEk dAEk är inte uppkopplad
Mycket flitig postare
dAEks avatar
 
Reg.datum: Dec 2006
Inlägg: 678
Citat:
Ursprungligen postat av clirre Visa inlägg
Det bör påpekas att jag jobbat med php i fem år
Citat:
Ursprungligen postat av clirre Visa inlägg
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).
Läser jag det stycket kan jag inte låta bli att tycka att det låter som en nybörjares syn på saken men samtidigt skriver du att du har jobbat med PHP i 5 år... låter som att du har klippt och klistrat lite för mycket.
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:
Ursprungligen postat av clirre Visa inlägg
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!
  • Menar du språket eller ramverket? Nya språk och plattformar är alltid bökiga i början. Ny syntax, nya API:er, ny utvecklingsmiljö, ja, mycket nytt helt enkelt. Det roliga är att man lär sig massor! Går du tillbaks till PHP eller väljer att testa en annan plattform om säg 1 år eller så, då kommer du ha bättre möjligheter när du angriper uppgifterna. Det är bra att tvinga sig tänka om även om man kanske klamrar sig fast vid det gamla s.k. tänket i början.

  • Är inte det bara bra, egentligen? Inte om man sitter under tidspress men annars tror jag att man lär sig mer den jobbiga vägen. Man tvingas utforska API:erna och fundera lite själv om inte annat och det tjänar man ju garanterat in i längden.

  • Precis som du skriver är det på gott och ont. Återigen: i långa loppet är det positivt att det är svårt att fula sig eftersom de flesta gärna tar genvägar om det är för enkelt.

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.
dAEk är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 07:20.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017