Üretken bir adım Python Bir PHP uygulaması yeniden mi?

11 Cevap php

Ben Python dönüştürme düşünüyorum PHP ile yazılmış bazı eski uygulamalar var - hem de daha sonra PHP ilerledi ve şimdi bunları yeniden düşünüyorum yönetici alanları, rss vb bloglar dahil, basit statik html başladı web siteleri Python sürdürülebilirliği artırmak için hem de daha sağlam bir şeyler yazmak için deneyim benim artış yararlanmak için.

Bu zahmete değer mi?

11 Cevap

Sen, burada akla bazı parçaları almak gerekir

  1. Re-yazma ne kazanacak
  2. Bunu ekonomik akıllıca bir karar
  3. Kodu, yeni programcılar için işlemek için daha kolay olacaktır
  4. Performans açısından, bu iyi bir seçenek olacak?

Eğer kodu yeniden yazmak sonra önemli bir şey bu dört puan, çalışmaları daha verimli olacak? Muhtemelen. Ama bu yeniden-geliştirme maliyeti değerinde olacak?

Bir önemli adım, takip yeniden yazma karar verirseniz, 3 belgeleri yapmak, ilk projeyi analiz, ne yapılması gerekiyor mu? Her şey nasıl çalışmalıdır? Sonra Gereksinimleri bir belgeyi koyun, ne specificly ihtiyacımız var ve bu nasıl yapılmalıdır? Son ama en az değil, tüm son sınıf diyagramları, sistem işlemleri ve nasıl tasarım ve sayfanın akış çalışması gerektiğini koymak tasarım belge.

Bu aslında "biz gerçekten yeniden yazmak gerekiyor?" Düşünmek, yeni bir geliştirici, ve eskilerini yardımcı olacaktır.

Second-system effect direnmeye emin olun ve güvenli olmalıdır.

Varolan bir projeyi yeniden size ulaşılabilir bir amaç verir. Eğer başlığı hangi yolu biliyorum. Ama bir kerede çok fazla şey yapmaya kalkmayın.

Peki ama kolay entegrasyon için, duruma göre değişir ... ;) yeni Python kodu ile birlikte eski kodu kullanmak için gidiyoruz, bu hız için çok kullanışlı değil, olabilir. Ama genellikle: "Bu kırdı değilse, bunu düzeltmek yok". Allso yeniden iyi koda neden, ama eğer ihtiyacınız varsa sadece bunu yapabilirsiniz.

Tabii bir hobi projesi buna değer olarak, süreç hedeftir neden olur.

Yeniden yazımlar çok pahalı: doğrudan yardımcı olmuyor şey yapıyor çok fazla zaman harcamak. Joel Spolsky bu konuda şöyle açıklıyor:

Things You Should Never Do, Part I

Yararların maliyetlerden ağır eğer bunu yapmak gerekir; sadece maliyetleri hafife almayın dikkatli olun.

Diğerleri söylediler, neden bunu yapıyorsun bakmak.

Örneğin, iş yerinde bir Python / Django backend'ine mevcut envanter / satış sistemi yeniden duyuyorum. Neden? Mevcut PHP kod tabanı bayat olduğunu ve bizim iş büyüdükçe kötü ölçekli gidiyor çünkü (artı bizim iş modeli farklı zaman inşa edilmiş, daha sonra bazı spagetti kod sonuçlandı mevcut ihtiyaçlarını karşılayacak kadar yamalı)

Yani temelde, size sadece olmayan yöntemlerle ondan faydalanmak için gidiyoruz düşünüyorsanız "bu şimdi Python sweet!" sonra bunun için gidin.

Tamamen uygulamaları geliştirmek için amaç, ya da Python ile / işi öğrenmek istediğiniz nedir?

Bu ilk ise zaten biliyorum çünkü, ben, PHP ile sopa gerektiğini söyleyebilirim.

Eğer zaten çalışma var kodda daha fazla özellik eklemek için gidiyoruz, o zaman python limana bunu iyi bir fikir olabilir. Sonuçta, bu verimlilik artışı alacak. Sadece yeniden görev potansiyel kazanç ağır olmaz mı, onu dengelemek zorundayız ...

Bunu yaptığınızda ve aynı zamanda, mümkün olduğunca çok unittest çalışın.

Diğerleri söylediler, yeniden yazma düşündüğünüzden çok daha uzun sürer ve tüm sabitleme hata ve hatta daha uzun sürer her şey eski sürümü gibi çalıştı kullanmak yapım olacaktır. Şansını sadece sahip php kod geliştirme ve üstlenmeden daha iyi vardır. Bağlantı noktasına yalnızca birkaç iyi neden başka bir dilden bir proje vardır:

  1. Performansı. Bazı diller diğerlerinden daha basit daha hızlı ve optimize etmek ve sorun olarak donanım atma etkili olmaktan şey kalmadığını bir noktaya geliyor.
  2. İdame. Bazen sizin eski kod yolda bakım kolaylaştırmak için daha popüler bir dilde yeniden yazmak için iyi bir fikir olabilir bu durumda içeri yazılmış bazı belirsiz bir dil bilmek iyi insanları bulmak zor.
  3. Farklı bir platforma taşıma. Eski VB programı OS X ve Linux üzerinde çalıştırmak yanı sıra Windows'u yapmak için ani bir ihtiyaç her zaman muhtemelen farklı bir dilde yeniden yazmak bakıyorsanız

Sizin durumda yukarıdaki noktaların herhangi tutmak gibi görünmüyor. Bu önemsiz bir uygulaması var ve öğrenme deneyimi için bunu yapmak istiyorsanız Tabii ki o zaman tüm yollarla bunun için gitmek, ama bir iş ya da bakış ekonomik açıdan ne tür bir yeniden-yazma olacak uzun bir sabit bakmak istiyorum maliyet ve tam olarak ne elde etmek istiyoruz.

Ben bir PHP site ve benim şirket için bir TurboGears'ı (Python) sitesi arasında bir dönüşüm yaptı. Bunu yapmak için ilk nedeni iki kat yani bir yeniden kolay olacağını ilk ve özellikleri kolayca eklenebilir bu ikinci. Bu yapılan tam bir dönüşüm almak için bir süre sürdü, ama ne biz ile sonuna kadar çok esnek bir arka uç ve bir daha esnek ve daha okunabilir ön sonu oldu. Biz PHP çok zor olurdu ve biz şu anda çok kolay olduğu ortaya çeviriyor ön ucunun tam bir revizyon yapıyorsun, çeşitli özellikler ekledik.

Kısacası ben tavsiye ederim bir şey var, ve benim patron muhtemelen aynı şeyi söyleyebilirim. Burada bazı insanlar olsa iyi puan yapıyoruz. Python gibi hızlı PHP size ne gibi değil, ama performansı yoksun ne daha sonra çok yönlülük için yapar.

Diğer konular kritik iş uygulamaları ve ne kadar zor bakıcılarına bulmak için nasıl olacak içerir. Sayfalar senin hobileri ise o zaman hata veya yeniden yazma tanıtmak eğer bir iş planlamak göre para kaybetmek değil gitmez beri bunları yeniden olmamalıdır neden bir neden görmüyorum. Uygulama dil seçim atmak gerekir aslında ikincil hangi noktada tam bir yeniden dışarı ile üstesinden olamaz mevcut tasarımı ile sınırlamalar içine çalışan sürece ben onu yeniden olmaz bir iş merkezi ise işin dışında birkaç yıl bu sıçramalı ve artık ihtiyaçlarınızı karşılayan değil çünkü.

Kadar gelmedi bir öğe geçerli kod tabanının boyutudur. Orada ne kadar kod bağlı olarak karar etkilemeli.

Yeniden asla Joel Spolsky's argüman bir kod tabanı Netscape boyutu bağlamında geçerlidir. Küçük bir kod tabanı kodu önemli ölçüde yeniden yazma yarar Oysa.