エムスリーテックブログ

エムスリー(m3)のエンジニア・開発メンバーによる技術ブログです

業務システムもUXに拘る。業務整理から始めよう

エムスリー、プロダクトマネージャーの坂(ばん)です。現在、社内業務改善に取り組んでいます。業務システム開発においてもUX/ユーザー理解が重要であること、ユーザー理解の前段に業務理解があることに気づきましたので共有します。また、業務整理方法をこれから始める方に向け、業務整理の進め方を前職SIer時代の経験をもとに記載します。

続きを読む

JSONの表現形式を変えずにキーでソートするsort-json-by-object-keyを作った

エムスリー エンジニアの岩本です。

3年前になりますが、弊社の滝安(@juntaki)が投稿した下記の記事にあるGolden file testingが現在もプロダクトに組み込まれてメンテナンスされています。

www.m3tech.blog

このGolden file testingを扱いやすくするためのツールを作ったので紹介します。

www.npmjs.com

f:id:cpw:20210913133445j:plain
ソートのイメージ

続きを読む

Flutterアプリでのデザインマネジメント

エンジニアリンググループ 新規プロダクト支援チーム所属の荒谷(@_a_akira)です。

あまり知られていないかもしれませんが弊社では、2019年末から既に6つの新規アプリをFlutterで実装しリリースしています。 先日リリースされたデジカルスマート診療(以降デジスマアプリ)という医療機関向けに予約やキャッシュレス決済を導入・利用できるアプリもFlutterで作成しています。

digikar-smart.jp

このサービスの立ち上げからリリースまでの開発期間は約3ヶ月で開発側の人数もPdM1人、アシスタントPdM1人、デザイナー1人、バックエンド2人、WEB フロント(クリニック向け管理画面)1人、アプリ(患者向け, Flutter)1人の構成で開発しています。 このあたりの開発体制については先日記事が上がっているので興味のある方はそちらを見てみてください。

www.m3tech.blog

今日はこの少ない人数と短い開発期間でリリースするために行ったデザイン管理方法をデザイン側、アプリ開発側の両視点から解説したいと思います。

続きを読む

テスト設計コンテスト2021 決勝に参加します

f:id:j-kubota:20210901114148j:plain

こんにちは。エムスリーエンジニアリング G QA チームの窪田(@kubota_junshi)です。来る9月18日(土)、テスト設計コンテスト'21 OPEN クラスの決勝戦が開催されます。エムスリーQAチームも予選を突破したので決勝戦に参加します。予選と決勝の準備で得た色々な経験と学びを共有したいと思います。

  • テスト設計コンテストとは
  • テスト設計コンテストの流れ
  • エムスリー QA チームでの取り組み
    • 分析開始
    • 紆余曲折
    • 予選本番
  • 感想
    • 大変だったこと
    • 学び
  • 決勝に向けて
  • We're hiring!
続きを読む

Luceneのセグメントファイルを解剖してみた

AI・機械学習チームの丸尾 @snowhorkです。

業務では主に検索基盤の開発を担当しており、検索チームではElasticsearch・Luceneのコードリーディング勉強会が毎週行われています。

この勉強会は、実際の業務にも直接役立つことが多々ある素晴らしい勉強会となっています。過去には、クエリの挙動が想定と違うというバグ報告があがったのですが、その時はKuromoji AnalyzerとPhrase Queryの組み合わせの問題で挙動が意図しないものであったと内部実装レベルで理解できました。

今回は、私が読んだLuceneのインデックスのファイル構造の一部を読み解いたので、まとめを紹介したいと思います。

続きを読む

マークダウンパーサを作ろう

デジカル開発メンバーの末永(@asmsuechan)です。電子カルテの開発を通して医師や医療事務の方の「書く」をサポートしています。

みなさん、マークダウンでテキストを書いていますか?私はマークダウンで書くことが好きで、プレーンテキストでもほとんどのメモをマークダウン記法で書いてしまいます。この記事もはてなのマークダウンを使って書いています。*1

マークダウンを使えるサービスを挙げていくとGitHubやStackOverflowなど開発者ならば誰しも知るサービスが多く出てきます。このことからもわかるように、マークダウンはもはや開発者とは縁の切れないものとなっています。

しかし、普段の開発時によく使うマークダウンですが、実際にはどのような仕組みで動いているのかを知る人は少ないのではないかと思います。

この記事ではオリジナルのマークダウンパーサ「minute」をTypeScriptを使ってハンズオン形式で作っていくことでマークダウンの内部実装への理解を深めます。

※マークダウンパーサの開発は筆者の趣味でありデジカルの業務とはなんの関係もありません。

*1:ちなみに筆者は以前Boostnoteというマークダウンメモアプリのコミッターとして活動していました。

続きを読む

検索基盤チームのElasticsearch×Sudachi移行戦略と実践

f:id:abctail30:20210807174702p:plain

エムスリーエンジニアリンググループ AI・機械学習チームでソフトウェアエンジニアをしている中村(@po3rin) です。最近、AI・機械学習チーム配下の検索基盤チームでElasticsearchのAnalyzerをKuromojiからSudachiに移行しました。今回はSudachi移行の背景と、Sudachiの概要、実際に移行するにあたってのプロセスや注意事項をお話しします。

続きを読む