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
Java研修成果発表
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
muras
April 05, 2014
Technology
760
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Java研修成果発表
muras
April 05, 2014
More Decks by muras
See All by muras
PipeCDを使用したBucketeerのGitOps-style CI/CD
muras
0
1k
Vim Tips
muras
0
780
Other Decks in Technology
See All in Technology
Tab5をRubyで動くパソコンにする
kishima
2
250
Bet AI Day 2026丨AIを「使う」から、AIが「働く」へ ― LayerXが進める「組織AI」の社会実装
layerx
PRO
3
2.8k
全員がプロダクトへ向き合う組織を持続成長させるために——組織づくりのフライホイールと4象限 / The Flywheel Model and Four Quadrants for Organizational Design
hiro_torii
4
890
動画配信アプリでの Engage SDK 導入 — TVer Android が Play ストアにコンテンツを届けるまで
techtver
PRO
0
140
AI活用の現在地、 ちゃんと見えてますか?/XPfest-2026
visional_engineering_and_design
0
160
AndroidでHDRメディアを「壊さずに」扱う
chigichan24
0
420
DGX Sparkを2台使って いろいろ動かす話
sonoda_mj
1
140
Kiro Crewしか勝たん!?
miu_crescent
PRO
0
190
データエンジニアリングワークショップ:Auto LoaderとSparkで学ぶデータパイプライン構築
databricksjapan
PRO
0
210
多摩川(.dev)ランニング入門 / Tamagawa.dev#3
fujiwara3
3
400
AI時代のAPI品質を支えるガードレール / API Guardrails for API quality in the AI era
yokawasa
1
160
bet_ai_day_2026_session02
agenticsec
2
1.3k
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
247
13k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
450
Code Review Best Practice
trishagee
74
20k
Color Theory Basics | Prateek | Gurzu
gurzu
0
460
Git: the NoSQL Database
bkeepers
PRO
432
67k
The Pragmatic Product Professional
lauravandoore
37
7.4k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
520
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
First, design no harm
axbom
PRO
2
1.3k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Transcript
プログラミング言語Java 基本技術習得コース 成果発表 ! ! ! 村松 聖也
今日の話 第1部 デジタル時計課題のデモと説明 第2部 Java研修の振り返り
第1部 デジタル時計課題のデモと説明
~ちょうど2週間前のこと~ ! ! ! ! ! !
~ちょうど2週間前のこと~ ! ! ! ! ! ! ͦΖͦΖ࣌ܭ࡞Γ࢝Ίͳ͍ͱʜ
~ちょうど2週間前のこと~ ! ! ! ! ! ! ͦΖͦΖ࣌ܭ࡞Γ࢝Ίͳ͍ͱʜ "84ͱ͔ͬͯɺαʔόϒϥβͰ ήʔϜͰ࡞Ζ͏͔ͳ
~ちょうど2週間前のこと~ ! ! ! ! ! ! ͦΖͦΖ࣌ܭ࡞Γ࢝Ίͳ͍ͱʜ "84ͱ͔ͬͯɺαʔόϒϥβͰ ήʔϜͰ࡞Ζ͏͔ͳ
࣌ܭͱ͔IUNM KTͰΓ͚ͭͯɺ ήʔϜͮ͘Γʹઐ೦͢Δ͔
~ちょうど2週間前のこと~ ! ! ! ! ! ! ͦΖͦΖ࣌ܭ࡞Γ࢝Ίͳ͍ͱʜ "84ͱ͔ͬͯɺαʔόϒϥβͰ ήʔϜͰ࡞Ζ͏͔ͳ
࣌ܭͱ͔IUNM KTͰΓ͚ͭͯɺ ήʔϜͮ͘Γʹઐ೦͢Δ͔ ύζϧͬͨιʔγϟϧήʔϜͱ͔ ྲྀߦͬͯΔ͠ɺࣗ࡞ͬͯΈΑ͏͔ͳ
~ちょうど2週間前のこと~ ! ! ! ! ! ! ͦΖͦΖ࣌ܭ࡞Γ࢝Ίͳ͍ͱʜ "84ͱ͔ͬͯɺαʔόϒϥβͰ ήʔϜͰ࡞Ζ͏͔ͳ
࣌ܭͱ͔IUNM KTͰΓ͚ͭͯɺ ήʔϜͮ͘Γʹઐ೦͢Δ͔ ύζϧͬͨιʔγϟϧήʔϜͱ͔ ྲྀߦͬͯΔ͠ɺࣗ࡞ͬͯΈΑ͏͔ͳ ͯΑɺ΄ͱΜͲ+BWBඞཁͳͦ͞͏ ͬͺΓ७+BWBͰ࡞Ζ͏
~ちょうど2週間前のこと~ ! ! ! ! ! ! ͦΖͦΖ࣌ܭ࡞Γ࢝Ίͳ͍ͱʜ "84ͱ͔ͬͯɺαʔόϒϥβͰ ήʔϜͰ࡞Ζ͏͔ͳ
࣌ܭͱ͔IUNM KTͰΓ͚ͭͯɺ ήʔϜͮ͘Γʹઐ೦͢Δ͔ ύζϧͬͨιʔγϟϧήʔϜͱ͔ ྲྀߦͬͯΔ͠ɺࣗ࡞ͬͯΈΑ͏͔ͳ ͯΑɺ΄ͱΜͲ+BWBඞཁͳͦ͞͏ ͬͺΓ७+BWBͰ࡞Ζ͏ ɹɹɹʜ ˠɹࢼߦࡨޡͷɺ࡞ΔͷΛܾఆ
! 『ネットワーク対戦型 パズル&クロックゲーム』 ! !
! 『ネットワーク対戦型 パズル&クロックゲーム』 通称 パズクロ! です ! (パズ◦ラ?も◦クロ?どこかで聞いた名前なのは内緒です)
パズクロ!とは? •パズルを使って得点を競い合うオリジナルのゲーム •得点が時計の表示と連動 •サーバに接続してネットワーク対戦が可能 •1人プレイもあり
! デモ !
参考:パズクロ!の画面(一人プレイ中) ! ! ! ! !
パズクロ!を支える技術
用語 • AmazonWebService(AWS): Amazonのクラウドサービス • Amazon EC2: AWS上の仮想サーバ • jetty:
軽量なServletコンテナ&HTTPサーバ • WebSocket: Webサーバとブラウザが双方向通信を行うためのプロトコル HTTPコネクションをそのままアップグレードしてコネクションを張る URIスキームはws:とwss: (ws://hostname/sampleみたいな)
動作環境 ! ! ! ! ! Amazon EC2 サーバ サーブレット
プログラム
動作環境 ! ! ! ! ! Amazon EC2 サーバ サーブレット
プログラム クライアント Swing プログラム
動作環境 ! ! ! ! ! Amazon EC2 サーバ サーブレット
プログラム クライアント Swing プログラム WebSocket JSONデータ
動作環境 ! ! ! ! ! Amazon EC2 サーバ サーブレット
プログラム クライアント Swing プログラム WebSocket JSONデータ 対戦
クライアント側コードでやってること • パズルのドラッグ • 得点計算 • 画面制御,アニメーション • 得点と時計の連動 •
WebSocket通信,JSONデータ送信(jettyのライブラリを利用) → 名前とか得点とか送る
サーバ側コードでやってること • 接続中クライアントの管理 • 誰と誰が対戦しているかを管理 • WebSocket通信,JSONデータ送信(jettyのライブラリを利用) →受け取ったデータをリアルタイムで対戦相手に通知など
苦労したところ • 時間との戦い 1週間弱で1人プレイ実装 1日でWebSocket関連の情報収集 3日で2人プレイ実装+デプロイ 1日で発表資料作成 (アイデアがない、読んでる本読み終わったら始めよう) • 2人プレイの実装全般
感想 • 久々にがっつりコードが書けて楽しかった • 1からWebアプリを全て作るのはめったになく良い経験 • 2人プレイ実装あたりからコードが荒れてきた →まだまだ実力不足を実感
その他 • ソースコードはgithub上にある https://github.com/mura-s/puzzclo-server https://github.com/mura-s/puzzclo-client ! • 遊ぶときは、クライアントの以下のjarを起動 target/puzzclo-client-jar-with-dependencies.jar !
• ただしサーバはいつまで動かしているかわからない
第2部 Java研修の振り返り
! ! この研修を受けて本当良かったです! ! どうしてそう思ったかについて、 全体を振り返りながら話していきます
研修開始前 ~ 開始当初 • 正直この研修を受けるかどうか迷っていた 月に数十時間も業務時間外に勉強できるのか? そこまでしてやる意味は? ! • なんとなく受けてみるか
Javaは業務でも使うし、最初1,2年くらいは頑張るか 周りも受けるし、受けないと差を付けられそうだし
開始当初 • やるからには頑張るか ただこの頃は辛いという気持ちのほうが大きかった ! • 学習時間は月50~70時間 平日仕事終わりに、土日に だいたい平日3~4日+土曜or日曜丸一日 このペースは最後まで継続
開始3~4ヶ月後 • 柴田さんの話を聞くうちに、 継続した学習の必要性に気づき始める 良い製品をつくるためには高い技術力が必要 それは業務だけでは身につかない ! • だんだん勉強を「やらされている」から「やろう」へ
そしてインタプリタ(研修開始から半年) • この1ヶ月は本当に頑張った なんとか1発合格して周りを驚かせたい 勉強時間は増え大変だったが、辛くはなかった ! • 1発で合格できて嬉しかった ただ、今思い返すとQualityは…
インタプリタ後 • いつからか課題を全てやっても時間があることに気づく 「プログラミング作法」を読もう 業務に関係ありそうな勉強をしよう →プログラミング,OS,サーバ,DBなど RSSでブログや技術情報など読み始める
その後~現在 • 業務外の学習は習慣 学習するごとに興味が広がっていく 研修当初のペースを継続中 やらないと不安になるのは悩みどころ ! • 今後は外部のコミュニティにも参加していきたい 勉強会への参加、オープンソースなど
全体を通して • Javaはもちろんだが、技術者としてどう歩んでいくかを学んだ • 最初に比べ、技術的にも大きく成長できた • 逆にこの研修を受けなかったらと思うと怖い “サラリーマンエンジニア”になっていたかも 気づいた時に後悔していたかも •
まだまだ未熟、これからの道のりは長い 継続して学習して、技術者として成長していけそう 業務でもっと技術を使いたい、コード書きたい…
! ! この研修を受けて本当良かったです! ! !
最後に 柴田さん、1年半本当にありがとうございました。 この発表でも話した通り、この研修は自分にとって 大変大きな影響を受けるものとなりました。 受講生のみなさん、1ヶ月ごとに会って、切磋琢磨して、 飲みにいって、本当に楽しかったです。 みなさん今後ともよろしくお願いします。
None