独自のCMSを構築するか、事前に構築されたCMSに依存する必要がありますか?[閉まっている]


23

関連初心者のプログラマーとして、サードパーティのライブラリを使用するよりも独自のライブラリを作成することを優先すべきですか?

中級から上級レベルのPHP Web開発者であり、その若年(15歳)として、Webサイト用にまったく新しいCMSを構築するか、WordPressやDrupalなどの既成ソフトウェアに依存する必要がありますか?

WordPressが私がやろうとしていることを処理できるほどパワフル/スケーラブルであるとはまったく感じていませんし、Drupalを最後の数日間いじくり回した後、自分の好みに見合っていないようです。また、十分に文書化されていないため、特定の簡単なタスクを実行するのに少し苦労しています。ExpressionEngineのようなものを使用したいのですが、現在300ドル前後の商用ライセンスを購入する余裕がないので、それは無理です。

私は元々、サイトを一時的なシステムとしてコーディングし始め、ユーザーが新しいウェブサイトを立ち上げるまでアップグレードやゲーム内通貨などを購入できるようにしましたが、それを始めてすぐにスケーラブルにする必要があることに気付きました、それから、私はそれを完全に機能するウェブサイトにすることを念頭に置いてコーディングしました。数日しかかからなかったが、すべての基本事項(登録、ログイン、アカウントの変更など)があり、プライベートCMSの素晴らしいスタートになると思います。

最後に追加したいのは、独自のCMSを構築する場合、かなりの経験があるCodeIgniterなどのPHPフレームワークを使用する必要があるかどうかです。

たぶん他の開発者が、私が自分自身に何を夢中にさせているのかを教えてくれるかもしれません。


11
既存のCMSを作成するのに費やした時間を過小評価しないでください。あなたはひどく驚くかもしれません

回答:


23

それはあなたの状況次第です。すばらしいサイトがCMSで作成されています。最初に、COとTCOの2つの概念を理解した方が良いと思います。

CO(所有コスト)

何かを購入すると、その代金はCOです。WordPressの場合、それは何もありません。WordPress(または他の多くのCMSソフトウェア)は無料です。

TCO(総所有コスト)

PCを10000ドルで購入するとします。じゃあ何?ソフトウェアをインストールするために時間を費やす必要があります(時間は貴重なリソースですので、そのPCにまだお金を使っています)、ウェブカメラ、別のDVDライター、追加のケーブルを購入します。次に、インストールされたソフトウェアの使用方法を学ぶ必要があります。つまり、PCの総所有コストは 10,000ドルではありません。それだけではありません。

CMSソフトウェアの場合、それらのCOは実際には非常に低料金です。しかし、多くの経験から、TCOがまったく低くないことがわかります。大企業は、JoomlaまたはWordPressで優れたサイトを取得するために、数千ドルを費やしています。

別の要因は、カスタマイズレベルです。時には、あなたはソフトウェアを使用したいですとそのまま。その場合、WordPress、Joomla、Drupal、またはその他のCMSが非常に優れた候補になる可能性があり、独自のCMSを作成しないでください。ただし、高度なカスタマイズが必要な場合があります。その場合、要件に合わせてすぐに使用できるCMSをカスタマイズすることに本当にイライラします。

既製のCMSソフトウェアを実際に使用したかったのですが、さまざまなCMSを学習し、それぞれの弱点を見つけることに貴重な時間を費やした後、自分でCMSを作成することになりました。Thought Resultsは私の個人用サイトであり、このCMSを介して構築されています。すぐに公開するので、他の人も使用できます。

さらに別の要因は拡張性です。私を信じて、CMSを静的な状態から拡張可能な状態にするのは古くなります。テンプレート、モジュール、プラグイン、プロバイダー、データベースとストレージ、ルーティングメカニズム、およびGood CMSのほぼすべての部分は拡張可能である必要があります。

最後に、私の個人的な提案は、CMSの構築を開始し、少なくともその背後にある最も基本的な概念のいくつかを学ぶことです。ただし、既存のものも使用してみてください。がんばろう。


うわー、素晴らしい答え。私が考えたことのないこれらのことのいくつかは、今知って本当にうれしいです。あなたがカスタマイズについて言っていたように、私は本当にそれをたくさん必要とします。それが私が元々Drupalに頼った理由です。ただし、私の場合、複数のサーバー、PayPal、広範囲にカスタマイズされた登録など、Drupalのようなものでは実際には簡単に処理できない他のものとの間で、多くのやり取りが必要です。ご回答ありがとうございます。本当に感謝しています。:)
アレックスベネット

ただし、CodeIgniterなどのフレームワークを使用することをお勧めしますか?
アレックスベネット

1
まあ、@アレックス私が助けることができてうれしいです。しかし、私のプラットフォームは.NETであり、PHPフレームワークにあまり詳しくないので、申し訳ありません。ただし、フレームワークを使用することをお勧めします。Entity FrameworkをORMとして使用しているため、PHPでORMを使用すると、開発が大幅に促進されます。
サイードNeamati

とにかくありがとう。フレームワークを使用したくない唯一の理由は練習のためですが、この場合は実稼働サイトであり、迷いたくないので、フレームワークを使用する方がおそらく安全だと思います独自のCMS /フレームワークを作成する際に生じる可能性のある脆弱性。
アレックスベネット

1
@Alex Bennett、もう1つ、オープンソースのCMSがあります。ソースコードを入手した場合。それから始めて、それを好みに合わせて変更することができます。これは本当にあなた自身の構築を加速するでしょう。ハイブリッドアプローチのようなものです。誰が本当に車輪を再発明したいのですか?
MVCylon

18

私はここで悪魔を提唱していますが、言う必要があります。ソフトウェア開発者の最も一般的な問題:

  • 些細なプロジェクトの完了に必要な時間と労力の見積もりの​​下で、大きなプロジェクトを
  • ビジネスの現実の理解の完全な欠如
  • 自分のスキルと生産性の過大評価。
  • 複雑さと微妙な詳細の過小評価
  • 彼らの問題は非常にユニークであるという信念は、誰もまだそれを解決していません。

15y0でさえ、数週間で$ 300を稼ぐことができ、あなたが提案していると思われるものは数ヶ月かかる可能性があるため、これらの間違いを犯していないのは確かです。有料の仕事を得て、そのお金でExpressionEngineを購入した場合にどうなるかを考えてください。DIYの仕事よりも優れた機能を備えて、より早く提供されるでしょうか?


1
私はあなたの平均15歳でかなり成熟している、あなたが言うことができることを願っています、そして私はあなたがリストしたことのいずれかをするのを間違えたとは思わない。私は可能な解決策を研究するために多くの時間を費やしてきましたが、私の状況に適したものをまだ思いついていません。お金のためとして、私のビジネスは、月あたりの売上高は以上$ 300になり(あまりないですが、それは、専用のマシンを支払う)私は可能性がお金を得るが、私は控えめにそれを再生しているものに投資しようとしていますハードウェアや広告などの必須アイテム。答えてくれてありがとう、本当に心に留めておきます。
アレックスベネット

カスタムソリューションほどCMSを作成しているとは思わない。真のCMSを作成すれば、おそらくCMSを配布/販売できます。完全なCMSを構築するために、あなたは少し頭上にいると思います(私もそうですが...)。
HelloFictionalWorld

2
@Alexは、時間==お金、特にあなたの時間を考慮する必要があります。いくらですか?CMSの作成に30時間以上かかる場合(@ $ 10 / hr)、ExpressionEngineの方が適しています。同様に、他のことに費やした30時間の作業がサイトに300ドル以上の価値をもたらす場合、ExpressionEngineの方が適しています。
CdMnky

8

これには2つの答えがあります。

1つは簡単です。いいえ、車輪を再発明しないでください。優れたCMSシステムが多数あります。1を上手に使用することを学べば、それが提供する必要のないものがあれば、その目的のためにプラグインを作成することにスキルを集中できます。ホイール。

2番目はやや目立たない:はい。CMSがどのように機能し、CMSの作成で発生する問題を理解したい場合、独自のCMSを作成しても害はありません。既存のCMSシステムのいずれかのパワーと柔軟性はおそらくないでしょうし、周りに約100000000000のPHPコンテンツ管理システムがあるので、他の誰かがそれに興味を持つ可能性はほとんどありませんが、あなたが必要としないものを持っていると、それはおそらくより大きなシステムのどれよりもはるかに小さくてシンプルになります。時間がかかりますが、結果はそれほど良くなく、他の世界に何の違いもありませんが、あなたの開発と学習の観点から、それは役に立つ練習になるかもしれません。

いずれにせよ、独自のシステムを構築する前に、主流のシステムを試して、それらがどのように機能するのか、何がうまくいくのか、何がもっと良くなると思うのかを考えてみます。それらを十分に理解することで、独自の作成に利点があるかどうかを判断できます。


答えてくれてありがとう。ただし、明確にするために、このCMSを作成した場合、リリースするつもりはありません。これは、私が取り組んでいる市場ではありません。それは私だけのためであり、私が望む/必要なことだけを行うために構築されます。私は他の人で実験しましたが、十分に文書化されており、何らかの方法でコアを変更することを強制せずに必要なことを行うものを見つけることができないようです。それが私が自分で作ることを検討し始めた理由です。大学を卒業した後、ウェブ開発者(またはそれに類するもの)になろうと努力しているので、私が自分で自分自身を構築したいもう1つの理由は練習のためです。:)
アレックスベネット

3
私は、非常に小さく、非常にシンプルで、非常に基本的なPHP cmsを少し前に実装し、それ以来かなりの数のサイトで使用している人として書いています。大規模なシステムが行うことのほんの一部に過ぎませんが、小規模なサイトに必要なすべてを実行します。フラットファイルベースなので、ほとんどどこでも実行できます。ですから、時にはあなたが自分で自分の作品を作りたいと思うこともあります。
グレナトロン

5

CMSをプログラミングしたことがない場合、これは非常に良い機会です。あなたは非常に多くを学びます、そして、あなたがそれを終えるかどうかに関係なく、あなたは例えばの非常に良い考えを持っているでしょう:

  • 難しいことと簡単なこと
  • ページを国際化およびローカライズする方法
  • ユーザーとロールを処理する方法
  • SQL更新ステートメントを要求する代わりに、基礎となるデータ構造の保守を処理する方法。
  • マルチパートページの処理方法。
  • 静的コンテンツを効率的に処理する方法。
  • 複数のコンピューターと高負荷に拡張する方法。
  • ユーザーのカスタマイズとテーマにAPIを提供する方法。

これらのいくつかは、あなたがそれをしない方法を学んだことを見つけるかもしれません。その経験も重要です。

個人的には、「どれだけ難しいのか」が、高品質の製品を作成するために実際に行う必要のある作業のほんの数パーセントをカバーするだけであり、CMSを選択した場合、アクセスしやすいアクセス可能なコードベースと優れたドキュメント、そして適切なプラグインを書くだけで良いプラグインアーキテクチャを備えた人気のあるものを探し、新しいバージョンが出たらベースCMSを更新します。


入力のためのおかげで、私はすでにかなりの数の方法を持っていたではないそれを体験することができません。たとえば、単純なタスクを実行するために30行のコードを作成し、2日後にコードを確認すると、10行程度に短縮できることがわかりました。それらの経験は、たとえ彼らがいらいらするかもしれませんが、物事をより「固執」させる傾向があるので、間違いなく学習プロセスを助けます。
アレックスベネット

@Alex、この「やってはいけないこと」の経験は、プロジェクトのコードベースのサイズに比例します。しかし、私はあなたがそれを理解するために少なくとも一度はする必要があると思います:)

3

これはあなたの質問に対するほんのわずかな答えです。私はあなたがphpに興味があり、事前に作成されたCMSの方法には向かないと仮定しました。クラブへようこそ!私たちの多くは同じように行っています。負荷を軽減するためのアドバイスの一部。

私は自分のCMS、MVC実装、国際化(i18n)ハンドラー、セッションハンドラー、何らかの方法でデータベース抽象化レイヤー、何らかの方法でフォームハンドラーなどの構築を開始しました。前に、しかしフレームワークにより良い方法で。したがって、これは、ホイールを完全に再発明する必要はなく、ニーズに合った場所で再発明する必要があることを意味します。フレームワークはあなたの人生を楽にしますが、それらを読み、学ぶために多くの努力を必要とします。Symfonyを本当にマスターするのに1年かかりましたが、後悔することはありません。

そして、あなたは幸運です。なぜなら今は以前よりも多くの高品質のフレームワークがあるからです。いくつか例を挙げると:

  • Symfony:今日、彼らはバージョン2.0の安定版をリリースしました。疎結合であるため、いずれかのコンポーネントを使用するか、すべてを統合パッケージとして使用することを選択できます。優れたドキュメントとアクティブなユーザーベースがあります。それ以外の場合、現在古くなっている1.4バージョンも依然として非常に信頼性が高く便利です。あなたの人生を楽にする多くの強力なプラグインがあります。(バンドル)
  • Zend Framework:本当に最新ではない(すべてのブランドが新しい5.3機能をカバーしているわけではない)と主張する人もいますが、それはしばらく前から存在し、基本的に有用なコンポーネントのセットです(ここでも、疎結合のゲームであり、すべてではないゲームです) )。検索(zend_lucene)やPDFの生成などを行うためのツールキットとして使用します。ただし、一般的に使用されるMVCコントローラーセットもあります。まだ調査していない場合は、調査する必要があります。非常によく文書化されています。
  • CakePHP:ずっと前に使っていたので、ドキュメントを理解できませんでした。どうやらこれは今ではより良く、おそらくあなたの検討の価値があります。

  • Yii:使ったことはありませんが、最近は多くのあいまいさがあり、おそらく注目に値します。

  • CodeIgniter:簡単な学習曲線と使いやすさで多くの人がcodeigniterを賞賛していることを聞いた。それを使用していません。

Pythonを試してみたい場合は、多くの人がDjangoを賞賛し、もちろんレール上のルビーも賞賛しています。

おそらくもっとありますが、これはあなたにとって役に立つはずです。これらを使用したくない場合でも、これらのフレームワークから多くを学ぶことができます。がんばろう!


おかげで、CodeIgniterで多くの経験を持っていますが、他のどれも試したことはありません。私は間違いなくそれらを考慮に入れます。
アレックスベネット

1
laravel.com ?? CodeIgniterのは、現在最も広く使用されているが、Lavarelは速いそれを追い越している
Mawg

1
うん。この投稿は4歳です。ララヴェルは当時始まったばかりだった。
アーレンド

1

答えは、あなたが達成しようとしているものに大きく依存します。

自分のスキルを伸ばすつもりなら、コンテンツ管理などについて学びましょう。そして、はい、必ず自分で開発してください。同様に、フレームワークを学びたい場合は、それを使用してください。

しかし、あなたが言及しているゲームとそのプレイヤーに焦点を合わせている場合、答えはほぼ間違いなくノーです。あなたの時間は有限であり、したがって高価なリソースです。CMSの開発に費やした時間は、ゲームの開発に費やした時間ではなく、収益を生み出すのはゲームです。質問を自問してください。ゲームの開発に費やした時間よりもプレーヤーのゲーム体験を改善するためにCMSを調達するのではなく、このCMSの開発に費やした時間はありますか 答えがはいの場合は開発し、そうでない場合は開発しません。

同様に、Saeedが言うように、ExpressionEngineを介したオープンソースCMSの決定は、ToCを完全にする必要があります。Cost(Wordpress)> Cost(ExpressionEngine)の場合、単純に$ 300を使います。ここで、コストはpurchase_cost +(hours_to_customise * your_hourly_rate)です。


1

ニーズの90%に適合するCMSを見つけ、時間の経過とともに変更して、提供されない機能を追加します。

これにより、早期に起動し、ユーザーとユーザーのニーズの変化に合わせて調整できます。


これは両方の世界の最悪のものを選択しているように見えますが、私は下票に同意しないので、私はそれを引き上げました。
Mawg

1

独自のCMSを構築することを強くお勧めします。カスタマイズとセキュリティに関して、このようなシステムの詳細を知るには、これが断然最良の方法です。しかし、私はあなたがあなたのPHPスキルにどれだけ中級から上級かを疑問視しなければなりません。これはあなたの年齢に関してではありません、信じてください。

私にとっての旗は、「WordPressが私がやろうとしていることを処理できるほどパワフル/スケーラブルであるとはまったく感じていません。また、Drupalをここ数日間かなりいじくり回した後は、好みに応じて標準に達しているだけでなく、十分に文書化されていないため、特定の簡単なタスクを実行するのに少し苦労しています。」

WorpressとDrupalのカスタマイズに関する本やサイトが豊富にあり、これらで実行される注目度の高いサイトは言うまでもなく、あなたがしていることを知っている必要があることを証明します。言うまでもなく、これらのサイトを運営するために予算全体が確保されています。

例のリンク:

http://drupal.org/cases

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

これは、あなたがやろうとしていることであなたを落胆させることではありません、どうしてもそれのために行きます。私はあなたがあなたの才能を伸ばし、雇用主を含む人々を示すことができるとき、あなたがあなたの時間をかけすぎないようにし(車輪の再発明)、特定の時点でイライラし、単に「eff it」と言うことを確認したいだけです、現在利用可能なツールで得られるもの。現実の世界と現在の経済では、時は金なりです。企業や組織には、プロジェクトをゼロから作成することに継続的に対処する時間や予算がありません。
今日の情報は光の速度で移動するため、ノイズを分離し、適切なターンアラウンドタイムで目的のあるコンテンツ/アプリ/システムを作成できるプログラマーが強く求められています。


0

WordpressまたはDrupalがCMSに必要なことを行うことができるかどうかはあなただけが答えることができますが、試してみたい場合は、WordpressDrupalJoomlaなどのターンキーLinuxの仮想マシンを使用しないでくださいその他のコンテンツ管理タグ。

VMwareプレーヤーまたはVirtualBoxが既にインストールされていると仮定すると、これらのアプライアンスをダウンロードしてから数分以内に、最小限の時間投資でソフトウェアを自分で試すことができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.