ソフトウェア開発者はシステム管理経験が必要です

ソフトウェア開発者であることとシステム管理者であることは、彼らが言うように、2つの大きな違いです。 多くの人がこれら2つの職業を混ぜていますが、これらのクラスのスキルセットはあまり重複していません。 開発者はコードを記述します。 システム管理者は、このコードが機能するコンピューターシステムをサポートしています。



システム管理者/ソフトウェア開発者





両方の活動が重要です。 ソフトウェア自体はユーザーにとって価値がありますが、動作する環境なしでは存在できません。



多くの企業は、開発者とシステム管理者を異なるチームに所属させることを好みます。 理論的には、これは理にかなっています。 2つの異なるスキルセットは2つの異なる職業です。 なぜ2つの異なるチームにならないのですか?



ここでの最大の問題は、実際には、ソフトウェアを作成するときに特定の状況が非常に重要であることです。 開発者は、プログラムが動作する環境を理解する必要があります。そうしないと、正しく動作できません。



類推-建物の場所を指定せずに建物を設計するように提案されたと想像してください。 あなたはおそらく価値のあるプロジェクトを作るでしょう。

画像








しかし、その後、誰かがこのプロジェクトを取り、家を建てます...斜面に。

画像








かっこいい!



ソフトウェア開発者がシステム管理者の機能を実行したことがない場合、理論的に機能するプログラムを作成します。 開発者は、原則として自分のコンピューターでプログラムを作成します。 インターネット上のソフトウェアのほとんどは、異なるコンピューターで実行されます。 GoogleやFacebookのような巨大なサイトには何千ものコンピューターがあります。 しかし、私たちの仮想の家のように、完全に平野に立っていて、理論的に完全に機能するプログラムは、多くのユーザーに直面すると完全に崩壊する可能性があります。 これは、バグまたはプログラムのクラッシュの形で発生する可能性があります。



たとえば、FacebookやTwitterなどの画像をアップロードするサイトを考えてみましょう。 FacebookとTwitterのユーザーが多すぎるため、これらのサービスを同じサーバーやコンピューターで使用することはできません。 そのため、Webサイトへのアクセスを提供する多くのWebサーバーがあります。



画像








なぜこれが重要なのですか? 開発者は、通常は1台のコンピューターでプログラムを作成することに注意してください。 彼は、Webサーバーと同じハードドライブにイメージを保存するコードを書くことができます。これは彼にとっても同じです。 しかし、あなたのようなサードパーティのユーザーがプログラムに直面すると問題が発生します。



3台のWebサーバーがあり、そのうちの1台のハードドライブに画像が保存されている場合、3人中2人はこの画像を見ることができません。 300人の友人がいる場合、アップロードした画像を見ることができるのは100人だけです。 これはサービスです!



画像






これがここに来たら...-あなたの写真がここに来たら

この場合、ここにアクセスするユーザーには表示されません=ここにアクセスするユーザーには表示されません



これを修正する正しい方法は、すべてのWebサーバーで利用可能な分散ファイルシステムを使用することです。



画像






すべての画像をクラウドストレージに配置してください!



ただし、十分な経験がない開発者はこれを行いません。 彼は単一のコンピューター用のコードを書いています。 1台のコンピューターでプログラムをチェックすると、画像は常に100%表示されます。 この問題は、ユーザーが実際のWebサーバーでプログラムの使用を開始したときにのみ検出されます。



誰かが開発者にこれらのことがどのように機能するかを説明する必要がありますが、彼らは正確に言うと、経験しか理解できません。 私自身の経験は、より深い理解を提供します



この理解は、開発プロセスのずっと早い段階でエラーを検出するのに役立ちます。 sysadminの作業経験のない開発者は、通常のパスに従います。



1.プログラムを作成します。

2.レビューやテストのために送信します。

3.プログラムを取り戻し、エラーを修正します。



そして、これはかなり長いプロセスになる可能性があります。



多くの場合、システム管理者は開発者から送信されたプログラムを表示したくないため、状況はさらに悪化する可能性があります。 これは、ユーザーがすべてのバグに最初に遭遇することを意味します! この種の問題も、プログラムが開発者のコ​​ンピューターで問題なく動作するため、調査が困難です。 問題を再現するのは難しい場合があります。



確かに、システム管理に携わるのは好きではありません。 私はそれをとても気に入っている人がいることを知っていますが、私にとって、そのような活動は不満の絶え間ない源です。 Sysadminは、プログラムの作成に必要な知識と経験のセットですが、作成したソフトウェアを他の人に届けるために必要です。



とにかくやります。 これは、環境を知ることでプログラムをより適切に作成できるためです。 これは、自分のコンピューターでのみ実行されるプログラムは役に立たないためです。 重要なプログラムは、他のすべての人が使用するWebサーバーで実行されるプログラムです。 プログラムを書くだけで、実際の開発者が行う必要があることの半分しか意味しません。



All Articles