質問

Drupalは非常に「Do Everything」です。 CMS。ほとんどすべての機能を追加できるモジュールがありますが、これは素晴らしいことです。ただし、多くの機能(v5およびv6)が散らばっており、ユーザーにとって直感的ではないように感じます。開発者として、バブルガムとストリングを使用してサイトにパッチを適用したような感覚が残ります。

たとえば、デフォルトの検索ボックス(クリックすると消える)にテキストを追加するには、jQueryコードを追加するか、テーマをオーバーライドする必要があります。また、メニューシステムは本来よりも複雑であることがわかりました。

この意見を持つのは私だけですか? Drupalのコアについてどのような変更を行いますか(もしあれば)。

役に立ちましたか?

解決

真のオブジェクト指向設計の欠如は、「フック」を残すために他の開発者の先見性にしばしば頼らざるを得ないことを意味します。特定の動作を変更できるようにします。

Drupal 5の使用比較的単純な設計変更を完了する唯一の方法は、Drupal自体にパッチを適用することです(そして、新しい公式Drupalリリースごとにパッチを再適用することを確認してください)。しかし、公平を期すために、Drupal 4でどれほどひどいものであったかを見たはずです。

また、現在の実稼働バージョンのDrupalでバグや癖を特定するために時間をかけると、パッチを送信しますが、パッチはコミットされません。安定版リリース。

他のヒント

Drupalの最大の欠点は、ライブDrupalサイトの大部分がデータベースに保存されることです。システム間でコンテンツや構成を自動的に移行する方法がないため、ライブサイトへの変更のロールアウトは手動で行うか、過度に複雑なコードで処理する必要があります。

Drupalの最大の欠点の1つは、プログラマーではないサイトビルダー向けのターンキーツールと、複雑なWebアプリを構築する開発者向けのフレームワークとの間の境界線上で踊ることです。両方のグループに提供するいくつかのクールなものがありますが、1つの群衆への譲歩は常に他の群衆をつまずかせる傾向があります。

Drupalコミュニティで成長している傾向は、開発者APIを明示的に構築し、管理UIとエンドユーザーUIをAPIの上に重ねることです。これは良いことですが、まだ多くのレガシーアーキテクチャもあります。プロジェクトは今週8周年を迎えました。すべてのサイトには、異なるペースで進化しているモジュールを混在させる必要があります。

必要な機能を実行するモジュールを誰かがまだ作成していない場合、コアコードをハッキングせずにシステムを効果的に活用するには、多くの異なる内部API、大量の一意のデータ構造を調べ、調査する必要があります時々ファンキーなワークフローもあります。トリッキーなことをする必要があり、「正しい」研究のための専門知識(または時間)を持っていなかった人々をきっかけに、サイトを維持するのが非常に悪く、不可能な多くの人が浮かんでいます。物事を行う方法。

(免責事項:Drupalについての本のためにいくつかの章を共同執筆したばかりで、Drupalの仕事はフルタイムで行っているので、できる限り「偏りのない」というところから離れています。私は遠近感を保っていると思います。私もDjangoが大好きです。)

Drupalを使用すると、そのままの状態で80%を取得できますが、最後の20%には数か月から数か月かかります。

Drupalは印象的なシステムです。驚くほど小さく、モジュールシステムは非常に強力です。しかし、Eliが言ったように、あなたのタスクの多くは、特定の方法で何かをする他の開発者に依存するでしょう。

Drupalコミュニティ内では、その設計に関して議論があります。 DrupalはPHPのOOP機能が強力になる前から存在していましたが、現在ではオブジェクト指向のデータ構造を使用するようにシステムを変更することについて頻繁に議論されています。あなたの好みにもよりますが、これは開発者としてあなたにとってマイナスになるかもしれません。私はそれについて二心です。

システムは、非常に「魔法の」ように見えることもあります。初心者には、どういうわけか、ほとんど説明なしでこのすべてのクレイジーなことをします。 "私は関数を定義しただけです。Drupalはそれを呼び出す方法をどのように知っていますか?"

しかし、私は一般的にDrupalの大ファンだと言わなければなりません。それは、メジャーバージョンごとに負荷が増える優れたシステムです。私は7を待つことができません。

Drupalは開始するのに適していますが、実際に物事を成し遂げるよりも多くの時間を「元に戻す」ことに費やします。これは特にDrupal 6のリリースで変更されており、公平を期すために、寄稿されたモジュールでより明確になっています。

移行の管理も、ショーンが言ったように問題です。変更を開発サイトからライブサイトに移動する良い方法がまだわかりません。

現在のコアに何か変更するものがあるかどうかはわかりませんが、ほとんどの欠陥は現在処理中です。画像管理には作業が必要です。デフォルトの管理インターフェイスは少し複雑で、ビュー/パネルなどを取得せずに複雑なレイアウトを作成すると、何らかの作業が必要になります。

iは非常に複雑です。 php開発者として、phpとは関係なく、drupal自体とは関係のない問題について毎日髪を引き裂いています。どのように/なぜ/いつXを行うのですか?飼いならす必要がある大きな獣。ドキュメントは、非常に優れたガイド、くだらないもの、そしてグーグルで常に表示されるように見えるさらに役に立たないフォーラムスレッドに限られています。

バックエンドの使いやすさはくだらないです。カスタムテーマは、「管理者」のレイアウトも変更します。パッケージの一部は非常にイライラする可能性があり、きれいなレイアウトではありません。

htmlスライサーを使用している場合、drupal専用に作成されていないhtmlは使用できません。本質的に、多くのdiv、divごとに5つの冗長クラスなど、drupal-htmlを使用せざるを得ないため、html / cssの人はこのレベルでdrupalを知ることは期待できません。

テーマを作成するためにファイル名(10語の長さ、非常に微妙な違い)に依存する方法が好きではありません。

とは言っても、できることのいくつかはとてもクールで、カスタムPHP開発の日々を節約します

Drupalは非プログラマに強力なツールを提供します。彼らはより少ない時間で簡単にフル機能のサイトを構築できます。しかし問題は、学習曲線がDrupalには高すぎることです。

もし人がdrupalに不慣れでカスタマイズされたものを作りたいなら、適切な方法でそれをしたいなら、それは多くの時間がかかります。 drupalで1つのことを行うには多くの方法がありますが、新しい来訪者にとって彼が最善か適切かを見つけるのは頭痛です。

ほとんどの企業が優れたDrupalの才能を見つけるのに苦労しているため、学習曲線が高いことが唯一の欠点だと思います。 http://drupalize.me/ および http://buildamodule.com/ は、この高い学習曲線を減らすために非常に良い仕事をしています。

デフォルトの管理インターフェースは、modxやjoomla / mamboなどの他のcmsと比べて非常に直感的ではないことがわかりました

PHP4で書かれています。これはバージョン7から変更されます。もちろん、php5で独自のモジュールを作成できます。 Drupalのベテラン開発者として、php5への限定的な露出のために履歴書が苦しんでいることがわかりました。

SOAPのようなサービスを実行するには最適ではありません。 Drupalスタック全体を呼び出してWebサービスを提供することは、パフォーマンスを大幅に低下させます。サービスモジュールはまだ開発中です。

データベーストランザクションはサポートされていません。これは、極端な負荷にスケールアップすると問題になります。

コマンドラインからテストを実行するとよいでしょう。これはsimpletest 1.xで可能でしたが、現在のバージョンではあまりサポートされていません。 Simpletestは十分に成熟していません。クリーンなDrupalインストールはテストに失敗する可能性があります。含まれているデフォルトのテストの中には、必要のないコンテンツタイプとモジュールを使用することを強制するものがあり、simpletestモジュールをハッキングせずにこれらを無効にすることはできません。

一見悪いセキュリティレコードがあります: http://secunia.com/advisories/ search /?search = Drupal

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top