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
0
730
Java研修成果発表
muras
April 05, 2014
Tweet
Share
More Decks by muras
See All by muras
PipeCDを使用したBucketeerのGitOps-style CI/CD
muras
0
930
Vim Tips
muras
0
740
Other Decks in Technology
See All in Technology
Witchcraft for Memory
pocke
1
240
「Chatwork」の認証基盤の移行とログ活用によるプロダクト改善
kubell_hr
1
140
GitHub Copilot の概要
tomokusaba
1
130
登壇ネタの見つけ方 / How to find talk topics
pinkumohikan
3
350
BrainPadプログラミングコンテスト記念LT会2025_社内イベント&問題解説
brainpadpr
1
160
解析の定理証明実践@Lean 4
dec9ue
0
170
AWS CDK 実践的アプローチ N選 / aws-cdk-practical-approaches
gotok365
6
710
25分で解説する「最小権限の原則」を実現するための AWS「ポリシー」大全 / 20250625-aws-summit-aws-policy
opelab
9
1.1k
UIテスト自動化サポート- Testbed for XCUIAutomation practice
notoroid
0
130
生成AIで小説を書くためにプロンプトの制約や原則について学ぶ / prompt-engineering-for-ai-fiction
nwiizo
3
860
M3 Expressiveの思想に迫る
chnotchy
0
100
Agentic DevOps時代の生存戦略
kkamegawa
1
1.3k
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
53
7.7k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
Side Projects
sachag
455
42k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
670
Producing Creativity
orderedlist
PRO
346
40k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Making Projects Easy
brettharned
116
6.3k
Navigating Team Friction
lara
187
15k
Designing Experiences People Love
moore
142
24k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Speed Design
sergeychernyshev
32
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