アットマーク・アイティ @IT@IT情報マネジメント@IT自分戦略研究所QA@ITイベントカレンダー  
   
 @IT > Webアプリは“Dreamweaver 8”でコーディングが新しい
 
@IT Special

 

PR

「Dreamweaver 8」連載企画 第1回

Webアプリは“Dreamweaver 8”で
コーディングが新しい

少しでもWebアプリケーションを容易に開発したい。開発エンジニアなら当然考えることだろう。PHPやASP、JSPといったメジャーなサーバサイドスクリプト言語にも対応し、コーディングに役立つ、Web開発者のためのプラットフォーム、Dreamweaver 8の機能を紹介する。Web開発者への必殺技とは?

  開発ツールとしての“Dreamweaver 8”

 Dreamweaver® 8といえば、Webデザインツールのデファクトスタンダードとして有名だ。だが意外と知られていないのは、Webアプリケーション開発ツールとしての側面である。デザインツールとしてのイメージが先行しているためか、Web開発者のためのプラットフォームとして、Dreamweaver 8の備える数々の開発支援機能の存在を知らない人は多い。JavaScriptは当然としても、PHPやJSP、ASPといったサーバサイドスクリプト言語による開発にも対応しているというと、あなたは驚かれるだろうか。

 当たり前の話ではあるが、プログラムの開発にはそれ用の開発ツールというものが不可欠だ。だが実際にどんなツールを利用しているのかといえば、コーディング作業にはテキストエディタを使っているという開発者が多いだろう。カラーシンタックス機能くらいは付いているかもしれないが、それだけでは不十分であることは明らかだ。どこに間違いがあるかは実行してみるまで分からないし、分からない関数や命令は紙のリファレンスマニュアルを引かなければならない。

 Dreamweaver 8には、Webサイト構築の総合ソリューションとして、これらの機能がすべて搭載されている。それらの機能はHTMLコーディング機能の副産物ではなく、Webアプリケーションの開発者のために開発され実装されたものだ。

 例えばデータベースの指定されたレコードからデータを引き出し、それを表示するくらいであれば、コードをテキストとして打ち込む必要はない。ダイアログからデータソースやレコード名を指定し、HTMLの中に動的なフィールドとしてバインディングするだけだ。SQLクエリは、Dreamweaver 8が生成してくれるので、極端な話、開発者にSQLの知識は必要ない。後はそのファイルをアップロードすれば、Webアプリケーションとして動作させることができるのだ。

  Webサイトのアセット管理機能

 Dreamweaver 8がデザインの現場で高い評価を受けている理由の1つに、Webサイトの管理機能が挙げられる。今は数千数万のファイルがあるWebサイトは珍しくないが、これをすべて人間の手で管理するのは非現実的だ。

 Dreamweaver 8にはテンプレートやライブラリの機能がある。テンプレート機能は名前から想像できる通り、そのファイルのテンプレートをあらかじめ用意しておくというものだ。これはHTMLに限らず、Dreamweaver 8がサポートするすべての形式で有効だ。テンプレートには編集可能な領域を設定することができ、特に決められた部分だけを編集不可能な領域として、そのほかは自由に編集できる領域にしておく、というような使い方をする。プログラミングの際には、まずやっておかなければならない定型の処理、言い方を変えれば初期化のような「事前に実行しておく手続き」のような処理が多いこともあり、そういう部分を編集不可能領域に指定しておくわけだ。

画面1 テンプレートはサイトごとに管理されており、新規ドキュメント作成時にどのテンプレートからドキュメントを作成するか選ぶことができる。テンプレートから作成されたドキュメントは、明示的にテンプレートから切り離さない限り、リンクが維持される(画像をクリックすると拡大表示します)

画面2 テンプレートから作成したドキュメントでは、編集不可能な領域はグレーアウトして表示される。テンプレート本体を修正した際には、このグレーアウトした部分が更新される仕組みだ(画像をクリックすると拡大表示します)

 テンプレートが効果を発揮するのは、デザインや機能にある程度の統一性を保ったまま、コンテンツの中身だけを入れ替えていくようなケースだ。テンプレートを元に作られたファイルは、そのファイルがテンプレートから切り離されない限りは、常にリンクした状態で管理される。テンプレートにある編集不可能な領域として指定された部分を編集すると、そのテンプレートを用いて作られたすべてのページの同じ部分を書き換えてやることができる。数千数万のファイルを対象に何かの機能を加えたり、あるいは削ったりする際にも、機械的な流れ作業はすべて任せておくことができるというわけだ。

 ライブラリ機能は、このテンプレート機能のお手軽なもの、という捉え方ができる。これは「静的なSSI」とでも言うべきもので、あらかじめコードをライブラリ項目に登録しておき、それをファイルの中に自由に配置できる機能だ。要するに「よく使うコード」のようなものをあらかじめ用意しておくことで、ファイル中にそれをコピーし配置してやることができる。これらのコードはテンプレートのように大元のコードと常にリンクした状態が保たれており、ライブラリ項目を修正すれば、その項目を使用しているすべてのファイルに対して変更が反映されるのだ。

画面3 ライブラリにおいてもテンプレートと同様、編集不可能であることを示すために色分けして表示される(画像をクリックすると拡大表示します)

画面4 ライブラリ項目はメニューから一括して変更を反映させることが可能だ(画像をクリックすると拡大表示します)

  ライブラリもまたテンプレートと同じように、頻繁に利用され、かつ変更の際には一括して反映する必要があるコードを扱う際に重宝する。いわばコードの一部だけをテンプレート化する機能であり、その部分だけをそのファイルの内容とは切り離して別個に管理することができる機能というわけだ。

  「チェックイン」と「チェックアウト」

 大規模アプリケーション開発においては今では当然のものとなっているのが、ソースコードの管理だ。多人数によるコードの開発においては、各人が同じファイルを同時に編集することにより起こる「衝突」を回避する手段がどうしても必要になる。ある開発者が修正した部分を、他の開発者が修正前のコードで上書きしてしまわないようにするためだ。

 Dreamweaver 8にはこのソースコード管理の機能として、チェックイン・チェックアウトというものが用意されている。これはあるユーザーが「チェックアウト」を行ったファイルは、そのユーザーがファイルを「チェックイン」しない限り、他のユーザーはそのファイルを編集することができなくなるというものだ。つまり、編集中のファイルにはロックがかけられ、それが解除されるまでは編集不可能な状態に置かれるわけである。

画面5 サイトを定義しリモートフォルダを指定しておくことで、そこにあるファイルの管理はすべてDreamweaver 8上で行えるようになる。自分がチェックアウトしたファイルには緑のチェックマーク、他のユーザーがチェックアウトしたファイルには赤いチェックマークが付く(画像をクリックすると拡大表示します)

  これは上書き防止のための機能だが、Dreamweaver 8ではさらに「そのファイルをチェックアウトしたのは誰か」ということも分かるようになっている。またそのユーザーに対して、Dreamweaver 8からmailtoでメールソフトをキックする機能も付いていて、その場で「このファイルを編集したいのでチェックインしてくれないか」と連絡することも可能だ。

画面6 右クリックメニューから「チェックアウトユーザーの表示」を選ぶと、そのファイルをチェックアウトしているユーザーが表示される。名前をクリックすることで、登録されたメールアドレスへ直接メールを出すこともできる(画像をクリックすると拡大表示します)

 このファイル「チェックイン/アウト」機能を使えば、声を掛けあってファイルを編集するスタイルから卒業でき、共同作業を潤滑にして、Webアプリケーション開発の効率を上げていくことができるのは間違いないだろう。

  コード再利用の方法論

 Dreamweaver 8の「スニペット」の機能もWebエンジニアにはうれしい機能だ。これは一言で説明すると、あらかじめ登録されたコードをカーソル位置に挿入するというものだ。

 コーディングを行う際には、同じコードを繰り返し使うシーンが多い。同じファイル内で何回も記述する場合もあるし、あるコードを複数のWebアプリケーションで使い回すこともある。よほど頻繁に使うコードは関数化しておけばいいのだが、そこまでするほどでもないというものがほとんどだ。

 そこで利用するのがスニペットである。あらかじめ頻繁に利用するコードを登録しておくことにより、そのコードを履歴から呼び出して現在の位置に挿入することができる。スニペットの登録数に特に制限のようなものはなく、また登録済みのスニペットはフォルダ分けして整理しておくことが可能だ。

 Dreamweaver 8では出荷時にあらかじめいくつものスニペットが登録されており、例えばJavaScriptであれば「マウスの位置を取得」など、クリックしていくだけで基本的な機能は実装できるようになっている。またスニペットは、カーソル位置に任意のコードを挿入するだけではなく、選択された語句の前後を指定されたタグやコードで囲むという技も可能だ。

画面7 新しいスニペットはコードを選択して右クリックメニューから登録することができる。スニペットはブロックとしてカーソル位置に挿入することができる他、選択したコードを囲む形で設定することも可能だ(画像をクリックすると拡大表示します)

画面8 Dreamweaver 8にはあらかじめいくつものスニペットが設定されており、インスペクタからクリックするだけである程度のコードブロックを挿入できるようになっている。自分で設定したスニペットもこのインスペクタに同様に表示される(画像をクリックすると拡大表示します)

  ライブラリとの違いは、スニペットが「コードの部品」であるのに対し、ライブラリはテンプレート的な要素を備えているということだ。ライブラリではファイルにライブラリ項目への参照が挿入されるため、そのファイルとライブラリ項目とのリンクが保たれる。そうすることで一括して変更を行うことが可能になっているわけだ。

 しかし逆にいえば、ライブラリ項目として扱っているコードはファイルごとに細かい変更を加えて利用していくこともできない。対してスニペットの場合、コードはその場でファイル中に展開される。ライブラリのように一括して変更を反映させることはできないものの、状況に応じて修正を加えつつ再利用していくことが可能だ。

  Dreamweaver Extensions

 プログラムの開発環境は、まず使いやすいものでなくてはいけない。だがこの使いやすさというのもなかなか難しいもので、結局はどれだけカスタマイズの自由度が高いか、どれだけ自分が使いやすいように設定していけるかというところに集約されてくる。自分が慣れるのではなく、道具の方を自分に合わせてやるということだ。

 Dreamweaver 8の可能性を拡げているのが、「エクステンション」と呼ばれる機能だ。これはJavaScriptあるいはC言語で書かれたモジュールであり、同梱の「Extension Manager」を用いて組み込むことができる。エクステンションはDreamweaver 8にさまざまな機能を付加するもので、例えばコードの自動補完など開発環境をさらに快適にする機能を付け加えることが可能だ。

 エクステンションはJavaScriptで書かれたものであれば、OSを問わずインストールすることができるようになっている。また「Dreamweaver Exchange」からは1000個を超えるダウンロード可能になっており、自分の好きなようにカスタマイズしていくことができる。

画面9 Dreamweaverのエクステンションを配布している「Dreamweaver Exchange」。エクステンションはダウンロード後、Dreamweaverと共にインストールされる「Extension Manager」を用いて組み込む。エクステンションには対応するDreamweaverのバージョンがあるので、ダウンロードの際には注意しよう(画像をクリックすると拡大表示します)

  もちろん、Dreamweaver 8のAPIやJavaScriptを使って自分でエクステンションを開発し、Dreamweaver 8の機能を独自に拡張していくことも可能だ。パッケージには詳細なオンラインマニュアルが付属しており、プログラミングに慣れたユーザーならそれを見ながらエクステンションを自作することもできるだろう。

 実際のところDreamweaver 8を使用している現場では、外には出てこないだけで独自にエクステンションを開発し社内利用しているケースが多い。現場の事情に合わせたオーダーメイドのカスタマイズというわけだ。

 カスタマイズというからには、キーボードショートカットの変更も外すことはできないだろう。Dreamweaver 8に定義されたショートカットは数多いが、これらは全てカスタマイズ可能である。使わないショートカットは削ってしまって、空いたキーアサインを別の機能へ割り当ててもいい。自分が直感的に使える割り当てへと変更してやることで、目の前のコーディングに集中することができる。

画面10 メニュー項目はすべてキーボードショートカットの割り当てを変更することができる。デフォルトでは「Macromedia Standard」となっているが、この他にもさまざまな組み合わせがあらかじめ用意されている(画像をクリックすると拡大表示します)

   コードリファレンス&コードチェック

 Dreamweaver 8ではPHPやASP、JSPやJavaScriptなど、対応しているスクリプト言語についてのリファレンスを内蔵している。もちろん日本語であり、しかもIT技術書の出版で有名なオライリー社の提供によるものなので、その内容についても定評がある。

画面11 右クリックメニューからリファレンスを選ぶことで、選択した語句をリファレンスから検索してくれる。画面ではJavaScriptだが、もちろんPHPやASP、JSPのリファレンスも用意されている(画像をクリックすると拡大表示します)

 Webアプリケーションに限らず実際にコードを書く作業を行う際には、リファレンスマニュアルがどうしても必要になる。大抵の場合は紙に印刷され製本されたマニュアルか、どこかのWebサイトを見ながら関数や命令の意味を調べることになる。

 だが紙のマニュアルは検索性が悪い。Web上のリファレンスは便利だが、サーバがメンテナンスなどで止まってしまってはどうにもならない。そうでなくとも、分からない関数や命令があるたびにブラウザを開くのは正直面倒なものだ。そういう時に、その場で参照できるリファレンスが役に立つだろう。

 またJavaScriptについては、右クリックメニューからユーザーが定義した関数の一覧を見ることができる。これはコーディングを行う際には必須の機能であり、もちろんメニューから関数名を選択することでその関数へジャンプすることも可能だ。

画面12 右クリックメニューからそのファイルに含まれる関数を一覧することができる。もちろんその関数を選択することでその箇所にジャンプできるので、長いソースコードの編集でも困らない(画像をクリックすると拡大表示します)

  コードが期待通りに動かないときには、バリデータという機能を用いて問題の箇所を発見することができる。チェックしてくれるのはHTMLやXMLといったマークアップ言語のみだが、往々にして見落としというのは「見ていない部分」にあるものなので、問題を絞り込んでいくのに役立つだろう。バリデートを行えば、マークアップの不正な入れ子構造なども検出することができ、思わぬ場所からエラーの原因を発見できることもあるかもしれない。

 加えてこれは当然のことながら、対応済みの各スクリプト言語については、カラーシンタックスによる色分け表示も可能だ。単純な入力ミスというのは思う以上に多いものなので、こういった基本的な機能も抜かりはない。

画面13 コード中にDOCTYPE宣言がある場合は、そのDOCTYPEに基づいたチェックを自動的に行ってくれる。この画面では「onClick」と書くべきところを「oClick」と書いてしまっているため、バリデータが警告を出している(画像をクリックすると拡大表示します)

  デザイナと“連携しやすい”というのも1つの理由

 以上のように、Dreamweaver 8は非常に高度なプログラムの開発支援機能を備えている。これは開発にかかる労力を軽減し、生産性をより高めていくための機能でもある。しかしWebサイトの構築がグループ作業である以上、他にも忘れてはならないことがある。それは言うまでもなく周囲との連携だ。

 事務系のアプリケーションではWordとExcel、グラフィックの世界であればPhotoshopなど、それぞれの分野には「そのソフトがないと仕事をさせてもらえない」というデファクトスタンダードが存在する。単に便利であるということを超えて、データの互換性など、そのグループで共に作業を行うためのパスポート的なソフトウェアだ。

 Webデザインの世界では、Dreamweaver 8がそれに相当する。確かにサーバにアップロードされるファイルは共通規格のものだ。しかしそれを組み上げる過程においては、他のメンバーとのシームレスな連携というものも必要になってくる。

 実際のコーディングを行うエンジニアがDreamweaver 8を導入することで、ファイルのやりとりはずっと簡単なものになる。先にも書いた通り、チェックインやチェックアウトの機能を利用してファイルにロックをかけたり、インターネットを通じてそのWebサイトを構成するファイルをメンバーで共有することができるからだ。すべてのファイルを一括して扱えるようになることで、全体の見通しも非常に良いものになる。データを取りまとめて実際のWebサイトへ「パブリッシュ」する作業も、ずっと楽なものになるだろう。

  メジャーなツールだからこその教育ベース

 新しくソフトを導入する際には、誰もが慎重にならざるをえない。そのソフトを購入するためのコストもそうだが、教育にかかるコストも決して安いものではないからだ。

 例えばオープンソースのソフトを導入した場合はどうだろう。確かに、そういったソフトでは導入にかかる費用はゼロだ。しかしその後のことを考えると、結果的にはかえって高く付くケースもある。そのソフトについて何から何までを知り尽くしたエキスパートがいればいいが、現実にはそうもいかない。サポートの問題もあるし、何よりそういうソフトは大抵の場合、ドキュメントはすべて英語である。

 マイナーなソフトにはリスクが付きまとう。まず一番の問題となるのは、やはり解説書だろう。オンラインのドキュメントが増えてきたといっても、紙のマニュアルは必要だ。マニュアルに限らず数冊の解説書くらいは揃えておきたい。

 ところがマイナーなソフトの場合はまず解説書が手に入らない。もしあったとしても種類は少なく、知りたいことが書いていないということも多い。加えて、トレーニングセミナーなどもほとんど開催されていないということになる。いったいどこで何を調べてどう学べというのか、途方に暮れてしまうことになる。

 メジャーなソフトというのは、その点で大きなアドバンテージがある。解説書はあちこちの出版社からさまざまなものが出版されているし、セミナーも頻繁に開催されている。講師を招いてトレーニングを行うこともできる。特に解説書は、読者のスキルに応じて、ビギナー向けのものからエキスパート向けのものまで、幅広く出版されているわけだ。「Dreamweaver 8とは何か」というところから述べたものや、それを実際の業務に利用する上でのノウハウ、リファレンスまで、大抵のものは書店の棚に並んでいる。メジャーであればこその教育ベースの大きさと幅の広さ――これは業務用アプリケーションという視点に立つ場合、見逃せないメリットとなるだろう。

 次回は、Web開発者の皆さんにとって、知っておくと便利なDreamweaverのMovableType連携、XSLT対応、目玉である拡張機能などについて、さらに一歩踏み込んでお伝えする。

Dreamweaver 特設サイト
Dreamweaverでの開発用Tipsや、より詳細な情報を入手したい方は、下記のリンクよりご覧ください。

Dreamweaver for @IT Reader

Dreamweaver セミナー情報
DreamWeaverでWebアプリケーション開発

【東京会場】
日時:02月06日(火)14:00〜18:15
会場:六本木アカデミーヒルズ49タワーホール
定員:300名
費用:無料(要事前登録)

【大阪会場】
日時:02月16日(金)13:30〜16:45
会場:梅田センタービル16F H会議室
定員:150名
費用:無料(要事前登録)



提供:アドビシステムズ株式会社
企画:アイティメディア 営業局
制作:@IT 編集部
掲載内容有効期限:2006年11月25日
 
Dreamweaver 特設サイト
Dreamweaverでの開発用Tipsや、より詳細な情報を入手したい方は、下記のリンクよりご覧ください。

Dreamweaver for @IT Reader

Dreamweaver セミナー情報
DreamWeaverで
Webアプリケーション開発


【東京会場】
日時:02月06日(火)14:00〜18:15
会場:六本木アカデミーヒルズ49タワーホール
定員:300名
費用:無料(要事前登録)

【大阪会場】
日時:02月16日(金)13:30〜16:45
会場:梅田センタービル16F H会議室
定員:150名
費用:無料(要事前登録)



関連リンク

@IT News 記事リンク
アドビのミニアプリ「Apollo」の可能性は(2006/10/14)

米アドビ社長が新アプリ「Apollo」デモ、「本当のWebサービスを提供」(2006/10/13)

Adobe Acrobat新版登場、「もはやPDF作成ツールではない」(2006/9/20)

無償版含むFlex 2登場、「アドビに1円も払わず本格的Webアプリを開発」(2006/6/30)

マクロメディアのFlash Platform戦略はアドビ合併後も変更なし (2005/10/19)

ITmedia 記事リンク
Adobe、仏Actimagineからベクター画像技術を取得 (2006/10/12)

タブ型リーダーでPDFファイルを次々と閲覧する(2006/10/11)

米Logitech、AdobeのCS2専用ツールのWindows版をリリース (2006/10/10)

Adobe、ブログにも対応した「Contribute 4」リリース(2006/10/6)

アドビ、「Acrobat 8 日本語版」を発表(2006/9/19)

Adobe、LightroomをPhotoshopファミリーに組み込む(2006/9/25)

Adobe、Acrobat 8とAcrobat Connectを発表(2006/9/19)


Ajax相乗のAdobe Flex 2、開発環境を無償化(2006/6/30)


アドビ、MT対応のDreamweaverを発表(2006/2/27)

人とアイデアをつなぐプラットフォームを提供したい」とアドビ新社長 (2006/2/7)



 
@ITトップ@IT Special インデックス会議室利用規約プライバシーポリシーサイトマップ