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
47
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
390
世界観を考察するのが好き?Sound Horizonはいいぞ / Introduction to Sound Horizon
hyuyukun
0
1.1k
Other Decks in Technology
See All in Technology
Claude Code本は、どのように執筆チームで書かれたか
oikon48
1
360
Post AI時代のリファクタリング実践記 / Refactoring in the post AI era
kaminashi
1
100
並行性の問題を防げ!実践トランザクション入門
occhi
0
280
予測不能な実行エージェントを安全にサクッと試せるサンドボックス環境の話
sansantech
PRO
1
140
Deep Data Security 機能解説
oracle4engineer
PRO
2
770
生成AIを使って「人が」考える技術 ― AI時代の人機共想と実践ノウハウ|UNITT AC2026
ishiirikie
0
580
OpenSharing について熱く語る〜AI アセットの共有について〜
kameitomohiro
0
260
AI時代のPRレビューにどう向き合うか?
kairim0
1
170
自作バイナリを動かす「入口」8選
puhitaku
2
1.3k
Datadog の学び方 - あるいは、オブザーバビリティを学ぶとは何か
mananyuki
1
540
AI駆動開発の時代になったのでトヨタ生産方式から見直す
terurou
7
5.8k
UniFi(ユニファイ)AIカメラの現場活用
ludicmind
1
410
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
790
GitHub's CSS Performance
jonrohan
1033
470k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
470
First, design no harm
axbom
PRO
2
1.3k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
590
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Raft: Consensus for Rubyists
vanstee
142
7.7k
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
ありがとうございました