PHP, Python, PostgreSQL tasarımı bir iş uygulaması için uygun mudur?

7 Cevap php

Ben kurmak için arıyorum bir iş uygulaması hakkında bazı hızlı düşünceler arıyorum. I-presentation, domain logic üç tabakaları ayırmak için ister ve data ile PHP, Python ediyorum ve PostgreSQL, sırasıyla. Bu yaklaşım ile sorunlar varsa ben yanlış araçlarını, vb hedefleme ediyorsam, muhtemelen daha önce bu yolda gitti, diğer millet, duymak istiyorum

  • Yaygın olarak kullanılmaktadır çünkü, PHP de oldukça olgun bakıyorum, ve ben PHP arayüzü tasarımı becerileri ile bol bol insanları bulabilirsiniz.

  • Ben duyuyorum, çünkü aynı zamanda (bu durumda, finans) konunun becerileri daha programcıların bulabilirsiniz, çünkü okunabilir kod yararları Python bakıyorum, ve açık kaynak kodlu bir dildir. Artı, o ile kodlamak daha kolay gibi görünüyor.

  • Ben işlem seviye özellikleri için PostgreSQL bakıyorum. MySQL burada da bir seçenektir, ama ben bu yönünü tartışmaya gerek yok.

Ben kullanıcı arayüzü için bir tarayıcı kullanmak istiyorum ancak bu, bir web uygulaması değildir. Bu Kurumsal Uygulama daha fazla olduğunu, ancak kullanıcı (belki 5-10) orta sayılar ve günlük işlemlerin mütevazı bir sayı ile küçük bir işletme için.

Önemli olan biz veritabanı veya etki alanı mantığı ya da gelecekte diğer katmanlardan ayrı bir arayüzü yükseltmek mümkün olmasıdır.

I'm NOT looking for a buy vs. build debate, bu farklı bir tartışma olduğu gibi.

Herhangi bir fikir için teşekkürler

7 Cevap

Django bak.

Python kodu. PHP gibi bazı aynı özellikleri izin veren bir şablon dili - biraz farklı bir sözdizimi.

Model görünümü işlevleri ("iş kuralları") boşanmış ve sunum boşanmış. Bu Django boyunca uygulanır.

Yaygın sorulardan biri "- Bazı çılgın PHP gibi bir şey - Django şablonu neden yapamam" dir Cevap sunum işleme olmasıdır. Django görünümü fonksiyonları sizin işlem yapmak. Şablonda HTML olarak sonuçları render.

Ayrıca, Django küçük SQL düşünceler sizi boşamak için bir ORM katman vardır. MySQL veya PostgreSQL daha fazla veya daha az eşdeğer Django içinde bulunmaktadır.


Edit

"Vade" bir çok şey anlamına gelir. Eğer özel bir olgunluk işareti olarak yetenekli insanlar söz.

Django saf Python. Python insanlar bulabilirsiniz, bunlar birkaç gün içinde Django öğrenebilirsiniz. Onlar sadece öğreticiler yapmak zorunda.

  • Bir Django-powered sitesi genellikle Apache + biraz tutkal + Django olduğunu. Tutkal mod_wsgi veya mod_python veya mod_fastcgi olabilir. Birkaç hareketli parçalar vardır, çünkü bazı bakım ile bu yapılandırmayı yönetmek zorunda. Burada yeni bir şey - Bu, ancak, PHP ile sahip aynı Apache yapılandırma sorundur.

  • Bir Django site ayarlar dosyası, URL haritalama ve uygulamaları herhangi bir sayı ile bir veya birden fazla Django sunucu örnekleri, her sahiptir. Bu noktada saf Python.

  • Bir Django uygulama URL eşlemeleri, model ve manzarasına sahiptir. Tüm saf Python. Python kendi iç unittest çerçeveye Django uzantıları ile test birimi.

  • Modeli bir ORM katman kullanır. Bu, belki de, Django tek ve en kafa karıştırıcı şey olabilir. Onlar çok yüksek düzey-uber-jenerik ya onlar da SQL çok fazla düşünüyorum düşünüyorum, çünkü insanlar bazen çok garip modelleri tasarım. Django bazı SQL dikkate çoğunlukla nesne yönelim bir orta zemin. Bu alın ve durdurulamaz.

  • Bir Django uygulama kendi şablon dili vardır şablonlar olabilir. Bu çok ilgi var olmayan tek şey Python hakkında olacaktır. Saf Python - özel etiketler eklemek isteyebilirsiniz.

  • Muhtemelen JavaScript (PHP ve diğer her web uygulama çerçevesi için de geçerlidir) olacak. Burada yeni bir şey yok.

  • Django yönetici uygulama otomatik olarak temel CRUD işlenmesini beri, bunu yazmak zorunda değilsiniz. İstediğiniz tüm işlem şeyler yazmak için ücretsiz. Ama gerek yok. Bu çok, çok güçlü bir melez götürür.

    • Birkaç karmaşık, kritik işlemleri yazmak. Saf Python, MEZUNLARI.

    • Sen aptal tablo-bakım işlemlerin herhangi yazmayın. Hiç yok kodu Python veya PHP üstündür.

    • Eğer şablon motoru ve CSS ile 'ayaklarınızı ıslak aldıktan sonra, istediğiniz bir şey bakmak için yönetici arayüzü uyarlayabilirsiniz. Bu HTML / CSS şeyler, hiçbir Python veya PHP.

Alt satır. Beceri setinin en Python. Sözdizimsel - - Python, ama basit ve temiz şeyleri yaparken biraz dikkat gerektirir ORM olduğunu. Şablon kendi dili var, ancak PHP daha basittir. Gerisi, SQL, Javascript, HTML, CSS, Apache ve ne-değil.


Edit

Django Vade

Django blog nihayet '08 Eylül ayında 1.0 bırakmadan önce katı yıllık tecrübesi vardı, yani '05 uzanır. Kalkınma görünüşte '03 yılında başladı.

Ben "iş uygulaması" ile internet üzerinden SaaS uygulaması çeşit aksine bir intranet ortamında barındırılan bir web uygulaması anlamına kabul edeceğim.

Başvurunuzu architecting sürecinde iken sizin işveren / müşterinin mevcut altyapı ve altyapı desteği insanları dikkate almak gerekir. Şirket gibi şeyler için yeterince büyük ise de, "onaylanmış yazılım / donanım listeleri," bu farkında olmalıdır. Listenin bazı unsurları düpedüz geri zekalı olabileceğini unutmayın. Geçmişteki hatalardan app mimarisini dikte, ama makul mantıklı olduğu durumlarda benim savaşlar alacağını ve kurumsal standart sopa izin vermeyin. Eğer gerçekten Unix / Linux üzerinde en iyi çalışır, ve sonra birisi ASP.NET uygulamalarının bir şey ama dokundu hiç birisi tarafından admined bir Windows sunucu üzerine zorlamak için çalışır bir gelişme yığını almak zaman bu gerçek bir ağrı olabilir.

Eğer hiçbir Python eşdeğeri kullanmayı planladığınız belirli bir PHP modül olmadığı sürece, ben PHP damla ve Django kullanmak istiyorsunuz. PHP kullanmak için zorlayıcı bir neden varsa, o zaman ben Python damla olur. Ben zorluk Eğer aynı anda hem kullanmak isteyeyim bir senaryo hayal yaşıyorum.

MySQL, ya eserleri karşı PG gelince. Zaten dağıtmış ne müşteri bakmak, ve onlar bir demet ve başka küçük varsa, bu pick. Onlar Oracle altyapı mevcut varsa, bunu kullanmayı düşünmelisiniz. Onlar bir SQL Server mağazası varsa ... yığını yeniden ve savaşlar almak için hatırlıyorum.

Ben sadece burada diğer halklar zaten söylediklerini tekrarlayın: Eğer etki alanı katman için Python seçerseniz, sunum katmanı için PHP kullanarak (oldukça tersine) hiçbir şey kazanamaz. Diğerleri zaten Django tavsiye, ve bu oldukça iyi bir seçim olabilir, ama iyi bir Python web çerçevelerin hiçbir sıkıntısı yoktur.

Ben şahsen sonrası ikinci ve üçüncü noktaları ile katılıyorum. Bence sen sunum için de Python kullanabilirsiniz, PHP hakkında konuşan, Python tabanlı birçok çözüm (Zope, Plone ...) vardır.

Sadece PHP atlayın ve (ben yazıldığında ise zaten fark Django ile) Python kullanın. Django zaten belirttiğim gibi katmanları ayırır.

Kendim PgSQL hiç kullanmamış, ama çoğunlukla MySQL üzerine tercih edip zevk meselesi olduğunu düşünüyorum. Bu MySQL daha fazla kurumsal özellikleri desteklemek için kullanılır ama ben hala MySQL 5.0 ve 5.1 ile gerçek olup olmadığından emin değilim. İşlemler (ancak, InnoDB tablo motorunu kullanmak zorunda) Neyse, MySQL desteklenmektedir.

Sadece PgSQL konular vs MySQL adrese - bu önemli olmamalı. Her ikisi de görev yeteneğine daha fazla konum ve herhangi bir makul çerçeve nispeten iyi farklardan sizi izole edilmelidir. Ben insanların en çok deneyime ne var, zaten kullanmak ne kadar olduğunu düşünüyorum, ve bir özellik bir veya diğer varsa size yarar diye düşünüyorum.

Eğer hiçbir tercih varsa, bunu web iş için daha popüler çünkü tamamen MySQL ile gitmek isteyebilirsiniz. Bu kolay aslında PgSQL felsefesini tercih yardım, vb bulmak için, daha fazla örnekler için çevirir, ancak bu rüzgara karşı darbe için yeterli bir neden değildir.

Sadece oraya atmak ... MVC kullanan PHP çerçeveler vardır.

Codeigniter basit ve güçlü şeyler yapar. Kesinlikle mantık tabakadan şablon katmanı ayırabilirsiniz.