Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
4年と半年かけてようやくフロントエンドを書けるようになった / It took me 4 y...
Search
Hiroya-W / yuyukun
April 14, 2023
Technology
360
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 / yuyukun
April 14, 2023
More Decks by Hiroya-W / yuyukun
See All by Hiroya-W / yuyukun
PHPカンファレンス振り返りと プロポーザルについて話します / PHP Tech Talk Night ~ after phpcon 2026
hyuyukun
0
24
PSRにのっかってバックエンドサーバを書く / Write a backend server using PSR
hyuyukun
0
100
phina.jsで弾幕シューティングを作る / Creating a bullet-hell shooter with phina.js
hyuyukun
0
320
ピアノ経験ゼロからピアノを練習して弾いてみた / I practiced and played the piano from zero piano experience.
hyuyukun
1
170
Blenderに入門しました / I started to use Blender
hyuyukun
0
170
気軽にパソコンを吹き飛ばせるようにするために / To initialize your computer easily
hyuyukun
0
120
僕っぽいことを喋るBotをマストドンで育てています / I'm growing a bot on mastodon that talks like me.
hyuyukun
0
160
Neofetchライクな自己紹介ツールyuyufetchを作った / Created yuyufetch, a Neofetch-like self-introduction tool
hyuyukun
1
380
世界観を考察するのが好き?Sound Horizonはいいぞ / Introduction to Sound Horizon
hyuyukun
0
1.1k
Other Decks in Technology
See All in Technology
作り直せるコードは迅速に 作り直せないDBは慎重に - AI時代のプロダクトエンジニアが「判断の不可逆性」で開発速度を変える話
kinosuke01
0
300
Amazon Quick on DesktopがIAM Identity Centerで動かない理由
yukiogawa
0
160
AI 駆動 Terraform 開発/SRE_BizReach_MIXI_2
visional_engineering_and_design
3
2k
DEFCON34-Write-up_HYCu-MYCu
daikiokazaki
0
150
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
25k
Adaptive Warehouse を今すぐ導入すべき理由と迷ったときの判断基準
__allllllllez__
0
170
#jawssonic2026 あの時代が悪かった ~動かなかったSageMakerと共に迎えたイベント当日~
ktkn1129
0
140
Deploying a Full-Stack Bun-Native Framework on Cloudflare Workers
7nohe
0
130
Snowflakeのコスト最適化を支えるアーキテクチャ設計
ktatsuya
1
1.4k
Slack上でインフラをトラブルシュートする! Agentic Platform Engineeringの第一歩
teru0x1
2
700
「重なり」は迎える側がつくる ― 人もAIエージェントも歓迎するプロダクトエンジニアリング ―
go0517go
PRO
0
280
OpenTelemetry eBPF Instrumentationの舞台裏 / Behind the Scenes of OpenTelemetry eBPF Instrumentation
ymotongpoo
3
1k
Featured
See All Featured
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
980
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.6k
A better future with KSS
kneath
240
18k
Why Our Code Smells
bkeepers
PRO
340
58k
Tell your own story through comics
letsgokoyo
1
1.1k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Prompt Engineering for Job Search
mfonobong
0
450
Building an army of robots
kneath
306
46k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
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
ありがとうございました