フルスタック開発者は誰ですか?

すべての開発者が開発プロセスのあらゆる面でマスターになることを期待するのは合理的ですか? ほとんどの場合そうではありませんが、Facebookはこれをあなたに要求するかもしれません。 OSCONにいる間、Facebookの従業員は、「フルスタック」開発者のみを雇うと言っていました。 わかりましたが、それはどういう意味ですか?



私にとって、「フルスタック」開発者とは、あらゆる側面に精通している人のことです。それらの多くに精通しており、すべてのテクノロジーに真の関心を示しています。



すべての側面に精通した熟練した開発者は、周囲の人々の生活を楽にすることができます。 したがって、私は職場での厳格な分業に反対しています。 もちろん、大規模な組織では、政治とコミュニケーションの問題がこれを妨げます。 Facebookの採用方針の本質は、頭の良い人が心と頭を使うなら、より良い製品がより短い時間で作れるということだと思います。



フルスタックコンポーネント



1.サーバー、ネットワーク、およびホスティング環境。


A.何が壊れるのか、なぜリソースが当然のものと見なされるのかについての理解を含みます。

B.ファイルシステム、クラウドデータベース、ネットワークリソースの適切な使用、およびデータの冗長性と可用性の理解。

C.特定のハードウェア制限の下でアプリケーションはどのようにスケールアップしますか?

D.マルチスレッドと競合状態はどうですか? デザインにはこれがすべて表示されるわけではないことを知っておいてください。ただし、実際に表示される可能性があります。

E.「フルスタック」開発者は、DevOpsと並行して作業できます。 システムは、意味のあるエラーメッセージとログ機能を提供する必要があります。 DevOpsはこれらのメッセージをあなたの前に見るので、彼らの意見を検討してください。



2.データモデリング


A.データモデルが正しくない場合、このモデルでは考慮されない例外的なケースを補うために、ビジネスロジックおよび上位クラスで奇妙な(ugい)コードが必要になります。

B.「フルスタック」開発者は、外部キー、インデックス、概要、ルックアップテーブルなどとともに、重み付けされたリレーショナルモデルを作成する方法を知っています。

C.「フルスタック」開発者は、非リレーショナルデータベース(NoSQL)の概念に精通しており、リレーショナルデータベースよりも優れていることを理解しています。



3.ビジネスロジック


A.アプリケーションによってもたらされる利点の本質。

B.深刻なオブジェクト指向スキルがここで必要です。

C.ここでもフレームワークが必要になる場合があります。



4. APIクラス/アクション/ MVCクラス


A.ビジネスロジックとデータモデルが実際の世界とどのように相互作用するか。

B.このレベルでは、フレームワークが最大限に関与する必要があります。

C.「フルスタック」開発者は、ユーザーの便宜のために、きれいに、順番に書くことができます。 一部のAPIがどの程度混乱しているのか、怖いです。



5.ユーザーインターフェース


A.「フルスタック」開発者:a)読みやすい図の作成方法を理解し、b)アーティストやグラフィックデザイナーの助けが必要であることを認識する。 いずれにせよ、優れた視覚デザインの使用は非常に重要です。

B. HTML5 / CSSの優れたコマンドを含めることができます。

C. JavaScriptは将来のアップストリーム言語であり、JavaScriptで多くの刺激的な作業が行われます(ノード、バックボーン、ノックアウト...)



6. UX


A.「フルスタック」開発者は、ユーザーが単純に動作するために必要なものであることを理解しています。

B.優れたシステムは、手根管症候群やユーザーへの眼の刺激を引き起こしません。 「フルスタック」の開発者は、8回のクリックと3つのステップを必要とするプロセスを一度見て、すべてを1回のクリックに減らすことができます。

C.「フルスタック」開発者は、有用なエラーメッセージを記述します。 何かが壊れた場合は、謝罪します。 プログラマは、意図せずに、人々を馬鹿のように感じるエラーメッセージを書くことがあります。



7.顧客と企業が必要とするものを理解する。


A.現在、開発エンジニアの責任範囲は完全には明らかではありませんが、大部分は独立した役割です。

B.「フルスタック」開発者は、顧客が製品を使用するときに何が起こるかを深く理解しています。 また、ビジネスの仕組みについても理解しています。



その他のパズルコンポーネント:


1.品質の単体テストを作成する機能。 ちなみに、今日では、JavaScriptの下でも作成できます。

2.アプリケーションの構築、テスト、ドキュメントの提供、およびスケーリングに必要な繰り返し自動プロセスを理解する。

3.各クラスは独自の方法で脆弱であるため、安全意識は重要です。



最終的な考え


コードを特定のアプリケーション(ライブラリ、OS、ハードウェアなど)に緊密にバインドするのは悪い習慣です。 「フルスタック」開発者が範囲全体を理解しているという理由だけで、これは彼に最短経路を選択する権利を与えません。 まあ、実際にはプロトタイピングに関しては彼らがやっています。



テクノロジーの新興企業は、汎用性のためフルスタックの開発者を必要としています! ただし、組織が成長するにつれて、ますます専門的なスキルが必要になります。



さまざまな言語、プラットフォーム、業界で働くまで、自分を「フルスタック」開発者と呼べるかどうかはわかりません。 「フルスタック」は「シニアプログラマー」を超えており、すべてのコンポーネントについてより広い視野を持つ一種の多言語プログラマーです。 私のリストでは、コードの記述に関連するのは3〜5項目のみであることに注意してください。



翻訳はトルストイサマーキャンプスタートアップスクールの一部として作成されました



All Articles