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
4年と半年かけてようやくフロントエンドを書けるようになった / It took me 4 y...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Hiroya-W
April 14, 2023
Technology
350
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
4年と半年かけてようやくフロントエンドを書けるようになった / It took me 4 years and 6 months to be able to write the frontend
エンジニア 来るか来やんか 2023/04/14
Hiroya-W
April 14, 2023
More Decks by Hiroya-W
See All by Hiroya-W
PSRにのっかってバックエンドサーバを書く / Write a backend server using PSR
hyuyukun
0
92
phina.jsで弾幕シューティングを作る / Creating a bullet-hell shooter with phina.js
hyuyukun
0
290
ピアノ経験ゼロからピアノを練習して弾いてみた / I practiced and played the piano from zero piano experience.
hyuyukun
1
160
Blenderに入門しました / I started to use Blender
hyuyukun
0
160
気軽にパソコンを吹き飛ばせるようにするために / To initialize your computer easily
hyuyukun
0
100
僕っぽいことを喋るBotをマストドンで育てています / I'm growing a bot on mastodon that talks like me.
hyuyukun
0
140
Neofetchライクな自己紹介ツールyuyufetchを作った / Created yuyufetch, a Neofetch-like self-introduction tool
hyuyukun
1
350
世界観を考察するのが好き?Sound Horizonはいいぞ / Introduction to Sound Horizon
hyuyukun
0
1.1k
夏インターンと趣味開発 / Summer Internships and Hobby Development
hyuyukun
0
100
Other Decks in Technology
See All in Technology
あなたの AI ワークスペースに、 専門コーダーを連れてくる - Amazon Quick Desktop 最新情報
kawaji_scratch
1
110
Building applications in the Gemini API family.
line_developers_tw
PRO
0
2.1k
探して_入れて_作って_使う_Agent_Skills___LT.pdf
peintangos
2
180
OCI Oracle AI Database Services新機能アップデート(2026/03-2026/05)
oracle4engineer
PRO
0
290
Chart.js が簡単に使えるようになっていたので OGP 画像生成に使った話
kamekyame
0
170
GoとSIMDとWasmの今。
askua
3
510
会社紹介資料 / Sansan Company Profile
sansan33
PRO
18
420k
Databricks 月刊サービスアップデート 2026年05月号
tyosi1212
0
210
AI Engineering Summit Tokyo 2026 AIの前に、やることがある 〜医療データ企業の4フェーズ〜
dtaniwaki
0
2.2k
AI駆動開発が変える、大規模開発の前提 ーHuman in the Loop から Human on the Loop へ / AIE2026
visional_engineering_and_design
27
17k
運用を見据えたAIエージェント設計実践
amacbee
1
3.2k
Diagnosing performance problems without the guesswork
elenatanasoiu
0
170
Featured
See All Featured
Un-Boring Meetings
codingconduct
0
310
Bash Introduction
62gerente
615
210k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
210
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Exploring anti-patterns in Rails
aemeredith
3
400
Ruling the World: When Life Gets Gamed
codingconduct
0
250
Are puppies a ranking factor?
jonoalderson
1
3.5k
Speed Design
sergeychernyshev
33
1.8k
How to Ace a Technical Interview
jacobian
281
24k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
240
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
300
Scaling GitHub
holman
464
140k
Transcript
ͱ͔͚ͯ Α͏͘ ϑϩϯτΤϯυΛ ॻ͚ΔΑ͏ʹͳͬͨ ゆゆ君(@Hyuyu_kun) in エンジニア来るか来やんか 2023/04/14
自己紹介 n HN | ゆゆ ゆゆ君@Hyuyu_kun Hiroya-W • 京都工芸繊維大学 情報工学専攻
M2 • ソフトウェア工学の研究をしています • 今日は から来ました n 好きなこと 2
あくあたん工房 3 n 京都工芸繊維大学のコミュニティ • 月1のLT会 • 勉強会 / チーム開発
• 外部イベント / コンテストへの参加 • 今日みたいなのは団体としては初(ありがとうございます) • ISUCONやCTFなどに参加するメンバーがいる • アドベントカレンダー n あくあたん • 水槽監視Bot(@sel_aquarium) これ→ • 名前を借りているだけなので、これとは 別枠の団体です(ここだけ覚えて帰って)
最近の開発 4
大学の新歓企画のWebサイト 5
先日、リリースしました 🎉🎉🎉 6
大学の新歓企画のWebサイト 7 n 2023年1月〜今 n 大学内の団体と連携して企画 n 相性診断 • 新入生に、相性の良い団体を推薦する
n スタンプラリー • 説明会に参加してスタンプを集めて、 景品と交換 n 団体の一覧と詳細 https://irodori-newcomer2023.pages.dev/
詳しい技術的な話は交流会で(後日公開する予定) 8
フロントエンド、書けるようになった n 僕はフロントエンドを担当していました • 3ヶ月くらいコミットしてきた n この開発を通してフロントエンドが書けるようになりました 9
10 経験 自信 少 多 低 「完全に理解した」 イマココ
11 経験 自信 少 多 低 「完全に理解した」 イマココ ではなくて
12 経験 自信 少 多 低 「チョットワカル」 イマココ
13 経験 自信 少 多 低 「チョットワカル」 イマココ ではなくて
14 経験 自信 少 多 低 「書けるようになった」 イマココ
「書けるようになった」とは n 良い設計かどうかは問わない n 「ある程度の自走力がついていること」を指す • 作りたいデザインがあれば、8割再現出来る • コードはコピペでも、そのコードが何をやっているかを読んで理解出来る 15
ちょっと振り返ってみる 16
入門1回目 17
フロントエンド入門1回目 n 2018年8月頃 • とあるプロジェクトでブラウザで動くものを作ることに n 作品 • チュートリアルはMDNのブロック崩しやった記憶がある •
anime.jsを使ってモーショングラフィックス • phina.jsを使ってRPGゲームの演出、ビンゴカードの演出 18
19 フロントエンド入門1回目の作品
フロントエンド入門1回目の僕 n 描画は全部JavaScriptや! n サーバーってどうやって立てるん? • お金かかりそう、クレジットカード持ってない n え?ブラウザってローカルのファイル読み込めへんの? •
当時の 「できらぁ!」(セキュリティガン無視)(脳筋)(絶対ダメ) 20 // Chromeではファイルの読み込みに問題あり // cd C:¥Program Files (x86)¥Google¥Chrome¥Application // chrome.exe --allow-file-access-from-files
入門2回目 21
フロントエンド入門2回目 n 2019年11月頃 n Qiitaでポートフォリオサイトを作るのがなんか流行ってた(?) 22 https://qiita.com/turmericN/items/ 76559f0b70983469e7c7 https://qiita.com/musou1500/items/ 24ed32d7f5b0a6377bc5
https://qiita.com/turmericN/items/ 37c3fbe00ee6bbc7e201
「ポートフォリオサイトほしい」 23
「1から書いてたらいつ完成するかわからん…」 24
フロントエンド入門2回目の僕 25 n 無料テンプレートを利用して ポートフォリオサイトを作成 n 目的は達成出来たが、HTML、 CSS、JavaScriptはほぼ変更せず • コンテンツをひたすら用意する
n GitHub Pagesでホスティング • サイトを公開する方法を初めて知った https://hiroya-w.github.io/
入門3回目 26
過去のLT(2020年6月頃) n ローマ字入力に特化したキーボード配列の紹介をした 27 https://speakerdeck.com/hyuyukun/introduction-of-the-eucalyn-layout-and-my- impressions-after-one-year-of-use
Eucalyn配列を触れるサイトを作った n 良さを感じてもらうには触ってもらうのが一番ええやろ! 28 https://hiroya-w.github.io/works/typing_site/index.html
フロントエンド入門3回目の僕 n 2020年6月頃 n サイト自体はほぼ素のHTML、CSS、JavaScriptで出来てる • キーボードのCSSはコピペ n でも、JavaScriptが書けたので タイピングゲームとして自分がやりたいものは実現出来た
n GitHub Pagesでホスティングして、みんなに触ってもらえた 29
フロントエンド入門3回目の僕 n タイピング用文字列のデータを柔軟に変えられるようにしたい • 「三日坊主」と「mikkabouzu」の対応とか n でも、ローカルにあるファイルを読めないのを知ってる n Gistにデータを置いて、JavaScriptからAPIを叩いて取得した 30
function queryGistAsync(gid, callback) { $.ajax({ type: "GET", url: "https://api.github.com/gists/" + gid, dataType: "jsonp", success: function (json) {callback(json.data);} }); } queryGistAsync("cbbbd01c63e4fb3db6da217dedf9db3f", function (gist) { // gist.files[ファイル名].content にファイルの内容が入ってる console.log(gist.files["typing-data"].content); json = gist.files["typing-data"].content; word_data = JSON.parse(json); createText(); });
入門4回目 31
Zennのチュートリアル記事を写経 32 n Zenn、みんな使ってる? n 良いBookが多くて感謝 n React + TypeScript
• フロントエンド開発と聞くと、カッコいい アルファベットが並ぶ技術がたくさんあるので https://zenn.dev/gunners6518/books/ 4c4672f32dd100
フロントエンド入門4回目の僕 33 n 2021年4月頃 n React + TypeScriptを使った開発 を体験できた n
写経しただけなので書けるように はならない(それはそう) • 書けるようになることよりは、開発を体験しよう と思っていた、というのもある • こう書けばこうなる、というのを確認しながら やったが、そこにたどり着く過程は分からない https://esa-pages.io/p/sharing/8538/posts/ 885/9d326749a354ca90720d.html
入門5回目(?) 34
「ポートフォリオサイトを作り直したいんじゃ〜」 35
静的サイトジェネレータブーム 36 n Markdownで書いてHugoで HTMLを吐かせる • テーマもたくさんある • ブログも書けて良さそうじゃね? n
と思ったが、 https://gohugo.io/
「CSS書けないけど、デザインは自分でやりたい」 37
どうしたか 38
フロントエンド入門5回目に失敗した僕 39 n Notionで作成して外部公開 • Notionのデータベースに蓄積 • Markdownっぽい書き味で、デザインも調整 出来る •
ドメインも決められる https://hiroya-w.notion.site/
ついに時代はノーコードや! 40 (もうこれでいいのでは、と思い始める)
ここまでか…。 41
42
43
44 「企画持ってきたやで。大学の新歓やるぞ」
「おもしろそうやんけ」 45
入門5回目リベンジ 46
(最終的な)フロントエンドの技術スタック 47 TypeScript Emotion Jotai Next.js Storybook Cloudflare Pages +α
基本的な進め方 48
開発の進め方 n 僕は基本的にDiscordで画面共有をしておく • 今どんな感じや〜とか、どこで詰まってるんや〜とか、それやりたいなら〜とかを 突っ込んでもらう • 今までフロントエンド入門してきてよく分からなかったこと聞きつつ、調べて、試してをやる 49
のガチでエライ話 50
ほぼ同じ技術スタックでWebサイトを作ってくれてた 51 n 技術検証も兼ねて • (正直いつもこれは出来ないと思うけど) n 僕にとってはリファレンス実装 • 同じことやりたい→これのここを見て
• 舐め回すように見た
こんなところで、あの時の経験が…! 52
スタンプカードのデザイン、どこかで見たような…。 53
フロントエンド入門1回目の作品 54
入門1回目のビンゴカードのやつじゃん…! 55
入門1回目のビンゴカードのやつじゃん…! 56 n 前回はゲームエンジンでcanvas に描く形で n 今回はHTML, CSS, JavaScriptで レスポンシブに
n あぁ、こうすれば良かったのか、 という学び
開発期間中にバックエンドのインターンに参加 57 (昨年12月上旬に決まっていたので、まだ新歓企画でフロントエンドをやるとは思っていない)
フロントエンドのコードが読める…読めるぞ…! 58
インターン先でフロントエンドのコードを読む機会 n バックエンドエンジニア、バックエンドだけやっていれば いいということはない • フロントエンドのコードも読んだり、時には書いたり。 • インターン先では、バックエンドにもフロントエンドにも手を入れさせてもらった n 個人開発レベルの規模より遥かに大規模なサービスのコード
• こうやって書けばいいんだ • これでいいんかな、と思っていた書き方で実際に動いているプロダクトがある • そういった視点でも見れるインターンの期間になった 59
フロントエンド入門5回目の僕 n 2023年1月〜今 n 「フロントエンド書けるようになった」 n やったけど、よく分かっていないこと • デプロイ、実行環境周りのエラー •
今回はメンバーに自分が埋め込んだバグを含め、たくさんデバッグしてもらった • 感謝 • 状態管理 • React Hook • ロジックとビューの分離 60
今日のいい話 n 難しくて、出来なくても、何度でも入門したらええ! • 入門するたびに、ちょっとずつ知識がついて、使えるようになる n 今やっている、触っている技術、どこで役に立つかわからん • 「何かやってみたいと思っているけど、役に立つかわからない…」 •
とりあえず、やってみたらええんちゃうかな • 今できること、好きなこと全力でやっていくのが大事だと思います n コミュニティに入ろう(もうみんな入っているが) • 出来るようになったのは、僕だけの力ではなくて、コミュニティのメンバーに教えてもらえたから • 良い環境、同じ雰囲気の人たちのところに飛び込んでいって、刺激をもらって、それが 自分の成長にもつながると思います 61
ありがとうございました