Haruskah saya membuat CMS sendiri atau mengandalkan yang sudah dibangun sebelumnya? [Tutup]

23

Terkait : Sebagai programmer pemula, haruskah saya lebih suka membangun perpustakaan sendiri daripada menggunakan perpustakaan pihak ketiga?

Sebagai pengembang web PHP tingkat menengah hingga mahir dan yang masih muda (15 tahun), haruskah saya membuat CMS yang sama sekali baru untuk situs web saya atau mengandalkan perangkat lunak yang dibuat sebelumnya seperti WordPress atau Drupal?

Saya tidak benar-benar merasa bahwa WordPress cukup kuat / dapat diukur untuk dapat menangani apa yang saya coba lakukan dan setelah bermain-main dengan Drupal selama beberapa hari terakhir, sepertinya tidak sesuai dengan keinginan saya. dan juga tidak didokumentasikan dengan baik sehingga saya mengalami sedikit kesulitan untuk melakukan tugas-tugas sederhana tertentu. Saya akan senang untuk penggunaan sesuatu seperti ExpressionEngine, tapi saya tidak punya uang untuk hidangan keluar untuk lisensi komersial yang saat ini sekitar $ 300, jadi itu no-go.

Saya awalnya mulai mengkodekan situs saya sebagai sistem sementara sehingga pengguna saya dapat membeli peningkatan dan hal-hal lain seperti mata uang dalam game sampai saya bisa membuat situs web baru, tetapi setelah saya mulai, saya dengan cepat menyadari bahwa saya perlu membuatnya dapat diskalakan , jadi sejak saat itu saya membuat kode dengan pikiran menjadikannya situs web yang berfungsi penuh dalam pikiran. Hanya butuh beberapa hari tetapi semua dasar-dasarnya ada (mendaftar, masuk, modifikasi akun, dll) dan saya percaya ini akan menjadi awal yang baik untuk CMS pribadi.

Hal terakhir yang ingin saya tambahkan adalah jika saya membangun CMS saya sendiri, haruskah saya menggunakan kerangka kerja PHP seperti CodeIgniter, yang saya punya sedikit pengalaman?

Mungkin pengembang lain bisa memberi tahu saya tentang apa yang mungkin saya lakukan.

Alex Bennett
sumber
11
Jangan meremehkan jumlah jam yang digunakan untuk membuat CMS yang ada seperti apa adanya. Anda mungkin akan sangat terkejut ...

Jawaban:

23

Ini sepenuhnya tergantung pada situasi Anda. Situs-situs hebat telah dibuat dengan CMS di luar sana. Saya pikir lebih baik kita memahami dua konsep, CO, dan TCO.

CO (Biaya kepemilikan)

Ketika Anda membeli sesuatu, jumlah yang Anda bayar untuk itu adalah CO. Dalam kasus WordPress, tidak ada apa-apa, karena WordPress (atau banyak perangkat lunak CMS lainnya) tidak dikenai biaya.

TCO (Total Biaya Kepemilikan)

Bayangkan Anda membeli PC seharga 10.000 dolar. Lalu apa? Anda harus menghabiskan waktu untuk menginstal perangkat lunak di atasnya (waktu adalah sumber daya yang berharga, jadi Anda masih menghabiskan uang untuk PC itu), maka Anda dapat membeli webcam, penulis DVD lain dan beberapa kabel tambahan. Maka Anda perlu belajar cara menggunakan perangkat lunak yang diinstal. Dengan kata lain, Total Biaya Memiliki PC bukan $ 10.000. Jauh lebih dari itu.

Dalam hal perangkat lunak CMS, CO mereka benar-benar tidak ada yang sangat rendah. Tetapi banyak pengalaman menunjukkan bahwa TCO mereka tidak rendah sama sekali. Perusahaan besar menghabiskan hampir ribuan dolar untuk mendapatkan situs yang bagus di Joomla, atau WordPress.

Faktor lain adalah tingkat penyesuaian . Kadang-kadang Anda ingin menggunakan perangkat lunak seperti tanpa perubahan apapun. Dalam hal ini, WordPress, Joomla, Drupal atau CMS lainnya bisa menjadi kandidat yang sangat baik, dan Anda tidak boleh menulis CMS Anda sendiri. Tetapi ada saatnya Anda membutuhkan penyesuaian tingkat tinggi. Dalam hal ini, Anda benar-benar frustrasi untuk menyesuaikan CMS yang siap digunakan sesuai dengan kebutuhan Anda.

Saya sebenarnya ingin menggunakan perangkat lunak CMS yang siap, tetapi setelah menghabiskan waktu yang berharga untuk mempelajari berbagai CMS dan menemukan kelemahan masing-masing, saya akhirnya membuat CMS saya sendiri. Hasil Pemikiran adalah situs pribadi saya dan dibangun melalui CMS ini. Saya akan segera menerbitkannya, sehingga orang lain juga dapat menggunakannya.

Masih faktor lain adalah diperpanjang . Percayalah, itu membuat Anda tua untuk mengambil CMS dari keadaan statis ke keadaan diperpanjang. Template, modul, plugin, penyedia, basis data dan penyimpanan, mekanisme perutean, dan hampir semua bagian dalam CMS yang Baik harus diperluas.

Akhirnya, saran pribadi saya adalah mulai membangun CMS, sehingga setidaknya Anda mempelajari beberapa konsep paling mendasar di baliknya. Tetapi juga coba gunakan yang sudah ada. Semoga berhasil.

Saeed Neamati
sumber
Wow, jawaban yang bagus. Beberapa hal yang tidak pernah saya pertimbangkan tetapi benar-benar baik untuk diketahui sekarang Seperti yang Anda katakan dengan penyesuaian, saya benar - benar membutuhkan banyak hal, itulah sebabnya saya awalnya beralih ke Drupal karena saya mendengar itu seharusnya hebat dengan hal-hal seperti itu. Namun, dalam kasus saya, saya perlu banyak berinteraksi antara beberapa server, PayPal, registrasi yang disesuaikan luas, dan hal-hal lain yang benar-benar tidak mudah ditangani oleh sesuatu seperti Drupal. Terima kasih banyak atas jawaban Anda, saya sangat menghargainya. :)
Alex Bennett
Saya juga ingin Anda bertanya kepada Anda, apakah Anda akan merekomendasikan saya menggunakan kerangka kerja seperti CodeIgniter, atau membangun sendiri saat saya pergi (mungkin untuk pengalaman)?
Alex Bennett
1
@Alex, saya senang bisa membantu. Tapi saya juga minta maaf, karena platform saya adalah .NET dan saya tidak terlalu akrab dengan kerangka kerja PHP. Tetapi menggunakan kerangka kerja pasti mendorong. Saya menggunakan Entity Framework sebagai ORM, jadi menggunakan ORM di PHP benar-benar dapat meningkatkan pengembangan Anda.
Saeed Neamati
Baiklah, terima kasih. Satu-satunya alasan saya tidak ingin menggunakan kerangka kerja adalah untuk praktik, tetapi saya percaya mungkin akan lebih aman bagi saya untuk menggunakannya dalam hal ini karena ini adalah tempat produksi dan saya tidak ingin tersesat. kerentanan yang mungkin timbul saat saya membuat CMS / kerangka kerja saya sendiri.
Alex Bennett
1
@Alex Bennett, Satu hal lagi, Ada CMS open source. Jika Anda mendapatkan kode sumbernya. Anda bisa mulai dengan itu, lalu memodifikasinya sesuai dengan keinginan Anda. Ini benar-benar akan mempercepat pembangunan Anda sendiri. Ini seperti pendekatan hybrid. Siapa yang benar-benar ingin menciptakan kembali roda?
MVCylon
18

Saya bermain sebagai pendukung setan di sini, namun perlu dikatakan. Beberapa masalah paling umum dengan pengembang perangkat lunak:

  • Di bawah perkiraan waktu dan upaya yang terlibat dalam menyelesaikan proyek sepele, biarkan yang besar
  • Kurangnya pemahaman tentang realitas bisnis
  • Menilai terlalu tinggi keterampilan dan produktivitas sendiri.
  • Meremehkan kompleksitas dan detail halus
  • Keyakinan bahwa masalah mereka begitu unik belum ada yang menyelesaikannya.

Apakah Anda yakin tidak melakukan kesalahan ini, karena bahkan untuk 15y0, $ 300 bisa didapat dalam beberapa minggu, dan apa yang Anda usulkan bisa memakan waktu berbulan-bulan. Pikirkan apa yang akan terjadi jika Anda mendapatkan pekerjaan yang membayar dan membeli ExpressionEngine dengan uangnya. Apakah akan dikirim lebih cepat, dengan fitur yang lebih baik daripada pekerjaan DIY?

mattnz
sumber
1
Saya cukup dewasa untuk usia rata-rata 15 tahun Anda, karena saya harap Anda tahu, dan saya tidak percaya saya melakukan kesalahan dengan melakukan hal-hal yang Anda daftarkan. Saya telah menghabiskan banyak waktu meneliti kemungkinan solusi dan belum menemukan solusi yang bagus untuk situasi saya. Adapun uang, bisnis saya menghasilkan lebih dari $ 300 dalam pendapatan per bulan (tidak banyak, tetapi membayar untuk mesin khusus) sehingga saya bisa mendapatkan uang, tetapi saya mencoba memainkannya secara konservatif dan berinvestasi dalam hal-hal yang suatu keharusan, seperti perangkat keras dan periklanan. Terima kasih atas jawabannya, saya akan benar-benar mengingatnya.
Alex Bennett
Saya tidak berpikir Anda akan benar-benar membuat CMS sebanyak solusi kustom. Jika Anda membuat CMS yang benar, Anda mungkin bisa mendistribusikan / menjual CMS. Saya pikir Anda akan sedikit di atas kepala Anda (seperti yang akan saya, tapi ...) untuk keluar membangun CMS lengkap.
HelloFictionalWorld
2
@Alex Anda perlu mempertimbangkan waktu itu == uang, khususnya waktu Anda. Berapa nilainya? Jika CMS Anda membutuhkan lebih dari 30 jam untuk menghasilkan (@ $ 10 / jam) maka ExpressionEngine adalah pilihan yang lebih baik. Demikian pula jika 30 jam kerja yang dihabiskan untuk hal-hal lain menghasilkan nilai lebih nyata untuk situs Anda dari $ 300 maka ExpressionEngine adalah pilihan yang lebih baik.
CdMnky
8

Ada dua jawaban untuk ini.

Satu sederhana: Jangan- jangan menemukan kembali roda. Ada banyak sistem CMS yang sangat baik dan jika Anda belajar menggunakannya dengan baik maka jika ada hal-hal yang Anda butuhkan yang tidak ditawarkan, Anda dapat lebih memfokuskan keterampilan Anda untuk membuat plug-in untuk tujuan itu daripada menciptakan kembali roda.

Yang kedua agak kurang jelas: Ya. Jika Anda ingin memahami cara kerja CMS dan masalah yang dihadapi dalam pembuatan CMS, tidak ada salahnya membangun sendiri. Mungkin tidak akan pernah memiliki kekuatan dan fleksibilitas dari salah satu sistem CMS yang ada dan karena ada sekitar 10.000.000.000 sistem manajemen konten PHP di sekitar tempat itu, ada sangat sedikit kemungkinan orang lain akan tertarik dengan hal itu, tetapi juga tidak akan memiliki hal-hal yang tidak Anda butuhkan dan mungkin akan bekerja jauh lebih kecil dan lebih sederhana daripada sistem yang lebih besar. Ini akan membutuhkan banyak waktu, hasilnya tidak akan sebaik dan tidak akan membuat perbedaan di seluruh dunia, tetapi dalam hal perkembangan dan pembelajaran Anda, ini bisa menjadi latihan yang bermanfaat.

Bagaimanapun, sebelum Anda memulai membangun Anda sendiri, saya akan mencoba sistem arus utama yang tersedia hanya untuk mendapatkan ide tentang bagaimana mereka bekerja, apa yang mereka lakukan dengan baik dan apa yang Anda rasa mereka bisa lakukan lebih baik. Memiliki pemahaman yang baik tentang hal-hal itu dapat menginformasikan keputusan Anda tentang apakah ada atau tidak ada manfaat dalam membuat keputusan Anda sendiri atau tidak.

glenatron
sumber
Terima kasih atas jawabannya. Sekedar klarifikasi: Jika saya membangun CMS ini saya tidak akan memiliki niat untuk melepaskannya, itu bukan pasar yang sedang saya geluti. Itu hanya untuk saya dan akan dibangun untuk melakukan hanya hal-hal yang saya inginkan / butuhkan. Saya telah bereksperimen dengan orang lain, tetapi sepertinya saya tidak dapat menemukan yang didokumentasikan dengan cukup baik dan melakukan hal-hal yang saya butuhkan tanpa memaksa saya untuk mengubah inti dalam beberapa cara, itu sebabnya saya mulai mempertimbangkan untuk membuat sendiri. Alasan lain saya ingin membangun sendiri adalah untuk praktik, karena saya berupaya menjadi pengembang web (atau yang serupa) setelah lulus kuliah. :)
Alex Bennett
3
Saya menulis sebagai seseorang yang mengimplementasikan cms PHP yang sangat kecil, sangat sederhana, sangat dasar beberapa waktu lalu dan telah menggunakannya untuk beberapa situs sejak saat itu. Itu tidak lebih dari sebuah fragmen kecil dari apa yang dilakukan oleh sistem skala yang lebih besar tetapi ia melakukan semua yang saya butuhkan untuk situs yang lebih kecil dan karena berbasis file-datar itu berjalan hampir di mana saja. Jadi saya sangat menghargai bahwa kadang-kadang Anda benar-benar hanya ingin membangun sendiri.
glenatron
5

Jika Anda belum pernah mencoba pemrograman CMS, maka ini mungkin kesempatan yang sangat baik untuk melakukannya. Anda akan belajar banyak, dan terlepas dari apakah Anda menyelesaikannya, Anda akan memiliki ide yang sangat baik misalnya:

  • Apa yang sulit dilakukan dan apa yang mudah
  • Cara menginternasionalkan dan melokalkan halaman Anda
  • Cara menangani pengguna dan peran
  • Bagaimana menangani pemeliharaan datastructures yang mendasari daripada membutuhkan pernyataan pembaruan SQL.
  • Cara menangani halaman multi-bagian.
  • Cara efisien menangani konten statis.
  • Bagaimana skala ke beberapa komputer dan beban tinggi.
  • Cara menyediakan API untuk penyesuaian dan tema pengguna.

Beberapa di antaranya bahkan mungkin Anda telah pelajari bagaimana tidak melakukannya. Pengalaman itu juga penting.

Secara pribadi saya telah mencapai tahap di mana saya telah belajar bahwa "betapa sulitnya itu" hanya mencakup beberapa persen dari pekerjaan yang sebenarnya perlu dilakukan untuk menciptakan produk yang berkualitas tinggi, dan jika saya harus memilih CMS saya akan mencari yang populer dengan basis kode yang dapat diakses dapat diakses dan dokumentasi yang baik, dan arsitektur plugin yang baik memungkinkan saya untuk hanya menulis plugin yang sesuai, dan kemudian memperbarui CMS dasar ketika versi baru keluar.


sumber
Terima kasih atas masukannya, saya sudah punya beberapa cara untuk tidak melakukannya. Misalnya saya menulis 30 baris kode untuk melakukan tugas sederhana dan kemudian 2 hari kemudian meninjau kode dan menemukan bahwa saya dapat mempersingkat menjadi 10 baris. Pengalaman-pengalaman itu, betapapun menjengkelkannya mereka, pasti membantu proses belajar karena mereka cenderung membuat hal-hal "lebih melekat".
Alex Bennett
@Alex, pengalaman "How NOT to do it" ini mengalami skala dengan ukuran basis kode proyek Anda. Tapi, saya kira Anda perlu melakukannya setidaknya sekali untuk menghargainya :)
3

Ini hanya sedikit jawaban untuk pertanyaan Anda. Saya berasumsi Anda menggunakan php dan Anda tidak akan menggunakan cara CMS yang sudah dibuat sebelumnya. Selamat Datang di klub! Banyak dari kita yang mengalami hal yang sama. Beberapa saran yang mungkin meringankan beban Anda.

Saya mulai membangun CMS, implementasi MVC, handler internasionalisasi (i18n) saya sendiri, pengendali sesi, beberapa cara lapisan abstraksi basis data, beberapa cara penangan formulir, dll. Dan kemudian saya menemukan bahwa apa yang saya lakukan sebenarnya dilakukan sebelumnya, tetapi dengan cara yang lebih baik oleh kerangka kerja. Jadi, ini berarti Anda tidak harus menemukan kembali roda sepenuhnya, tetapi hanya di tempat yang sesuai dengan kebutuhan Anda. Kerangka kerja membuat hidup Anda lebih mudah, tetapi membutuhkan banyak upaya untuk membaca, dan belajar. Butuh satu tahun bagi saya untuk benar-benar menguasai Symfony, dan saya tidak menyesalinya.

Dan Anda beruntung, karena saat ini ada banyak kerangka kerja yang lebih berkualitas daripada sebelumnya. Untuk beberapa nama:

  • Symfony : Hari ini mereka merilis versi 2.0 stable, ini hal yang menarik. Ini secara longgar digabungkan yang berarti Anda dapat menggunakan salah satu komponen atau memilih untuk menggunakan semuanya sebagai paket terintegrasi. Itu punya dokumentasi yang bagus dan basis pengguna aktif. Kalau tidak, versi 1.4 yang sudah ketinggalan zaman juga masih sangat andal dan bermanfaat. Ada banyak plugin yang kuat untuk membuat hidup Anda mudah. (Bundel)
  • Zend Framework : Beberapa mengklaim itu tidak benar-benar up to date (tidak semua merek memukul fitur 5.3 baru), tetapi sudah ada untuk sementara waktu sekarang, dan itu pada dasarnya satu set komponen yang berguna (sekali lagi longgar digabungkan, bukan semua atau tidak sama sekali permainan ). Saya menggunakannya sebagai toolkit untuk melakukan hal-hal seperti mencari (zend_lucene) dan menghasilkan pdf. Tetapi juga memiliki set pengontrol MVC yang umum digunakan. Anda harus memeriksanya jika Anda belum melakukannya. Sangat terdokumentasi dengan baik.
  • CakePHP : Sudah menggunakannya sejak dulu, dan tidak bisa membaca dokumentasi. Rupanya sekarang ini lebih baik dan mungkin patut Anda pertimbangkan.

  • Yii : Belum pernah menggunakannya, tapi akhir-akhir ini ada banyak masalah, mungkin patut Anda perhatikan.

  • CodeIgniter : Mendengar banyak orang memuji codeigniter karena kurva belajar yang mudah dan kemudahan penggunaan. Belum pernah menggunakannya.

Jika Anda ingin mencoba python, banyak orang juga memuji Django, dan tentu saja ruby ​​pada rel.

Mungkin ada lebih banyak, tetapi ini harus bermanfaat bagi Anda. Jika Anda tidak ingin menggunakannya, Anda masih bisa belajar banyak dari kerangka kerja ini. Semoga berhasil!

Arend
sumber
Terima kasih, saya memiliki banyak pengalaman dengan CodeIgniter tetapi saya belum mencoba yang lain. Saya pasti akan mempertimbangkannya.
Alex Bennett
1
laravel.com ?? CodeIgniter saat ini paling banyak digunakan, tetapi Lavarel cepat menyalipnya
Mawg
1
Ya. Posting ini berumur empat tahun. Laravel baru saja mulai saat itu.
Arend
1

Jawabannya sangat tergantung pada apa yang ingin Anda capai.

Jika Anda bermaksud untuk mengembangkan keterampilan Anda, pelajari tentang manajemen konten, dll. Maka ya, tentu saja kembangkan keahlian Anda sendiri. Demikian pula jika Anda ingin mempelajari suatu kerangka kerja gunakanlah.

Namun jika fokus Anda adalah permainan yang Anda sebutkan dan pemainnya maka jawabannya hampir pasti tidak. Waktu Anda terbatas, dan karenanya sumber daya mahal. Waktu yang dihabiskan untuk mengembangkan CMS adalah waktu yang tidak dihabiskan untuk mengembangkan game, dan itu adalah game yang menghasilkan pendapatan. Jadi tanyakan pada diri sendiri pertanyaannya. Apakah waktu yang dihabiskan untuk mengembangkan CMS ini daripada membeli satu akan meningkatkan pengalaman gim pemain saya lebih dari waktu yang dihabiskan untuk mengembangkan gim ini? Jika jawabannya ya, kembangkan, kalau tidak jangan.

Demikian pula keputusan CMS open source atas ExpressionEngine harus menurunkan ToC seperti kata Saeed. Sederhananya jika Biaya (Wordpress)> Biaya (ExpressionEngine) kemudian menghabiskan $ 300. Di sini biayanya purchase_cost + (hours_to_customise * your_hourly_rate).

CdMnky
sumber
1

Temukan CMS yang sesuai dengan 90% kebutuhan Anda dan modifikasi dari waktu ke waktu untuk menambah fungsionalitas yang tidak disediakannya.

Ini akan memungkinkan Anda untuk memulai lebih awal dan beradaptasi ketika kebutuhan Anda dan pengguna Anda berubah.

Supermighty
sumber
Meskipun ini tampaknya memilih yang terburuk dari kedua dunia, saya tidak setuju dengan downvote, jadi saya menaikkannya.
Mawg
1

Saya sepenuhnya mendorong Anda untuk membangun CMS Anda sendiri. Sejauh ini, ini adalah cara terbaik untuk mengetahui seluk beluk sistem semacam itu berkaitan dengan penyesuaian dan keamanan. Tapi saya harus mempertanyakan seberapa menengah hingga mahir Anda dengan keterampilan PHP Anda. Ini bukan tentang usia Anda, percayalah.

Bendera untuk saya adalah "Saya tidak benar-benar merasa bahwa WordPress cukup kuat / scalable untuk dapat menangani apa yang saya coba lakukan dan setelah bermain-main dengan Drupal selama beberapa hari terakhir ini sepertinya tidak terlihat. sesuai dengan keinginan saya dan juga tidak didokumentasikan dengan baik jadi saya mengalami sedikit kesulitan untuk melakukan tugas-tugas sederhana tertentu. "

Banyaknya buku dan situs tentang penyesuaian Worpress dan Drupal, belum lagi situs profil tinggi yang menjalankannya, membuktikan Anda harus tahu apa yang Anda lakukan, dapatkan situs seperti ini. Belum lagi, seluruh anggaran disisihkan untuk menjalankan situs-situs ini.

Tautan misalnya:

http://drupal.org/cases

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

Ini bukan untuk mengecilkan hati Anda dalam apa yang Anda coba lakukan, dengan segala cara. Saya hanya ingin memastikan bahwa Anda tidak menggunakan terlalu banyak waktu Anda (menciptakan kembali roda) dan menjadi frustrasi pada titik tertentu dan hanya mengatakan "eff it", ketika Anda dapat mengembangkan bakat Anda dan menunjukkan kepada orang-orang, majikan termasuk , apa yang Anda miliki dengan alat yang tersedia saat ini. Di dunia nyata dan ekonomi saat ini, waktu adalah uang, dan bisnis dan organisasi tidak punya waktu dan / atau anggaran untuk terus berurusan dengan membuat proyek dari awal.
Informasi hari ini bergerak dengan kecepatan cahaya, itulah sebabnya programmer yang dapat memisahkan kebisingan dan membuat konten / aplikasi / sistem yang bertujuan dalam waktu penyelesaian yang tepat sangat diminati.

A. Edwards
sumber
0

Hanya Anda yang dapat menjawab apakah Wordpress atau Drupal dapat melakukan apa yang perlu dilakukan CMS, tetapi jika Anda ingin mencobanya, mengapa tidak menggunakan mesin virtual dari Turnkey Linux , seperti yang untuk Wordpress , Drupal , Joomla atau yang lain yang lain dengan tag manajemen konten .

Dengan asumsi Anda sudah menginstal VMware player atau VirtualBox , dalam beberapa menit mengunduh salah satu dari peralatan ini, Anda dapat mencoba sendiri perangkat lunaknya, dengan investasi waktu yang minimal.

Mark Booth
sumber