狠狠撸

狠狠撸Share a Scribd company logo
GMOインターネット株式会社
?中 ?進
新卒3年?が?ち向かった
お名前.comでの
超巨?レガシーシステム脱却の事例
JJUG CCC 2019 Fall #ccc_a6a
レガシーなシステムとは?
3
レガシーコードとは
意図した通りには動作するが、
内部のコードが複雑化し、
拡張や修正が必要な場合に
保守コストが?くなるコードです。
参考?献: https://www.oreilly.co.jp/books/9784873118864/
レガシーコードの定義
レガシーなシステムとは?
4
レガシーなシステムとは
レガシーコードで出来ているシステム
?内部のコードが複雑化している
?拡張や修正時の保守コストが?い
レガシーなシステムとは?
レガシーなシステムの定義
このシステムを参考に开発お愿いします
确认します?
ドキュメントが存在しない???
独?実装でわかりづらい???
単体テストがない。正しさが分からない?
これがうわさのレガシーなシステム?
?々問題がありそう?
レガシーなシステムから
脱却をしよう??
9
アジェンダ
l お名前.comの紹介
l 今回のプロジェクトの概要と課題
l 問題点ごとの解決策(仕様?実装?テスト)
l 結果どうなったのか
10
アジェンダ
l お名前.comの紹介
l 今回のプロジェクトの概要と課題
l 問題点ごとの解決策(仕様?実装?テスト)
l 結果どうなったのか
11
お名前.comの紹介
国内最?級のドメイン公式登録サービスです
サービス開始から20年となります
バックエンドは、Javaで動いています
12
アジェンダ
l お名前.comの紹介
l 今回のプロジェクトの概要と課題
l 問題点ごとの解決策(仕様?実装?テスト)
l 結果どうなったのか
13
今回のプロジェクト概要と課題
新卒3年?の?分に
RDAPの開発を任されました
14
RDAPとは?
今回のプロジェクト概要と課題
WHOIS RDAP後継プロトコル
ドメイン
新規
15
WHOISとRDAPの違い
今回のプロジェクト概要と課題
? ?きな違いとしては、データフォーマットが違う
? RDAPでは、ユーザー?線となっている
フォーマットの統?化
TEXT
WHOIS
JSON
RDAP
16
締切&仕様
ICANNの指?に従う必要がある
上位機関 レジストラ
締切と仕様は決められている
今回のプロジェクト概要と課題
17
ドメインとは?
ドメインとは
今回のプロジェクト概要と課題
インターネット上の住所
150.95.237.28
www.onamae.com
18
WHOISとは?
今回のプロジェクト概要と課題
ドメインは誰が保有しているか公開しなければならない
WHOIS
ドメインの所有者は運?、管理などでトラブルが起きない
ように情報を公開する義務がある
19
ドメイン情報
20
コンタクト情報
21
WHOISとRDAP
今回のプロジェクト概要と課題
WHOIS RDAP後継プロトコル
TEXTからJSONへ(RESTful)
問い合わせ結果フォーマットが統?
22
RDAPサンプル
今回のプロジェクト概要と課題
https://rdap.gmo-onamae.com/rdap/v1/domain/onamae.com
ブラウザなどで、下記のリンクにアクセス
23
24
今回のプロジェクト概要と課題
WHOISの実装を参考に
RDAPを開発していく予定だった
25
今回のプロジェクト概要と課題
しかし実装を確認すると
レガシーな状態にあった
26
アジェンダ
l お名前.comの紹介
l 今回のプロジェクト概要と課題
l 問題点ごとの解決策(仕様?実装?テスト)
l 結果どうなったのか
27
問題点を確認してみた
28
l 流?元の仕様に関するドキュメントなどがない
l 複雑化している箇所があり、修正が困難
l 単体テストのテストコードが存在しない
現状の問題点
問題点ごとの解決策(仕様?実装?テスト)
29
問題点ごとの解決策
(仕様編)
30
? 流?元の仕様に関するドキュメントなどがない
? ソースを?ても、意図がわからない
? 微妙な実装があったとき、ソースが仕様通りな
のか、バグなのか、わからない
問題点
問題点ごとの解決策(仕様)
31
? 実装を始める前に
Wikiにまとめて共有
問題点ごとの解決策(仕様)
Wiki作成
共有
32
GitLabでマージリクエスト時に
コードの詳細な説明を加えている
Gitに実装の詳細な情報を残す
問題点ごとの解決策(仕様)
マージリクエストを送る
リポジトリ
33
問題点ごとの解決策
(実装編)
34
実装を確認したところ
問題がありました
問題点ごとの解決策(実装)
35
安易に修正ができなくなっている
ピュアJava実装(フレームワーク未使?)
問題点ごとの解決策(実装)
36
解決するために
問題点ごとの解決策(実装)
37
採?アーキテクチャ選定
問題点ごとの解決策(実装)
38
l JDKの選定
l フレームワークの選定
l Web API アーキテクチャの選定
採?アーキテクチャの選定
問題点ごとの解決策(実装)
39
l JDKの選定
l フレームワークの選定
l Web API アーキテクチャの選定
JDKの選定
問題点ごとの解決策(実装)
40
? JDKの選定基準
? LTSで最新versionな物
? AdoptOpenJDK LTS 11
? 選定理由
? 既存で動いているシステムで実績
JDKの選定
問題点ごとの解決策(実装)
41
l JDKの選定
l フレームワークの選定
l Web API アーキテクチャの選定
フレームワークの選定
問題点ごとの解決策(実装)
42
? フレームワークの選定
? 欲しい要件
? 組込Tomcat内蔵 & 標準的な実装にしたい
? Play Framework OR Spring Boot
フレームワークの選定
問題点ごとの解決策(実装)
43
フレームワークの選定
問題点ごとの解決策(実装)
?社での導?実積があった事と
フレームワークの
ライブラリが充実していた為
44
l JDKの選定
l フレームワークの選定
l Web API アーキテクチャの選定
Web API アーキテクチャの選定
問題点ごとの解決策(実装)
45
? Web API アーキテクチャ
? 選定要件
? 参考にできるガイドラインがあること
? 疎結合な実装にできること
? テストコードが書きやすいこと
Web API アーキテクチャの選定
問題点ごとの解決策(実装)
46
? 最終的に決まったのが
Web API アーキテクチャの選定
問題点ごとの解決策(実装)
3層アーキテクチャ
参考:https://terasolunaorg.github.io/guideline/public_review/Overview/ApplicationLayering.html
参考:https://qiita.com/YutaKase6/items/7d88fa23f81366905270
47
? 他のアーキテクチャは、検討しなかったのか
Web API アーキテクチャの選定
問題点ごとの解決策(実装)
?MVC
?MVCより、強度なアーキテクチャにしたかったため
?Clean Architecture
?学習コストが?いので、?数の関係上断念
48
Application Layer
? Controller
? Resource
Infrastructure Layer
? Repository Impl
? Entity (JPA)
Domain Layer
? Domain Object
? Service
? Repository Interface
3層アーキテクチャ
ビジネスロジック
です
問題点ごとの解決策(実装)
Web API アーキテクチャの選定
49
Application Layer
? Controller
? Resource
Infrastructure Layer
? Repository Impl
? Entity (JPA)
Domain Layer
? Domain Object
? Service
? Repository Interface
3層アーキテクチャ
依存依存
Web APIのアーキテクチャの選定
問題点ごとの解決策(実装)
Web API アーキテクチャの選定
50
Application Layer
? Controller
? Resource
Infrastructure Layer
? Repository Impl
? Entity (JPA)
Domain Layer
? Domain Object
? Service
? Repository Interface
3層アーキテクチャ
依存しない
問題点ごとの解決策(実装)
Web API アーキテクチャの選定
依存しない
51
Application Layer
? Controller
? Resource
Infrastructure Layer
? Repository Impl
? Entity (JPA)
Domain Layer
? Domain Object
? Service
? Repository Interface
3層アーキテクチャ
各レイヤーごとに処理が分かれている
Web API アーキテクチャの選定
問題点ごとの解決策(実装)
52
? 疎結合な実装になること OK
? テストが書きやすいこと OK
Web API アーキテクチャの選定
問題点ごとの解決策(実装)
53
問題点ごとの解決策(実装)
個別の実装上の問題点
54
問題点ごとの解決策(実装)
l 意図が分かり難い実装
l ?のクエリが定義
l 設定情報が?部、ベタ書き
l クラスの責任
55
問題点ごとの解決策(実装)
l 意図が分かり難い実装
l ?のクエリが定義
l 設定情報が?部、ベタ書き
l クラスの責任
56
意図が分かり難い実装
問題点ごとの解決策(実装)
意図が分かり難い実装
多重継承
class HogeA extends BaseA implements IBaseA
abstract class BaseA extends BaseB implements Ifb
abstract class BaseB {
//なにもしない
}
BaseB baseB = (BaseB) hogeA
if(baseB instancOf BaseA){
}
意味がわからない
57
if(str.equals("success")){
//なにかの処理
if(name != null){
for(条件A && 条件B){ // なにかの処理
if(条件A || (条件B && 条件C)){
}else if(条件(B) && 条件(B)){
} else {
}
}
}
}
意図が分かり難い実装深いネスト
問題点ごとの解決策(実装)
意図が分かり難い実装
読みづらい
58
? フレームワークに従った標準的な実装
? コードレビューの実施による属?化防?
? コード品質向上
意図が分かり難い実装(解決策)
問題点ごとの解決策(実装)
意図が分かり難い実装 解決策
59
問題点ごとの解決策(実装)
l 意図が分かり難い実装
l ?のクエリが定義
l 設定情報が?部、ベタ書き
l クラスの責任
60
?のクエリが定義
問題点ごとの解決策(実装)
// EXAMPLEテーブルのIDで検索
String EXAMPLE_SERCHID_QUERY = “SELECT * FROM EXAMPLE WHERE ?“;
?のクエリが書かれている
61
O/Rマッピングフレームワークの導?
問題点ごとの解決策(実装)
?のクエリが定義(解決策)
62
問題点ごとの解決策(実装)
l 意図が分かり難い実装
l ?のクエリが定義
l 設定情報が?部、ベタ書き
l クラスの責任
63
設定情報が?部、ベタ書き
問題点ごとの解決策(実装)
ENV_JA = “値1”
ENV_US = “値2”
設定情報がプログラムにベタ書き、
外部ファイル化できていない
64
設定情報が?部、ベタ書き(解決策)
YAML
設定情報は、YAMLに統?
問題点ごとの解決策(実装)
65
問題点ごとの解決策(実装)
l 意図が分かり難い実装
l ?のクエリが定義
l 設定情報が?部、ベタ書き
l クラスの責任
67
クラス
給料計算 レポート作成
所定労働時間
問題点ごとの解決策(実装)
クラスの責任
68
クラス
給料計算 レポート作成
所定労働時間
問題点ごとの解決策(実装)
クラスの責任
修正
69
クラス
給料計算 レポート作成
所定労働時間
問題点ごとの解決策(実装)
クラスの責任
修正 バグ
70
クラス
給料計算 レポート作成
所定労働時間
問題点ごとの解決策(実装)
クラスの責任
修正 バグ
?つのメソッドを
修正すると
他にも影響する
71
各レイヤー毎に
責任を明確化し他モジュールに
影響しない作りにしました
問題点ごとの解決策(実装)
クラスの責任(解決策)
72
クラス
給料計算 レポート作成
社員Data
問題点ごとの解決策(実装)
クラスの責任(解決策)
データ情報
73
問題点ごとの解決策
(テスト編)
74
? 修正を?っても、何を持って正しいとするのか分
からない
? デグレ確認がすぐにできない
問題点
問題点ごとの解決策(テスト)
単体テストがなく、正しい結果が分らない
75
? 今回使?したのは
? Junit
? Mockito
解決策
問題点ごとの解決策(テスト)
76
アジェンダ
l お名前.comの紹介
l 流?元として渡されたシステムがレガシーだった
l 問題点ごとの解決策(仕様?実装?テスト)
l 結果どうなったのか
77
結果どうなったのか
l 仕様(ドキュメント化)
l 実装(アーキテクチャの採?)
l テスト(単体テストの改善)
78
結果どうなったのか
l 仕様(ドキュメント化)
l 実装(アーキテクチャの採?)
l テスト(単体テストの改善)
79
? ドキュメント化
? Wikiにドキュメント
? 仕様が変更になったらUpdateする
仕様(ドキュメント化)
結果どうなったのか
? チームで仕様を把握できるようになった
? Wikiもメンテナンスが必要である
80
結果どうなったのか
l 仕様(ドキュメント化)
l 実装(アーキテクチャの採?)
l テスト(単体テストの改善)
81
? 三層アーキテクチャ
? 実装の修正をルール明確化
実装(アーキテクチャの採?)
結果どうなったのか
独?実装になりにくい
82
? 三層アーキテクチャ
? ?番は、テストが書きやすいこと
実装(アーキテクチャの採?)
結果どうなったのか
テスタブルな実装になる
83
結果どうなったのか
l 仕様(ドキュメント化)
l 実装(アーキテクチャの採?)
l テスト(単体テストの改善)
84
テスト(単体テストの改善)
結果どうなったのか
? 開発に集中でき、テスト時間を削減
? 誰が実?しても、同じ粒度で検証可能
同じ粒度のテストを
実施できるのか?
時間が掛かる?
単体テストを書いたら
85
テスト(単体テストの改善)
結果どうなったのか
テストは、
どこまでできたのか?
86
?実際にテストできたのは
? Controller & Service
? Repository & Entity
テスト(単体テストの改善)
結果どうなったのか
?数の関係上、
?つのテストしか書けなかった。
残りは結合テストで確認。
87
88
しかし???
89
?ルールの遵守やメンテナンスをしないと
?レガシー化してしまいます
ルールの遵守や定期的な
メンテナンスを
していくことが?切
今後に向けて
結果どうなったのか
90
今後もレガシーなコードを
?まないようにします?
92
[12/11(?)19時]渋?フクラス開業記念
GMO Developers Night
Date: 12/11(wed) 19:30-22:00
URL: https://gmo.connpass.com/event/156321/
Takamichi Tanaka
FaceBook https://www.facebook.com/takamichita
Twitter @ttakamichi1

More Related Content

What's hot (20)

Guide To AGPL
Guide To AGPLGuide To AGPL
Guide To AGPL
Mikiya Okuno
?
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
?
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
murachue
?
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
Toshiaki Maki
?
Docker Tokyo
Docker TokyoDocker Tokyo
Docker Tokyo
cyberblack28 Ichikawa
?
モジュールの凝集度?结合度?インタフェース
モジュールの凝集度?结合度?インタフェースモジュールの凝集度?结合度?インタフェース
モジュールの凝集度?结合度?インタフェース
Hajime Yanagawa
?
碍补蹿办补と笔耻濒蝉补谤
碍补蹿办补と笔耻濒蝉补谤碍补蹿办补と笔耻濒蝉补谤
碍补蹿办补と笔耻濒蝉补谤
驰补丑辞辞!デベロッパーネットワーク
?
何となく勉强した気分になれるパーサ入门
何となく勉强した気分になれるパーサ入门何となく勉强した気分になれるパーサ入门
何となく勉强した気分になれるパーサ入门
masayoshi takahashi
?
产补肠办濒辞驳蝉でも颁滨/颁顿する梦を见る
产补肠办濒辞驳蝉でも颁滨/颁顿する梦を见る产补肠办濒辞驳蝉でも颁滨/颁顿する梦を见る
产补肠办濒辞驳蝉でも颁滨/颁顿する梦を见る
Takeru Maehara
?
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
Yuki Mizuno
?
はじめての骋颈迟 蹿辞谤デザイナー&コーダー
はじめての骋颈迟 蹿辞谤デザイナー&コーダーはじめての骋颈迟 蹿辞谤デザイナー&コーダー
はじめての骋颈迟 蹿辞谤デザイナー&コーダー
Saeko Yamamoto
?
ユーザーストーリーの分割
ユーザーストーリーの分割ユーザーストーリーの分割
ユーザーストーリーの分割
Arata Fujimura
?
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
?
劇的改善 Ci4時間から5分へ?私か?やった10のこと?
劇的改善 Ci4時間から5分へ?私か?やった10のこと?劇的改善 Ci4時間から5分へ?私か?やった10のこと?
劇的改善 Ci4時間から5分へ?私か?やった10のこと?
aha_oretama
?
いつやるの?骋颈迟入门 v1.1.0
いつやるの?骋颈迟入门 v1.1.0いつやるの?骋颈迟入门 v1.1.0
いつやるの?骋颈迟入门 v1.1.0
Masakazu Matsushita
?
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いマイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
?
いつやるの?骋颈迟入门
いつやるの?骋颈迟入门いつやるの?骋颈迟入门
いつやるの?骋颈迟入门
Masakazu Matsushita
?
一人でもはじめる骋颈迟でバージョン管理
一人でもはじめる骋颈迟でバージョン管理一人でもはじめる骋颈迟でバージョン管理
一人でもはじめる骋颈迟でバージョン管理
Takafumi Yoshida
?
できる!并列?并行プログラミング
できる!并列?并行プログラミングできる!并列?并行プログラミング
できる!并列?并行プログラミング
Preferred Networks
?
レガシーコードの复雑さに立ち向かう~ドメイン駆动设计のアプローチ
レガシーコードの复雑さに立ち向かう~ドメイン駆动设计のアプローチレガシーコードの复雑さに立ち向かう~ドメイン駆动设计のアプローチ
レガシーコードの复雑さに立ち向かう~ドメイン駆动设计のアプローチ
増田 亨
?
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
?
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
murachue
?
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
Toshiaki Maki
?
モジュールの凝集度?结合度?インタフェース
モジュールの凝集度?结合度?インタフェースモジュールの凝集度?结合度?インタフェース
モジュールの凝集度?结合度?インタフェース
Hajime Yanagawa
?
何となく勉强した気分になれるパーサ入门
何となく勉强した気分になれるパーサ入门何となく勉强した気分になれるパーサ入门
何となく勉强した気分になれるパーサ入门
masayoshi takahashi
?
产补肠办濒辞驳蝉でも颁滨/颁顿する梦を见る
产补肠办濒辞驳蝉でも颁滨/颁顿する梦を见る产补肠办濒辞驳蝉でも颁滨/颁顿する梦を见る
产补肠办濒辞驳蝉でも颁滨/颁顿する梦を见る
Takeru Maehara
?
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
Yuki Mizuno
?
はじめての骋颈迟 蹿辞谤デザイナー&コーダー
はじめての骋颈迟 蹿辞谤デザイナー&コーダーはじめての骋颈迟 蹿辞谤デザイナー&コーダー
はじめての骋颈迟 蹿辞谤デザイナー&コーダー
Saeko Yamamoto
?
ユーザーストーリーの分割
ユーザーストーリーの分割ユーザーストーリーの分割
ユーザーストーリーの分割
Arata Fujimura
?
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
?
劇的改善 Ci4時間から5分へ?私か?やった10のこと?
劇的改善 Ci4時間から5分へ?私か?やった10のこと?劇的改善 Ci4時間から5分へ?私か?やった10のこと?
劇的改善 Ci4時間から5分へ?私か?やった10のこと?
aha_oretama
?
いつやるの?骋颈迟入门 v1.1.0
いつやるの?骋颈迟入门 v1.1.0いつやるの?骋颈迟入门 v1.1.0
いつやるの?骋颈迟入门 v1.1.0
Masakazu Matsushita
?
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いマイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
?
一人でもはじめる骋颈迟でバージョン管理
一人でもはじめる骋颈迟でバージョン管理一人でもはじめる骋颈迟でバージョン管理
一人でもはじめる骋颈迟でバージョン管理
Takafumi Yoshida
?
できる!并列?并行プログラミング
できる!并列?并行プログラミングできる!并列?并行プログラミング
できる!并列?并行プログラミング
Preferred Networks
?
レガシーコードの复雑さに立ち向かう~ドメイン駆动设计のアプローチ
レガシーコードの复雑さに立ち向かう~ドメイン駆动设计のアプローチレガシーコードの复雑さに立ち向かう~ドメイン駆动设计のアプローチ
レガシーコードの复雑さに立ち向かう~ドメイン駆动设计のアプローチ
増田 亨
?

Similar to Example of exiting legacy system (20)

形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta
形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta
形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta
y_taka_23
?
AWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべことAWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべこと
Keisuke Nishitani
?
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
Y Watanabe
?
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
Shuji Morisaki
?
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
Daiyu Hatakeyama
?
公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624
公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624
公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624
Yusuke Suzuki
?
「宣言的プログラミング」と厂顿狈のひとつの形态
「宣言的プログラミング」と厂顿狈のひとつの形态「宣言的プログラミング」と厂顿狈のひとつの形态
「宣言的プログラミング」と厂顿狈のひとつの形态
npsg
?
碍补苍辞苍ってなぁ~に?~楽々碍补苍辞苍で华丽にお仕事しよう~
碍补苍辞苍ってなぁ~に?~楽々碍补苍辞苍で华丽にお仕事しよう~碍补苍辞苍ってなぁ~に?~楽々碍补苍辞苍で华丽にお仕事しよう~
碍补苍辞苍ってなぁ~に?~楽々碍补苍辞苍で华丽にお仕事しよう~
Takashi Okamoto
?
プログラマ人生论
プログラマ人生论プログラマ人生论
プログラマ人生论
ymmt
?
サーバサイドの并行プログラミング?かんたんマルチスレッドプログラミング?
サーバサイドの并行プログラミング?かんたんマルチスレッドプログラミング?サーバサイドの并行プログラミング?かんたんマルチスレッドプログラミング?
サーバサイドの并行プログラミング?かんたんマルチスレッドプログラミング?
gree_tech
?
Mk network programmability-03
Mk network programmability-03Mk network programmability-03
Mk network programmability-03
Miya Kohno
?
闯耻产补迟耻蝉でマルウェア分类
闯耻产补迟耻蝉でマルウェア分类闯耻产补迟耻蝉でマルウェア分类
闯耻产补迟耻蝉でマルウェア分类
Shuzo Kashihara
?
非开発者のためのアジャイル开発入门
非开発者のためのアジャイル开発入门非开発者のためのアジャイル开発入门
非开発者のためのアジャイル开発入门
Kiro Harada
?
Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話
Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話
Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話
JustSystems Corporation
?
スタートアップが础奥厂を使うべき3つの理由
スタートアップが础奥厂を使うべき3つの理由スタートアップが础奥厂を使うべき3つの理由
スタートアップが础奥厂を使うべき3つの理由
Serverworks Co.,Ltd.
?
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, Codereading
Hiro Yoshioka
?
「Oracle Database + Java + Linux」 環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1
「Oracle Database + Java + Linux」環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1「Oracle Database + Java + Linux」環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1
「Oracle Database + Java + Linux」 環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1
Shogo Wakayama
?
Startup JavaScript
Startup JavaScriptStartup JavaScript
Startup JavaScript
Akinari Tsugo
?
AIの力で障害検知?解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
AIの力で障害検知?解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月AIの力で障害検知?解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
AIの力で障害検知?解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
VirtualTech Japan Inc.
?
Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦
urasandesu
?
形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta
形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta
形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta
y_taka_23
?
AWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべことAWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべこと
Keisuke Nishitani
?
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
Y Watanabe
?
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
Shuji Morisaki
?
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
Daiyu Hatakeyama
?
公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624
公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624
公司における厂辫谤颈苍驳蔼日本蝉辫谤颈苍驳ユーザー会20090624
Yusuke Suzuki
?
「宣言的プログラミング」と厂顿狈のひとつの形态
「宣言的プログラミング」と厂顿狈のひとつの形态「宣言的プログラミング」と厂顿狈のひとつの形态
「宣言的プログラミング」と厂顿狈のひとつの形态
npsg
?
碍补苍辞苍ってなぁ~に?~楽々碍补苍辞苍で华丽にお仕事しよう~
碍补苍辞苍ってなぁ~に?~楽々碍补苍辞苍で华丽にお仕事しよう~碍补苍辞苍ってなぁ~に?~楽々碍补苍辞苍で华丽にお仕事しよう~
碍补苍辞苍ってなぁ~に?~楽々碍补苍辞苍で华丽にお仕事しよう~
Takashi Okamoto
?
プログラマ人生论
プログラマ人生论プログラマ人生论
プログラマ人生论
ymmt
?
サーバサイドの并行プログラミング?かんたんマルチスレッドプログラミング?
サーバサイドの并行プログラミング?かんたんマルチスレッドプログラミング?サーバサイドの并行プログラミング?かんたんマルチスレッドプログラミング?
サーバサイドの并行プログラミング?かんたんマルチスレッドプログラミング?
gree_tech
?
Mk network programmability-03
Mk network programmability-03Mk network programmability-03
Mk network programmability-03
Miya Kohno
?
闯耻产补迟耻蝉でマルウェア分类
闯耻产补迟耻蝉でマルウェア分类闯耻产补迟耻蝉でマルウェア分类
闯耻产补迟耻蝉でマルウェア分类
Shuzo Kashihara
?
非开発者のためのアジャイル开発入门
非开発者のためのアジャイル开発入门非开発者のためのアジャイル开発入门
非开発者のためのアジャイル开発入门
Kiro Harada
?
Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話
Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話
Spring Boot の Web アフ?リケーションを Docker に載せて AWS ECS て?動かしている話
JustSystems Corporation
?
スタートアップが础奥厂を使うべき3つの理由
スタートアップが础奥厂を使うべき3つの理由スタートアップが础奥厂を使うべき3つの理由
スタートアップが础奥厂を使うべき3つの理由
Serverworks Co.,Ltd.
?
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, Codereading
Hiro Yoshioka
?
「Oracle Database + Java + Linux」 環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1
「Oracle Database + Java + Linux」環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1「Oracle Database + Java + Linux」環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1
「Oracle Database + Java + Linux」 環境における性能問題の調査手法 ~ミッションクリティカルシステムの現場から~ Part.1
Shogo Wakayama
?
AIの力で障害検知?解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
AIの力で障害検知?解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月AIの力で障害検知?解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
AIの力で障害検知?解析をサポート!Loom(ログ解析ソリューション)のご紹介 - OpenStack最新情報セミナー 2017年7月
VirtualTech Japan Inc.
?
Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦
urasandesu
?

Recently uploaded (13)

第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
Matsushita Laboratory
?
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
?
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
?
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
harmonylab
?
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
?
ビットコインテストネットでの送金体験付きビットコイン?ブロックチェーン勉强会资料
ビットコインテストネットでの送金体験付きビットコイン?ブロックチェーン勉强会资料ビットコインテストネットでの送金体験付きビットコイン?ブロックチェーン勉强会资料
ビットコインテストネットでの送金体験付きビットコイン?ブロックチェーン勉强会资料
周 小渕
?
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
?
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
?
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ssuserfcafd1
?
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
?
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
?
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
Matsushita Laboratory
?
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
?
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
?
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
harmonylab
?
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
?
ビットコインテストネットでの送金体験付きビットコイン?ブロックチェーン勉强会资料
ビットコインテストネットでの送金体験付きビットコイン?ブロックチェーン勉强会资料ビットコインテストネットでの送金体験付きビットコイン?ブロックチェーン勉强会资料
ビットコインテストネットでの送金体験付きビットコイン?ブロックチェーン勉强会资料
周 小渕
?
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
?
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
?
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ssuserfcafd1
?
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
?
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
?

Example of exiting legacy system