プログラミングBlog

勉強会㉖

Hands-on and Lightning Talks

開催日時 2021年6月19日(土) 7:00-9:00
今週はBIツール、アプリ開発についての話、Promiseのライブコーディングを行いました。

本日の内容

発表者 テーマ 資料 時間
Kobori BIツールの話 40分
Toku Activity開発の進捗とPromiseライブコーディング Activity 60分
Nakagawa 共同アプリ開発の話 20分

BIツールの話

BIツールとは??

ja.wikipedia.org

企業の基幹システムで生成されたデータを、ユーザ自身が抽出・加工するためのアプリケーションソフトウェアである

なぜBIツール??

システムの内製化を進めるため、BIツールを導入したい。
システムを外注することによるコストが高いため、内製化を図ることでコスト削減をしたい。

どんなものを作る??

フロント + バックエンド → データを集計したものをグラフで可視化。
フロント側はC# デスクトップアプリケーション
ミドルウェアに関しては外部で読み込んだものを使用
ツール開発者ベースでのレポート作成ではなくユーザー主体で行いたい

個人アプリ開発Activityの進捗

ローカルで使用できる学習支援、デスクトップアプリケーション。
タイマーで設定した時間が終了した時にダイアログを出力する。 ログと簡易的なメモ。
ブックマーク機能をつけることで、参考サイトに素早くアクセス。
学習時間が可視化できるようActivityGraph搭載。
まだ未完成なため日々アップデータ中。
github.com

共同アプリ開発の進捗

ログイン機能
slack提携機能 トークンと連携させる
markdown.js マークダウン機能
highlight.js 言語ごとにハイライトをつける機能

Promiseライブコーディング

主に学んだのは5つの基本構文
* resolve reject then catch finally
* 関数の中で呼び出す
* ループの中で使う。

var sample = function (requestData) {
    return  new Promise((resolve, reject) => {
        if (requestData[0] === 1) {
            resolve(requestData[0]);
        } else {
            reject(requestData[0]);
        }
    });
}

var data = [1, 2, 3];

while (data.length > 0) {
    console.log(data);
    sample(data).then((success) => {
        console.log("resolve" + success);
    }).catch((error) => {
        console.log("reject" + error);
    }).finally((execute) => {
        console.log("finally");
    });
    data.shift();
}

ループの場合、Promiseの挙動に注意。

すべてのループ処理が終了した後にthen,catch,finallyの部分が走るため、Promise(){}の部分でデータを削除する(ループ終了処理)を書く。
そうしないとthen以下で記述しても処理が走らないため、無限ループに陥る。