Upgrade to Pro — share decks privately, control downloads, hide ads and more …

初学者がやりがちなトラブル3選と解決策

Ryota Nakamura
February 19, 2022

 初学者がやりがちなトラブル3選と解決策

Ryota Nakamura

February 19, 2022
Tweet

More Decks by Ryota Nakamura

Other Decks in Technology

Transcript

  1. 1
    というか
    市民開発者?

    View full-size slide

  2. ステータス
    りなたむ / 中村 亮太 / @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)

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  19. 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万円
    と読み取れるね!

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide