Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Web系エンジニア職とWebを支える技術の紹介
Search
Ryo Yoneyama
July 26, 2020
Technology
0
170
Web系エンジニア職とWebを支える技術の紹介
知識ゼロでも『完全に理解した』感を得られるように、下記のような方々を対象とする勉強会で使った資料
・Webエンジニア採用している人事向け
・Webエンジニアの転職エージェント(人材紹介事業者)向け
Ryo Yoneyama
July 26, 2020
Tweet
Share
More Decks by Ryo Yoneyama
See All by Ryo Yoneyama
ゼロから始める IntercomでCS立ち上げ
yulii
4
1.5k
エンジニアになるきっかけとエンジニアとしてのプライド / Career Anchors (2016-08-17)
yulii
0
330
男子(おじさん)が創る女性向けサービスのデプロイ戦略
yulii
5
980
テストコード文化を創る
yulii
3
920
キャリア戦略論
yulii
2
1.2k
LiBz CAREER の作り方
yulii
1
260
1 → 10 を創る開発基盤
yulii
0
8k
Emoji Communication
yulii
0
220
短納期&少人数でも 実現できるCI
yulii
2
6.7k
Other Decks in Technology
See All in Technology
目の前の仕事と向き合うことで成長できる - 仕事とスキルを広げる / Every little bit counts
soudai
22
5.8k
これからSREになる人と、これからもSREをやっていく人へ
masayoshi
6
4.1k
生成AIの利活用を加速させるための取り組み「prAIrie-dog」/ Shibuya_AI_1
visional_engineering_and_design
1
140
転生CISOサバイバル・ガイド / CISO Career Transition Survival Guide
kanny
3
410
30分でわかる『アジャイルデータモデリング』
hanon52_
9
2.2k
Datadogとともにオブザーバビリティを布教しよう
mego2221
0
130
依存関係があるコンポーネントは Barrel ファイルでまとめよう
azukiazusa1
3
530
地方拠点で エンジニアリングマネージャーってできるの? 〜地方という制約を楽しむオーナーシップとコミュニティ作り〜
1coin
1
130
Postmanを使いこなす!2025年ぜひとも押さえておきたいPostmanの10の機能
nagix
2
120
Classmethod AI Talks(CATs) #15 司会進行スライド(2025.02.06) / classmethod-ai-talks-aka-cats_moderator-slides_vol15_2025-02-06
shinyaa31
0
170
スクラムのイテレーションを導入してチームの雰囲気がより良くなった話
eccyun
0
110
管理者しか知らないOutlookの裏側のAIを覗く#AzureTravelers
hirotomotaguchi
2
240
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.6k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Writing Fast Ruby
sferik
628
61k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
31
2.1k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.2k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
A better future with KSS
kneath
238
17k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
240
Transcript
Web系エンジニア職と Webを支える技術の紹介 1
今日のゴール 1. 知らない(不安・恐怖・拒絶) 2. 聞いたことがある(親近感) 3. 知っている(興味が持てた) 4. 理解している(他人に説明できる) 5.
使える(それはエンジニアです!) 2 このラインを超えたらOK
「◦◦エンジニア」 丸に入る言葉は? 3
インターネットとは? 4 インターネット
モノづくりとは? 5
◦◦って最近すごいらしいね? あれいくらで作れる? 6
ビジネス向けチャットを作ろう 7
8 インターネット ユーザー
9 インターネット Web サーバー データベース ユーザー Web サービスを動かす サーバーを作成しよう!
10 インターネット Web サーバー データベース ユーザー Web ブラウザ デザインをもとに、 Web
ブラウザで表示する 画面を作成します
11 インターネット Web サーバー データベース プログラム ユーザー Web ブラウザ 入力したメッセージを
保存したり、ほかの人の発言を 読み込む処理を実装するぞ。
12 インターネット Web サーバー データベース プログラム ユーザー Web ブラウザ チャットが動く様になりました!
13 アプリは? 外出が多いから、 スマホでも使いたい。
14 インターネット Web サーバー データベース プログラム ユーザー Web ブラウザ iOS
(iPhone /iPad) Android iPhoneアプリ作ります Android 対応します
15 この間チャットでもらった話が 思い出せなくて... 検索はできないの?
16 インターネット Web サーバー データベース プログラム ユーザー Web ブラウザ iOS
(iPhone /iPad) Android 検索サーバー 検索するプログラムを 追加実装します データを検索する 専用サーバーを立てますね
17 サーバーレス (Serverless) が 流行ってるって聞いたよ。 なんでサーバーが必要なの?
サーバーレスとは? 18 インターネット プログラム ユーザー Web ブラウザ iOS (iPhone /iPad)
Android !? 今まで書いたプログラムはどこに...
サーバーレスでも基本構成は変わりません 19 インターネット Web サーバー データベース プログラム ユーザー Web ブラウザ
iOS (iPhone /iPad) Android クラウドだろうと、サーバーレスだろうと、サーバーは必要です! (物理的に存在してます) 最近は、サーバー設定を一生懸命頑張るより、クラウドの機能を 活用する手法がトレンドになっています。サーバーレスはその一つ。
20 テキストでのやり取りは面倒! サクッと会話した方が効率的なので テレビ会議できる機能が欲しい!
21 もはやチャットではない...
エンジニアは、 何人登場したでしょう? 22
23 バックエンドエンジニア アプリエンジニア フロントエンドエンジニア インフラエンジニア 5人
なぜ、そんなにエンジニアが必要なの? エンジニアの中での分業化が加速しています。新しい技術が生まれて便利になる につれて、各要素技術の専門性が高まり、分業しないとやっていけません。別の 側面から見ると、各エンジニアの転向や複数の役割を兼任するのは大変です。 イメージとしては、眼科と耳鼻科くらいの差があります。眼科の先生とはいえ、 大学で様々な医学を勉強しているので、耳鼻科の知識はあるでしょう。でも、眼 科の先生に「耳の手術してくれ!」と言ったら ってなると思います。 24
インフラエンジニア まとめ:Web サービスの構成図 25 インターネット Web サーバー データベース プログラム ユーザー
Web ブラウザ iOS (iPhone /iPad) Android フロントエンドエンジニア バックエンドエンジニア アプリエンジニア
モノづくりのプロセス 26
開発プロセス 27 機能A 機能B 機能C 機能D ウォーターフォール開発 企画 設計 実装
テスト アジャイル開発 企画 設計 実装 テスト 機能A 企画 設計 実装 テスト 機能B 企画 設計 実装 テスト 機能C 企画 設計 実装 テスト 機能D リリース リリース リリース リリース リリース
検証する ウォーターフォールのVモデル 28 受け入れテスト 単体テスト システムテスト 結合テスト 実装 詳細設計 機能設計
要件定義 (基本設計) 要求分析 検証する 検証する 検証する この辺りが 上流工程と呼ばれる 参考:Vモデル - 情報システム用語辞典
29 検索はできないけれど、リリースしたことで ユーザーの本当に欲しかったものが 「チャットではなく、テレビ会議」だと 気がつけるかも チャット基本機能 検索機能 企画 設計 実装
テスト リリース 企画 設計 実装 テスト アジャイル開発のメリット ウォーターフォール開発 アジャイル開発 チャット基本機能 企画 設計 実装 テスト iOS アプリ 企画 設計 実装 テスト リリース 複数ルームを横断して検索ができるべきか? 要件が決まらず遅延 実装時に想定外のトラブルが発生! どこか一つの機能の遅延が 全体リリースの遅延に繋がる 当初計画の リリース時期
【余談】『開発』を担うエンジニアのこれから 30 出典:Netflixにおけるフルサイクル開発者―開発したものが運用する モノづくりに必要な技術がたくさんある!! 『専門家』に再利用可能なツールを作ってもらう (例えば、作業の単純化、プロセスの自動化など) 『開発』を担うエンジニアは、 専門家が作ったツールを活用して、 設計、開発、テスト、運用、サポートの すべてのプロセスに責任を持つ『多能工』
技術とエンジニア 31
インフラエンジニア エンジニアの生息マップ 32 インターネット Web サーバー データベース プログラム ユーザー Web
ブラウザ iOS (iPhone /iPad) Android フロントエンドエンジニア バックエンドエンジニア アプリエンジニア
『技術』には向き不向きがある 33 Web サービスを作りたい Ruby iOS アプリを作りたい Android アプリを作りたい 機械学習を取り入れたい
Python Swift Kotlin
「何エンジニアか?」の特定は難しい 「Ruby ならバックエンドエンジニア」と安直な判断はできません Ruby は、Ruby on Rails というフレームワークなどでバックエンドエンジニアに 使われることが多い言語ですが、インフラエンジニアも使います(例えば、サー バー設定を記述するChef,
サーバー設定のテストServerspec はRuby を使いま す)。 また、一つの言語で作ったソフトウェアが様々な環境で動かせる『クロスプラッ トフォーム』という仕組みがあり、もはや何エンジニアかよくわかりません。 例えば、Kotlin, React Native (JavaScript), RubyMotion (Ruby) などは iOS ア プリとAndroid アプリのどちらも作ることができます。 34
フロントエンドエンジニア 35 インターネット Web サーバー データベース プログラム ユーザー Web ブラウザ
iOS (iPhone /iPad) Android フロントエンドエンジニア JavaScript HTML CSS
フロントエンドエンジニア • ユーザーに見える部分を作る人 • フロントエンド(front-end)とは? ◦ ユーザーの目に見えて、ユーザーが操作する部分を指します ◦ 別の表現では、Webブラウザ側(クライアント側)と呼ぶことも ◦
ユーザーが操作する部分を『ユーザーインターフェース (UI) 』と言います • おもな技術キーワード ◦ HTML, CSS, JavaScript, React, Vue.js, Nuxt, TypeScript, Angular, AngularJS ... 36
アプリエンジニア 37 インターネット Web サーバー データベース プログラム ユーザー Web ブラウザ
iOS (iPhone /iPad) Android アプリエンジニア Swift Kotlin
アプリエンジニア • iOS/Android のアプリを作る人 ◦ それぞれ特有の作り方があるので、iOSエンジニアやAndroid エンジニアと呼ぶことが一般的 • おもな技術キーワード ◦
iOS の場合 : Swift, Objective-C ◦ Android の場合 : Kotlin, Java ◦ 両方に使える : React Native (JavaScript), Unity (ゲーム向け) • 補足 ◦ アプリは『アプリケーション』の略。 ▪ アプリケーションは特定の作業のためにつくられたソフトウェアのこと ▪ スマートフォンやPC 上で動くソフトウェアを指してアプリと呼ぶことが多い ◦ Windows / Mac などのPC 向けアプリもあります ▪ 例えば、 Slack やZoom などPC にインストールして利用するサービスがあります ◦ 提供サービスとしてiPhone もAndroid も対応して欲しい。でも、開発言語が違うので大変 ▪ Scadeは、Swiftを使用してAndroidアプリ開発を可能にすることを目指す 38
バックエンドエンジニア 39 インターネット Web サーバー データベース プログラム ユーザー Web ブラウザ
iOS (iPhone /iPad) Android バックエンドエンジニア Ruby Python PHP Go
バックエンドエンジニア • サーバー上で動くソフトウェアを作る人 • バックエンド(back-end)とは? ◦ ユーザーの操作に従いデータの保存や読み込む処理を指す ◦ 別の表現では、サーバーサイドと呼ぶことも •
おもな技術キーワード ◦ Ruby on Rails (Ruby), Django (Python), Go, PHP … • 補足 ◦ プログラミング言語とフレームワークはセットで出現します ▪ ただし、めちゃくちゃたくさんあるので覚えなくて良い ◦ ネットで調べて言語が特定できれば十分です ▪ 「Ruby on Rails は、Ruby で書かれています」 ▪ 「Django は、Python で実装されたWeb アプリケーションフレームワーク」 ▪ 「Symfony は、PHP フレームワーク」 40
インフラエンジニア 41 インターネット Web サーバー データベース プログラム ユーザー Web ブラウザ
iOS (iPhone /iPad) Android インフラエンジニア AWS Google Cloud Azure Docker Terraform
インフラエンジニア • サーバーの設定・構築や監視をする人 ◦ クラウドを利用することが一般的になり、物理的な機器を取り扱うことは少ない • おもな技術キーワード ◦ AWS, Google
Cloud, Azure, Docker, Kubernetes, Terraform … • 補足 ◦ AWS (Amazon Web Services) ▪ Amazonが提供しているクラウドコンピューティングサービスの総称です ▪ サーバーやデータベースなど用途に合わせたコンピューターを提供しています ◦ SRE(Site Reliability Engineering) ▪ インフラエンジニアの部署やチームをSRE と呼ぶことがあります ▪ 『ユーザーがいつでも快適にサービスを利用できる状態(信頼性)』の維持を指す ▪ 具体的には、インフラ業務を自動化や大量のアクセスに耐えられる仕組みを作る 42
AWS が提供するサーバー機能 出典:Amazon Web Service (AWS) 43 約200個のサービス!
モノづくり 44
インターネットとは? 45
無線で繋がるクラウド 46 インターネット
ではなくて... 47
こんな仕組みです! 48 インターネット Web サーバー データベース プログラム ユーザー Web ブラウザ
iOS (iPhone /iPad) Android
そして、 複数のエンジニアと 様々な技術を組み合わせて 作られています 49
まとめ:Web サービスの構成図 50 インターネット Web サーバー データベース プログラム ユーザー Web
ブラウザ iOS (iPhone /iPad) Android フロントエンドエンジニア アプリエンジニア インフラエンジニア バックエンドエンジニア Swift Ruby Python PHP AWS Google Cloud Azure JavaScript HTML CSS Go Kotlin Docker Terraform
以上です! 51
Appendix 52
ほかにもエンジニアがいっぱい! • コーポレートエンジニア ◦ 社内SEや情シスなどに近い領域に、エンジニアが必要とされる様になってきています ◦ 業務ツールをクラウド利用 (SaaS) する場合が多く、関連業務の効率化/自動化が一般的に •
RPAエンジニア ◦ 繰り返し発生する業務を自動化するRPA (Robotic Process Automation) の導入も盛ん ◦ プログラミングとは異なるが、『業務手順(シナリオ)』の定義はエンジニアの発想が必要 • テストエンジニア ◦ ソフトウェアの品質を担保する人で、『QA (Quality Assurance) エンジニア』とも呼びます ◦ Selenium などを使い『自動的にソフトウェアを操作してテストする』仕組みを作ります • セキュリティエンジニア ◦ 技術・システムを取り巻く様々な脅威に対して対策していくエンジニアです デジタルトランスフォーメーション (DX) の重要性が増す現代においては、 『エンジニア』が必要のない部署は存在しないと言っても過言ではありません 53 参考:どれ目指す?IT業界のエンジニア職19種類と仕事内容をまるっと解説 - paiza開発日誌
アジャイル開発したい 無自覚なPMがエンジニアに「価値の分解」を丸投げしちゃダメです! 自覚はないかもしれませんが、あなたはPMとしての役割の一部もしくは全部を担っています。 あなたがアジャイルとはなんぞや? を学んでから始めても遅くはないです (もしくはエンジニアと一緒に学びながらやりましょう)。 エンジニアだけでなく、PMとも面談させてもらいましょう。 どんな人がPMの役割を担っているかは重要です。 PMに「どうやって開発する機能を決めていますか?」「バグが発覚した際に、いま進んでいる機能開発 とどの様に折り合い(優先順位)を付けていますか?」など聞いてみると良いかも。
54 経営者「アジャイルで開発しよう」 エンジニア「アジャイル開発している会社に転職したい」