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
46
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
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
7
1.7k
今こそ知りたいAmplifyGen2
mkdev10
2
160
Google Cloud Next Tokyo 26登壇時のスクリプト
recruitengineers
PRO
0
210
メルペイ 会計システム概要と歴史
mewuto
0
200
Codex概要
ymiya55
0
470
二歩目のフロントエンド・ウェブアクセシビリティ
camiha
2
180
実践! SRE × AI - ABEMA における AIOps -
tetsuya28
7
2k
初対面のメンバーがチームを組み、Claude Codeでゼロからサービスをリリース
mkdev10
1
110
3つのアプローチで目指す チームを強くするAI駆動開発
thkt
0
140
Kiro Crewをはじめよう
kizawa2020
1
100
Lambda MicroVMsが分からなすぎたので使い所を1から考えてみた
tsukuboshi
2
430
不可逆な意思決定を避けながら10億超の顧客データを AI Ready にするデータ基盤設計
baseballyama
1
200
Featured
See All Featured
エンジニアに許された特別な時間の終わり
watany
109
250k
Evolving SEO for Evolving Search Engines
ryanjones
0
310
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
530
Six Lessons from altMBA
skipperchong
29
4.5k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Thoughts on Productivity
jonyablonski
76
5.4k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
340
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
ありがとうございました