Ben PHP Raylar göç konusunda Derek Sivers 'uyarılarını dikkate almalıdır?

10 Cevap php

10 Cevap

Mevcut siteler yeniden yazıyor hemen hemen her zaman kötü bir fikir vardır. Eski bir tekerleği kaplanmasına kalbini koymak zor. Ben bir Java uygulaması sunucuya CGI'lerin bir sitenin yeniden yazmak üzerine çalıştı ve çeşitli programcılar yüzünden çıkmak gördüm. İlk olarak, onlar ding şeyler onların eski yolu tercih ve Java öğrenmek istemiyordu. İkincisi, ben onlar ile başlamak için isteksizce muhafaza edildiğini eski kod yeniden yazmak bir ton coşku yoktu inanıyorum. Çok daha iyi bir yeni bir görev üzerinde Rayları denemek ve nasıl ücretleri görmek için. En azından o zaman psikolojik motivasyon çekilişlere PHP ile bile bir zemine koyuyoruz.

Austin Ziegler bu makalenin ilginç bir cevap yazdı:

On Derek Siver’s Return to PHP…

Bunun özü olduğunu:

  1. Derek chose the technology for the wrong reasons. He chose it partially based on the hype of Rails, but he envisioned it as a silver bullet that would magically make his application better just because it’s in Rails.

  2. Rails didn’t fit Derek’s application model for CD Baby, and Derek’s application model is more important than the technology to be used, since it represents a business he understands well.

  3. He ignored his existing experts for the new technology. Neither he nor his employees knew Ruby aside, perhaps, from playing around with it. This wasn’t a technology that was deemed to be appropriate from experience; this was a technology deemed appropriate by management (sorry Derek, you might still be getting your hands dirty with code, but you’re still management).

  4. Derek approached the project as a whole-environment ground-up rewrite with a One Big Day deployment, without considering ways to phase it in over time. It’s almost always possible to find interface points where you can replace one broken piece at a time. Ultimately, this is what the Rails folks wouldshould tell you anyway: replace one area at a time, each with a different codebase. Interface them as REST-ful services. Don’t make them depend on a single database schema.

PHP ve deneyime sahip Ruby on + Ruby (her ikisini de kullanarak para kazandı, ama çok değil).

Ruby kütüphane çok daha iyidir. PHP'nin kütüphanesi tutarsız isimleri ve argüman sipariş ile küresel bir ad fonksiyonları topluluğudur. strpos vs str_repeat. strpos 'nin ilk argüman büyük dize ve ikinci argüman bulmak için dizedir. explode 'ilk argüman tarafından bölünmüş dizedir ve ikinci argüman büyük dizedir. Bu benim için büyük bir sorun oldu. PHP kullanırken bir çok şey aramak zorunda, ama Ruby kullanılarak zaman değil. Onlar tutarlı çünkü ben bir şeyler hatırlıyorum. Yöntemlerin isimleri argümanı sırası açık olun. Başka: PHP'nin strlen($str) count($arr) vs Ruby sadece ederken anything.length.

Ruby dili PHP daha iyidir. Bu kilitler, iyi Ö.Ö., güzel söz dizimi vardır (bu öznel, ama Ruby çok daha az noktalama gerekiyor ve ben en sık yanlış ne).

Bu benim deneyim. Her iki deneyin ve sizin için neyin işe yaradığını görmek.

Iyi cevabı yazarın kendisi olacaktır. O RoR için başka bir dönüş yapmak gibi görünüyor!:

Önsöz

My former company (CD Baby) was one of the first to loudly switch to Ruby on Rails, and then even more loudly switch back to PHP (Google me to read about the drama). This book by Michael Hartl came so highly recommended that I had to try it, and Ruby on Rails Tutorial is what I used to switch back to Rails again.

http://railstutorial.org/book

Ve kendi sitesi kaymağını, gerçekten, RoR döndükten kanıtlıyor:

3 Raylar

Instead of trying to teach everyone my unique PHP framework, all

projects will standardize on 3 Raylar.

http://thoughts.pro/

Sadece onun ünlü makalesinde izleyerek PHP Raylar değişti adamlar, şimdi tekrar geri Rails gelmek için zamanı!

Luke Crawford recent post about Muxtape başka bir bakış açısı sunuyor.

Ben PHP kullanarak bir web geliştiricisi olarak benim ilk 4 yıl geçirdi, ve o zamanda eğlenceli oldu, ama ben ne kadar ciddi verimsiz gerçekleştirmek başladı ben başka bir yerde aramaya başladı. Ben web ve daha fazla tasarım olanakları için benim geleneksel bilgisayar arka plan terk ediyorum, ama bu yüzden ben daha iyi bir yolu olduğunu biliyordum. Açıkçası, inanılmaz teknik şeyleri başarmak için daha titiz bir arka plan olmadan insanlar sağlar, çünkü çoğu zaman olduğu gibi PHP geliştiricileri kadar alay edilmemelidir. Bu inekler karşılamak gerekir ama genellikle yerine zayıf 'maçoluk' şey bir tür haline getirilir. Her neyse, bu memnuniyetsizlik 2004 sonlarında başlayan ve Ruby on yepyeni, kararlı, ve benim eski Homegrown PHP MVC framework ile karşı karşıya ediyorum her sınırlama ele. Ben sadece Raylar beri işe yaptık.

Her durumda, o kategorik deyimi savunmak için zor olurdu "Raylar PHP üzerinde önemli avantajlar sunmuyor."

PHP bazı sorunları çözmek için harika bir araçtır. Raylar belli sorunları çözmek için harika bir araçtır.

Ben Derek Silvers o yazıyı okudum. Bu konuda garip bir şey var. O kontrolden çıktı bir projenin masal, aylarca sürükledi ve sonunda terk edilmesi gerekiyordu söyler. O Raylar çerçevesinde bu suçluyor. Oysa o proje başarısız neden Raylar hakkında ne söylüyor asla. O bazı sağlam bilgi sundu eğer makale çok daha inandırıcı olurdu, ama Rayları onu üzdüm nerede o bile belirli bir yerde söz etmez. O gelene yakın kendi "ihtiyaçlar" (?) Rails'in tercihleri ​​ile çatıştı demek ki (hangileri? Nasıl?)

Bu arada, (ben dahil), tüm dünyada insanların Ruby on Rails kullanarak zaman makul miktarlarda karmaşık Web uygulamaları uygulamaktadır.

Derek parça tüm ayrıntı eksikliği, ya da gerçekten herhangi bir özel teknik bilgi, verilen it could easily be that the project failed for any number of reasons having nothing to do with Rails.

Özgün soru "Ben Raylar PHP geçiş hakkında Derek Silvers 'uyarıları kulak" diye? Benim cevabım hayır, onun "uyarılar" miktar sıfır delilleriyle belirsiz bir anekdot olacaktır. Onları görmezden tamamen güvenlidir.

Eğer Rails bir PHP uygulaması reimplement gerekir? Bu da başka bir soru. O birine hiçbir battaniye cevap yoktur. Bu koşullara bağlıdır.

Aktif Raylar ve (deneyimi 2000 yılına gidiyor) PHP geliştiricisi hem de, ben güçlü ifadeye katılmıyorum.

Ben Ruby, PHP üzerinde önemli avantajlar sunar ve Raylar PHP dünyadaki her şeyden daha iyi bir çerçeve olduğunu korumak. Bu bir çok dilin kendisi ile ilgisi var - Ruby sadece basit olamaz PHP şeyler yapabilirsiniz. Meta-programlama zerafet grok kez, etkileyiciliğini yepyeni bir seviye size açılır.

Disclaimer: Ben hiçbir şekilde bir Ruby Rails veya uzman tarafından duyuyorum.

15 yıldır üzerinde yakın sektöründe olmuştur birisi olarak ben özellikle Ruby on Rails hakkında beni sinir yapmak çeşitli uyarı işaretleri görüyoruz. Bir dil bir dildir, çünkü ben burada dilini görmezden gidiyorum. Ruby vb kapanışları, istisnalar, OO, bazı performans açısından eleştirmek ile modern bir dildir. Bu konular (bir Web sayfasını indirmek ve görüntülemek için 300ms alırsa, kim serverside kodları çalıştırmak için 10, 20 hatta 30ms alır umurunda?) Onlar gerçek dünya performansını etkilemez ve bu onlar içinde geçici olduğu, büyük ölçüde ilgisiz (Ruby 1.9 ile durum gibi görünüyor) sonraki sürümlerinde giderilmiştir.

Ruby on Rails is a closed, heavyweight stack. Ben bir gözlem değil, bir suçlama olarak bu demek. Bu sıkı çok (evet ben son sürümleri biliyorum ve makaleler Glassfish ve başka JPA sağlayıcı, diyelim ki, bunu kullanarak meseleyi çözüme sahip JBoss / Hibernate ile sıkıca entegre ve varlık) Java dünyasında JBoss Seam gibi (Prototip dahil) ile entegre

Bu iyi bir şey ve kötü bir şey de olabilir. J2EE, örneğin, oldukça açık bir yığın olarak bunu hemen hemen her parça (özellikle EJB) birlikte oluklu olabilir farklı projelerde yerini son on yıl içinde yazılım sektöründe çok yenilik neden oldu. Bahar için doğum yeri, kesinlikle inkübatör değildi eğer Ve tabii ki, oldu.

Diğer yandan onların kapalı yapısı, hızlı yenilik sağlar. Net, Microsoft (genellikle) de çok başarılı bir model gibi daha kapalı yığınları var. Birkaç kısa yıl içinde DirectX herhangi bir kapalı sistem açık standartlar sistemine göre çok daha hızlı gelişmeye çünkü tamamen bir oyun geliştirme platformu olarak OpenGL trouncing bir şaka olmaktan çıktı. Bu işler sadece nasıl.

Ben değineceğiz ilgili diğer nokta, son yıllarda orada ORMs doğru bir hareket Java ("nesne-ilişkisel haritalama"). Başka Net ve olmuştur ve bu Rails arkasında ivme parçası olmasıdır. Ben örnek "Using an ORM or plain SQL?" için, daha önce bu yorumladı ettik ve ben kendi bütünlüğü içinde bu noktaları yinelemek olmaz.

Size en nesne ve Orms köprü çalışmışlardır ilişkisel dünyalar arasında bir uyumsuzluk olduğunu biliyorum gibi. Son iki yıl içinde ben esas Java (JPA özellikle) ile bu ele ettik.

Şimdi bunu sonuna kadar eşleşmiyor iki şey arasında köprü ne zaman "leaky abstractions" (Joel dediği gibi):

All non-trivial abstractions, to some degree, are leaky.

Şimdi ne ekleyelim şudur: soyutlama karmaşıklığı ve nasıl sızdıran soyutlama arasındaki ters bir ilişki vardır. Tipik bir örnek: ibatis. Ibatis son derece hafif ama güçlü sebat Java için çerçeve ve ben büyük bir hayranıyım değilim biridir. Bu dosyaları harici ve bunun üstüne SQL gibi birçok modern ORM davranışı, koyar sarar:

  • Ilişkilerin yükleme tembel;
  • Sonuç haritalama;
  • Birden seviyelere sonuçları gruplama (bir şey JPA can't do); ve
  • Ayrımcılık türleri (yani tip verileri belirlenir).

Ben ibatis tek karmaşıklığı havai CGLIB yoluyla tembel yükleme zamanı baytkodu geliştirme olmak Hazırda işlevselliği% 90-95 vardır tahmin ediyorum kendi sorguları yazmak zorunda sadece olumsuz (JPA o aynı şekilde yapar) (ve ben ciddi bir dezavantajı ama opnions değişecektir düşünmüyoruz).

Compare that to a JPA provider that relies on instrumentation, load-time weaving and non-standard class loaders to implemennt that extra 5-10% fu

Ben Rails yeniden yazmak, ancak PHP aşk varsa, PHP ile gitmek istiyorum. Size uygun ne yapmak, diğer insanların söyledikleri umurumda değil.

Iş, zaman paradır - ve bazen az direnç yolu gitmek zorunda. Hiçbir çevre, vb dil, çerçeve, mükemmel. Öğrenmek ve kullanmak istediğiniz ve ne 'Homeboys ilerliyoruz tutmak!!