ダイナミックなウェブサイトの作り方

ページ名:ダイナミックなウェブサイトの作り方

このトピックの問題は非常に幅広く、さまざまなアプローチが考えられるため、避けられない疑問に対する現実的な答えは、全体的な道を指し示すことしかできない。

例えば、wikiHowはダイナミックなウェブサイトである。質の高いプロジェクトという目標は、勤勉な人なら誰でも手の届くところにありますが、最終的にはかなり困難な作業となること、特に将来的なプロジェクトの技術的な対象を過小評価するのは間違いです。最もシンプルなダイナミック・ウェブ・プレゼンスでさえ、様々な分野の十分なスキルを必要とします。

不可欠な目標を達成するためには、優れたデータベース設計から外れることはできない。この分野での準備だけでも、かなりの作業量になる(ただし、決定的なものではない)。プロジェクトの目的を要約したら、それを達成するための健全な手段を構想しなければならない。そして、理想的なプロジェクト・アーキテクチャのビジョンに基づいて、プログラミング言語やツールを選択することになる。

最初から全体像を把握することが、最も重要なスキルなのだ。

  • 1
    どのようなツールやプロセスが目標を達成できるのか、頭の中で整理する。ダイナミックなウェブプレゼンスの中心は、データベースとデータ処理である。このような決定を、一見して最も合理的と思われる最初の方法で気軽に行おうとするのは得策ではありません。
    • この最初の決断の重要な目的は、正しい最初の決断をしたからこそ、効率的に、そして最終的な障害なく、最初の基礎の上に効果的に構築することができるような、未来への道のりを通して、あなたのニーズをずっとサポートするような方法(ツールやデータベースエンジンを使って)で、私たちのプロジェクトを計画することです。つまり、例えば理想を言えば、選択するデータベース・エンジンは、単に今日導入しやすいもの、あるいは一見簡単そうに見えるものである必要はなく、最初から、下流の処理要求をサポートするエンジンでなければならないということです。
    • 商業的な考慮が、このような選択にさらに影響することもある。どのようなエンジンが出席を必要とするのか(そしてコストがかかるのか)。最終的なプロジェクトが維持しなければならない処理目標を維持する実装において、事実上出勤のないエンジンは何か?一般的には、2つの可能性のどちらかに基づいてエンジンを選択するのが、従うべきパターンである。
    • そのためには、まず基本的なテーブルのニーズを図にする必要がある。専門家であれば、このマップを作成する必要すらないだろう(何百、何千ものテーブルが関係していても関係ない)。なぜなら、通常、サポートする必要のあるアーキテクチャと将来のニーズが、読み取り集約型か書き込み集約型かのどちらであるかはすぐにわかるからだ。そして、この全体的な傾向に基づいて、また、おそらくは、それぞれのソフトウェア開発ツールで作業する際の個人的な好みや経験に基づいて、適切なデータベースを選択することになる。MySQLは、読み込みを多用する実装では一般的な選択肢である。多くの開発者は、PostgreSQLのような信頼性の高い書き込み集中型の実装を行うデータベースに注目しています。このような重要なツールについては、入念な調査と一般的なソフトウェア開発業界の経験の蓄積を活用することで、私たちの気質を育てています。非常に優れたツールは無料で配布されているため、一般的に出費は避けられます。私たちが求めているのは、読み込みや書き込みを多用する環境でのパフォーマンス、信頼性、管理の容易さと最小化、そして将来的なソフトウェア開発ツールとの統合性です。
  • 2
    ソフトウェア開発ツールの選択ソフトウェア開発ツールの選択には2つのパターンがある。簡単」と称されるツールが実際に簡単であることは稀で、プロジェクトが必然的に「簡単」なツールの開発・機能パターンの鋳型を壊してしまう場合、「簡単」なツールは一般的に制限される。動的に生成されるURLに言語や翻訳パラメータを組み込むなど、「簡単な」ツールを超えることをしたい場合、「簡単な」ツールで達成するのは非常に難しく、簡単なパターンを騙してより複雑なことをさせるには、非常に高度なプログラミング・スキルが必要になるかもしれない。良いプロジェクトを作るためには、ツールを使いこなさなければならない。だからといって、簡単なツールが最良の選択であったり、最も洗練されたツールが難しい提案であったりするわけではない。簡単な」開発の罠は、一般的に、プロジェクトの必然的な進化の中で克服するのに非常にコストのかかる制限からなる。一般に、そのようなツールは膨大な種類を生み出し、表向きはそのようなニーズに応えている。しかし、ツールの永続性のパターンは、この目標を達成したという表向きの事実を裏切っている。したがって、一般的に、優れたパターン(またはオブジェクトやライブラリの利用可能性)に従った最も洗練された強力なツールは、簡単なツールに対する実質的に避けられない障害を緩和するだけでなく、同様に、「そこへ到達する」ことをはるかに簡単なプロセスにすることがわかる。利用可能なツールの範囲を調べると、一般的に、初期の開発コンセプトではあまり包括的でないモデルが提示され、後から生まれたツールではより優れたコンセプトが提供される(さもなければ、すでに勝利した市場で生き残るチャンスはない)。もし私たちが簡単だと言われるツールを選ぶとしたら、私たちが求めているのは、使い勝手がよく、最終的な障害がない開発パターンである。初心者にとってのパラドックスとは、与えられたツールセットに対するプログラミングの障害を認識できるほど、先を見通すことの難しさである。最高のツールとは、最も強力で、プロジェクトのアプローチにおいて最も制約の少ないものだと考える人もいる。なぜなら、そのような対象で成功するということは、「シンプルな」モデルに、本来サポートする能力がないようなことをさせるということだからだ。例えば「Ruby」は、本当に基本的なC++やC#よりも簡単なツールなのだろうか?いいえ、そうではありません。特に、重要な機能を提供するためにRubyの単純なモデルを壊さなければならないのであればなおさらです。Rubyのように、GCCはLinuxとOSXでは無料だ。RubyもOSXに対応している。より簡単と言われるツールの中で、Rubyを選ぶ人もいる。真に洗練されたツールの中では、C++とC#が将来にわたってトップに君臨するだろう。というのも、どの道を選ぼうと、ツールだけでなく、それらのツールが最終的にあなたを縛る可能性のある制限的なモデルもマスターしなければならないからだ。Rubyはおそらく、ほとんどすべての「簡単な」同業者よりもはるかにクリーンだ。C++は邪魔されない卓越したツールであり、実際、ベテランの達人たちは、簡単と称されるツールで同じ目標を達成するよりもはるかに少ない苦労で、おそらく比類のないプロジェクトを完成させるだろう。結局のところ、この観察から外れた開発者は、いくらかの代償を払うことになる。最も使いやすい「簡単な」ツールを選ぶか、最も洗練されたツールの不自由さをあまり気にしないかのどちらかだ。後者の場合、あなたはFast CGIオブジェクトをマスターし、ボールを取って走ります。巨大なコンセプトは、多くの場合、少ないコードで実装されます。そう、シンプルなツールも同じことを主張するが、C++が解決するパフォーマンス上のハンディキャップに加え、通常その特異なパターンから逸脱することが非常に困難なエンジニアリング上の課題をもたらすような方法で、表向きの難しさを抽象化することによって、私たちから遠ざけているのだ。
  • 3
    これらの疑問を解決する過程で、私たちは必然的に、私たちが望むような性質のプロジェクトを開発するための基本的なモデルやパターンを調べなければならない。これは、比較したいツールの最良の文献をつかむこと、そして少なくとも、私たちのコンセプトが、他のツールと比較して、与えられたツールのセットで取りうる何らかの形を与えることを意味する。例えばRubyを選ぶ前に、"The Ruby Programming Language "や "Agile Web Development with Rails "といった重要な本を手に取るかもしれない。最初の学習では、ツールを十分にマスターするだけでなく、そこに到達するための方法、つまり選択する可能性のあるツールで希望する機能を提供する方法を思い描かなければならない。これは入門者にとっては大変な作業だ。簡単と称される開発環境を最高のものと比較しようとするなら、最高のCツールも評価しなければならないだろう。もしあなたが本当に熟練したエンジニアになるつもりなら、制限のないC言語を選ぶだろう。C言語は本当に難しいのか?いいえ、構文は構文です。結局のところ、同じ機能を表現することをマスターしなければならない。実際、C言語ファミリーは優れている。C++の門をくぐってすぐに優秀な成績を収めるのが難しいのは、その上に構築する必要がありそうなモデルに手をつけることだ。実質的に15年前からの優れたスタートは、ボーランドのCPPBuilderで利用可能だったオリジナルのFastCGIコンポーネントである。C言語初心者でも、このようなオブジェクト指向のアプローチで遠くまで行くことができる。例えばRubyでは、Rubyのモデルを壊したり、それを超えるようなアプローチをする可能性がある場合、あなたの仕事はRubyでするよりもはるかに自由である。一方、Railsのscaffoldingテクニックは、プロジェクトがRubyとRailsの一般的な型に合っている場合に限り、初心者にとって多くの作業を迅速化します。たとえば初歩的なセキュリティ規定を導入し、すべてのRubyインタフェースで認識されるようにすると、気がついたときには、アプリケーションがネゴシエートするテーブルごとに自動生成されたRubyコードを1,000行も書き直していることになります。それは簡単ですか?OSXシステム上のRubyプロジェクトで動作するNoteTab ProというWindowsエディタを試してみてください。洗練されたマクロを使えば、おそらく1秒で修正でき、1000行のコードをその2倍近くにカスタマイズできます。それでも、これはプロジェクトが制限されている比較的単純で基本的な機能に関するものだ。実際、C++では、これらのタスクを真に普遍的に処理する独自のオブジェクトを書くことができる。これがトレードオフの関係だ。結局のところ、オブジェクト指向Cが最も強力で効率的なのだ。つまり、最も手間がかからないということだ。
  • 4
    プログラミング・ツールの選択にかかわらず、HTMLとCSSをそれなりにマスターしていることに依存しない手はない。一般に、熟練した開発者は、重要な資料についてはW3C.orgに頼っている。
  • この記事は、CC BY-NC-SAの下で公開された「 How to Build a Dynamic Website 」を改変して作成しました。特に断りのない限り、CC BY-NC-SAの下で利用可能です。

    シェアボタン: このページをSNSに投稿するのに便利です。

    コメント

    返信元返信をやめる

    ※ 悪質なユーザーの書き込みは制限します。

    最新を表示する

    NG表示方式

    NGID一覧