Slide 1

Slide 1 text

1 というか 市民開発者?

Slide 2

Slide 2 text

ステータス りなたむ / 中村 亮太 / @R_t_A_n_M ITの町医者 / 株式会社ソントレーゾ CTO / Martinysystem Works LV:40 PLV:42 STEPS : 680,823 N.STEPS : 30,177 アビリティ 即興アプリ作成デモ オンラインハンズオン Power Apps でゲーム作成 バーコードバトラー Azure Quiz アプリ 装備 MVP:Business Applications Microsoft 365 E5 Power Apps / Power Automate Power Automate for desktop Dynamics 365 C.E. HoloLens 2 Azure Virtual Desktop Dot Icon Designed by おーちょ(@kurokuro1008)

Slide 3

Slide 3 text

3 ようつべ やってます😀😀 https://bit.ly/YoutubeSentreseauTV https://bit.ly/SentreseauTVWorkImprovement

Slide 4

Slide 4 text

4 このお話は、市民開発者と共にプロジェクトを進めるにあたり りなたむ氏が経験した実際の出来事である

Slide 5

Slide 5 text

5

Slide 6

Slide 6 text

6 いつまでたっても編集画面が表示されない アプリの修正を行おうと編集画面を開くと、起動に15分から20分ぐらいかかるようになってしまった

Slide 7

Slide 7 text

7 オブジェクト参照しまくり ラベルオブジェクトに表示させている情報をもとに、別のオブジェクトで参照するということがとても多い なんなら、その情報を使って計算させた結果をさらに別のオブジェクトで参照しているという

Slide 8

Slide 8 text

8 オブジェクトの名前を変えたらフリーズ オブジェクトの名前を変更しようとすると、画面がフリーズしてしまう (実際は裏で動いているが、5分ぐらい待たないといけなくなる)

Slide 9

Slide 9 text

9 兎にも角にも重い! オブジェクトを追加するのも、プロパティを変えるのも、何もかもが遅くて全然修正作業が進まない

Slide 10

Slide 10 text

10 ホント参った バグ対策で緊急な修正が必要になったけど、このせいでいろいろままならず・・・

Slide 11

Slide 11 text

11

Slide 12

Slide 12 text

12 オブジェクト名がデフォルトのまま オブジェクト参照している値が計算が間違っているとかで修正しないといけない時に、何の計算をさせている のかが名前から推察できないので、何の処理のものなのかがわからず、一つ一つソースを追っかけないといけ ない

Slide 13

Slide 13 text

13 一度に関数を書き上げてしまう 一気に思いつくままに関数を書き上げてしまい、いざ動作を確認してみるとちゃんとした結果が出ない どこが問題なのかを調べるにも、どこが問題なのかが全然わかってない

Slide 14

Slide 14 text

14 それでほんとデータ取り出せてるの?? 参照したいデータがあるっぽいけど、どうやってデータを取り出せばいいのか理解してやってるのか疑問・・・ なんかそれ、どういう風な仕組みで動いているかわかってるの?

Slide 15

Slide 15 text

15 ホント参った 問題点を一つ一つ紐解いていって・・・一つ一つつぶして・・・

Slide 16

Slide 16 text

16

Slide 17

Slide 17 text

17 どんなテーブルを作ればいいの? 紙資料を基にテーブルを考えてもらったけど・・・ ・・・

Slide 18

Slide 18 text

18 権限? 権限のことをおろそかにして設定をしたため、結合テストでバグが起票される・・・ ※見えちゃいけない人に見えたりとか、更新しちゃダメなのに更新したりとか・・・

Slide 19

Slide 19 text

19

Slide 20

Slide 20 text

20 ラベルオブジェクトの値を計算式に使わない ラベルオブジェクトはあくまでラベル、表示するためのものであって、データの格納場所ではありません 計算結果は、変数やコレクション、データソースに格納するという癖をつけましょう 計算結果は 変数やデータ ソースに格納 しましょう 表示内容は 変数やデータ ソースを元に表 示させましょう

Slide 21

Slide 21 text

21 コーディング規約を守ろう オブジェクト名がデフォルトのままだと、何をしているものなのかが全く分からないため 一つ一つ計算式を見ないとわからない状態になってしまいます。 オブジェクト名は必ずコーディング規約に則って設定するようにして、一目でわかるようにしておこう PowerApps キャンバス アプリのコーディング規約と ガイドライン 忘れないように 作ったらすぐ名前を 付けよう

Slide 22

Slide 22 text

22 一つ一つ確実に動作を確認する 関数を一気に書き上げるのではなく、一つ一つ正しく思った通りに処理されるか確認をしながら 書いていくように心がけましょう 検索結果は データテーブル を使って見ま しょう

Slide 23

Slide 23 text

23 変更頻度や関係性を考慮して考えよう 販売日付 商品ID 販売先ID 個数 販売者ID 2021/1/1 101 2011 10 E01 2021/1/2 102 2011 5 E01 2021/1/3 103 2014 2 R01 2021/1/4 104 2014 30 C01 ID 商品名 販売単価 製造原価 101 商品A 2000 800 102 商品B 15000 7500 103 商品C 35000 15000 104 商品D 120000 80000 ID 企業名 住所 担当者 2011 企業A F県C市 A 2012 企業B O府O市 B 2013 企業C H道S市 C 2014 企業D H県O市 D ID 社員名 部署ID E01 ユーザーA GS01 E02 ユーザーB GS02 R01 ユーザーC GS01 C01 ユーザーD GS02 ID 部署名 部ID 責任者ID GS00 営業部 GS00 S01 GS01 営業部営業 1課 GS00 E01 GS02 営業部営業 2課 GS00 C01 GM00 管理部 GM00 S14 都度変わるデータ(トランザクションデータ)と必要に応じて変わるデータ(マスタデータ)とで分けて それぞれの関係性を考慮したテーブルを作りましょう 商品マスタ 販売ログ 取引先マスタ 社員マスタ 部署マスタ トランザクションデータ マスタデータ 1月3日は 営業1課のユーザーCさんが H県O市の企業Dに 商品Cを2個販売した 7万円で販売して 原価は3万円だから 粗利は4万円 と読み取れるね!

Slide 24

Slide 24 text

24 複数のアカウントを使って権限を確認する 権限を設定するアカウントと、権限を試すアカウントをそれぞれ使って、意図する権限となっているか 作成しながら確認していくのが一番早いです ロールAに 設定しま した 自部署の 参照のみ できました ロールBに 設定しま した 自部署の 参照と投稿 できました 開発者プログラム を使うと自由に 作ることができる から便利!

Slide 25

Slide 25 text

25

Slide 26

Slide 26 text

26 このセクションの内容は、りなたむさんの私見です

Slide 27

Slide 27 text

27 かなり厳しめな私見が含まれますのでご注意ください

Slide 28

Slide 28 text

28 なお、批判の意味で書いているわけではないのでご認識おきを・・・

Slide 29

Slide 29 text

29 感覚で作っている ロジックを組むというより、絵を描いている感覚に近い まずは下書きで線を 書いていこう (オブジェクトを 配置したり 動きを作ったり) 色を塗るのは そのあと (データは後回し) 色を塗ってたら いい感じの色が できたから この色をほかのとこ ろでも使おう

Slide 30

Slide 30 text

30 裏側の処理がどう動いているのか想像できない 処理を実行しているときにどういうアクセスが行われているのか想像できていないので 問題が起きたとき、どこを調べればいいかを考えるところでストップする なんで上司のデータ が取れないんだろう

Slide 31

Slide 31 text

31 違和感を放置しがち 遅くなったり、挙動が思ったのとちょっと違うなどといった違和感があっても 「そんなもんだろう」「たまたま」「クラウドだし」みたいな感じで片づけて対処しないことが多い 15分ぐらい待って るけどまぁいいか

Slide 32

Slide 32 text

32 警告を無視 委任の警告? まぁデータ取れてる から別にいいか 警告が表示されていたとしても、ちゃんと取れているのならということで一旦放置することが多い そしてそのまま忘れ去られて・・・(お察し

Slide 33

Slide 33 text

34

Slide 34

Slide 34 text

35 そもそもプロ開発者ってどういう人? プロ開発者と一括りに言っても、実態はかなり多様な開発者がいます フロントエンド バックエンド IoT AI/機械学習

Slide 35

Slide 35 text

36 市民開発者 is not Simplified 市民開発者はプロ開発者の簡易版・・・ではないです そんなに甘いものではありません ローコードで開発する人ではないです

Slide 36

Slide 36 text

37 市民開発者とは・・・ ビジネスにおいて最も最適なシステムを提案、開発を行っていく人です。 専任技能はなくとも、ビジネスの目標を完全に理解し、それに基づき必要な仕組みやUXを提案し 作り上げていく開発者です。

Slide 37

Slide 37 text

38 ローコード開発はあくまで手段に過ぎない とはいえど、開発者の経験が乏しい状況で、ビジネスに最適なシステムを作り上げていくのは容易では ありません。そこで、そういったシステムづくりをより分かりやすく理解できるようにするために 考案され、作られたのがローコード開発ツールなのです。 学習コストが 比較的低い

Slide 38

Slide 38 text

39 ビジネスに近いからこそ考えることはたくさん ビジネスに近いからこそ、業務課題に対するシステム化について多くのことを考える必要が出てきます 画面設計 データ設計 運用設計 業務課題

Slide 39

Slide 39 text

40 躓くこともあると思うけど、へこたれずに これからも頑張っていきましょう😃😃