質問

前文

動的な Web サイトを構築するには、少なくとも 4 つの言語をマスターする必要があります。

  • Web ページの構造のための HTML
  • レイアウトとデザイン用のCSS
  • インタラクティブ性のための JavaScript
  • ビジネスルールまたは動的駆動データ用の言語

さらに、永続ストレージ用の SQL、セッションとキャッシュ用の Memcache、 多くの さまざまなコンテンツ管理システム。Web アプリケーションを構築する際には、OpenID、Facebook、Twitter、OpenSocial との対話も考慮する必要があります。これは興味深いことです。

全体として、それはまったくの混乱です!

2 つの目的を考慮すると、次のようになります。

  • 子供たちに Web 開発を教える
  • チームとして生産性を維持する

質問

HTML + CSS + Javascript + ( を統合する高レベルのシステムは何ですか?ここに高級言語を挿入します, 、PHP の方が望ましい)?


背景

  1. 私は、Broadvision、Autonomy、Enterprise Java、Oracle などのテクノロジーのプロジェクト リーダーおよび開発者として 15 年以上の経験を持つソフトウェア エンジニアです。

近年、私は Drupal や CakePHP などの PHP フレームワークを使用したコミュニティ Web サイトの開発に注力してきました。私 のように Web 開発では、関連するテクノロジー間のインピーダンスの不一致を楽しむことができます。それでも私が行き着く避けられない結論は、 もっと良い方法があるはずです.

  1. 私は 2 人の息子 (13 歳と 9 歳) の父親ですが、息子たちにはプログラマーにはなってほしくないのですが、コンピューターをゲーム機以上のものとして理解してほしいと思っています。私は彼らに、自分自身を表現するために Web 開発を少しいじってみるよう促したいと思っています。

私が彼らに断片的なものを見せるときはいつも、日曜日の午後の 1 ~ 2 時間で「興味深い」結果を作成できるツールセットを手に入れたいと思っています。

他のヒント

GWT のJavaScriptを生成するためにJavaを記述せ、高レベルのツールキットであることの方に何らかの方法行きます。

Webプログラミングは本質的にマルチ規律のクラフトです。

この主な理由は、理由関心の分離である...彼らそれぞれが持っているので、一つの言語で一緒にマッシュされていないなどのHTMLとCSSとJavaScript、SQL、という理由がある別々の目標、注意点、落とし穴、および強みます。

は、SQL、CSS、JavaScriptとPHPのコードは同じソースファイルで一緒に混合しているサイトをデバッグしようと想像できますか?あなたは既にそうすることの不幸を持っていたかもしれません。悲しいことに、そこにこのように書かれたサイトの文字通り何千もあり、それはデバッグやプレゼンテーション、データ、および構造のように汚いamalgamationsに追加しようとしている完全な悪夢である。

  

すべてのすべてで、全くの混乱!どのようにしています   にWeb開発を教えることになって   子供?

私が最も重要なことは、プログラミングの基礎を教え、それらを固執作っていると思います。変数、ロジック、のポインタの、メモリ管理、アルゴリズム、データ構造、など。

あなたがプログラミングの基礎を持っている場合は、

、それは新しいものをピックアップし、multipe言語で作業するのは簡単ですし、時代とともに変化しやすいです。これは、Webプログラミングとして常に進化とトレンドをベースとして、何かのために貴重なスキルです。

プログラミングに新しい私の意見の人では、例えばCのように、低レベルの言語で開始する必要があります。人々は、プログラミングの本質的な、基本的な概念を取り払われるべきであっても、PHPやPythonのような高いレベルの言語を示すされる前に、舞台裏で何が起こっているかの知識を得る必要があります。

私は、教育プログラムへのこのような態度は、より良いWeb開発者を繁殖だけでなく、興味や知性を持っていない人を淘汰しますエントリの障壁を提供する効果を持っていると思います。私は態度のこのタイプの結果は、より良い開発、より良いソフトウェア、そして最終的にはより強力な言語やツールになると思います。

  

どのようにして子供たちにWeb開発を教えることになっている?

Web開発における子供たちの軍隊は、私たちは彼らから離れ、まともな賃金をゲットすることが難しくなってきた一方で、誰もが、プログラマ自身を呼び出すだけで約ます。

今、以来、私たちの職業を分解したものです

多くの言語や技術を習得するには?それはいいことです。開発者の仲間入りをするためにいくつかの参入障壁があるとしよう。

ADDED:コメントは以下のことで、私は自分自身を完全に明らかにされていない見ることができます。私はそれがすべての態度についてです、それは10、30、50または80であること、年齢について何も言いません。人はいくつかのデザイナーやCMSでのマウスでコントロールを移動するよりも専門職へのはるかがあることを理解し、受け入れるかどうか。プロのソフトウェア開発者のワークショップに属しCS、アルゴリズム、データ構造、データベース、アーキテクチャ、拡張性、メンテナンス、パフォーマンス、スケーラビリティ、使いやすさ、マーケティングなど多くの基礎を含め、獲得される知識がたくさんあります。私は、人はそれらの無知であると、彼らは職業に属していない自分自身を教育し、より多くの習熟に努めへの移行を行うことはありません。そして、この意見に偏りさせます。

私はあなたが得ると思う最も近いが、.NETです。私はその取り扱い、絶対にすべてのことを知っている多くの多くの言語のためのフレームワークが、どれがあります。その横に、あなたはプログラミングが公園を散歩であることを子どもたちを説得しようとしてはなりません。これは、研究および保管アップの多くを必要とする、困難な仕事です。私たちは今日ここにある技術と連携し、明日行っています。

あなたはそれについて考える場合は、

、プログラミングは大工仕事、または航空よりも何が違うのではありません。あなたが選んだのちょうど約あらゆる職業は、あなたが何をすべきかに優れていることが異なる多くのことを学ぶためにあなたを必要とします。

は、どのように子供たちにWeb開発を教えることになっていますか?うわー、それはイバラの一つです。どのようにしてそれらを手術、または知的財産法、または土木工学を教えるのでしょうか?またはそのことの自動車整備士、または配管、または一般的な契約のために?

あなたはセサミストリートのテープに飛び出る考えたことはありますか?

あなたは自分の職業を矮小化するときエルモがそれを好きではありません。

ソフトウェア業界は、何もしないが、低品質の製品を作成すると同時に、真エンジニアリングの規律になることから、この職業を遠ざける資格のない人に苦しんでいます。これは、上の認定を受けるためのものではありません。神の愛のために、誰のソフトウェア開発を「教える」はありません。偉大なソフトウェアを作ることだけ過去と現在の技術の知識の経験と富の年の結果として出てくることを彼らに説明してください。あなたが行うことができます最悪はそれらを扱う他の人のための仕事を作成するさらに別の中途半端な開発者を紹介しています。教育を受けるためにそれらを教えてください。私はこれはおそらく聞きたかったが、私はこれを読むことがしたかった答えではありません知っています。

私はウェブ開発の問題は、それが最初にそれが今日使用されているもののために設計されていないということだと思います。私たちは、HTML + CSS + JavaScriptのプラスどんなサーバーサイド技術は、それを生成して、ブラウザ内のリッチクライアントアプリケーションを構築します。はい、それは動作しますが、それは特に迷惑なブラウザの非互換なと、痛みです。 FlashとSilverlightのの存在は、これを証明しています。彼らは、あなたはまだブラウザ内で、1つの技術を使用してアプリケーションをビルドしてみましょう。あなたのコンテンツ用のプラグインを必要とする欠点はも明らかである。

言語がお悩みの少なくともです。それは、彼らはそれが複雑であると連携問題領域です。 A)それは境界が明示的になり、b)の言語は、ドメイン用に最適化することができますので、異なる言語を使用すると、実際に物事をより管理しやすくなります。

プログラミング(PHP / JS)とドキュメント形式(HTML / CSS)は、2つの異なるものです。 同時に、PHPとJSでプログラミングを学ぶことも困難になります。

あなたは開始時に、クライアントにHTMLとJSに焦点を当てるべきです。その後、彼らは、サーバー上の javascriptのの同様のプログラムましょうことができます。これは、それだけで1つのプログラミング言語を作る、とで開始するCSSの上にHTMLに焦点を当てます。

彼らはJSとHTMLの基本を学んだ後は、あなたが彼らにとCSS(PHP、Rubyの、などなど)、より広く使用されるサーバーサイドのプログラミング言語を教えることができます。

ジャンゴにその清浄を通じて道のあなたの部分を取ることができます。これは、生産性の周りに集中しています。教育は、他の言語/フレームワークよりも簡単ではありませんが、それをこのように見て:このツールを教えたとき、あなたの学生はよく、それがのはずのことがいかに簡単かの知識に装備されています。彼らは、Djangoのことを学びました後のJavaサーブレットまたはまたは類似の悪夢を受け入れることはありません。

オーパをチェックアウト: http://opalang.org/する

これは、新進気鋭のWeb開発技術です。それは非常に有望に見えます。私は過去数年にわたりWeb開発の多くを行っていると私はあることを行っているアップと新たな枠組み/言語/技術予測をしなければならなかった場合には主な方法のウェブサイトは〜5〜10年で開発され、私はそれを言うだろうオーパなります。

ドキュメントには、プロジェクトに取り組んでチームを尋ねた質問にチュートリアルや応答性が優れており、コミュニティは素晴らしいですが、素晴らしいです。全体的に、彼らは比類のないように思わこの新しいフレームワークの開発に関しては細部へのこだわりを持っているようだ。

習得する多くの技術が良いことではありません。私たちは、エリート主義が言うに関係なく、どのような、Web用のVisual Basicを必要とします。

あなたは、異なる目的のために異なる言語を必要としています。ほとんどのWebアプリケーションであり、実際に起こってかなりですので、あなたは、異なる言語やソリューションを必要とします。

目標は、単一の言語に統一することである場合は、

、あなたはそれを行うことができます。あなたは、サーバー上のJavascriptを使用して、document.createElement()を使用してページを構築し、stylesプロパティに直接にスタイルを適用することができます。そして、サーバー上では、JavaScriptを使用してファイルに直接データを格納ます。

もちろん、これはそのうまく動作しないでしょう。 HTMLは完璧ではないですが、それはそれはそれは単に、よく何をしubiquitous--そうである理由があります。 CSSは複雑かつ単純すぎるの両方ですが、あなたのデザインを表現するためにoverrideableルールを定義する基本的な考え方は健全です。そして、SQLは時々理解するための痛みかもしれませんが、データベースクエリを表現することは、この方法では、表現され、実際にはかなりうまく動作します。

言われていること、私はそこにあるまたは1つのアーキテクチャであるべきとは言いませんよ。あってはなりません。各プロジェクトは、その要件に沿ったアーキテクチャを使用する必要があります。

あなたの次のプロジェクトでは、単純化するために試してください:あなたは本当にデータベースが必要なのでしょうか?あなたは簡単にするために、ビューレイヤーを結合し、どちらかのGWT、アプレット、Flashや.NETのようなものを使用することはできますか?あなたは本当に(CSS、HTMLとJavascriptの複雑さを紹介します)ブラウザでコンテンツを提供するために必要がありますか、またはあなただけのアプリケーションを書くことができますか?

あなたのアプローチを再考する必要があるかもしれないと思います。私の意見としては、これをそのまま受け止めてください。ただし、この順序の方がうまくいくかもしれないと思います。

最優先事項: (順不同)

  • 問題解決スキルを開発する
  • チームとして生産性を高める

次:

  • 基本的なプログラミング スキル (PHP、Python など)

個人として、またはチームとして問題を解決する方法を理解したら、次のような具体的な問題に進むことができます。

  • クライアント/サーバーモデル
  • マークアップ (HTML、XHTML、XML など)
  • スタイリング (CSS)
  • クライアント側スクリプト (JavaScript / jQuery)
  • サーバーサイドスクリプト (PHP、Ruby など)

最初から深いところに飛び込むのではなく、何が関係しているのか少しずつ知識を深めてください。すぐに圧倒されてしまいます。

この時点で、ファイル I/O やデータベースなどの導入を開始できます。

これにより、かなり包括的なスキルセットが得られます。ここから、彼らは本格的に学習を始めることができます。

さらに、永続ストレージ用の SQL、セッションとキャッシュ用の Memcache、コンテンツ管理システムの API、OpenID、Facebook、Twitter、OpenSocial などを処理する必要がある場合があります。何か面白いものを作るために。

これらは独立したトピックなので、すべてを 1 つの塊として切り取ることはできません。特にこれらの人々を0から連れて行く場合は。何か面白いものを構築する前に、ありふれたものを構築する方法を学ばなければなりません。

HTML5 おそらく、Flash や Silverlight よりも、あなたが探しているものに近いものになるでしょう。しかし、まだ完全には到達していません...サポートは構築されていますが。

ベイビーステップ、オラフ - もしこれがあったら マトリックス すべての情報を一度にダウンロードすることもできますが、まだそこには達していません ;-)

現時点および近い将来、Web 開発は、興味深いユーザー エクスペリエンスを提供するために連携するさまざまなテクノロジーの相乗効果です。

まあ、それは私の 2 セントです

Web開発のマルチ懲戒性質は、の、特にのチーム環境で、それは喜びで動作するようになりますものの一つです。

チームとしてうまく機能するために、あなたは自然にDBAとのシステム管理者へのダウンUI /グラフィック人から、専門知識の範囲を持つ人々のグループと一緒に来ます。でもグループ(例えば、バックエンドプログラマ)の単層内の各人物は、一般に、例えば、一部の人々はUI、データへの他のダウンに向けてより多くの経験を持っていることがあり、異なるセットに特化しています。

私は、すべてのいくつかのミドルウェア・アプリケーションに取り組ん10人のJavaプログラマの部屋で作業に比べて、任意の日、この多様性を取るだろう。

あなたは、単に動的なWebサイトを作成するためにそれらを教えたい場合は、

、彼らはw3schools.com上のHTMLチュートリアルを通過すると、それらが完了したら、あなた自身に、彼らが含まれ、PHPと一緒に行く、それらを設定することができますまともな探してスタイルシートを見つけるに設定。それはそれらを取得し、趣味として実行している、と彼らはもっとやりたいならば、彼らはCSSやJavaScriptのように、一緒に余分な知識を縫い合わせ開始することができます。

私は、そこにCSSが時代遅れにRoRのためのいくつかのフレームワークは、おそらくですが、あなたは別のマークアップ言語を持っているのに

(Ruby on Railsが、それらのすべてを統一に向けた非常に道を行くが、CSSのために、それは寒さの中にあなたを残し)と思うし、あなたはまだ)それはあなたのためのJavascriptをたくさん書くんが(Javascriptを必要とし、すべてのDBコードます。

一方で、あなたの子供について:プログラミングはプログラマのためのものです。数時間で一緒に何かを置くために日曜日の午後、あなたはフレームワークを知っている必要があり、そしていくつかのプラグインを購入し、すべてを取得し、多くの作業をせずに移動します。彼らはあらゆる種類のものを行うには、テンプレート(Joomlaのためにあなたは何百ものパックを購入することができます)やプラグインを販売Drupalのか、Joomlaのような何か、。それが失敗したときや、あなたの子供は、おそらくODeskに行くと、あなたの枠組みで行わ何かを得るために$ 100にドロップする方法を知っている必要があります。あなたがプログラマになりたい場合は、プログラミングに学ぶことは良いです。そうでなければ、それはあなたが良いプログラマを雇うか、良いpredoneコンポーネントを購入し、それを行うための現金を持っているために必要なものを学ぶのがベストです。

子供についての最終ポイント:彼らはビデオゲームをプレイしましょう。それは、彼らが将来的には、コンピュータ側のストアに保持しているものは何でもするために得ることができる最高のトレーニングです。ビデオゲームは、あなたが、プレイを調査し、コンピュータでリラックスしましょう。あなたがいることをしたら、HTML、CSS、JavaScript、およびいくつかのアプリケーションスタックを学ぶことはケーキです。

angularjs のオプションである可能性があります。それは、単一ページ・アプリケーション向けにintededとnodejsスタック上で実行され、いくつかのテンプレート-javascriptの「魔法」をしている。

例(テンプレート/コード)。 これは、(自動生成されたクライアント・サイドのJS経由)の見出し(H1)への入力フィールドから値をバインドします。 あなたが入力フィールドに何かを入力すると、見出しのテキストが更新されます。 そして、あなたは、フロントエンド-JSを記述する必要はありません。

  <input type="text" ng-model="yourName" placeholder="Enter a name here">
  <h1>Hello {{yourName}}!</h1>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top