翻訳リンク:http : //www.oschina.net/translate/what-is-a-full-stack-developer
純粋に倫理に基づいた開発スタックのあらゆる側面を習得することを期待することは理にかなっていますか?おそらくそうではありませんが、Facebookはそれを要求しています。Facebookの従業員がOSCONで私に言ったのは、Facebookはフルスタックの開発者しか雇わないということです。では、フルスタック開発者はどういう意味ですか?
私にとって、フルスタックの開発者はすべてのレイヤーに精通している人々であり、すべてのソフトウェアテクノロジーに本当に興味がなければ、熟練していないでしょう。
優れた開発者はスタック全体に精通しており、彼らは生活の中で物事をより簡単にする方法を知っています。だからこそ、私はオフィスでの妄想に非常に反対していますが、もちろん、政治やコミュニケーションの問題は依然として大規模な組織に内在しています。Facebookの採用方針は次のとおりだと思います。賢い人が頭を使うなら、彼らはより良い製品をより短い時間で作ることができます。
フルスタックレイヤー:
1.サーバー、ネットワーク、サーバー環境
-
それがどこで、なぜ崩壊するのかを知ることは、当然のこととは考えられていません。
-
ファイルシステム、クラウドストレージ、およびネットワークリソースを適切に使用するには、データの冗長性と可用性の概念が必要です。
-
アプリケーションのスケーラビリティのハードウェア要件を把握します。
-
マルチスレッドと競合状態とは何ですか?考えてみてください。開発マシンではこれらが表示されない場合がありますが、実際の環境で発生します。
-
フルスタックコーダーは、操作とメンテナンスを並行して実行できる必要もあります。貴重なエラー情報とログを提供します。O&Mはあなたの前にこれらのものを見るので、それらが信頼できることを確認してください。(元々はDevOps)
2.データモデリング
-
データモデルに欠陥がある場合、ビジネスロジックと上位レベルのロジックは、奇妙な(醜い)コードを使用してデータモデルの欠陥を補います。
-
フルスタックの開発者は、外部キー、インデックス、ビュー、ルックアップテーブルなどを含む、合理的で標準的なリレーショナルモデルを確立できなければなりません。
-
フルスタックの開発者は、非リレーショナルデータストレージに精通し(NoSQL以上を指す必要があります)、リレーショナルストレージよりも優れていることを知っている必要があります。
3.ビジネスロジック
-
アプリケーションによって提供されるコア値。
-
信頼できるオブジェクト指向スキル。
-
使用できるフレームワーク。
4. APIレイヤー、アクションレイヤー、MVC
-
データモデルとビジネスロジックの外部操作を理解する。
-
この層には多くのフレームワークアプリケーションがあります。
-
フルスタックの開発者は、明確で一貫性があり、使いやすいインターフェースを備えている必要があります。過度の複雑さは嫌です。
5、UI
-
全栈coder:a)知道如何创建可读的页面布局;b)或者明白自己需要帮助设计师。A或B,关键是要能有好的视觉设计。
-
掌握HTML5和CSS。
-
JS正在逐步成为语言新锐,Javascript的世界里已经完成了很多激动人心的工作(node, backbone, knockout...)。
6.用户体验
-
全栈coder要知道用户需要的就是It works!
-
一个好的系统不会废了用户的手腕和眼睛。一个全栈coder会发现和审视需要8次点击、3步操作的流程,并最终把它一键搞定。
-
提供有价值的错误信息。如果崩溃了,就要向用户致歉。有时候程序员会写出让用户自我感觉很二的错误信息。
7.知道用户和业务到底要什么
-
现在我们模糊了架构的界限,但却可能远离了实际需求。
-
全栈coder要明确知道用户使用软件时的场景,而且要领会业务。
关于这个问题的其它方面:
-
编写高质量的单元测试能力。顺便说一下现如今连JS也可以做单元测试了。
-
持续集成。发掘程序构建中重复、可自动化的流程,在一定程度上自动完成测试、文档和部署。
-
对安全性的敏感,不同的层都可能有自己的脆弱点。
最后:
应用严重依赖一个特定的第三方实现(lib、系统、硬件等)是非常糟糕的实践。全栈开发者要知道了解全面不代表就可以走捷径。当然在抛弃原型法中,他们可以这么干。
在技术起步时很需要全栈开发者的多面技能。然而,在团队定型后,会越来越需要专注技能。
我不觉得在具备了多语言、多平台甚至跨行业的职业生涯之前,你可以称自己为全栈开发者。全栈远超“高级工程师”,它更接近是多语言的开发者并且能在更高的角度看到之间的关联。注意在我的列表中只有3-5项涉及到编码。