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 | * [](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 | ``` |