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

HaskellでIoTやってます/iot_cases_with_haskell

CycloneT
November 09, 2019

 HaskellでIoTやってます/iot_cases_with_haskell

Haskell JP 2019のLTで話した内容です。
HaskellをWebAPIのバックエンドとしてIT/IoT向けに活用している事例の紹介です

CycloneT

November 09, 2019
Tweet

Other Decks in Technology

Transcript

  1. © Upside LLC. ⾃⼰紹介&会社紹介 ¤ ⾃⼰紹介 ¤ 藤原 淳(CycloneT :

    @cyclone_tr) ¤ 元々は無線技術が専⾨ ¤ 去年からIoTコンサル会社でIoT⽀援をやってます ¤ Haskell歴は短いです。「型操作完全に理解した」 ¤ 会社紹介 ¤ Upside合同会社 ¤ 社員4⼈(代表+エンジニア2⼈+アシスタント) ¤ IT / IoT⽀援に関することならなんでも
  2. © Upside LLC. Haskellとの出会い ¤ 前の会社(MVNO︓いわゆる「格安SIM」会社)にて、 B2C販売システムをPHPで開発(委託) → バグ対応に苦労した ¤

    B2B開発の技術選定中にHaskellを知った → 「コンパイルが通る=ちゃんと動く」 の世界にびっくり ¤ 今の会社でのメイン内製ツールに 「Haskell使わないとスケジュール的にミートしない」
  3. © Upside LLC. プロジェクト⼀覧(2018/5〜2019/11) プロジェクト名 実施場所 ステータス サーバ / フロント

    / エッジ 養殖業⽀援 バリ島(インドネシ ア) 実証実験 Haskell / Elm (⼀部PHP) 浮⿂礁漁⽀援 ⽯垣島(沖縄県) 実装実験 Haskell (Reflex) / GPS受信 機 延縄漁⽀援 ⽯垣島(沖縄県) 実証実験 Haskell (Reflex) ⾷事予約管理 ⼩⾕村(⻑野県) 本運⽤ Haskell / Elm 安否確認 ⼩⾕村(⻑野県) 実証実験 Haslell / Elm / 環境セン サー(Sigfox) インフラの障害検知 ⾸都圏にて検証中 開発 Haskell / Elm / 障害検知セ ンサー(LTE) PCパーツ販売 オンラインサービス 本運⽤ PHP (Laravel) 技術資料ダウンロー ド管理 オンラインサービス 本運⽤ Haskell / Elm
  4. © Upside LLC. Haskellの利⽤パターン ¤ WebAPI(バックエンド) ¤ Servant ¤ Persistent/Esqueleto(他のORMにおきかえるかもし

    んない…) ¤ Elm-export(他のものに置き換えしたいが時間が) ¤ Xlsx(エクスポート機能は⼈気) ¤ フロントエンド+バックエンド ¤ Reflex(すいません、まだ何も語れません)
  5. © Upside LLC. 中⼩企業・⾃治体向けのIoT案件 ¤ 実装としては、ある意味「Webアプリ」のような感じ ¤ ユーザは「何が欲しいか」がわからない ¤ 本当に欲しいものを掘り出せるかどうかが勝負

    ¤ そうなると…. ¤ 機能追加、修正はあたりまえ ¤ リファクタリングをがつがつできないと厳しい ¤ (開き直って)「要求仕様を固めるために実装する」 スタイル ¤ 設計と実装を密結合にしちゃえ〜
  6. © Upside LLC. Haskellを使うメリット ¤ ビジネス的に ¤ 開発速度と品質が両⽴する ¤ 規模が⼤きくなってもしんどくならない

    ¤ エンジニアリング的に ¤ 皆さんご存じですよね ¤ 個⼈的に ¤ やっぱり楽しい
  7. © Upside LLC. まだいい答えはないですが ¤ Haskellerの採⽤ ¤ 会社の現状としては「実装以外に求められる要素が多 すぎる」 ¤

    Haskellを扱う会社を増やす ¤ 今後の活動の⼀環としたい 採⽤とかはともかくとして、「HaskellでIoTに取り組んで みたい」という⽅は、懇親会でお気軽に声をかけてくださ いな