SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
ESLintの仕組み
2019-05-29 金谷敦志
ESLint - The pluggable linting utility for
JavaScript and JSX
公式サイトおよびGitHubリポジトリ
● JavaScript界におけるLinterのデファクトスタンダード
○ Lintはコードを静的解析してバグやスタイル違反を指摘するツール
○ 昔はJSLint, JSHintがあったが、ESLintに取って代わられた
● 今日は下記3点について
○ ESLintのコードチェック方法
○ Pluggableとは?
○ JavaScriptコーディング規約を変えよう
※使い方の話はないので、Getting Started with ESLintを見てね
2
ESLintのコードチェック方法
3
ESLintのコードチェック方法
基本的な流れ
※Architectureを読んでからコードを読むと理解が早まる
1. コンフィグの読み込み(詳細は割愛)
2. 抽象構文木を作成
3. ルールベースのチェック
4. レポート出力
4
抽象構文木を作成
5
> var espree = require('espree')
> var res = espree.parse("var name = 'eslint';")
> JSON.stringify(res)
{"type":"Program",
"start":0,
"end":20,
"body":[
{"type":"VariableDeclaration",
"start":0,
"end":20,
"declarations":[
{"type":"VariableDeclarator",
"start":4,
"end":19,
"id":{"type":"Identifier","start":4,"end":8,"name":"name"},
"init":{"type":"Literal","start":11,"end":19,"value":"eslint","raw":"'eslint'"}
}
],
"kind":"var"
}
],
"sourceType":"script"
}
ルールベースのチェック
● ESLintが標準で持っているルール(およびソースコード)
● ソースコードから生成された抽象構文木に対してルールを適用する
● 例: space-before-function-paren.js
○ var f = function () {}
■ leftTokenは {"type":"Keyword","start":287,"end":295,"value":"function"}
■ rightTokenは {"type":"Punctuator","start":296,"end":297,"value":"("}
■ 294文字目と296文字目の間にスペースがあることが分かる
○ fix可能なルールで fixオプションがついていれば、その場で直す
6
レポート出力
12:8 error Missing JSDoc parameter type for 'response' valid-jsdoc
12:8 error Missing JSDoc parameter description for 'response' valid-jsdoc
15:5 error Expected method shorthand object-shorthand
15:32 error Unexpected space before function parentheses space-before-function-paren
16:9 error Expected line before comment lines-around-comment
17:51 error Expected '===' and instead saw '==' eqeqeq
7
各種形式でレポート出力できる(ソースコード)
下記はデフォルト(stylish.sh)例だが、JUnit形式で出力してCIに食わせることもできる
余談
ESLintのlintingの仕組みを知っておくとプログラミングの可能性が広がる(特に抽象構文木)
● 字句解析
● 構文解析
JavaScriptのminifyの実装ができる
上記に意味解析も加えると、コンパイラの実装ができる
そこまでいかなくても、ドメイン固有言語(特に外部DSL)の設計実装ができるかも
8
Pluggableとは?
9
Pluggableとは?
あまり知らないので調べてみたが、これも同様にドキュメントがしっかり書かれている
● ルール
● プラグインで下記をまとめ上げたものを提供できる
○ ルール
○ コンフィグ
○ 事前事後作業
● レポートのフォーマッタ
○ グラフ出力は便利
● パーザまでも(espreeが返すノードと同じインターフェースにすればOKらしい)
10
プラグインの作り方
"use strict";
// Requirements 必要に応じて利用したいライブラリを書く
var requireIndex = require("requireindex");
// Plugin Definition
// import all rules in lib/rules ここにプラグインが読み込みたいルールを格納しておけばOK
module.exports.rules = requireIndex(__dirname + "/rules");
// import processors (必要に応じてjs以外にも対応できるように。 .jsxや.vueなどが対象?)
module.exports.processors = {
// add your processors here
};
11
余談
プラグインの仕組みを理解しておくとプログラミングの可能性が広がる
● プラグインのインターフェース設計
● プラグインがあるフォルダからのソースの読み込み
● インターフェースに定義のある通りにプラグインを実行
Webアプリケーションフレームワークなどで、上記のことをやっている
12
JavaScriptコーディング規約を変えよう
13
当社におけるJavaScriptコーディング規約
当社におけるJavaScriptコーディング規約(公開に当たり社内リンクを消しています)
● コードのフォーマットはESLintで頑張ればできる
● エラー指摘もeslint:recommended を利用すればできる
● でも…これ守ってるチームはあるのだろうか
● 守っていないのであれば、これを守るようなESLintプラグイン開発の意味はあるのか
14
ESLintが普及した最大の理由
コーディング規約を公開できる& 必要に応じてオーバーライドして使える
有名ドコロ
● Airbnb JavaScript Style Guide (いち早くES2015に対応したことで有名)
● eslint-config-google
● JavaScript Standard Style
● (有名ではないがESLintもESLintでコーディング規約を書いている)
15
JavaScript Standard Styleの提案
https://standardjs.com/
● 俺達がスタンダードだと言わんばかりの名前
● 採用している組織が多い
● セミコロン不要!(一番議論を醸す部分)
● 当社におけるJavaScriptコードの傾向を調べていないが、なるべく移行負担の少ない規約を採用したい
● 何にせよ、有名ドコロのコーディング規約を利用して、遵守しやすい状態にしたい
16
余談
セミコロンは必要だろ常識的に考えて。という方向けの、semistandard もあります
● 基本、JavaScript Standard Styleと同じ
● 違いはセミコロン必須なこと!
○ あとセミコロン重複も NG
17
まとめ
● ESLintのコードチェック方法
○ 抽象構文木を作る
○ ルールを適用する
○ フォーマットしてレポート出力する
● ESLintの拡張性、再利用性が高い
● 世のコーディング規約にのっかろう(意見募集)
● 学んだ知識を応用しよう
18

Mais conteúdo relacionado

Mais procurados

データサイエンティストとエンジニア 両者が幸せになれる機械学習基盤を求めて
データサイエンティストとエンジニア 両者が幸せになれる機械学習基盤を求めてデータサイエンティストとエンジニア 両者が幸せになれる機械学習基盤を求めて
データサイエンティストとエンジニア 両者が幸せになれる機械学習基盤を求めてRecruit Lifestyle Co., Ltd.
 
失敗から学ぶAndroid設計話
失敗から学ぶAndroid設計話失敗から学ぶAndroid設計話
失敗から学ぶAndroid設計話chigichan24
 
生成系ニューラルネットワークまとめ Summary of Generative Neural Network
生成系ニューラルネットワークまとめ Summary of  Generative Neural Network生成系ニューラルネットワークまとめ Summary of  Generative Neural Network
生成系ニューラルネットワークまとめ Summary of Generative Neural NetworkYouichiro Miyake
 
Sqlアンチパターン(メタデータトリブル)
Sqlアンチパターン(メタデータトリブル)Sqlアンチパターン(メタデータトリブル)
Sqlアンチパターン(メタデータトリブル)Tomoaki Uchida
 
C++ AMPを使ってみよう
C++ AMPを使ってみようC++ AMPを使ってみよう
C++ AMPを使ってみようOsamu Masutani
 
Efficient Neural Architecture Search via Parameters Sharing @ ICML2018読み会
Efficient Neural Architecture Search via Parameters Sharing @ ICML2018読み会Efficient Neural Architecture Search via Parameters Sharing @ ICML2018読み会
Efficient Neural Architecture Search via Parameters Sharing @ ICML2018読み会tomohiro kato
 
ACRiウェビナー:岩渕様ご講演資料
ACRiウェビナー:岩渕様ご講演資料ACRiウェビナー:岩渕様ご講演資料
ACRiウェビナー:岩渕様ご講演資料直久 住川
 
SQLアンチパターン~ファントムファイル
SQLアンチパターン~ファントムファイルSQLアンチパターン~ファントムファイル
SQLアンチパターン~ファントムファイルItabashi Masayuki
 
エントリー層向けセミナー#04『はじめての最適化』
エントリー層向けセミナー#04『はじめての最適化』エントリー層向けセミナー#04『はじめての最適化』
エントリー層向けセミナー#04『はじめての最適化』The Japan DataScientist Society
 
数学好きから見た量子コンピュータ~57を因数分解した話~
数学好きから見た量子コンピュータ~57を因数分解した話~数学好きから見た量子コンピュータ~57を因数分解した話~
数学好きから見た量子コンピュータ~57を因数分解した話~Satoyuki Tsukano
 
JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門Shumpei Shiraishi
 
2部グラフの最小点被覆の求め方
2部グラフの最小点被覆の求め方2部グラフの最小点被覆の求め方
2部グラフの最小点被覆の求め方Kensuke Otsuki
 
ガイデットフィルタとその周辺
ガイデットフィルタとその周辺ガイデットフィルタとその周辺
ガイデットフィルタとその周辺Norishige Fukushima
 
Confluenceショートカットキー表 v1
Confluenceショートカットキー表 v1Confluenceショートカットキー表 v1
Confluenceショートカットキー表 v1Naho Inuyama
 
Transformerを用いたAutoEncoderの設計と実験
Transformerを用いたAutoEncoderの設計と実験Transformerを用いたAutoEncoderの設計と実験
Transformerを用いたAutoEncoderの設計と実験myxymyxomatosis
 
実践!Django + GraphQL 実装
実践!Django + GraphQL 実装実践!Django + GraphQL 実装
実践!Django + GraphQL 実装ssuseraf19bf
 
ACRi HLSチャレンジ 高速化テクニック紹介
ACRi HLSチャレンジ 高速化テクニック紹介ACRi HLSチャレンジ 高速化テクニック紹介
ACRi HLSチャレンジ 高速化テクニック紹介Jun Ando
 
ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理H2O Space. Co., Ltd.
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門泰 増田
 

Mais procurados (20)

C#で速度を極めるいろは
C#で速度を極めるいろはC#で速度を極めるいろは
C#で速度を極めるいろは
 
データサイエンティストとエンジニア 両者が幸せになれる機械学習基盤を求めて
データサイエンティストとエンジニア 両者が幸せになれる機械学習基盤を求めてデータサイエンティストとエンジニア 両者が幸せになれる機械学習基盤を求めて
データサイエンティストとエンジニア 両者が幸せになれる機械学習基盤を求めて
 
失敗から学ぶAndroid設計話
失敗から学ぶAndroid設計話失敗から学ぶAndroid設計話
失敗から学ぶAndroid設計話
 
生成系ニューラルネットワークまとめ Summary of Generative Neural Network
生成系ニューラルネットワークまとめ Summary of  Generative Neural Network生成系ニューラルネットワークまとめ Summary of  Generative Neural Network
生成系ニューラルネットワークまとめ Summary of Generative Neural Network
 
Sqlアンチパターン(メタデータトリブル)
Sqlアンチパターン(メタデータトリブル)Sqlアンチパターン(メタデータトリブル)
Sqlアンチパターン(メタデータトリブル)
 
C++ AMPを使ってみよう
C++ AMPを使ってみようC++ AMPを使ってみよう
C++ AMPを使ってみよう
 
Efficient Neural Architecture Search via Parameters Sharing @ ICML2018読み会
Efficient Neural Architecture Search via Parameters Sharing @ ICML2018読み会Efficient Neural Architecture Search via Parameters Sharing @ ICML2018読み会
Efficient Neural Architecture Search via Parameters Sharing @ ICML2018読み会
 
ACRiウェビナー:岩渕様ご講演資料
ACRiウェビナー:岩渕様ご講演資料ACRiウェビナー:岩渕様ご講演資料
ACRiウェビナー:岩渕様ご講演資料
 
SQLアンチパターン~ファントムファイル
SQLアンチパターン~ファントムファイルSQLアンチパターン~ファントムファイル
SQLアンチパターン~ファントムファイル
 
エントリー層向けセミナー#04『はじめての最適化』
エントリー層向けセミナー#04『はじめての最適化』エントリー層向けセミナー#04『はじめての最適化』
エントリー層向けセミナー#04『はじめての最適化』
 
数学好きから見た量子コンピュータ~57を因数分解した話~
数学好きから見た量子コンピュータ~57を因数分解した話~数学好きから見た量子コンピュータ~57を因数分解した話~
数学好きから見た量子コンピュータ~57を因数分解した話~
 
JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門
 
2部グラフの最小点被覆の求め方
2部グラフの最小点被覆の求め方2部グラフの最小点被覆の求め方
2部グラフの最小点被覆の求め方
 
ガイデットフィルタとその周辺
ガイデットフィルタとその周辺ガイデットフィルタとその周辺
ガイデットフィルタとその周辺
 
Confluenceショートカットキー表 v1
Confluenceショートカットキー表 v1Confluenceショートカットキー表 v1
Confluenceショートカットキー表 v1
 
Transformerを用いたAutoEncoderの設計と実験
Transformerを用いたAutoEncoderの設計と実験Transformerを用いたAutoEncoderの設計と実験
Transformerを用いたAutoEncoderの設計と実験
 
実践!Django + GraphQL 実装
実践!Django + GraphQL 実装実践!Django + GraphQL 実装
実践!Django + GraphQL 実装
 
ACRi HLSチャレンジ 高速化テクニック紹介
ACRi HLSチャレンジ 高速化テクニック紹介ACRi HLSチャレンジ 高速化テクニック紹介
ACRi HLSチャレンジ 高速化テクニック紹介
 
ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理
 
PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門PlaySQLAlchemy: SQLAlchemy入門
PlaySQLAlchemy: SQLAlchemy入門
 

Semelhante a MonotaRO LT - ESLintの仕組み

関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開Hideki Takase
 
関数型言語ElixirのIoTシステムへの導入に向けた基礎評価
関数型言語ElixirのIoTシステムへの導入に向けた基礎評価関数型言語ElixirのIoTシステムへの導入に向けた基礎評価
関数型言語ElixirのIoTシステムへの導入に向けた基礎評価Hideki Takase
 
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理Kouji Matsui
 
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたサーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたItaru Kitagawa
 
Code igniter + ci phpunit-test
Code igniter + ci phpunit-testCode igniter + ci phpunit-test
Code igniter + ci phpunit-testME iBotch
 
PHPカンファレンス関西 2011
PHPカンファレンス関西 2011PHPカンファレンス関西 2011
PHPカンファレンス関西 2011Takako Miyagawa
 
Big Data入門に見せかけたFluentd入門
Big Data入門に見せかけたFluentd入門Big Data入門に見せかけたFluentd入門
Big Data入門に見せかけたFluentd入門Keisuke Takahashi
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1信之 岩永
 
Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)Yuto Takei
 
Example of exiting legacy system
Example of exiting legacy systemExample of exiting legacy system
Example of exiting legacy systemTakamchiTanaka
 
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略Teppei Sato
 
js-ctypes - ネイティブコードを呼び出す新しいカタチ
js-ctypes - ネイティブコードを呼び出す新しいカタチjs-ctypes - ネイティブコードを呼び出す新しいカタチ
js-ctypes - ネイティブコードを呼び出す新しいカタチMakoto Kato
 
動的なILの生成と編集
動的なILの生成と編集動的なILの生成と編集
動的なILの生成と編集terurou
 
gitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたgitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたTakako Miyagawa
 
Cookpad Summer Intern 2015 - Programming Paradigm
Cookpad Summer Intern 2015 - Programming ParadigmCookpad Summer Intern 2015 - Programming Paradigm
Cookpad Summer Intern 2015 - Programming ParadigmMinero Aoki
 
とある制作会社の目次索引作成技法
とある制作会社の目次索引作成技法とある制作会社の目次索引作成技法
とある制作会社の目次索引作成技法Kenshi Muto
 
[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜
[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜
[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜Ryo Sasaki
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, CodereadingHiro Yoshioka
 

Semelhante a MonotaRO LT - ESLintの仕組み (20)

関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開
 
関数型言語ElixirのIoTシステムへの導入に向けた基礎評価
関数型言語ElixirのIoTシステムへの導入に向けた基礎評価関数型言語ElixirのIoTシステムへの導入に向けた基礎評価
関数型言語ElixirのIoTシステムへの導入に向けた基礎評価
 
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理
 
サーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみたサーバサイドエンジニアが 1年間まじめにSPAやってみた
サーバサイドエンジニアが 1年間まじめにSPAやってみた
 
Code igniter + ci phpunit-test
Code igniter + ci phpunit-testCode igniter + ci phpunit-test
Code igniter + ci phpunit-test
 
PHPカンファレンス関西 2011
PHPカンファレンス関西 2011PHPカンファレンス関西 2011
PHPカンファレンス関西 2011
 
Big Data入門に見せかけたFluentd入門
Big Data入門に見せかけたFluentd入門Big Data入門に見せかけたFluentd入門
Big Data入門に見せかけたFluentd入門
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
 
Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)
 
Example of exiting legacy system
Example of exiting legacy systemExample of exiting legacy system
Example of exiting legacy system
 
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略
 
js-ctypes - ネイティブコードを呼び出す新しいカタチ
js-ctypes - ネイティブコードを呼び出す新しいカタチjs-ctypes - ネイティブコードを呼び出す新しいカタチ
js-ctypes - ネイティブコードを呼び出す新しいカタチ
 
動的なILの生成と編集
動的なILの生成と編集動的なILの生成と編集
動的なILの生成と編集
 
gitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたgitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみました
 
Cookpad Summer Intern 2015 - Programming Paradigm
Cookpad Summer Intern 2015 - Programming ParadigmCookpad Summer Intern 2015 - Programming Paradigm
Cookpad Summer Intern 2015 - Programming Paradigm
 
とある制作会社の目次索引作成技法
とある制作会社の目次索引作成技法とある制作会社の目次索引作成技法
とある制作会社の目次索引作成技法
 
Lombok ハンズオン
Lombok ハンズオンLombok ハンズオン
Lombok ハンズオン
 
[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜
[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜
[Okta x Jamf合同新年会] Okta Workflowsによるノーコード業務改善 〜Jamf APIを使ってMac端末情報を自動収集してみよう〜
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, Codereading
 
Angularを利用したシステム開発事例
Angularを利用したシステム開発事例Angularを利用したシステム開発事例
Angularを利用したシステム開発事例
 

Mais de 株式会社MonotaRO Tech Team

本番環境でやらかしちゃった選手権_MonotaRO社内LT会利用スライド.pdf
本番環境でやらかしちゃった選手権_MonotaRO社内LT会利用スライド.pdf本番環境でやらかしちゃった選手権_MonotaRO社内LT会利用スライド.pdf
本番環境でやらかしちゃった選手権_MonotaRO社内LT会利用スライド.pdf株式会社MonotaRO Tech Team
 
この技術書がすごい!2023夏(おすすめの技術書をペライチで紹介する選手権) .pdf
この技術書がすごい!2023夏(おすすめの技術書をペライチで紹介する選手権) .pdfこの技術書がすごい!2023夏(おすすめの技術書をペライチで紹介する選手権) .pdf
この技術書がすごい!2023夏(おすすめの技術書をペライチで紹介する選手権) .pdf株式会社MonotaRO Tech Team
 
PyConAPAC2023 ワークフローエンジン Apache Airflowを用いた 大規模データパイプライン構築と改善
PyConAPAC2023 ワークフローエンジン  Apache Airflowを用いた 大規模データパイプライン構築と改善PyConAPAC2023 ワークフローエンジン  Apache Airflowを用いた 大規模データパイプライン構築と改善
PyConAPAC2023 ワークフローエンジン Apache Airflowを用いた 大規模データパイプライン構築と改善株式会社MonotaRO Tech Team
 
【TECHTRACKJP】私ってデータエンジニアなんですか?気づいたらデータエンジニアと呼ばれるようになった私がこの職種について考えた【20230725】
【TECHTRACKJP】私ってデータエンジニアなんですか?気づいたらデータエンジニアと呼ばれるようになった私がこの職種について考えた【20230725】【TECHTRACKJP】私ってデータエンジニアなんですか?気づいたらデータエンジニアと呼ばれるようになった私がこの職種について考えた【20230725】
【TECHTRACKJP】私ってデータエンジニアなんですか?気づいたらデータエンジニアと呼ばれるようになった私がこの職種について考えた【20230725】株式会社MonotaRO Tech Team
 
【マーケティング・テクノロジーフェア 大阪 2023】 データから正しい意思決定を行うために 〜全社横断で実施したデータ活用プロジェクトの取...
【マーケティング・テクノロジーフェア 大阪 2023】 データから正しい意思決定を行うために 〜全社横断で実施したデータ活用プロジェクトの取...【マーケティング・テクノロジーフェア 大阪 2023】 データから正しい意思決定を行うために 〜全社横断で実施したデータ活用プロジェクトの取...
【マーケティング・テクノロジーフェア 大阪 2023】 データから正しい意思決定を行うために 〜全社横断で実施したデータ活用プロジェクトの取...株式会社MonotaRO Tech Team
 
[ITmedia Cloud Native 2023] モノタロウのクラウドネイティブ.pdf
[ITmedia Cloud Native 2023] モノタロウのクラウドネイティブ.pdf[ITmedia Cloud Native 2023] モノタロウのクラウドネイティブ.pdf
[ITmedia Cloud Native 2023] モノタロウのクラウドネイティブ.pdf株式会社MonotaRO Tech Team
 
datatech-jp Casual Talks #5_データ基盤の立ち位置を考えるのに チームトポロジーの概念を活用した話
datatech-jp Casual Talks #5_データ基盤の立ち位置を考えるのに チームトポロジーの概念を活用した話datatech-jp Casual Talks #5_データ基盤の立ち位置を考えるのに チームトポロジーの概念を活用した話
datatech-jp Casual Talks #5_データ基盤の立ち位置を考えるのに チームトポロジーの概念を活用した話株式会社MonotaRO Tech Team
 
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)株式会社MonotaRO Tech Team
 
JDMC LT#1 - なぜモノタロウでデータマネジメントが必要になったのか
JDMC LT#1 - なぜモノタロウでデータマネジメントが必要になったのかJDMC LT#1 - なぜモノタロウでデータマネジメントが必要になったのか
JDMC LT#1 - なぜモノタロウでデータマネジメントが必要になったのか株式会社MonotaRO Tech Team
 
datatech-jp Casual Talks#3 データエンジニアを採用するための試行錯誤
datatech-jp Casual Talks#3  データエンジニアを採用するための試行錯誤datatech-jp Casual Talks#3  データエンジニアを採用するための試行錯誤
datatech-jp Casual Talks#3 データエンジニアを採用するための試行錯誤株式会社MonotaRO Tech Team
 
信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入.pdf
信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入.pdf信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入.pdf
信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入.pdf株式会社MonotaRO Tech Team
 
データ基盤に関わる問い合わせ対応を仕組みで解決する
データ基盤に関わる問い合わせ対応を仕組みで解決するデータ基盤に関わる問い合わせ対応を仕組みで解決する
データ基盤に関わる問い合わせ対応を仕組みで解決する株式会社MonotaRO Tech Team
 
モノタロウの開発・リリースサイクルを支えるJenkinsの活用事例 - Jenkins Day Japan 2021
モノタロウの開発・リリースサイクルを支えるJenkinsの活用事例 - Jenkins Day Japan 2021モノタロウの開発・リリースサイクルを支えるJenkinsの活用事例 - Jenkins Day Japan 2021
モノタロウの開発・リリースサイクルを支えるJenkinsの活用事例 - Jenkins Day Japan 2021株式会社MonotaRO Tech Team
 
「指標」を支えるエンジニアリング: DataOpsNight #1
「指標」を支えるエンジニアリング: DataOpsNight #1「指標」を支えるエンジニアリング: DataOpsNight #1
「指標」を支えるエンジニアリング: DataOpsNight #1株式会社MonotaRO Tech Team
 
データ管理に重要なことは事業と組織の理解だった(Data Engineering Study #11 発表資料)
データ管理に重要なことは事業と組織の理解だった(Data Engineering Study #11 発表資料)データ管理に重要なことは事業と組織の理解だった(Data Engineering Study #11 発表資料)
データ管理に重要なことは事業と組織の理解だった(Data Engineering Study #11 発表資料)株式会社MonotaRO Tech Team
 
MonotaRO のデータ活用と基盤の過去、現在、未来
MonotaRO のデータ活用と基盤の過去、現在、未来 MonotaRO のデータ活用と基盤の過去、現在、未来
MonotaRO のデータ活用と基盤の過去、現在、未来 株式会社MonotaRO Tech Team
 
全社のデータ活用を一段階上げる取り組み
全社のデータ活用を一段階上げる取り組み全社のデータ活用を一段階上げる取り組み
全社のデータ活用を一段階上げる取り組み株式会社MonotaRO Tech Team
 
データ基盤グループを支えるチームビルディング
データ基盤グループを支えるチームビルディングデータ基盤グループを支えるチームビルディング
データ基盤グループを支えるチームビルディング株式会社MonotaRO Tech Team
 
モノタロウECプラットフォームを支える開発運用モダナイゼーションの取り組み #devsumi
モノタロウECプラットフォームを支える開発運用モダナイゼーションの取り組み #devsumi モノタロウECプラットフォームを支える開発運用モダナイゼーションの取り組み #devsumi
モノタロウECプラットフォームを支える開発運用モダナイゼーションの取り組み #devsumi 株式会社MonotaRO Tech Team
 
ITPと、その他cookie関連のこと / ITP and cookie
ITPと、その他cookie関連のこと / ITP and cookieITPと、その他cookie関連のこと / ITP and cookie
ITPと、その他cookie関連のこと / ITP and cookie株式会社MonotaRO Tech Team
 

Mais de 株式会社MonotaRO Tech Team (20)

本番環境でやらかしちゃった選手権_MonotaRO社内LT会利用スライド.pdf
本番環境でやらかしちゃった選手権_MonotaRO社内LT会利用スライド.pdf本番環境でやらかしちゃった選手権_MonotaRO社内LT会利用スライド.pdf
本番環境でやらかしちゃった選手権_MonotaRO社内LT会利用スライド.pdf
 
この技術書がすごい!2023夏(おすすめの技術書をペライチで紹介する選手権) .pdf
この技術書がすごい!2023夏(おすすめの技術書をペライチで紹介する選手権) .pdfこの技術書がすごい!2023夏(おすすめの技術書をペライチで紹介する選手権) .pdf
この技術書がすごい!2023夏(おすすめの技術書をペライチで紹介する選手権) .pdf
 
PyConAPAC2023 ワークフローエンジン Apache Airflowを用いた 大規模データパイプライン構築と改善
PyConAPAC2023 ワークフローエンジン  Apache Airflowを用いた 大規模データパイプライン構築と改善PyConAPAC2023 ワークフローエンジン  Apache Airflowを用いた 大規模データパイプライン構築と改善
PyConAPAC2023 ワークフローエンジン Apache Airflowを用いた 大規模データパイプライン構築と改善
 
【TECHTRACKJP】私ってデータエンジニアなんですか?気づいたらデータエンジニアと呼ばれるようになった私がこの職種について考えた【20230725】
【TECHTRACKJP】私ってデータエンジニアなんですか?気づいたらデータエンジニアと呼ばれるようになった私がこの職種について考えた【20230725】【TECHTRACKJP】私ってデータエンジニアなんですか?気づいたらデータエンジニアと呼ばれるようになった私がこの職種について考えた【20230725】
【TECHTRACKJP】私ってデータエンジニアなんですか?気づいたらデータエンジニアと呼ばれるようになった私がこの職種について考えた【20230725】
 
【マーケティング・テクノロジーフェア 大阪 2023】 データから正しい意思決定を行うために 〜全社横断で実施したデータ活用プロジェクトの取...
【マーケティング・テクノロジーフェア 大阪 2023】 データから正しい意思決定を行うために 〜全社横断で実施したデータ活用プロジェクトの取...【マーケティング・テクノロジーフェア 大阪 2023】 データから正しい意思決定を行うために 〜全社横断で実施したデータ活用プロジェクトの取...
【マーケティング・テクノロジーフェア 大阪 2023】 データから正しい意思決定を行うために 〜全社横断で実施したデータ活用プロジェクトの取...
 
[ITmedia Cloud Native 2023] モノタロウのクラウドネイティブ.pdf
[ITmedia Cloud Native 2023] モノタロウのクラウドネイティブ.pdf[ITmedia Cloud Native 2023] モノタロウのクラウドネイティブ.pdf
[ITmedia Cloud Native 2023] モノタロウのクラウドネイティブ.pdf
 
datatech-jp Casual Talks #5_データ基盤の立ち位置を考えるのに チームトポロジーの概念を活用した話
datatech-jp Casual Talks #5_データ基盤の立ち位置を考えるのに チームトポロジーの概念を活用した話datatech-jp Casual Talks #5_データ基盤の立ち位置を考えるのに チームトポロジーの概念を活用した話
datatech-jp Casual Talks #5_データ基盤の立ち位置を考えるのに チームトポロジーの概念を活用した話
 
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
モノタロウの1900万商品を検索する Elasticsearch構築運用事例(2022-10-26 第50回Elasticsearch 勉強会発表資料)
 
JDMC LT#1 - なぜモノタロウでデータマネジメントが必要になったのか
JDMC LT#1 - なぜモノタロウでデータマネジメントが必要になったのかJDMC LT#1 - なぜモノタロウでデータマネジメントが必要になったのか
JDMC LT#1 - なぜモノタロウでデータマネジメントが必要になったのか
 
datatech-jp Casual Talks#3 データエンジニアを採用するための試行錯誤
datatech-jp Casual Talks#3  データエンジニアを採用するための試行錯誤datatech-jp Casual Talks#3  データエンジニアを採用するための試行錯誤
datatech-jp Casual Talks#3 データエンジニアを採用するための試行錯誤
 
信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入.pdf
信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入.pdf信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入.pdf
信頼性とアジリティを同時に上げろ!モノタロウのカナリアリリース導入.pdf
 
データ基盤に関わる問い合わせ対応を仕組みで解決する
データ基盤に関わる問い合わせ対応を仕組みで解決するデータ基盤に関わる問い合わせ対応を仕組みで解決する
データ基盤に関わる問い合わせ対応を仕組みで解決する
 
モノタロウの開発・リリースサイクルを支えるJenkinsの活用事例 - Jenkins Day Japan 2021
モノタロウの開発・リリースサイクルを支えるJenkinsの活用事例 - Jenkins Day Japan 2021モノタロウの開発・リリースサイクルを支えるJenkinsの活用事例 - Jenkins Day Japan 2021
モノタロウの開発・リリースサイクルを支えるJenkinsの活用事例 - Jenkins Day Japan 2021
 
「指標」を支えるエンジニアリング: DataOpsNight #1
「指標」を支えるエンジニアリング: DataOpsNight #1「指標」を支えるエンジニアリング: DataOpsNight #1
「指標」を支えるエンジニアリング: DataOpsNight #1
 
データ管理に重要なことは事業と組織の理解だった(Data Engineering Study #11 発表資料)
データ管理に重要なことは事業と組織の理解だった(Data Engineering Study #11 発表資料)データ管理に重要なことは事業と組織の理解だった(Data Engineering Study #11 発表資料)
データ管理に重要なことは事業と組織の理解だった(Data Engineering Study #11 発表資料)
 
MonotaRO のデータ活用と基盤の過去、現在、未来
MonotaRO のデータ活用と基盤の過去、現在、未来 MonotaRO のデータ活用と基盤の過去、現在、未来
MonotaRO のデータ活用と基盤の過去、現在、未来
 
全社のデータ活用を一段階上げる取り組み
全社のデータ活用を一段階上げる取り組み全社のデータ活用を一段階上げる取り組み
全社のデータ活用を一段階上げる取り組み
 
データ基盤グループを支えるチームビルディング
データ基盤グループを支えるチームビルディングデータ基盤グループを支えるチームビルディング
データ基盤グループを支えるチームビルディング
 
モノタロウECプラットフォームを支える開発運用モダナイゼーションの取り組み #devsumi
モノタロウECプラットフォームを支える開発運用モダナイゼーションの取り組み #devsumi モノタロウECプラットフォームを支える開発運用モダナイゼーションの取り組み #devsumi
モノタロウECプラットフォームを支える開発運用モダナイゼーションの取り組み #devsumi
 
ITPと、その他cookie関連のこと / ITP and cookie
ITPと、その他cookie関連のこと / ITP and cookieITPと、その他cookie関連のこと / ITP and cookie
ITPと、その他cookie関連のこと / ITP and cookie
 

MonotaRO LT - ESLintの仕組み