タグ

ブックマーク / www.m3tech.blog (6)

  • SpringBoot + Kotlin + GraphQL のアプリ向けスキーマ設計・実装のプラクティス - エムスリーテックブログ

    こんにちは、エムスリー エンジニアリンググループ マルチデバイスチームの藤原です。 昨年末に医師向けのスマホアプリを新たにリリースしました。 スマホアプリ向けの BFF(Backends For Frontends) も新規に開発したのですが、そこには SpringBoot + Kotlin + GraphQL なアプリケーションを採用しています。 GraphQL はチームでの採用は初めてで、私もこのプロジェクトで初めて触りました。 そのような状況だったので GraphQL 周りについては試行錯誤を重ねることとなったのですが、今回はその開発の中で見えてきた プラクティス をいくつか紹介したいと思います。 これから SpringBoot + Kotlin + GraphQL な開発をされる方の参考になれば幸いです。 ボネリークマタカ(某GraphQLの入門書*1の表紙にもこの鳥が描かれている

    SpringBoot + Kotlin + GraphQL のアプリ向けスキーマ設計・実装のプラクティス - エムスリーテックブログ
  • Pythonのパッケージ周りのベストプラクティスを理解する - エムスリーテックブログ

    砲撃する自走砲(PzH2000自走榴弾砲)。自走砲は戦車によく似ていますが、戦車ではありません。*編とは関係ありません。 こんにちは、エムスリー基盤開発チーム小です。 Pythonのパッケージ管理周りでは、 「setup.pyでrequirements.txtを読み込むのが普通なんですよね?」 「pipenv があれば venv はオワコンなんですね?」 「pyenvは要らないんですよね!?」 「Python歴史が古い分、Rubyなどに比べてカオス」 みたいな混乱をよく目にします。 実際、複数のツールがあって(一見)複雑です。また「なぜこうした状況にあるのか」がドキュメント化されているわけでもありません。 なので、私なりに整理してみることにしました。 ※「追伸」を追加しました。この記事では汎用プログラミング言語としてPythonを使うケース(Webアプリとか、CLIツールとか、ライブ

    Pythonのパッケージ周りのベストプラクティスを理解する - エムスリーテックブログ
  • SpringBootのdockerイメージを必要最小限に絞りたい(2019年9月版) - エムスリーテックブログ

    こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 先日の中村の記事で宣言してしまったので、 今回は「医師版Stack Overflow」(仮名) のSpringBootのdockerイメージを 必要最小限にまで小さくする際に試したことをまとめました。 なお、ちょっと検索すると先人の記事が色々出てきますが、 当時はまだなかったdockerイメージや、JDKの機能の違いにより、今ではちょっと古い部分もあります。 今回の記事も、半年もしないうちに古くなると思うので、2019年9月時点での方法だと思って読んでいただけると幸いです。 メットライフドームは埼玉県所沢市にあるドーム球場。文には特に関係ありません。 小さいdockerイメージのメリット イメージのサイズを小さくしたいと書きましたが、 そもそも、そのメリットをネットで調べてみてもあまり明確な答えは見つか

    SpringBootのdockerイメージを必要最小限に絞りたい(2019年9月版) - エムスリーテックブログ
  • bashスクリプティング研修の資料を公開します - エムスリーテックブログ

    こんにちは、エンジニアリングGの中村です。 以前にこのブログにてエムスリーでの社内研修について紹介しました。今回は、この中でのbashスクリプティング講座の資料を公開します。 www.m3tech.blog 弊社の中でもいろいろな用途でbashが使われていますが、bashは簡単に利用できるもののプログラミング言語としてはバグを生みやすい、辛い言語だと思います。 ここで紹介しているのはいわゆるコーディング規則というよりも、バグ防止と可読性向上のためのルールをTips集的にまとめたものです。 bashにおいてまだまだ注意するところはありそうですが、多少なりともわかりにくいスクリプトの削減になればと期待しています。 [追記: 2018-08-22] はてブにて以下のコメントをいただきました。 bashスクリプティング研修の資料を公開します - エムスリーテックブログ bashで50行以上になった

    bashスクリプティング研修の資料を公開します - エムスリーテックブログ
  • AWS FargateでElixirのコンテンツ配信システムを本番運用してみた - エムスリーテックブログ

    こんにちは、エムスリーエンジニアの園田です。 エムスリーでは医療・ヘルスケアサイト向けのコンテンツ配信システムであるChuoiというサービスを運用しています。 以前このブログでも紹介しましたが、このサービスは Elixir/Phoenix で実装されていて、ElasticBeanstalk のCustom Platformを使って運用していました。 www.m3tech.blog 2018/07/04 に AWS Fargate が東京リージョンでローンチされたので、ElasticBeanstalk から Fargate での運用に切り替えました (2018/07/13 切り替え完了)。その際の手順やTipsを書きたいと思います。 今回は構成の説明のみで、実際のコードなどは別のポストで解説していきます。 2018/07/30 追記 実装編の記事を書きました。 www.m3tech.blog

    AWS FargateでElixirのコンテンツ配信システムを本番運用してみた - エムスリーテックブログ
  • デプロイの度に障害が起きるシステムを安全にした話 - エムスリーテックブログ

    鉄道では個人の注意力だけでなくシステムにより安全を確保している。 写真は「タブレット閉塞式」のタブレットを交換する様子。1つの区間にはタブレットを持った列車しか進入できないため、衝突事故を防ぐことができる。(作者 Spbear [CC BY-SA 3.0 ], ウィキメディア・コモンズより) こんにちは、エムスリーでソフトウェアエンジニアとして働いている小です。 私は基盤開発チームという、エムスリーの複数のサービスにまたがって使われるシステムを開発・運用するチームに所属しています。 基盤開発チームが担当するシステムの1つに、会員向けメルマガの配信システム「メールコンシェルジュ」があります1。 エムスリーはメールコンシェルジュで1日数十万通のメルマガを配信しており、機械学習でメルマガを最適化する施策2などもメールコンシェルジュの存在が前提になっています。 このようにエムスリーにとって重要な

    デプロイの度に障害が起きるシステムを安全にした話 - エムスリーテックブログ
  • 1