Upgrade to Pro — share decks privately, control downloads, hide ads and more …

富士通研究所もGitHubでOSS出してるんですよ! / GitHub Enterprise ...

Kosaku Kimura
December 03, 2019

富士通研究所もGitHubでOSS出してるんですよ! / GitHub Enterprise Roadshow Tokyo

Kosaku Kimura

December 03, 2019
Tweet

More Decks by Kosaku Kimura

Other Decks in Technology

Transcript

  1. 自己紹介 Copyright 2019 FUJITSU LABORATORIES LTD. 1 Kosaku Kimura(木村 功作)

    株式会社 富士通研究所で ソフトウェア開発効率化/自動化の研究開発を行っています https://www.researchgate.net/profile/Kosaku_Kimura kimusaku
  2. 富士通研究所のイノベーション Copyright 2019 FUJITSU LABORATORIES LTD. 2 2020 2010 2000

    1990 1980 1970 1960 カラープラズマディスプレイ (世界初) ラダー型SAWフィルター (世界最小最高性能) 1mm FRAM量産開始 (業界初) デジタル映像符号化技術・ 伝送装置(業界初) ペタスケール コンピューティング (世界最高速) 高電子移動度トランジスタ (HEMT:世界初) 半導体微細加工 ArFレジスト材料 (世界初) 手のひら静脈認証 (世界初) GaN-HEMT ACアダプター(世界初) Digital AnnealerTM (世界初) Source Drain Gate 1974 1980 1992 2006 1996 2003 2011 1989 1999 2017 2016 LSIベースコンピュータ (当時、世界最高速) Deep TensorⓇ (世界初) Digital Transformation 富士通研究所創立 1968
  3. 富士通研とGitHub Copyright 2019 FUJITSU LABORATORIES LTD. 3 • 富士通研内でEnterprise Serverを運用

    研究員 数百名規模で利用中 • 富士通からの委託研究や自主研究における ソースコード・ドキュメントを管理 • 情報蓄積/閲覧がメインの コミュニケーションツールとして利用 • 最新ソースコードを取得 • 既存のOSSに貢献 (Issue/PR) • 研究所技術をOSS化 • 他サービスとの連携や Actions等での自動化を 積極利用
  4. GitHub上での富士通研のOSS Copyright 2019 FUJITSU LABORATORIES LTD. 4 COMEVIZZ ソースコードメトリクス可視化ツール Markdownとアプリケーション間の

    双方向編集を可能にした コラボレーションツール サーバレスアプリをシンプルに 書くためのJavaScriptトランスパイラ https://github.com/FujitsuLaboratories/
  5. ぜひ使ってみてください! Copyright 2019 FUJITSU LABORATORIES LTD. 6 https://github.com/FujitsuLaboratories/escapin  特長

    • Serverless Frameworkと連携 • DynamoDB Table, S3 Bucketが連想配列になる • Swagger/OASで書かれたREST API呼び出しがJSON Object操作になる • 非同期処理(callback, Promise, async/await, …)のことを忘れられる $ cd /path/to/project $ escapin $ cd build $ serverless deploy $ npm i –g escapin serverless
  6. Copyright 2019 FUJITSU LABORATORIES LTD. 7 import { DynamoDB }

    from "aws-sdk"; await new Promise((resolve, reject) => { new DynamoDB().putItem( { TableName: "foo-9fe932f9-32e7-49f7-a341-0dca29a8bb32", Item: { key: { S: id }, type: { S: typeof bar }, value: { S: typeof bar === "object" || typeof bar === "function" ? JSON.stringify(bar) : bar } } }, (err, _temp) => { if (err) { reject(err); } else { resolve(_temp); } } ); }); export const foo: table = {}; foo[id] = bar; を使えば データストア操作が簡単!
  7. Copyright 2019 FUJITSU LABORATORIES LTD. 8 import request from "request";

    await new Promise((resovle, reject) => { request( { uri: 'https://petstore.swagger.io/v2/pet/foobar', method: 'get', contentType: 'application/json', json: true, }, (err, res, body) => { if (err) { reject(err); } else { resolve({ res, body }); } } ); }); import petstore from 'https://petstore.swagger.io/v2/swagger.json'; petstore.pet['foobar']; を使えば WebAPI呼び出しが簡単!