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
muras
April 05, 2014
Technology
750
0
Share
Java研修成果発表
muras
April 05, 2014
More Decks by muras
See All by muras
PipeCDを使用したBucketeerのGitOps-style CI/CD
muras
0
980
Vim Tips
muras
0
770
Other Decks in Technology
See All in Technology
[最強DB講義]推薦システム | 基礎編
recsyslab
PRO
1
170
Azure Static Web Apps の自動ビルドがタイムアウトしやすくなった状況に対応した件/global-azure2026
thara0402
0
410
AI와 협업하는 조직으로의 여정
arawn
0
420
20260428_Product Management Summit_Loglass_JoeHirose
loglassjoe
0
1.1k
みんなで作るAWS Tips 100連発 (FinOps編)
schwrzktz
1
300
エージェントスキルを作って自分のインプットに役立てよう
tsubakimoto_s
0
360
AIを共同作業者にして書籍を執筆する方法 / How to Write a Book with AI as a Co-Creator
ama_ch
2
130
マルチエージェント × ハーネスエンジニアリング × GitLab Duo Agent Platformで実現する「AIエージェントに仕事をさせる時代へ。」 / 20260421 GitLab Duo Agent Platform
n11sh1
0
160
Microsoft 365 / Microsoft 365 Copilot : 自分の状態を確認する「ラベル」について
taichinakamura
0
230
ぼくがかんがえたさいきょうのあうとぷっと
yama3133
0
190
国内外の生成AIセキュリティの最新動向 & AIガードレール製品「chakoshi」のご紹介 / Latest Trends in Generative AI Security (Domestic & International) & Introduction to AI Guardrail Product "chakoshi"
nttcom
2
710
社内エンジニア勉強会の醍醐味と苦しみ/tamadev
nishiuma
0
210
Featured
See All Featured
Accessibility Awareness
sabderemane
1
100
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
320
Tell your own story through comics
letsgokoyo
1
900
Code Review Best Practice
trishagee
74
20k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Documentation Writing (for coders)
carmenintech
77
5.3k
How to Ace a Technical Interview
jacobian
281
24k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
270
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
140
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
130
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
How to make the Groovebox
asonas
2
2.1k
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