プロジェクト

全般

プロフィール

Wiki » 履歴 » バージョン 33

みぞ @mizo0203, 2018/10/14 06:44

1 1 みぞ @mizo0203
# Wiki
2
3 27 みぞ @mizo0203
{{toc}}
4
5 16 みぞ @mizo0203
## 開発環境
6
7
* Python 開発環境のセットアップ
8
    * https://cloud.google.com/python/setup
9
* エディタのインストール
10
    * https://code.visualstudio.com
11
* Python extension for Visual Studio Code のインストール
12
    * https://marketplace.visualstudio.com/items?itemName=ms-python.python
13 18 みぞ @mizo0203
* Flake8 のインストール
14
    * `$ pip3 install flake8`
15
* Visual Studio Code の設定
16 24 みぞ @mizo0203
    * [![vs_code_setting.png](http://redmine.mizo0203.com/attachments/thumbnail/63)](http://redmine.mizo0203.com/attachments/63/VS%20Code%20Setting.png)
17 16 みぞ @mizo0203
18 25 みぞ @mizo0203
## デプロイコマンド
19
20 26 みぞ @mizo0203
`$ gcloud app deploy --version 1 --project api-project-379224789817`
21 25 みぞ @mizo0203
22 1 みぞ @mizo0203
## 開発ツール
23
24
* GitHub
25
    * コード管理
26
        * プライベートリポジトリ(後にパブリックへ変更する)
27 5 みぞ @mizo0203
        * 中央集権型ワークフローを採用する
28
            * 中央リポジトリ: https://github.com/mizo0203/google-home-shiritori
29 1 みぞ @mizo0203
* Redmine
30
    * 要件管理
31
    * 不具合管理
32
    * Wiki
33
* Markdown + PlantUML
34
    * ドキュメント作成
35
    * 設計図作成
36
        * ※ Word・Excel・PowerPoint は使用禁止
37 4 みぞ @mizo0203
* CircleCI - 1 コンテナ無料(プライベートリポジトリでも可、ビルド時間 25h/month まで)
38 1 みぞ @mizo0203
    * ビルドチェック
39
    * 静的解析
40
        * Lint - コードの構文チェック 
41
        * FindBugs - 実行時に起こり得るバグの検出
42
    * 【できれば】Programming Tests
43
    * 【できれば】Deploy
44
* Slack
45
    * チャット
46 28 みぞ @mizo0203
* [Unicode Escape Sequence | KWONLINE.ORG](https://www.kwonline.org/u_esc_seq.php)
47
    * 日本語と「¥uXXXX」形式のユニコードエスケープを相互変換するツール
48 1 みぞ @mizo0203
49
## 利用サービス
50
51
* DialogFlow
52 8 a a
    * [JSONフォーマット](https://dialogflow.com/docs/fulfillment#section-format-of-request-to-the-service)
53 11 みぞ @mizo0203
    * 参考:
54
        * Dialogflow入門 - https://qiita.com/kenz_firespeed/items/0979ceb05e4e3299f313
55
            * > User saysに「明日の福岡を予約」
56
                * 「User says」欄は現在存在しない、「Training phrases」欄に入力する 
57 12 みぞ @mizo0203
            * > 入力内容を元に自動的にEntityが検出されParameterとして設定されました。
58
                * 自動的には検出されないので、単語をクリックして Entity を追加すること
59
                * `@sys.date` は「明日の」ではなく「明日」を指定すること
60 11 みぞ @mizo0203
        * Dialogflowの使い方について - http://hiyo-ac.hatenablog.com/entry/2018/02/25/162729
61 1 みぞ @mizo0203
62 33 みぞ @mizo0203
* Google App Engine Python スタンダード環境
63
    * [Google App Engine Python スタンダード環境のドキュメント](https://cloud.google.com/appengine/docs/standard/python/)
64
    * [Python リリースノート](https://cloud.google.com/appengine/docs/standard/python/release-notes)
65
        * Python ランタイム: Python 2.7.12 (2018/10/14 現在)
66
    * 参考:
67
        * [App Engine の Python サポートを強化 - Google Cloud Platform Japan Blog](https://cloudplatform-jp.googleblog.com/2017/07/enhancing-the-Python-experience-on-App-Engine.html)
68
            * Python 2.7.12 対応へとアップデートしてきましたが、今後は新たにデプロイされたアプリケーションはすべてこの新ランタイムのもとで動作するようになります。
69
        * [Google App Engine Python 3 Standard Environment Documentation](https://cloud.google.com/appengine/docs/standard/python3/)
70
            * Python 3.7 in the Google App Engine standard environment のベータ版
71
72 29 近藤 @tu21themouth
* ipadic
73
    * 形態素解析ツール「ChaSen」に用いられる辞書データ (「ipadic2.7.0」内の「Noun.dic」を利用)
74
    * http://chasen.naist.jp/hiki/ChaSen/
75 31 a a
    * https://ja.osdn.net/projects/ipadic/releases/
76 29 近藤 @tu21themouth
    * 使い方
77
        * 「Noun.dic」をテキストエディタなどで「UTF8」に変換する(デフォルトは「EUC-JP」)
78
        * 「make_json_dict.py」で「dict.json」に変換する
79 30 近藤 @tu21themouth
            * > `$ python make_json_dict.py Noun.dic dict.json`
80
        * 作成した「dict.json」をプロジェクトのdataディレクトリに配置
81 29 近藤 @tu21themouth
82 1 みぞ @mizo0203
## 開発フロー
83
84
1. Redmine にチケットを作成
85
2. GitHub で各自ブランチを切って Commit & Push
86 2 みぞ @mizo0203
    * プリフィックス(範囲) + 英語のコミットメッセージ + #チケット番号 + @作業時間
87 14 みぞ @mizo0203
        * ```feat(*): hogehoge. fix #999 @1.5h``` :新しい機能
88
        * ```fix(*): hogehoge. fix #999 @1.5h``` :バグフィックス
89
        * ```docs(*): hogehoge. fix #999 @1.5h [ci skip]``` :ドキュメントのみ変更(CI は実行しない)
90
        * ```style(*): hogehoge. fix #999 @1.5h``` :コードの意味に影響を与えない変更(空白、フォーマット、セミコロンの欠落など)
91
        * ```refactor(*): hogehoge. fix #999 @1.5h``` :バグを修正したり、機能を追加したりしないコード変更
92
        * ```perf(*): hogehoge. fix #999 @1.5h``` :パフォーマンスを向上させるコード変更
93
        * ```test(*): hogehoge. fix #999 @1.5h``` :既存のテストの欠落または修正の追加
94
        * ```chore(*): hogehoge. fix #999 @1.5h``` :ビルドプロセスやドキュメント作成などの補助ツールやライブラリの変更
95 2 みぞ @mizo0203
            * 参考: [【今日からできる】コミットメッセージに 「プレフィックス」 をつけるだけで、開発効率が上がった話 - Qiita](https://qiita.com/numanomanu/items/45dd285b286a1f7280ed)
96
            * 参考: [angular.js/DEVELOPERS.md at master · angular/angular.js](https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#type)
97
    * 原則 1 Commit 1 チケット
98 15 みぞ @mizo0203
        * ```fix(*): hogehoge. ref #999 @1h``` :対処未完了で Commit する場合
99
        * ```fix(*): hogehoge. fixs #99 @0.5h #999 @1h``` :例外的に複数チケットを 1 Commit で対処する場合
100 2 みぞ @mizo0203
3. CircleCI でビルドチェック、静的解析、PT
101
4. みぞ + 1 名の 2 名でコードレビュー & マージ
102
5. CircleCI でビルドチェック、静的解析、PT、Deploy
103 1 みぞ @mizo0203
104
## 開発言語
105
106 17 みぞ @mizo0203
Python 2.7
107 1 みぞ @mizo0203
108 17 みぞ @mizo0203
* Google App Engine for Python の無料枠では Python 2.7 しか動かせない
109
    * 
110
* ただし、 Python 3 系に Porting できる実装で行う
111 22 a a
    * ```pylint --py3k ./* tests/*``` でチェック可能
112
* PEP 8に準拠した実装を行う
113
    * ```flake8 ./ tests``` でチェック可能
114
* 単体テストを記述する
115
    * ```python -m unittest discover -v tests``` で実行可能
116 17 みぞ @mizo0203
117
## 設計資料
118
119
[[Design_Documents|設計資料]]
120
121 1 みぞ @mizo0203
## Google App Engine for Java を利用する開発
122 17 みぞ @mizo0203
123
サーバーはJSONを処理できれば、何でも使用できる
124 1 みぞ @mizo0203
125 9 みぞ @mizo0203
* IntelliJ IDEA Community Edition で環境構築
126
    * https://cloud.google.com/tools/intellij/docs/quickstart-IDEA
127 10 みぞ @mizo0203
    * https://cloud.google.com/tools/intellij/docs/create-standard
128 13 みぞ @mizo0203
129
## 利用 OSS ライブラリ
130
131
| 名前 | License | URL |
132
|:----------:|:-----------:|:------------:|
133 23 a a
| | | |
134 13 みぞ @mizo0203
135
### 利用目的
136 1 みぞ @mizo0203
137 28 みぞ @mizo0203
*
138 32 みぞ @mizo0203
139
## Python Kivy など ShiritoriDisplay の起動に必要なものを Ubuntu 16.04 にインストール (下書き)
140
141
```
142
 1976  curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
143
 1977  python get-pip.py 
144
 1978  sudo python get-pip.py 
145
 1979  pip --version
146
 1980  which pip
147
 1981  pip
148
 1982  pip install kivy
149
 1983  pip
150
 1984  pip -h
151
 1985  pip --help
152
 1986  which pip
153
 1987  ll /usr/local/bin
154
 1988  exit
155
 1989  pip
156
 1994  sudo pip install cython
157
 1995  sudo pip install kivy
158
 1998  sudo pip install pygame
159
 1999  python ShiritoriDisplay.py 
160
```