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