タグ

ブックマーク / dev.classmethod.jp (21)

  • 【Prismaとテストシリーズ】PrismaでFactoryBot的にテストデータを作成する方法を調べてみた | DevelopersIO

    「テストのためのデータを作成するのもきついな」「ヘルパー関数を用意するかFactoryBotのようなライブラリを使えたら嬉しいのに」。そんなモチベーションで調べてみました。結論から言うと先人を参考にヘルパーを作ってみました。 こんにちは。AWS事業部モダンアプリケーションコンサルティング部に所属している今泉(@bun76235104)です。 PrismaはTypeScriptでも利用できるORMの一つです。 前回、前々回と「Prismaでテストする際にどうすれば快適にテストに集中できるか」ということを考えてみました。 今回はこれに加えて、「テストをするときのデータ作成を楽にしたい問題」について考えてみました。 さっそくまとめ 調べてみた方法と検証してみた方法 調査してみた方法 既存のライブラリを使う方法 Integrated testing with Prisma.| by Yosuke

    【Prismaとテストシリーズ】PrismaでFactoryBot的にテストデータを作成する方法を調べてみた | DevelopersIO
    gakkiy
    gakkiy 2023/10/03
  • TypeORMがAurora(MySQL)のリーダーエンドポイントに再接続してくれなかったので対策してみた | DevelopersIO

    CX事業部@大阪の岩田です。 現在自分が関わっているシステムではフレームワークにNestJSを、ORMにはTypeORMを採用しています。DBAuroraMySQL互換を利用しており、Auroraのリードレプリカを有効活用できるようTypeORMのデータソースでReplicationを指定しています。データソースの指定は以下のようなイメージです。 { type: 'mysql', replication: { master: { host: 'Auroraのクラスターエンドポイント', ...略 }, slaves: [ { host: 'Auroraのリーダーエンドポイント', ...略 }, ], }, } 先日気づいたのですが、上記のように TypeORMのドライバがmysql replicationを指定している という構成だと、replicationで指定したDBとの接続が

    TypeORMがAurora(MySQL)のリーダーエンドポイントに再接続してくれなかったので対策してみた | DevelopersIO
  • Step Functionsでパラメータをバリデーションする方法 | DevelopersIO

    ステートマシン定義で存在しないパラメータを指定した場合、States.Runtimeエラーが発生し、処理が終了します。このエラーを防ぐために、Choiceステートを使用して、パラメータが存在するかを検証する方法を紹介します。 こんにちは、ヤギです。 今回の記事は Step Functionsのパラメータをバリデーションする方法です。 Step Functionsは、アクション間でパラメータ指定して、受け渡すことができます。 しかし、存在しないパラメータをASLで指定すると、States.Runtimeエラーが発生します。このエラーはリトライ、キャッチすることができず、ジョブが途中終了します。 また、このStates.RuntimeエラーはStates.ALLでは検出されません。 例えばCatchでエラー通知を行なっていた場合、通知処理が実行されないため、ジョブの失敗に気づくことができません

    Step Functionsでパラメータをバリデーションする方法 | DevelopersIO
    gakkiy
    gakkiy 2022/08/12
  • Aurora PostgreSQLのクエリ実行計画管理機能を試してみた | DevelopersIO

    CX事業部@大阪の岩田です たまにはAuroraでも触ってみようとAuroraについて調べていたところ、Aurora PostgreSQLにクエリの実行計画管理機能があるのを見つけました。クエリの実行計画管理といえばOracleのイメージだったのですが、Aurora PostgreSQLでもDBAが自由にクエリの実行計画を管理できるだと?! ということで簡単に触ってみました。 目次 クエリ実行計画の管理とは? やってみる Auroraのインスタンス作成 QPMの有効化 テスト用DBの作成と初期化 QPMを使ってみる まとめ 参考 クエリ実行計画の管理とは? Aurora PostgreSQLのクエリ実行計画管理=Query Plan Management(以後QPMと略します)は、クエリの実行計画をオプティマイザ任せにするのではなく、DBA側で管理するための機能です。 Aurora Po

    Aurora PostgreSQLのクエリ実行計画管理機能を試してみた | DevelopersIO
    gakkiy
    gakkiy 2022/06/29
  • そのセッションマネージャー、本当に必要?プライベートサブネットのEC2への通信方法を考えてみる | DevelopersIO

    ブドウ糖てんこ盛りな ラムネ菓子は良いぞ。 長時間の資格試験、集中力が大事な作業、一気に書き上げたいブログ…… ラムネは全てにおいて有用です。 ▲ 目が"冴えます" 突然の熱いラムネ推しからこんにちは。今まさにラムネをかじっているAWS事業部のShirotaです。 ずっと甘味と言えばチョコレート最推しだったのですが、脳に直接甘味が効くと感じられてからはラムネをべる頻度が増しています。 ただラムネに含まれるブドウ糖の有用性を語ろうと思って検索しようとしたところ、「ラムネ 太る 」という心を貫くサジェストに出くわしたのでこのお話はこれくらいで切り上げたいと思います。 やりすぎ、ダメ、絶対。 EC2インスタンスに接続して作業したい さて、今日はEC2インスタンスに接続して作業を行う時の事をお話ししたいと思います。 いきなりですが、皆さんはどのようにEC2インスタンスに接続していますか? 踏み

    そのセッションマネージャー、本当に必要?プライベートサブネットのEC2への通信方法を考えてみる | DevelopersIO
    gakkiy
    gakkiy 2020/10/13
  • 無償で使えるプロ仕様の映像編集ソフト「DaVinci Resolve」を導入する(for Win/Mac/Linux) | DevelopersIO

    弊社主催のオンラインイベント、Developers.IO 2020 CONNECT! みなさんはもう参加されましたでしょうか。 今回ぼくもこちらに参加し、2の動画をあげました。 その動画編集につかったのが、標題にも書きました Blackmagic Design 社製の「DaVinci Resolve 16」です。 こちらはプロユースの格的な機能が備わっている一方で無償でも使え1、今回のようなセッション動画向けの編集程度であれば、3年落ちのMacBook Pro 13inch2でもそこそこの速度で動きます。 むしろZoomやQuickTime Playerで撮ったままの720p・1080pサイズのMP4ビデオ・AACオーディオ、つまり不可逆圧縮された素材をそのままタイムラインに配置してストレスなく動いてくれるので、サブスクリプションなし・登録のみで使えることを考えれば、今回の用途において

    無償で使えるプロ仕様の映像編集ソフト「DaVinci Resolve」を導入する(for Win/Mac/Linux) | DevelopersIO
  • Amazon RDS for MySQL 8.0のデフォルト認証プラグインはmysql_native_password | DevelopersIO

    MySQL 8.0 になって、デフォルトのユーザー認証方式が新規に導入された caching_sha2_password に変わりました。 クライアント(libmysqlclient)も caching_sha2_password に対応した 5.7.23 以降 または 8.0 系である必要があるため、接続エラーをきっかけにこの仕様変更を知り、デフォルトの認証方式を mysql_native_password に変更して乗り切っている方も多いようです。 一方で Amazon RDS for MySQL 8.0 のデフォルトのユーザー認証は mysql_native_password のままのため、特別な対応は不要です。 今回は MySQL のデフォルトのユーザー認証方式の確認方法 caching_sha2_password での接続方法 を調べたので、共有します。 Amazon RDS f

    Amazon RDS for MySQL 8.0のデフォルト認証プラグインはmysql_native_password | DevelopersIO
  • CloudFront + S3 によるCDN (Cache Distribution パターン) 構築手順 | DevelopersIO

    渡辺です。 4月でも札幌は雪が降りますが、異常気象でもなんでもなく平常運転です。 今日は、いわゆるCache Distribution パターンでのCDN構築手順をまとめておきます。 CloudFrontの細かい設定は行いません。 S3を静的サイトホスティングで公開し、CloudFrontをキャッシュサーバとして設定し、独自ドメインで公開します。 構築手順 構築は以下の手順で行います。 S3バケットを作成し、静的サイトホスティングで公開する CloudFrontを作成し、オリジンにS3バケットを設定し、代替ドメインを設定する Route53に代替ドメインのCNAMEレコードを追加する S3バケットの設定 S3バケットを作成し、静的サイトホスティングで公開します。 S3バケット名は、最終的に公開するドメインとするのが無難でしょう(例: cdn.example.com)。 バケットを作成したな

    CloudFront + S3 によるCDN (Cache Distribution パターン) 構築手順 | DevelopersIO
    gakkiy
    gakkiy 2017/08/21
  • ELBの挙動とCloudWatchメトリクスの読み方を徹底的に理解する | DevelopersIO

    よく訓練されたアップル信者、都元です。ELBはAWSにおけるWebシステムを構築する場合、ほぼ確実に利用するコンポーネントとして不動の地位を確立しつつあります。 利用方法としては、ELBを作成して配下にWebサーバを配置するだけというお手軽さがあり、非常に利用しやすいのも大きなメリットです。しかし、ELBの詳細な挙動について、しっかり理解できているでしょうか。エントリではいつも利用しているELBについて、ちょっと深く突っ込んでみました。 ELBのロードバランシング戦略 ELBの配下には複数のAZにまたがるようにインスタンスを配置するのが一般的です。(cf. AWSにおける可用性の考え方) ELBを作成すると、DNS名が付与されますが、クライアントがELBにアクセスする際、まずこのホスト名をIPアドレスに変換するDNSの正引きリクエスト(下図中の緑色の矢印)を行います。digコマンドを使っ

    ELBの挙動とCloudWatchメトリクスの読み方を徹底的に理解する | DevelopersIO
    gakkiy
    gakkiy 2017/03/01
  • iOS 10 の記事一覧 | DevelopersIO

    [Xcode 8.3] Dynamic Typeをテキストコンポーネントに自動反映する設定をInterface Builderで行う

    iOS 10 の記事一覧 | DevelopersIO
  • AWS CloudFrontを使ってWordPressのメディアファイルだけS3に配置する | DevelopersIO

    森永です。 前回の記事でWordPressにアクセスできるところまでいきました。 引き続き構築を行っていきます。今回の手順は順序を変えるとうまくいかないことがありますのでご注意下さい。 おさらい こんな構成を作っていきます。 今回構築のメインとなるのは、CloudFrontの部分です。 CloudFrontにはURLによって振り分け先を変えるリバースプロキシの機能がありますので、メディアファイルを参照する場合のみS3に向くように設定をしていきます。 WordPressの基設定 プラグインのセットアップ Beanstalkで作成されたサーバは、AutoScalingで起動されているEC2インスタンスのため、基的にローカルにファイルを保存してはいけません。そのため、来サーバのローカルに格納される画像などのメディアファイルは、プラグインを使用してS3に格納するようにします。 管理画面から、

    AWS CloudFrontを使ってWordPressのメディアファイルだけS3に配置する | DevelopersIO
  • クラスメソッド2次元社員めそ子のコーナー | DevelopersIO

    こんにちは、めそ子です。いつもは広報兼人事担当として、クラスメソッドをアピールするための活動をしていますが、今回は僭越ながら、少しだけ、私のことについてお話しさせてください。 クラスメソッドの二次元社員・めそ子のプロフィール

    クラスメソッド2次元社員めそ子のコーナー | DevelopersIO
  • OpenStreetMapサーバを自作する(Install OpenStreetMap on AWS EC2/Ubuntu14.04) | DevelopersIO

    OpenStreetMapサーバを自作する(Install OpenStreetMap on AWS EC2/Ubuntu14.04) 下記エントリにて、TMS(Tableau Map Service)という仕組みを使い、Tableauから背景地図の設定を追加する為の手順をご紹介しました。 TMS(Tableau Map Service)ファイルを使って表示する背景地図情報を増やす | Developers.IO このエントリの最後で『アクセス負荷を掛け過ぎるとアク禁喰らうかもしれないので気を付けてね』的な文章を記載しましたが、TMSの対象リソースとなっている『OpenStreetMap』では代替策についても用意がなされていました。その手段の1つが『自前のOpenStreetMapサーバを用意する』です。(※下記リンクにその辺りの記載があります) Alternative OpenStree

    OpenStreetMapサーバを自作する(Install OpenStreetMap on AWS EC2/Ubuntu14.04) | DevelopersIO
  • [iOS] チーム開発するなら Storyboard を分割セヨ | DevelopersIO

    はじめに チームで開発する際には、ソースコードを Git で管理していることが多いかと思いますが、いくら注意していたとしていても起こるのがコンフリクトです。 コンフリクトすること自体は大した問題ではありません。手動で差分を取り込めばそれでOKです。 Storyboard を除いて。。 Storyboard のコンフリクト 実際に経験したことのある人はよくご存知かと思いますが、Storyboard のコンフリクト解消は一筋縄にはいきません。 Storyboard のコンフリクトは解消できないわけではないですが、多くの時間がかかり開発効率を悪化させるので、できるなら避けたいことです。 Storyboard を分割しよう アプリに複数の機能があると、タブで画面切替を実現することがよくあると思います。こういった場合にタブの遷移先の画面毎に Storyboard を分割すれば、複数ブランチで同時にU

    [iOS] チーム開発するなら Storyboard を分割セヨ | DevelopersIO
  • AWS上にLAMPのBlue-Green Deployment環境を構築する | DevelopersIO

    よく訓練されたアップル信者、都元です。 先週土曜日にJAWS DAYS 2014でお話したCloudFormationセッションの一節で、Blue-Green Deploymentを実現するLAMP環境について触れました。この「Blue-Green Deployment」という言葉の出どころは、私の尊敬する人でもあるMartin Fowler氏の記事 BlueGreenDeployment(2010年) のようです。 Blue-Green Deploymentとは TODO…じゃなくてw(自分で傷口を抉る) 要するに、2つの独立したアプリ動作環境(要するにサーバ群)を用意して、それぞれをBlue, Greenと名づけます。そして、ここでは現在Blueがライブ(ユーザに提供中の番環境)であるとします。 リリース時には、Green側に新バージョンのアプリをデプロイして動作確認を行います。問題

    AWS上にLAMPのBlue-Green Deployment環境を構築する | DevelopersIO
  • Treasure Dataの新データ転送ツールEmbulkを触ってみた #dtm_meetup | DevelopersIO

    ども、大瀧です。 日開催されたデータ転送ミドルウェア勉強会で、開発者の@frsyukiさんによって語られたEmbulkを早速触ってみました。 Embulkとは EmbulkはOSSのデータ転送ソフトウェアです。もう少し細かく分類するとBulk Loaderと呼ばれる、バッチ処理のためのデータ読み込み、変換処理を行う機能を持ちます。特徴は柔軟なプラグイン構造で、データを読み込むInputPlugin、データを出力するOutputPlugin、さらに読み込み処理自体もExecutorPluginと、機能のほとんどをプラグインとして後から追加、カスタマイズできるよう高度に抽象化されたアーキテクチャになっています。データのハンドリングもプラグインでの実装を想定しているようなので、ここまで来るとミドルウェアというより、データ転送のインターフェースを定義するフレームワークの実装、という方が近い感じか

    Treasure Dataの新データ転送ツールEmbulkを触ってみた #dtm_meetup | DevelopersIO
    gakkiy
    gakkiy 2015/11/19
  • [iOS] 知っておいて損はない App Store のアプリのリンク URL についての Tips | DevelopersIO

    アプリリンク iOS アプリが完成してリリース申請して Ready for Sale になったら、次に待っているのはアプリの告知です。アプリを Web サイトで公開したりシェアしたりするときに使うのがアプリのリンク URL ですが、このリンク URL に関するちょっとした小ネタをご紹介したいと思います。 Link Maker まずはじめにリンクの作成方法です。iTunes Store、App Store、iBooks Store、Mac App Store のリンクを作成する 「Link Maker」 というツールが公式で用意されています。Link Maker を使うとアプリを検索するだけで簡単にリンク URL を生成することができます。 https://linkmaker.itunes.apple.com/ 検索ワードを入力すると、自分のアプリを見つけることができます。 アプリの右側にあ

    [iOS] 知っておいて損はない App Store のアプリのリンク URL についての Tips | DevelopersIO
  • jqを活用してAPIレスポンス等から欲しい情報だけを抽出する【中級編】 | DevelopersIO

    よく訓練されたアップル信者、都元です。引き続きjqのお話。日は中級編です。 日のお題は、このような入力値 example.json を利用します。 { "foo": { "bar": [ { "key": "1-key", "value": "1-value" }, { "key": "2-key", "value": "2-value", "option": "2-opt" } ], "baz": [ { "key": "3-key", "value": "3-value", "option": "3-opt" }, { "key": "4-key", "value": "4-value" } ] } } 配列の皮むきとオブジェクトの皮むき 初級編では「配列の展開」として.[]という記述を解説しました。 $ cat example.json | jq '.foo.bar' [ { "

    jqを活用してAPIレスポンス等から欲しい情報だけを抽出する【中級編】 | DevelopersIO
  • Spring BootでつくるCRUD API | DevelopersIO

    はじめに 最近はRubyRailsで開発することが多い自分ですが、使用したいライブラリがJava用に開発されている場合などの選択肢として、JVM上で実行できるフレームワークにも興味を持ち始めました。 いくつかのフレームワークを検討したのですが、その中からSpring Bootを選び、簡単なCRUDのAPIを作ってみました。Spring Bootを選んだ理由は、以下の通りです。 JVM上で実行できる フルスタックフレームワーク デプロイが簡単 ドキュメントが(割と)豊富 Spring Bootについては弊社中村が以前の記事でも書いていますが、今回はSpring Bootの開発環境の構築と、実際に作成したCRUD APIのソースについて書きたいと思います。 開発環境について 1.前提条件 開発マシンとしては、WindowsMacのどちらでも大丈夫です。予めJDK8をインストールしておくのと

    Spring BootでつくるCRUD API | DevelopersIO
    gakkiy
    gakkiy 2014/11/27
  • Apache DoS攻撃にそなえる | DevelopersIO

    mod_evasiveをインストールする ApacheのDoS攻撃対策で有名なところとしてmod_evasiveやmod_dosdetectorが有名どころですね。 今回はmod_evasiveをインストール&セットアップしてみます。 セットアップ環境はお決まりのAWS Amazon Linuxです。早速ソースをダウンロードしてきて、セットアップします。 事前にApacheモジュール(mod_so.c)が有効かを確認します。 # /usr/local/apache2/bin/apachectl -l Compiled in modules: core.c ・ ・        多いので省略(そもそも多いのも改善の余地はありますがw) ・ mod_env.c mod_setenvif.c mod_version.c prefork.c http_core.c mod_alias.c mod_