Skip to content

glucoseinc/typescript-python-boilerplate

Repository files navigation

CircleCI codecov Maintainability

フロントエンド(Typescript w/ React + Redux + MaterialUI), サーバ(Python w/ AioHTTP)なプロジェクトのBoilerplate

Before Use

typescript-python-boilerplatetypescript_python_boilerplateを自分のプロジェクト名に置換する。

Policy

以下のポリシーで開発を進める。

  • ライブラリは、"License >>> それしかないか/de factoか? > コードがシンプルか? >> 趣味 > 開発の活発さ/枯れ具合"の優先度で検討する。
  • フロントエンドの開発は、Hot module reloadingは使わない。できるだけProduction環境と近いもので開発する
  • async/await用のmiddleware(=redux-thunk, redux-saga)は使わず、ActionDispatcherで対応する
  • コードとテストのファイルは1:1で対応させる

あくまで、原則

Setup

dockerを使う場合

おすすめ

% make run

dockerを使わない場合

Pythonがなければpyenvで調達

$ yarn
$ pipenv --python 3.7
$ pipenv install -e '.[test]'

yarn run watchをしつつtypescript-python-boilerplate --debug runでサーバを実行

In development

テスト駆動にすすめる

javascript

% yarn run test-watch

python

% pipenv shell
% ptw

のようにしてWatchモードにしながらコードとテストを書くのが快適だと思う。

カーボーイにすすめる

% make run

するとWebサーバと、ビルドプロセスが立ち上がるのでローカルのコードを書き換えれば随時Watchされてサーバが再起動 & フロントエンドもリビルドされる。

Chrome Redux DevTool

あると便利 Chrome Web Storeからインストールできる

Pythonのモジュールを追加したら

  1. setup.pyのinstall_requires, extras_requireに追加
  2. pipenv lock && pipenv install --dev

JSのモジュールを追加したら

普通にyarn install [-D]

検討した話とか

こっちに書いた。