Web開発の役割のサーバーについて知っておくべきことは何ですか?[閉まっている]


12

少しあいまいに聞こえるかもしれないので、もう少し説明してみます...

長年自営業の開発者であった後、私は現在商業的なWeb開発者の役割を探しています。サーバーとホスティングに関する私の唯一の経験は、FTPを介してアップロードし、CPanel / WHMを少し試してみることです。私が行っている役割は、Web開発のPHP、MySQL、HTML、CSSタイプの役割ですが、最近のインタビューでは、サーバーでの設定について質問を受けました。理想的ではありませんでした!

私以上のことを知らなければ、私が何を学ぼうとしているのかを正確に説明するのは難しいですが、それは基本的にウェブ開発者として知っておくべきサーバー要素だけなのでしょうか?Web開発者の場合、ファイルのアップロード以外にサーバーを扱うことはありますか?Subversion(SVN)やバージョン管理システムのようなものは、多くの場合、Web開発チームによってセットアップされていますか?



3
しかし、これはサーバーについてより具体的だと思います:)
マイケルデュラント

2
私はあなたにそれを破るのは嫌いですが、Webサーバーを構成できない場合、あなたは非常に価値のあるWeb開発者ではなく、本ですぐに学ぶことができるものではありません。本からサーバーコンポーネントを学習するのに半分の仕事をするのではなく。PHPのスキルを磨き、PHPプログラマーとして応募する方が良いでしょう。
Reactgular

@MathewFoscarini私はそれが得意ではないので、それを避けて、私が知っていることだけを完璧にするべきですか?このアドバイスは世界を停止させないでしょうか?not a very valuable web developer私が克服しようとしているものですので、私はそれについて適切に学ぶことができてうれしく思います。
ジョン

@johnウェブ開発者として雇われるという文脈で尋ねましたね。資格がないもの。それがあなたが雇われたいものであるならば、どうしてもそれのために行きますが、インタビューで質問に答えるための短期的な解決を期待しないでください。雇用主は、サーバーでの実務経験がない候補者を排除しようとしていると思います。あなたの質問からの私の印象は、あなたがフリーランサーとしてできなかったことをやって仕事を得ようとしているということでした。これらのサーバースキルを習得するのに喜んで支払うクライアントを見つけることができます。
-Reactgular

回答:


10

これは大きな一連の質問ですが、多くの人々が対処する必要があるのではないかと思われます。特に、フロントエンドに重点を置いて始めたキャリアで進歩し始めたときです。

あなたはあなたがPHPとMySQLの開発を含む役割に行くと言っています。これらは、サーバーで実行する必要があるものです。開発者として適切な技術的判断を下すには、サーバー上でこれらの機能がどのように機能し、Webフロントエンドとどのように相互作用するかを理解する必要があります。そのため、明らかにサーバーの理解を深める必要があります。

サーバーについて必要となる可能性のある正確な知識を事前に把握しようとするのではなく、サーバー側のソフトウェアをすべて自分でインストールすることを含めて、何かに飛び込んで構築することをお勧めします。 あなたの足を濡らす素晴らしい方法は、コンピューターにLinuxをインストールすることです。 VirtualBoxなどを使用して、現在のOSと並行して実行できます。MySQLをインストールし、PHP用のサーバーをインストールしてセットアップし、すべてが連携するようにします。素晴らしいことは、最近では、適度に設備の整ったラップトップがこのすべてを実行し、「サーバー」になることができることです。特にLinuxとコマンドラインの使用経験がない場合、これは最初は難しいかもしれません。開発者としては、少なくともこの演習を通過するのに十分な知識が必要です。知識を深める方法を理解するための出発点になります。

おそらく速度を上げる必要がある3つの領域があります。

  1. Linuxオペレーティングシステムの基本。たぶん、Ubuntuのような簡単にインストールできるディストリビューションから始めましょう。
  2. WebサーバーとPHPのセットアップ。Apacheのインストールは開始するのに適した場所です。他の選択肢がありますが、これはほとんどの人が始める場所です。
  3. MySQLのインストールと実行の基本を学習します。少なくとも、開発者として、おそらくデータベースにテーブルやその他の構造を作成するためにDDLを作成する必要があります。また、サーバー上のデータベースにクエリを実行してデータを探索し、アプリケーションがデータベースにあるものと一致するように吐き出します。

Ubuntuを使用する場合は、ここの基本的な指示に従って、自分で起動して実行することができます。Webサーバー/データベースコンポーネントのインストールと操作を開始する前に、Linuxの基礎をかなり強化する必要があることに注意してください。

ファイルをアップロードする以外に、開発者がサーバーとやり取りする方法については、組織によって大きく異なると思います。

  1. 開発者は多くの場合、少なくとも開発環境の管理を担当しています。場合によっては、リビジョン管理システム(SVNなど)とデプロイメントプロセス(環境間でのコードの移動)をセットアップしているのは開発者です。
  2. 少なくとも、開発者はサーバー上にあるリビジョン管理システムを使用する必要があります。
  3. また、サーバー上のログを調べて、どのメッセージが生成されているかを確認して、問題の診断と解決に役立てる必要があります。
  4. インフラストラクチャチームと協力して、サーバーのネットワーク構成やストレージ構成などを決定する必要がある場合があります。多くの場合、アプリケーションの問題は、構成とコードの組み合わせです。

重要なのは、サーバーに触れる方法の正確な答えは1つではないということですが、あなたのキャリアの中で、FTPなどのファイルをアップロードするだけではありません。今すぐ基本を学ぶことから始めましょう。


すばらしい回答、ありがとう!それで、私が「Mamp」をローカル作業用に設定しているとき、それは同じですが、外の世界にアクセスできませんか?私はいくつかのLinux OSをインストールしましたが、コマンドラインについては少し知っていますが、簡単に覚えているものはありません。サーバーに関する私の知識は存在しませんが、ユーザーフレンドリーなOSのようではなく、コマンドラインのみでアクセスされると常に考えています。
ジョン

2
コマンドラインを快適に使用することが最善です。対処するほとんどの「実際の」Webサーバーはリモートマシンであり、GUIはインストールされません。
GrandmasterB

2
@GrandmasterBが書いたように、コマンドラインを実際に使用すると便利です。私の意見では、Linuxは優れた学習プラットフォームです。なぜなら、Linuxは、画面に表示されるものを超えてOSが何をしているのかを学習する際に「金属に近づき」ます。httpd.confファイルを見て、Webサーバーが実際に何をしているか、PHPモジュールがどのように統合されているかを理解します。プラットフォームの基礎を理解すると、より良い開発者になります。
-DemetriKots

数年前にLinuxサーバーからWindowsサーバーに切り替えましたが、振り返ることはありませんでした。Linuxは優れた強力なツールですが、ジョブの要件に最適なツールを使用する必要があります。
-Reactgular

2

私の最初のアドバイスは、自分を特定の役割に限定することではありません。スペシャリストであり、特定のスキルセット(PHPなど)について深い知識を持っていることは素晴らしいことです。ただし、ドメインの残りの部分にまたがる幅広い知識を持つことも同様に重要です。

私の経験では、ほとんどのチームは、PHPのコア機能を書き換える知識を持つ人を雇うのではなく、投げられた問題を処理できる人を雇うことを望んでいます(ただし、そのレベルの知識は確かに害にはなりません)。または、少なくともチームが遭遇した問題の解決を支援できる人。たとえば、アプリケーションがダウンし、顧客が影響を受けている状況を想像してください。手を挙げて「どうしたらいいかわからない...」と言うか、サーバーにSSHでログインし、ログのスキャンを開始して、特定のファイルシステムのディスクスペースがいっぱいになったことを確認して、クリーンアップします。これは小さな例ですが、ポイントは明確だと思います。開発者として、その基本的な知識があれば、その特定のファイルシステムを監視し、特定のしきい値に達するとクリーンアップするスクリプトを作成できます。あなたは今、あなたのマネージャーにとって、はるかに貴重な存在になっています。

私がキャリアの中で学んだもう一つのことは、物事は速く動くということです。環境全体(ビジネスの側面を含む)についてよく知っていれば、より良い結果が得られます。それは、あなたがするすべてのことの専門家である必要があると言うことではありませんが、少なくとも無知であると分類されない知識を持っています。熟知すればするほど、順応性が高まり、会社にとって価値のある資産になります。

具体的に質問に答えるには...

  • 開発者として知っておくべきサーバー要素は何ですか?

アプリケーションスタック全体に精通している。使用されているWebサーバー、データベース、キャッシュメカニズムなどを把握します。そして、どのバージョンも。自分のサーバーで環境を再作成できるほど十分な知識が必要です。それ自体、それは非常に重要です。サプライズを減らすため、開発環境と本番環境でほぼ同じ環境になるように努力する必要があります(http://12factor.net/dev-prod-parity)。

  • 開発者として、サーバーとはどのような取引をしていますか?

これは本当にチームに依存します。私の特定のケースでは、開発者は環境のステージングで大きな役割を果たします。私たちは、アプリケーションの内部動作に最も精通しているため、アプリケーションを実行するためにどのサーバーテクノロジーが採用されているかを判断するのに最適な立場にいます。すべてのチームがこのような実践的なアプローチを持っているわけではないと思いますが、議論に参加できるほど十分な知識があることは大きな利点です。具体的には、バージョン管理に関して、開発者としてのあなたはどのテクノロジー(Git、Subversion、Mercurialなど)が選択されるかによって大きな影響を受けるため、意思決定プロセスに参加するよう努力する必要があります。

んで、どうする?

このすべての学習にアプローチする最善の方法に関する私の提案は?足を動かします。対象についてできることをすべて読み込もうと心配する必要はありません。ほとんどの場合、終了するまでに脳から漏れてしまうでしょう。代わりに、ゼロから何かを開発し始めます。Vagrantから始めます。新しいプレイグラウンドとして使用できる仮想マシンを簡単に作成および管理できます。次に、Webサーバーとデータベースをインストールして、作成を開始します。完璧なアプリのアイデアがあれば、それを試してみてください...そうでない場合は、チュートリアルを見つけるか、既存のアプリを再作成してみてください。ポイントは、プロセス全体に精通することです。また、PHP開発者として、PHP:The Right Wayを必ずチェックしてください。...本当に多くの優れた情報が含まれています。そして最も重要なことは、ストレスを感じないことです。開発者の道をたどったのは、あなたが楽しんでいて情熱を注いでいるものだからです...見逃さないでください!


1

サーバーにウェブ開発者になるために知っておくべきこと何ですか?...

実際には驚くほど少ない。主な知識分野はプログラミング、html、phpなどです。

あなたが知る必要があるのは、物事をローカルで実行する方法であり、これを行うとき、あなたのボックスを「サーバー」として使用しています。ローカルで実行しているときに、あなたはただのインターネットサイトと同様に、ページを表示するWebブラウザを使用して...あなたはなり除いhttp://localhosthttp://127.0.0.1

cgi、httpなどの設定に関しては、あなたがそれを知る必要があるとは思わない。使用しているOS用のWebサーバーのセットアップに関する一般的な書籍をいつでも読むことができ、一般的な用語を知るのに十分な内容です。

全体像については、Linuxに乗り、Webサーバーなどのマシンをセットアップおよび構成する方法を学ぶことをお勧めします。しかし、実際にその物に興味がある場合のみ。インタビューに感動するだけではありません。

最後に、インタビュー中に十分に知らない分野についてメモを作成することを検討することをお勧めします。あなたの質問があなたが知らなかった用語などについてより具体的である場合に役立ちます。


ありがとう。時間が許せば、とにかく学びたいです。ここで「ダミーfor Linux」タイプの本が役立つでしょうか。まもなくホストを移動しますが、Amazon AWSクラウドは少しの作業で私に利益をもたらすものをホストしていますか、それとも完全に異なりますか?
ジョン

1
ダミーの本は使いません。多くは関係ないかもしれません。私は、投与したWebサーバーのようなもの、例えばスキミング試してみたcengagebrain.com/shop/en/US/storefront/...
マイケル・デュラント

はい、開発マシンとしてLinuxを実行し、その上にWebサーバーをセットアップします。それで遊んで設定することに慣れてください。そうすれば十分に学習できます。それは基本的にあなたが仕事で学ぶ方法です。半分はsysadminsの制御下にあります。これはそもそも良いことかもしれませんが、あなたが進むにつれて、あなたは自分でセットアップのより多くの制御を与えられることを好むでしょう。
wobbily_col

0

Web開発サイクルを完了するには、以下のことを知る必要があります。

1)IDE(NetbeansおよびEclipseなど)

2)コーディング用のプログラミング言語。(PHP、javaなど)

3)ページ設計のフロントテクノロジー(HTML、CSSなど)

4)データを保存および取得するためのバックアップされたデータベース。(MySQLなど)

3)コードフォームリポジトリをチェックおよび取得するためのバージョン管理システム。

4)依存ファイルを使用してコードをコンパイルするビルドツール。(アリ、メイヴン)

6)コードをデプロイして実行するWebサーバー。

7)Webおよびejbコンポーネントを実行およびテストするには、サーバー上の基本的な展開プロセスを知る必要があります。(Tomcat、Web-Logicサーバー)


0

DemetriKotsの回答に加えて、自動展開と継続的統合のためのソリューションも検討します。最初にサーバーをセットアップすることは1つのステップに過ぎず、FTP経由でのデプロイは苦痛でエラーが発生しやすく、不適切なデプロイをロールバックするための適切なソリューションはありません。

  • ハドソン -継続的統合サーバー
  • Phing -Antに基づいた、PHP専用の自動ビルドツール
  • Ant-自動ビルドツール
  • Capistrano -Webアプリケーションの展開を自動化して簡単にする展開スクリプトを作成します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.