Kendi CMS'mi kurmalı mıyım yoksa önceden yapılmış bir sisteme mi güvenmeliyim? [kapalı]


23

İlgili : Başlangıç ​​programcısı olarak, 3. taraf kütüphanelerini kullanmak yerine kendi kütüphanelerimi oluşturmayı tercih etmeli miyim?

İleri seviye PHP web geliştiricisi ve bu konuda genç bir orta seviye (15 yaş.) Olarak, web sitem için tamamen yeni bir CMS mi yapmalıyım veya WordPress veya Drupal gibi önceden hazırlanmış yazılımlara mı dayanmalıyım?

WordPress’in yapmaya çalıştığım şeyi idare edebilecek kadar güçlü / ölçeklenebilir olduğunu tam olarak hissetmiyorum ve son birkaç gün içinde Drupal’la biraz uğraştıktan sonra, sadece beğenilerime uymuyor gibi görünüyor. ve ayrıca iyi belgelenmiş olmadığından, bazı basit işleri yapmakta zorlanıyorum. ExpressionEngine gibi bir şey kullanmayı çok isterdim , ancak şu anda yaklaşık 300 dolar olan ticari bir lisans için kullanacak param yok, bu yüzden artık yok.

Başlangıçta sitemi geçici bir sistem olarak kodlamaya başladım, böylece kullanıcılarım yeni bir web sitesi bulana kadar oyun içi para birimi gibi yükseltmeleri ve diğer şeyleri satın alabildiler, ancak başlattıktan sonra hızlı bir şekilde ölçeklenebilir hale getirmem gerektiğini anladım. O zamandan itibaren aklımda tam işleyen bir web sitesi yapma fikrini kodladım. Sadece birkaç gün sürdü, fakat tüm temel hususlar var (kayıt, giriş, hesap değişiklikleri vb.) Ve özel bir CMS için harika bir başlangıç ​​olacağına inanıyorum.

Eklemek istediğim son şey, kendi CMS'imi kuracak olsaydım, biraz deneyime sahip olduğum CodeIgniter gibi bir PHP çerçevesinden faydalanmalı mıyım?

Belki başka geliştiriciler, kendime bulaştığım şey hakkında beni ipucu verebilir.


11
Mevcut CMS'leri oldukları gibi yapmak için harcanan saat miktarını küçümsemeyin. Şiddetli bir şekilde şaşırmış olabilirsiniz ...

Yanıtlar:


23

Tamamen sizin durumunuza bağlı. Orada CMS'lerle harika siteler yapıldı. İlk önce iki kavramı (CO ve TCO) anlamamız daha iyi olur.

CO (Sahip olma maliyeti)

Bir şey satın aldığınızda, bunun için ödediğiniz tutar CO'dur. WordPress durumunda, hiçbir şey, WordPress (veya diğer birçok CMS yazılımı) ücretsizdir.

TCO (Toplam Sahip Olma Maliyeti)

10000 dolara bir bilgisayar aldığınızı hayal edin. Sonra ne? Üzerine yazılım yüklemek için zaman harcamalısınız (zaman değerli bir kaynaktır, bu yüzden hala bu bilgisayarda para harcıyorsunuzdur), o zaman bir web kamerası, başka bir DVD yazıcı ve bazı ekstra kablolar satın alabilirsiniz. O zaman yüklü yazılımı nasıl kullanacağınızı öğrenmeniz gerekir. Başka bir deyişle, bir PC'ye Toplam Sahip Olma Maliyeti 10.000 ABD Doları değildir. Bundan daha fazlası var.

CMS yazılımı söz konusuysa, CO'ları çok düşük oranlara sahip değildir. Ancak birçok deneyim, TCO'larının hiç düşük olmadığını göstermektedir. Büyük şirketler Joomla veya WordPress'te iyi bir site edinmek için neredeyse binlerce dolar harcıyor.

Diğer bir faktör de kişiselleştirme düzeyidir . Bazen herhangi bir değişiklik yapmadan olduğu gibi bir yazılımı kullanmak istersiniz . Bu durumda, WordPress, Joomla, Drupal veya başka herhangi bir CMS çok iyi bir aday olabilir ve kendi CMS'inizi yazmamalısınız. Ancak, yüksek düzeyde özelleştirmeye ihtiyaç duyduğunuz zamanlar vardır. Bu durumda, kullanıma hazır bir İYS'yi gereksinimlerinize uyacak şekilde özelleştirmek için gerçekten sinirlenirsiniz.

Aslında hazır CMS yazılımı kullanmak istedim, ancak farklı CMS'leri öğrenmek ve her birinin zayıf yönlerini bulmak için değerli bir zaman harcadıktan sonra kendi CMS'imi yarattım. Düşünce Sonuçları benim kişisel sitemdir ve bu İYS ile hazırlanmıştır. Yakında yayınlayacağım, böylece başkaları da kullanabilir.

Yine bir başka faktör, genişletilebilirliktir . İnanın bana, bir CMS'yi statik durumdan genişletilebilir duruma almak için yaşlandırıyor. Şablonlar, modüller, eklentiler, sağlayıcılar, veritabanı ve depolama, yönlendirme mekanizmaları ve Good CMS'deki hemen hemen her parça genişletilebilir olmalıdır.

Sonunda benim kişisel önerim, bir İYS oluşturmaya başlamaktır, böylece en azından arkasındaki en temel kavramları öğrenmiş olursunuz. Ama aynı zamanda mevcut olanları kullanmaya çalışın. İyi şanslar.


Vay, mükemmel cevap. Bunlardan bazıları hiç düşünmediğim ama şimdi bilmek gerçekten güzel. Özelleştirme ile söylediğiniz gibi, gerçekten çok fazla şeye ihtiyacım var, bu yüzden aslında Drupal'a döndüm çünkü bunun gibi şeyler için harika olacağını duymuştum. Ancak benim durumumda, birden fazla sunucu, PayPal, yoğun şekilde özelleştirilmiş kayıt ve gerçekten Drupal gibi bir şey tarafından kolayca idare edilemeyen diğer şeyler arasında çok fazla etkileşime ihtiyacım var. Cevabınız için çok teşekkürler, gerçekten takdir ediyorum. :)
Alex Bennett,

Yine de sormanızı isterim, CodeIgniter gibi bir çerçeve kullanmamı veya kendi kendime ait bir yapı oluşturmamı (belki de deneyim için) önerir misiniz?
Alex Bennett,

1
@Alex, yardımcı olabileceğim için memnunum. Ancak platformum .NET olduğu için ve PHP çerçevelerine aşina olmadığım için de üzgünüm. Ancak bir çerçeve kullanmak kesinlikle teşvik edicidir. Entity Framework'ü ORM olarak kullanıyorum, bu nedenle PHP'de bir ORM kullanmak gelişiminizi gerçekten artırabilir.
Saeed Neamati,

Tamam, yine de teşekkürler. Bir çerçeve kullanmak istemememin tek nedeni uygulama için, ancak bu durumda bir tane kullanmanın benim için daha güvenli olacağına inanıyorum, bunun bir üretim bölgesi olması ve herhangi bir yoldan ayrılmak istemem. kendi CMS / çerçevemi oluştururken ortaya çıkabilecek güvenlik açıkları.
Alex Bennett,

1
@Alex Bennett, Başka bir şey, Açık kaynaklı CMS'ler var. Kaynak kodunu alırsanız. Bununla başlayabilir ve sonra da beğeninize göre değiştirebilirsiniz. Bu, kendinizinkini inşa etmeyi gerçekten hızlandırır. Hibrit bir yaklaşım gibi. Kim gerçekten tekerleği yeniden icat etmek istiyor?
MVCylon

18

Burada şeytanların savunuculuğunu oynuyorum, ancak söylenmesi gerekiyor. Yazılım geliştiricilerle ilgili en yaygın sorunlardan bazıları:

  • Önemsiz bir projeyi tamamlamak için harcanan zaman ve çabanın tahmini altında, büyük bir projeye izin verin
  • Ticari gerçekliğin tam olarak anlaşılmaması
  • Kendi becerilerini ve üretkenliğini fazla tahmin etmek.
  • Karmaşıklığın ve ince ayrıntıların hafife alınması
  • Sorunlarının o kadar benzersiz olduğu inancı henüz kimse çözmedi.

Bu hataların hiçbirini yapmadığınızdan emin misiniz? Ücretli bir işe sahipseniz ve parayla ExpressionEngine aldıysanız ne olacağını düşünün. Bir DIY işinden daha iyi özelliklerle daha erken teslim edilebilir mi?


1
15 yaşındaki ortalama yaşın için çok olgunum, umarım söyleyebileceğin gibi, ve listelediğin herhangi bir şeyi yapma hatası yaptığımı sanmıyorum. Olası çözümleri araştırmak için çok zaman harcıyorum ve durumum için henüz iyi bir çözüm bulamadım. Paraya gelince, işim ayda 300 doların üzerinde gelir elde ediyor (fazla değil, ama özel makineler için para ödüyor), böylece parayı alabildim , ancak bunu muhafazakar bir şekilde oynamayı deniyorum ve bu gibi şeylere yatırım yapmaya çalışıyorum. donanım ve reklam gibi bir zorunluluktur. Cevabınız için teşekkürler, aklımda tutacağım.
Alex Bennett,

Özel bir çözüm kadar CMS yapabileceğini sanmıyorum. Gerçek bir CMS yaparsanız, muhtemelen CMS'yi dağıtabilir / satabilirsiniz. Sanırım tam bir CMS oluşturmak için başınızın biraz üstünde olacaktınız (ben, ama ...).
HelloFictionalWorld

2
@Alex o zaman dikkate almanız gerekir == para, özellikle zaman. Ne kadar eder? CMS'nizin üretmesi 30 saatten fazla sürerse (@ 10 $ / saat) ExpressionEngine daha iyi bir seçimdir. Benzer şekilde, başka şeyler için harcanan 30 saatlik çalışma, siteniz için 300 ABD Dolarından daha fazla gerçek değer üretiyorsa, ExpressionEngine daha iyi bir seçimdir.
CdMnky

8

Bunun iki cevabı var.

Birincisi basit: Hayır - tekerleği yeniden icat etmeyin. Pek çok mükemmel CMS sistemi var ve eğer birini iyi kullanmayı öğrenirseniz, size sunduğu herhangi bir şey yoksa, yeteneklerini yeniden icat etmekten ziyade, bu amaç için bir eklenti yaratmaya odaklanabilirsiniz. tekerlek.

İkincisi biraz daha az açıktır: Evet. Bir CMS'nin nasıl çalıştığını ve birinin yaratılmasında karşılaşılan sorunları anlamak istiyorsanız, kendinizinkileri oluşturmanın zararı yoktur. Muhtemelen, hiçbir zaman mevcut CMS sistemlerinden birinin gücüne ve esnekliğine sahip olmayacaktır ve yer çevresinde yaklaşık 100000000000 PHP içerik yönetim sistemi bulunduğundan, hiç kimsenin ilgilenmeyeceği çok az şans vardır, ancak aynı zamanda İhtiyacınız olmayan şeylere sahipseniz, büyük olasılıkla daha büyük sistemlerden çok daha küçük ve basit olacaktır. Çok zaman alacaktır, sonuçların iyi olması pek mümkün değildir ve dünyanın geri kalanında herhangi bir fark yaratmayacaktır, ancak gelişiminiz ve öğrenmeniz açısından faydalı bir alıştırma olabilir.

Her durumda, kendi binalarınızı inşa etmeye başlamadan önce, nasıl çalıştıkları, iyi yaptıkları ve neler daha iyi yapabileceklerini düşündüğünüz hakkında bir fikir edinmek için mevcut olan ana sistemleri denerdim. Bunları iyi anlayabilmek kendi kararınızı vermenin bir faydası olup olmadığı konusunda kararınızı bildirebilir.


Cevap için teşekkürler. Sadece açıklığa kavuşturmak için: Eğer bu CMS'yi inşa etseydim, yayınlama niyetim olmaz, bu benim içinde bulunduğum bir pazar değil. Sadece benim için olacak ve sadece istediğim / ihtiyaç duyduğum şeyleri yapmak için yapılmış olacaktı. Yine de başkalarıyla deneyler yaptım, ancak yeterince iyi belgelenmiş bir tane bulamıyorum ve çekirdeği bir şekilde değiştirmeye zorlamadan ihtiyacım olan şeyleri yapıyor gibi görünmüyor, bu yüzden kendimi yapmayı düşünmeye başladım. Kendime ait bir şeyler inşa etmek istediğim bir diğer neden ise, uygulamadan sonra, kolejden sonra web geliştiricisi (veya benzeri bir şey) olmaya çalışıyorum. :)
Alex Bennett,

3
Bir süre önce çok küçük, çok basit, çok basit bir PHP cms uygulayan ve o zamandan beri birkaç site için kullanmış biri olarak yazıyorum. Daha büyük ölçekli sistemlerin yaptıklarının küçük bir parçasından daha fazlasını yapmaz, ancak daha küçük siteler için ihtiyacım olan her şeyi yapar ve düz dosya tabanlı olduğundan hemen hemen her yerde çalışır. Bu yüzden, bazen gerçekten sadece kendi işini yapmak istediğini takdir ediyorum.
glenatron

5

Bir CMS programlamayı hiç denemediyseniz, o zaman bu bunu yapmak için çok iyi bir fırsat olabilir. Oldukça fazla öğreneceksin ve bitirip bitirmediğine bakılmaksızın, örneğin:

  • Yapması zor ve kolay olan ne
  • Sayfalarınızı nasıl uluslararası hale getirin ve yerelleştirin
  • Kullanıcılar ve roller nasıl kullanılır?
  • SQL güncelleme ifadeleri gerektirmek yerine, temel veri yapılarının bakımı nasıl yapılır?
  • Çok parçalı sayfalar nasıl kullanılır?
  • Statik içerik nasıl verimli bir şekilde kullanılır?
  • Birden fazla bilgisayara ve yüksek yüke ölçeklendirme.
  • Kullanıcı özelleştirmeleri ve temaları için API'ler nasıl sağlanır?

Bunlardan bazıları, nasıl yapılmayacağını öğrendiğinizi bile bulabilirsiniz . Bu deneyim de önemlidir.

Şahsen, “ne kadar zor olabilir” in gerçekten yüksek kaliteli bir ürün oluşturmak için yapılması gereken çalışmanın sadece bir kısmını kapsadığını ve bir CMS seçeceksem, öğrendiğim bir aşamaya geldim. erişilebilir bir kod tabanına ve iyi dokümantasyona sahip popüler bir tanesini ve uygun eklentileri yazmamı ve yeni bir sürüm çıktığında temel CMS'yi güncellememi sağlayan iyi bir eklenti mimarisi arar.


Giriş için teşekkürler, deneyimler yapmamaya nasıl başladım . Örneğin, basit bir iş yapmak için 30 satır kod yazarım ve 2 gün sonra kodu gözden geçirip 10 satır gibi kısaltabileceğimi öğrendim. Bu deneyimler, ancak sinir bozucu olabilir, kesinlikle şeyleri daha fazla "yapışma" yapma eğiliminde oldukları için öğrenme sürecine yardımcı olur.
Alex Bennett,

@Alex, bu "nasıl DEĞİL Projenizin kod tabanının boyutu ile yapmak" deneyim ölçekler. Ama, bunu takdir etmek için en az bir kere yapmanız gerekecek sanırım :)

3

Bu sadece sorunuza bir cevap. PHP'ye girdiğinizi ve önceden hazırlanmış CMS yoluna gitmediğinizi varsaydım. Kulübe hoşgeldin! Birçoğumuz aynı yoldan gittik. Yükünüzü hafifletebilecek bazı tavsiyeler.

Kendi CMS'mi, MVC uygulamasını, uluslararasılaştırma (i18n) işleyicisini, oturum işleyicisini, bir tür veritabanı soyutlama katmanını, bir tür form işleyicisini vb. Oluşturmaya başladım. Sonra yaptığım şeyin gerçekten yapıldığını öğrendim. önce, ancak daha iyi bir şekilde çerçeveler tarafından. Bu, tekerleği tamamen yeniden icat etmeniz gerekmediği anlamına gelir, ancak tam olarak ihtiyaçlarınızı karşıladığı yerde. Altyapı hayatınızı kolaylaştırır, ancak okumak ve öğrenmek için çok çaba gerektirir. Symfony'ye gerçekten hakim olmak bir yıl sürdü ve hiç pişman değilim.

Şanslısınız, çünkü şu anda öncekinden çok daha kaliteli çerçeveler var. Birkaç isim :

  • Symfony : Bugün sürüm 2.0 kararlı piyasaya sürdüler, heyecan verici şeyler. Gevşek bir şekilde bağlanmıştır, bu da bileşenleri ya da her şeyi entegre bir paket olarak kullanmayı seçebileceğiniz anlamına gelir. İyi bir dokümantasyonu ve aktif bir kullanıcı tabanı var. Aksi halde şimdi güncel olmayan 1.4 sürümü de hala çok güvenilir ve kullanışlıdır. Hayatınızı kolaylaştıracak birçok güçlü eklenti var. (Paketler)
  • Zend Framework : Bazıları gerçekten güncel olmadığını iddia ediyor (tüm marka yeni 5.3 özelliklere sahip değil), ancak bir süredir buralardaydı ve temelde bir dizi yararlı bileşen (yine de gevşek bir şekilde birleşti, hepsi ya da hiçbiri oyunu değil) ). Arama (zend_lucene) ve pdfs oluşturma gibi şeyleri yapmak için bir araç seti olarak kullanıyorum. Ancak aynı zamanda yaygın olarak kullanılan bir MVC kontrol cihazı setine sahiptir. Bunu yapmadıysanız, araştırmanız gerekir. Çok iyi belgelenmiş.
  • CakePHP : Uzun zaman önce kullanıldı ve dokümantasyondan geçemedi. Görünüşe göre bu şimdi daha iyi ve muhtemelen dikkate değer.

  • Yii : Kullanmadım , ama son zamanlarda bu konuda çok fazla kuşku duyuyorsunuz, muhtemelen dikkatinize.

  • CodeIgniter : Pek çok kişinin kolay öğrenme eğrisi ve kullanım kolaylığı için codeigniter'ı övdüğünü duydum. Kullanmadım.

Python'u denemek istiyorsanız, birçok kişi Django'yu ve elbette raylardaki yakutları övüyor.

Muhtemelen daha fazlası var, ama bu sizin için faydalı olmalı. Bunları kullanmak istemiyorsanız, yine de bu çerçevelerden çok şey öğrenebilirsiniz. İyi şanslar!


Teşekkürler, CodeIgniter ile çok fazla tecrübem var ama diğerlerini denemedim. Kesinlikle onları da dikkate alacağım.
Alex Bennett,

1
laravel.com ?? CodeIgniter şu anda en yaygın şekilde kullanılıyor, ancak Lavarel hızla
geçiyor

1
Evet. Bu yazı dört yaşında. Laravel daha yeni başlıyordu.
Arend

1

Cevap büyük ölçüde neyi başarmaya çalıştığınıza bağlıdır.

Becerilerinizi geliştirmek istiyorsanız, içerik yönetimi vb. Hakkında bilgi edinin. Benzer şekilde bir çerçeve öğrenmek istiyorsanız kullanın.

Ancak, odak noktanız bahsettiğiniz oyun ve onun oyuncularıysa, o zaman cevap neredeyse kesinlikle hayır. Vaktiniz sınırlı ve dolayısıyla pahalı bir kaynaktır. Bir CMS geliştirmek için harcanan zaman, oyunu geliştirmek için harcanan zaman değildir ve gelir getiren oyundur. Öyleyse kendine soruyu sor. Bir oyuncularıma oyun deneyimimi geliştirmek için oyunu geliştirmek için harcadığım zamandan daha fazlasını geliştirmek yerine bu CMS'yi geliştirmek için harcanan zaman mı? Cevabınız evet ise, geliştirin, aksi halde yapmayın.

Benzer şekilde, ExpressionEngine üzerine açık kaynak kodlu CMS'nin kararı, Said'in dediği gibi ToC'yi azaltmalıdır. Basitçe Maliyet (Wordpress)> Maliyet (ExpressionEngine) ise 300 $ harcarsa koyun. Burada maliyet buy_cost + (hours_to_customise * your_hourly_rate) şeklindedir.


1

İhtiyaçlarınızın% 90'ına uyan bir İYS bulun ve sağlamadığı işlevleri eklemek için zaman içinde değiştirin.

Bu, erken başlamanıza ve sizin ve kullanıcı gereksinimleriniz değiştikçe uyum sağlamanıza izin verir.


Bu, her iki dünyanın da en kötüsünü seçiyor gibi görünmekle birlikte, aşağı oyla aynı fikirde değilim, bu yüzden bunu arttırdım.
Mawg

1

Kendi İYS'nizi kurmanızı tamamen tavsiye ediyorum. Özelleştirme ve güvenlik ile ilgili böyle bir sistemin giriş ve çıkışlarını bilmek en iyi yoldur. Fakat PHP becerilerinizle ne kadar ileri düzeyde olduğunuzu sormalıyım. Bu yaşınıza gelmiyor, inan bana.

Benim için bayrak "WordPress'in yapmaya çalıştığım şeyi idare edebilecek kadar güçlü / ölçeklenebilir olduğunu tam olarak hissetmiyorum ve Drupal'la son birkaç gün içinde biraz uğraştıktan sonra görünmüyor sevme şansım kadar ve aynı zamanda iyi belgelenmiş değil bu yüzden bazı basit işleri yapmakta zorlanıyorum. "

Worpress ve Drupal'ı kişiselleştirmeye yönelik kitapların ve sitelerin bolluğu, bunlarda çalışan yüksek profilli sitelerden bahsetmiyorum bile, ne yaptığınızı bilmek zorunda olduğunuzu kanıtlayın. Bahsedilmez, bütçelerin tamamı bu siteleri çalıştırmak için ayrılır.

Örneğin linkler:

http://drupal.org/cases

http://wpmu.org/wordpress-showcase-20-high-profile-sites-running-on-wordpress

Bu, yapmaya çalıştığınız şeyde sizi cesaret kırmak değildir, elbette bunun için gidin. Ben sadece zamanınızı çok fazla kullanmadığınızdan (tekerleği yeniden icat ederek) belli bir noktada hayal kırıklığına uğradığınızdan emin olmak ve sadece yeteneklerinizi geliştirip insanlara işverenleri gösterebilmek için "etkilemek" demek , şu anda mevcut olan araçlara sahip olduğunuzda. Gerçek dünyada ve mevcut ekonomide, zaman paradır ve işletmeler ve kuruluşlar sürekli olarak sıfırdan projeler oluşturmakla uğraşacak zamana ve / veya bütçeye sahip değildir.
Günümüzde bilgi, ışık hızında hareket eder, bu nedenle gürültüyü ayırabilen ve uygun geri dönüş süresinde amaçlı içerikler / uygulamalar / sistemler yaratan programcıların yoğun talep görmesi bu yüzdendir.


0

Sadece size CMS yapmanız gerekenler Wordpress veya Drupal yapıp yapamayacağını cevap verebilir, ancak onları denemek istiyorsanız, neden bir sanal makine kullanmayın Anahtar Teslim Linux böyle yönelik olarak, Wordpress , Drupal , Joomla veya herhangi İçerik yönetimi olan diğerleri etiketli .

Zaten VMware oynatıcınız veya VirtualBox'un kurulu olduğunu varsayarsak , bu cihazlardan herhangi birini indirdikten birkaç dakika sonra, yazılımı en az zaman harcayarak kendiniz deniyor olabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.