プロジェクト

全般

プロフィール

Wiki » 履歴 » バージョン 26

みぞ @mizo0203, 2018/07/21 14:50

1 1 みぞ @mizo0203
# Wiki
2
3 16 みぞ @mizo0203
## 開発環境
4
5
* Python 開発環境のセットアップ
6
    * https://cloud.google.com/python/setup
7
* エディタのインストール
8
    * https://code.visualstudio.com
9
* Python extension for Visual Studio Code のインストール
10
    * https://marketplace.visualstudio.com/items?itemName=ms-python.python
11 18 みぞ @mizo0203
* Flake8 のインストール
12
    * `$ pip3 install flake8`
13
* Visual Studio Code の設定
14 24 みぞ @mizo0203
    * [![vs_code_setting.png](http://redmine.mizo0203.com/attachments/thumbnail/63)](http://redmine.mizo0203.com/attachments/63/VS%20Code%20Setting.png)
15 16 みぞ @mizo0203
16 25 みぞ @mizo0203
## デプロイコマンド
17
18 26 みぞ @mizo0203
`$ gcloud app deploy --version 1 --project api-project-379224789817`
19 25 みぞ @mizo0203
20 1 みぞ @mizo0203
## 開発ツール
21
22
* GitHub
23
    * コード管理
24
        * プライベートリポジトリ(後にパブリックへ変更する)
25 5 みぞ @mizo0203
        * 中央集権型ワークフローを採用する
26
            * 中央リポジトリ: https://github.com/mizo0203/google-home-shiritori
27 1 みぞ @mizo0203
* Redmine
28
    * 要件管理
29
    * 不具合管理
30
    * Wiki
31
* Markdown + PlantUML
32
    * ドキュメント作成
33
    * 設計図作成
34
        * ※ Word・Excel・PowerPoint は使用禁止
35 4 みぞ @mizo0203
* CircleCI - 1 コンテナ無料(プライベートリポジトリでも可、ビルド時間 25h/month まで)
36 1 みぞ @mizo0203
    * ビルドチェック
37
    * 静的解析
38
        * Lint - コードの構文チェック 
39
        * FindBugs - 実行時に起こり得るバグの検出
40
    * 【できれば】Programming Tests
41
    * 【できれば】Deploy
42
* Slack
43
    * チャット
44
45
## 利用サービス
46
47
* DialogFlow
48 8 a a
    * [JSONフォーマット](https://dialogflow.com/docs/fulfillment#section-format-of-request-to-the-service)
49 11 みぞ @mizo0203
    * 参考:
50
        * Dialogflow入門 - https://qiita.com/kenz_firespeed/items/0979ceb05e4e3299f313
51
            * > User saysに「明日の福岡を予約」
52
                * 「User says」欄は現在存在しない、「Training phrases」欄に入力する 
53 12 みぞ @mizo0203
            * > 入力内容を元に自動的にEntityが検出されParameterとして設定されました。
54
                * 自動的には検出されないので、単語をクリックして Entity を追加すること
55
                * `@sys.date` は「明日の」ではなく「明日」を指定すること
56 11 みぞ @mizo0203
        * Dialogflowの使い方について - http://hiyo-ac.hatenablog.com/entry/2018/02/25/162729
57 1 みぞ @mizo0203
58
## 開発フロー
59
60
1. Redmine にチケットを作成
61
2. GitHub で各自ブランチを切って Commit & Push
62 2 みぞ @mizo0203
    * プリフィックス(範囲) + 英語のコミットメッセージ + #チケット番号 + @作業時間
63 14 みぞ @mizo0203
        * ```feat(*): hogehoge. fix #999 @1.5h``` :新しい機能
64
        * ```fix(*): hogehoge. fix #999 @1.5h``` :バグフィックス
65
        * ```docs(*): hogehoge. fix #999 @1.5h [ci skip]``` :ドキュメントのみ変更(CI は実行しない)
66
        * ```style(*): hogehoge. fix #999 @1.5h``` :コードの意味に影響を与えない変更(空白、フォーマット、セミコロンの欠落など)
67
        * ```refactor(*): hogehoge. fix #999 @1.5h``` :バグを修正したり、機能を追加したりしないコード変更
68
        * ```perf(*): hogehoge. fix #999 @1.5h``` :パフォーマンスを向上させるコード変更
69
        * ```test(*): hogehoge. fix #999 @1.5h``` :既存のテストの欠落または修正の追加
70
        * ```chore(*): hogehoge. fix #999 @1.5h``` :ビルドプロセスやドキュメント作成などの補助ツールやライブラリの変更
71 2 みぞ @mizo0203
            * 参考: [【今日からできる】コミットメッセージに 「プレフィックス」 をつけるだけで、開発効率が上がった話 - Qiita](https://qiita.com/numanomanu/items/45dd285b286a1f7280ed)
72
            * 参考: [angular.js/DEVELOPERS.md at master · angular/angular.js](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#type)
73
    * 原則 1 Commit 1 チケット
74 15 みぞ @mizo0203
        * ```fix(*): hogehoge. ref #999 @1h``` :対処未完了で Commit する場合
75
        * ```fix(*): hogehoge. fixs #99 @0.5h #999 @1h``` :例外的に複数チケットを 1 Commit で対処する場合
76 2 みぞ @mizo0203
3. CircleCI でビルドチェック、静的解析、PT
77
4. みぞ + 1 名の 2 名でコードレビュー & マージ
78
5. CircleCI でビルドチェック、静的解析、PT、Deploy
79 1 みぞ @mizo0203
80
## 開発言語
81
82 17 みぞ @mizo0203
Python 2.7
83 1 みぞ @mizo0203
84 17 みぞ @mizo0203
* Google App Engine for Python の無料枠では Python 2.7 しか動かせない
85
    * 
86
* ただし、 Python 3 系に Porting できる実装で行う
87 22 a a
    * ```pylint --py3k ./* tests/*``` でチェック可能
88
* PEP 8に準拠した実装を行う
89
    * ```flake8 ./ tests``` でチェック可能
90
* 単体テストを記述する
91
    * ```python -m unittest discover -v tests``` で実行可能
92 17 みぞ @mizo0203
93
## 設計資料
94
95
[[Design_Documents|設計資料]]
96
97 1 みぞ @mizo0203
## Google App Engine for Java を利用する開発
98 17 みぞ @mizo0203
99
サーバーはJSONを処理できれば、何でも使用できる
100 1 みぞ @mizo0203
101 9 みぞ @mizo0203
* IntelliJ IDEA Community Edition で環境構築
102
    * https://cloud.google.com/tools/intellij/docs/quickstart-IDEA
103 10 みぞ @mizo0203
    * https://cloud.google.com/tools/intellij/docs/create-standard
104 13 みぞ @mizo0203
105
## 利用 OSS ライブラリ
106
107
| 名前 | License | URL |
108
|:----------:|:-----------:|:------------:|
109 23 a a
| | | |
110 13 みぞ @mizo0203
111
### 利用目的
112
113 23 a a
*