はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena

はてなブックマーク

トップへ戻る

  • 総合
    • 人気
    • 新着
    • IT
    • 最新ガジェット
    • 自然科学
    • 経済・金融
    • おもしろ
    • マンガ
    • ゲーム
    • はてなブログ(総合)
  • 一般
    • 人気
    • 新着
    • 社会ニュース
    • 地域
    • 国際
    • 天気
    • グルメ
    • 映画・音楽
    • スポーツ
    • はてな匿名ダイアリー
    • はてなブログ(一般)
  • 世の中
    • 人気
    • 新着
    • 新型コロナウイルス
    • 働き方
    • 生き方
    • 地域
    • 医療・ヘルス
    • 教育
    • はてな匿名ダイアリー
    • はてなブログ(世の中)
  • 政治と経済
    • 人気
    • 新着
    • 政治
    • 経済・金融
    • 企業
    • 仕事・就職
    • マーケット
    • 国際
    • はてなブログ(政治と経済)
  • 暮らし
    • 人気
    • 新着
    • カルチャー・ライフスタイル
    • ファッション
    • 運動・エクササイズ
    • 結婚・子育て
    • 住まい
    • グルメ
    • 相続
    • はてなブログ(暮らし)
    • 掃除・整理整頓
    • 雑貨
    • 買ってよかったもの
    • 旅行
    • アウトドア
    • 趣味
  • 学び
    • 人気
    • 新着
    • 人文科学
    • 社会科学
    • 自然科学
    • 語学
    • ビジネス・経営学
    • デザイン
    • 法律
    • 本・書評
    • 将棋・囲碁
    • はてなブログ(学び)
  • テクノロジー
    • 人気
    • 新着
    • IT
    • セキュリティ技術
    • はてなブログ(テクノロジー)
    • AI・機械学習
    • プログラミング
    • エンジニア
  • おもしろ
    • 人気
    • 新着
    • まとめ
    • ネタ
    • おもしろ
    • これはすごい
    • かわいい
    • 雑学
    • 癒やし
    • はてなブログ(おもしろ)
  • エンタメ
    • 人気
    • 新着
    • スポーツ
    • 映画
    • 音楽
    • アイドル
    • 芸能
    • お笑い
    • サッカー
    • 話題の動画
    • はてなブログ(エンタメ)
  • アニメとゲーム
    • 人気
    • 新着
    • マンガ
    • Webマンガ
    • ゲーム
    • 任天堂
    • PlayStation
    • アニメ
    • バーチャルYouTuber
    • オタクカルチャー
    • はてなブログ(アニメとゲーム)
    • はてなブログ(ゲーム)
  • おすすめ

    WWDC25

『zenn.dev』

  • 人気
  • 新着
  • すべて
  • API設計とURLの命名規則

    3 users

    zenn.dev/dove

    追記 2024/05 GoogleのAPIデザインガイドが参考になると思います。 書籍 APIデザイン・パターン (Compass Booksシリーズ) ただしカスタムメソッド:methodが適用できるかどうかは使っているフレームワークのルーティングに夜と思います。 結論 完全リソースベースの命名、完全コマンドベースの命名ではなく、リソースベースにうまくコマンドを取り入れるとAPIが設計しやすい。またコマンドが増えすぎたときは、そこにリソースが隠れていないか探し、APIのリファクタリングを行う。 Restの流行とリソースベースの命名規則 Railsの影響でRestfulが流行って、URLをリソースの階層とそれに対するHTTPメソッドで表現する方法が流行った。 例えばユースケース 猫一覧表示 猫新規作成 猫情報更新 猫情報削除 の場合はつぎのようになる。

    • テクノロジー
    • 2023/08/09 10:03
    • 結局マスタとトランザクションってなんなのか

      3 users

      zenn.dev/dove

      ネットで定義を調べてみると... データベース設計において、マスタテーブルとトランザクションテーブルという2つの分け方をもとに考えることがある。しかし、あらためてマスタとトランザクションとは何なのか、調べてもいまいちピンとこない。 ネットで調べると以下のような説明が出てくる。 マスタテーブル ユーザーが変更できないデータ あらかじめ登録しておくデータ トランザクションを記録するさいにポチポチ選択する系データ あまり変更することの無いデータ 顧客データや商品データなど ヒトやモノとか トランザクションテーブル ユーザーが登録するデータ 作成してから1週間くらいは高頻度な変更が発生する可能性がある 日報データや売上や活動履歴とか コトやイベント系とか なんとなく、マスタが初回に作成するリードオンリーっぽい情報を管理するもので、トランザクションが作業時に発生するデータであることがわかる。しかし、

      • テクノロジー
      • 2023/05/21 12:22
      • あとで読む
      • React useRefのパターン ~どのようなときに使う?~

        5 users

        zenn.dev/dove

        useRefとは 公式サイトによれば、 useRef は、.current プロパティが渡された引数 (initialValue) に初期化されているミュータブルな ref オブジェクトを返します。返されるオブジェクトはコンポーネントの存在期間全体にわたって存在し続けます。 まずは ref のことを DOM にアクセスする手段として理解しているかもしれません。<div ref={myRef} /> のようにして React に ref オブジェクトを渡した場合、React は DOM ノードに変更があるたびに .current プロパティをその DOM ノードに設定します。 しかしながら useRef() は ref 属性で使うだけではなく、より便利に使えます。これはクラスでインスタンス変数を使うのと同様にして、あらゆる書き換え可能な値を保持しておくのに便利です。 と書いています。useR

        • テクノロジー
        • 2023/03/03 14:39
        • react
        • あとで読む
        • NodeJSのDocker構築 ~開発環境パターンとCI構築まで~

          3 users

          zenn.dev/dove

          追記 Docker上で開発するパターンを紹介していましたが、一番いいのはDocker上で開発しないことだなと感じました。nodejs自体環境ごとの差分が少なく(macでは動くけどwindowsでは動かないみたいなあれ)、Docker上で開発すると遅いです。あくまでDockerはコンテナデプロイ用と割り切ったほうがいいかもしれません。 2年間育ててきたDockerfileがいい感じになってきたのでノウハウ共有します。サンプルコードはNestJSを利用していますが、Expressなどの他のフレームワークでも参考になると思います(NestJSの前はExpressで運用していたので)。あとprisma初めて使ったので書き方違うかもです。その時は指摘ください。 サンプルコード この記事がカバーしているのは ローカルで Docker for Desktop を使って開発をする。 CIサーバー(GitH

          • テクノロジー
          • 2023/02/05 20:03
          • [Express, NestJS対応] バックエンドのテスト ~基礎知識編~

            3 users

            zenn.dev/dove

            参考資料 NodeJSにおけるテストのベストプラクティス テストピラミッド テストトロフィー テストに関する考え方 テストにはグラデーションがあります。1つのクラスや関数しかテストしないユニットテストから、複数のクラスや関数の組み合わせをテストするインテグレーションテスト、そしてすべてをまとめてテストするE2Eテストまでです。これらをよくテストピラミッドやテストトロフィーを使って、どれくらいのテスト量があると理想だよと教えられます。 ユニットテストとインテグレーションテストの違い 複数のクラスや関数を1つのテストでチェックできるなら、ユニットテストをせずに、インテグレーションテストだけ(あるいはE2Eテストだけ)でいいじゃないかと思うかもしれません。ユニットテストの有効性について説明します。 クラスAがクラスBとクラスCを利用しているとします。 テストのパターンとしては クラスCoreをユ

            • テクノロジー
            • 2022/11/19 23:57
            • 技術書を読んでも頭に入ってこないし、プログラミングスキルが上がらないのはなぜか?

              445 users

              zenn.dev/dove

              もくもく会で話している中で、「技術書を読んでも頭に入ってこないし、プログラミングスキルが上がらない」という話になり、そのよさげな説明を思いついたので共有します。 具体的な話としては「本を読んでもスキルアップした感じがしない。それで本をよむモチベがわかない。」というものでした。これは僕もとても共感します。バックエンドエンジニアでいくつか有名な本があり(例えばPoEAAやDDD本)、読まないといけないと思い手を出しました。しかし、何を言っているかわからずひたすらに苦痛で、読み切ることができませんでした。結局これらを読み終えることができたのは、業務経験を4年ほど積んだあとでした。 なぜ、本を読んでも苦痛なのか、頭に入ってこないかを、今振り返ってみると、「全体感」と「土地勘」という例えで説明できるのではと思いました。 まず、前提としてあなたが新しい土地に引っ越してきたとします。その地域のことは全然

              • テクノロジー
              • 2022/11/14 18:47
              • プログラミング
              • あとで読む
              • 学習
              • 勉強
              • 技術
              • 書籍
              • スキル
              • 本
              • programming
              • 考察
              • ベンチャーエンジニア1年目が知っておくべきこと ~前提知識編~

                3 users

                zenn.dev/dove

                現代のベンチャー開発は大きく3の分野が影響しています。 UX リーンスタートアップ(とデザインシンキング) アジャイル開発手法とウォーターフォール開発手法 ただ残念ながらエンジニアの観点でこれらをいい感じにまとめたものは無かったため、僕の観点からまとめてみました。今後起業する人やベンチャーに入るエンジニアの参考になればと思います。 前提知識編 何を作るかとどう作るのか まずは何を始めるにしても「何を作るのか」を決めるフェーズと「どう作るのか」を決めるフェーズを分割したほうがよいです。「何を作るのか」とは、「何を作るのが正解か」と言い換えてもいいかもしれません。多くのプロジェクトには目的があり、その目的を達成するために「何を作るのか」を探るフェーズです。対して、「どう作るのか」は作るものが決まっており、それをどのような手段で作るのかを決めるフェーズです。 なぜ、「何を作るのか」と「どう作るの

                • テクノロジー
                • 2022/11/04 12:10
                • biz
                • ReactでFileのアップロードボタンをカスタマイズする

                  3 users

                  zenn.dev/dove

                  こんにちはハトです。色々の記事をあさっているうちに、ファイルアップロードのやり方の知見がたまったので共有します。 基本 以下のようにinputタグにfileを指定すれば、ファイルエクスプローラー(もしくはファインダー)が開きます。選択したファイルはonChangeコールバックの引数に渡されます。

                  • テクノロジー
                  • 2022/10/27 15:20
                  • あとで読む
                  • jest mock 調査まとめ

                    3 users

                    zenn.dev/dove

                    jestのモックの基本 モック関数と引数や呼ばれた回数の記録(sinonで言うところのspy機能) 基本はモック関数であるjest.fn を利用する。 jest.fn() の返り値自体にmock というプロパティがあり、それにアクセスすることで、何回呼ばれたとか、引数の値はなんだったのかとかわかる。 const mockCallback = jest.fn(x => 42 + x); forEach([0, 1], mockCallback); // The mock function is called twice expect(mockCallback.mock.calls.length).toBe(2); // The first argument of the first call to the function was 0 expect(mockCallback.mock.cal

                    • テクノロジー
                    • 2022/08/18 08:59
                    • test
                    • あとで読む
                    • ECSで開発用と本番用のCodePipelineを作る

                      3 users

                      zenn.dev/dove

                      version: 0.0 Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: <TASK_DEFINITION> LoadBalancerInfo: ContainerName: "app-container" ContainerPort: 3000 ビルド時に必要な環境変数があればssmのパラメータストアから渡す。ssmからも渡せる。 AWS_ACCOUNT_IDとAWS_DEFAULT_REGIONとIMAGE_NAMEに関してはcode buildの環境変数で定義している。 buildspec.yaml version: 0.2 env: parameter-store: DOCKER_USER: dockerhub-user DOCKER_TOKEN: dockerhub-t

                      • テクノロジー
                      • 2022/07/27 17:30
                      • あとで読む
                      • NestJSにおけるクリーンアーキテクチャなディレクトリ構造

                        3 users

                        zenn.dev/dove

                        追記: こちらの記事も書きました! ディレクトリ構造いろいろ ディレクトリ構造って結構悩みますよね。NestJSに限らずいくつかパターンを上げてみたいと思います。 Rails型 僕が最初に学んだディレクトリ構造です。 ├── controllers │ ├── userController.ts │ └── chatController.ts ├── services │ ├── userService.ts │ └── chatService.ts ├── models │ ├── user.ts │ └── chat.ts └── configs ├── presentations │ ├── userController.ts │ └── chatController.ts ├── usecases │ ├── userService.ts │ └── chatService.ts

                        • テクノロジー
                        • 2022/07/15 16:30
                        • あとで読む
                        • NestJSとcognitoでJWT認証を実現するサンプル

                          4 users

                          zenn.dev/dove

                          NestJSとJWT認証で調べて出てくるのは、JWTを自分たちで発行しているやつが多く、Cognitoなど外部がトークン発行してくれる系の認証サンプルが少なかったので、共有します。 公式サイトでは認証に関するページは以下のリンクです。 目標 以下のようにappコントローラーにjwt認証を追加します。このコントローラーにリクエストを送っても、有効なJWTをAuthenticationヘッダに付与しなければ、401エラーで弾かれる仕様です。 @UseGuards(JwtGuard) @Controller() export class AppController { @Get('hello') testGet(): string { return 'Hello!'; } }

                          • テクノロジー
                          • 2022/04/09 08:34
                          • バックエンドアプリケーションがやってることは5つに要約できる

                            7 users

                            zenn.dev/dove

                            バックエンドアプリケーションがやってること 以前こんな記事を見かけました。 そこではアプリケーションのやっている内容を簡潔にまとめており、とても理解が深まった覚えがあります。これを僕の視点と経験からさらに解説してみようと思います。 バックエンドアプリケーションのやっている内容は 権限チェック インプット(request body, query, params)のバリデーション ドメインルールチェック CRUDアクション レスポンスをフォーマットし返却 の5つにまとめられます。 class コントローラー { 更新系メソッド(リクエスト){ // 1. 権限チェック if(リクエスト.ユーザー.権限 !== 'アドミン') throw '権限エラー!'; // 2. インプット(request body, query, params)のバリデーション if(!リクエスト.ボディ.ユーザーID

                            • テクノロジー
                            • 2022/04/04 11:51
                            • あとで読む
                            • 権限周りの設計

                              4 users

                              zenn.dev/dove

                              以下の記事を投稿して1年が経ちました。ノウハウが溜まってきたので、現時点で僕が理解している範囲で共有したいと思います。バックエンド向けの記事です。 ここで言うところの権限とは、誰がこの機能を使えるか決めることです。認可と意味は一緒なのかな? 権限パターン 以下のような4つの機能があったとき、 取得 作成 更新 削除 権限管理は以下のパターンがあります。 ユーザーに直接機能を紐付ける(例: ユーザーAは取得のみ可能、Bは作成更新のみ可能)。 機能と権限識別記号を紐付ける(例: permissionがADMINであれば全機能可能。USERであれば取得のみ可能など) ユーザーの属性に応じて機能を紐付ける(例: ユーザーが北海道出身で25歳以下のとき、削除が可能) ユーザーに直接機能を紐付ける 各ユーザーごとに細かく機能を割り当てたいときに便利です。細かく権限管理したくない場合は、今後扱う項目が増

                              • テクノロジー
                              • 2022/04/04 11:39
                              • セキュリティ
                              • 開発
                              • webアプリ開発における環境変数まわりのベストプラクティス

                                345 users

                                zenn.dev/dove

                                nodejsを例に解説します。nodejsでは環境変数はprocess.env.環境変数名でとりだせます。また、開発環境・テスト環境・本番環境をそれぞれNODE_ENVという環境変数にdevelopment test productionと入れる文化があります。 アプリケーションコードに自分が今いる環境(開発|ステージング|本番)を意識させない これはつまり、コード内で環境識別変数(今回で言うところのNODE_ENV)によってif分岐を作らないという意味です。各環境にどのような設定が入るかはアプリケーションコード外にその種類分作成しましょう! bad if(開発環境){ const logger = new Logger({ level: 'debug' }); } else if (ステージング環境){ const logger = new Logger({ level: 'info }

                                • テクノロジー
                                • 2022/03/10 15:17
                                • 開発
                                • あとで読む
                                • Node.js
                                • 設定
                                • javascript
                                • node
                                • development
                                • web
                                • 設計
                                • dev
                                • Amplify SDK のAuthライブラリ解説

                                  5 users

                                  zenn.dev/dove

                                  Authまわり知見貯まるまでは結構むずいので僕のわかる範囲で解説していきます。 公式リファレンス Authライブラリはamazon-cognito-identity-jsのラッパーライブラリ Authライブラリはamazon-cognito-identity-jsのラッパーライブラリです。こちらの機能をamplify向けにインターフェース変えたものです。と解説しようと思ったのですが、GitHubのレポジトリはamplify-jsに統合したみたいですね... フロントエンド用のAPIとバックエンド用のAPI amplifyの他にAWS SDKにはCognitoライブラリが提供されています。以下のドキュメントと先ほどあげた公式リファレンスを比べてみてください。 同じ内容が書いてあることに気づきましたでしょうか?違いといえばAWS SDKのCognitoライブラリのほうには、admin???とい

                                  • テクノロジー
                                  • 2022/02/24 18:39
                                  • AWS
                                  • Cognitoでメールアドレス編集するとログインできなくなる問題

                                    4 users

                                    zenn.dev/dove

                                    2022/05/13 追記 記事の下の方で実現している解決方法について、最近うまく動いていないことを確認しました。サポートに連絡したところ、UpdateUserAttributesの完了のタイミングによってはこちらのコードはうまく動作しないことがわかりました。もしこちらの問題を現時点で解決したい場合はこちらの記事のように、独自でメールアドレス検証機構を作成するのが安定してよさそうです。 ユーザーロックされる こんにちはハトです。cognitoで詰まったので共有。 cognitoでメールアドレス変更機能を実装していた。すると以下のことに気づく。 新しいメールアドレスを申請して、メールで検証をする前にその新しいメールでログインできてしまう 逆に検証が成功していないのに古いメールアドレスでログインできない つまり間違ったメールアドレスをリクエストするとその時点で詰む(ユーザーロックというらしい)

                                    • テクノロジー
                                    • 2022/01/20 21:14
                                    • cognito
                                    • 認証
                                    • あとで読む
                                    • これからWebSocketを導入しようと考える前に読んでほしい

                                      3 users

                                      zenn.dev/dove

                                      こんにちはハトです。業務でwebアプリにWebSocketを導入し、半年たったので知見を共有したいと思います。間違ったことを言っている可能性がありますご了承ください(指摘などwelcomeです) ぶっちゃけリアルタイム通信ってそこまで必要ない 後述しますが、WebSocketを導入すると同時に複雑さも入り込みます。WebSocketは必要ないのであれば入れないほうが良いと思います。自身のサービスの要件を考えたときにリアルタイム通信が本当に必要なのかどうか考えましょう。 WebSocketを導入するとスケールアウト時に、クライアントが接続しているサーバー間をまたぐ通信にRedisなどを導入する必要があります。 WebSocketとsocket.ioの違い 最新のブラウザはWebSocket通信に対応しています。しかしWebSocketについて調べると有名なsocket.ioというライブラリが

                                      • テクノロジー
                                      • 2021/11/14 15:01
                                      • あとで読む
                                      • socket.ioのv3で知らなかったこと

                                        3 users

                                        zenn.dev/dove

                                        サーバーサイド 初期化 httpサーバーと共存方式、websocketサーバーだけのスタンドアロン方式、expressを使った方法 koaを使った方法、tsを用いる方法などちゃんとドキュメントに書かれてあった。 イベント socket.emitのほかに単純にsocket.send()をするだけで、messageイベントとして送信される。 // 送り手 socket.send('hello') // 受け手 socket.on('message', data => console.log(data)); // hello

                                        • テクノロジー
                                        • 2021/09/17 06:55
                                        • JavaScript
                                        • フロントから直接S3にファイルをアップロードする

                                          3 users

                                          zenn.dev/dove

                                          こんにちは、ハトです。いままでサーバーを通じでS3にアップロードさせてたのですが、直接アップロードさせたほうが、作りやすいことに気づいて移行しました。以下知見の共有です。 流れ STEP: ブラウザからファイルをアップロード。ファイルのtypeとnameをバックエンドに送信。 バックエンドはS3のsdkをもとに署名付きURLをS3サービスにリクエストする。このときBucket名やファイル名(Key)とファイルタイプをパラメータとして送る バックエンドはsdkから署名付きURLを受け取り、フロントエンドにわたす フロントエンドはもらったURLに直接ファイルをPUTする。 フロントエンドのコード ファイルを何らかの方法で取得した前提です(inputタグからとか)。 // step1: 署名付きurlを取得 const resSignedUrl = await axios.get(`/uploa

                                          • テクノロジー
                                          • 2021/09/07 15:42
                                          • react-window 調査 まとめ

                                            4 users

                                            zenn.dev/dove

                                            こんにちは、ハトです。 いろいろ時間をかけて調査した結果、使わないことになったので供養します(ち〜ん) 長いリストのパフォーマンスを向上させる Reactで長いリストをレンダリングするときに、初期のレンダリング時にコストをすべて払います。これを画面が表示される部分だけレンダリングさせるようにしたライブラリがreact-windowです。React公式サイトのパフォーマンス向上ライブラリの1つとして紹介されています。 こちらを調査する機会があったので、それをまとめてみました。react-windowはgridの機能もあるのですが、今回はリストのみ調査対象です。 サイト 概要 実際にリストをすべてレンダリングするのではなく、画面に表示されている領域のみをレンダリングする技術。それによって、リストをすべてレンダリングするコストを回避しています。 ライブラリ内部に仮想のリストを保持してあり、リスト

                                            • テクノロジー
                                            • 2021/06/09 01:15
                                            • React 一番安定する自動スクロール

                                              9 users

                                              zenn.dev/dove

                                              画面ローディング時にhtmlの一番下までスクロールしたい こんちには、ハトです。業務で自動スクロールが必要になったので、いくつか方法を考えました。 react-scrollでuseEffect(useLayoutEffect)ないでscrollToBottom()する react-windowというリストライブラリを使ってuseEffect時に一番下のアイテムまでscrollToItem()する リストの最後にdivタグをおき、refを取得。useLayoutEffect内で、ref.current.scrollIntoView()をする useRefに関してはこちらの記事もご参考ください。 結論。refでscrollIntoViewをするのがよい ミニマム const List = () => { const scrollBottomRef = useRef<HTMLDivElement

                                              • テクノロジー
                                              • 2021/03/13 23:06
                                              • あとで読む
                                              • AWS cognitoとReactでログインを実装する

                                                11 users

                                                zenn.dev/dove

                                                こんにちはハトです。業務でcognitoを利用していたのですがかなり躓いたので共有します。 つまづきポイント多すぎ まずAWSを利用している方でSPAで認証を実現しようとしてネットをあさるといろいろ情報があることに気づく cognitoの利用 Amplify の auth の利用 わけわかめとなる。次にAmplifyを調べる cliがあるよ cliでコマンド打てばGraphQLとか使えるよ Amplify Consoleあるよ。静的ホスティングが自動化できるよ ん?認証だけ使いたいのになんでGraphQLいれるの?みたいになる。 とりあえず、僕がつまずいたポイントや知見を共有しようと思います。 前提 すでにcreate-react-appなどで、何かしらのreactプロジェクトを作ってある。 AWSでconigtoを使うだけならamplifyはいらないけど、amplifyライブラリは便利だ

                                                • テクノロジー
                                                • 2021/02/16 11:28
                                                • amplify
                                                • cognito
                                                • AWS
                                                • React
                                                • このユーザーはこの機能が使える、みたいなあれをどう実現するか

                                                  6 users

                                                  zenn.dev/dove

                                                  このユーザーはこの機能が使える、みたいなあれをどう実現するか 新しい記事公開しました! 結論 DBで実現するかアプリケーション側でライブラリで実現する。casbinが強そうだぞ。 はじめに ユーザーテーブルにisAdminというカラムを使って、アドミンかそうでないかで、アクセスコントロールを分けていたが、サービスが大きくなり、もう少し細かくコントロールする必要になった。そこで、情報収集してえた見識をまとめておく。 アクセスコントロールという考え方を知る だれがこのファイルを操作できるのかみたいなやつ。おおきく4つのパターンがあるみたい。 DAC RBAC MAC ABAC DACとRBACとMAC この3つはまとめて図で理解したほうが覚えやすいと思う。 DAC(任意アクセス制御)はユーザー側が任意にこの機能を誰が使えるか設定する。例えばgoogleでファイル共有するときに誰までが閲覧可能か

                                                  • テクノロジー
                                                  • 2020/12/25 18:22
                                                  • 設計
                                                  • セキュリティ
                                                  • チャットアプリの実例でDynamoDBのモデリングを考えてみる

                                                    6 users

                                                    zenn.dev/dove

                                                    DynamoDB むずい。具体的には テーブル設計がむずい カラムのrenameやテーブル名のrenameがむずい テーブル設計にも関わるが、検索がパーティションキーとソートキーを通してしかできない。もしくは、別にindexテーブルをつくるGSIやLSI機能を利用する。 RDBのように正規化して保存するのではなく、欲しいデータをほしい形で保存するみたいに言われるけど、結局データの持ち方の理想形がわからない。 また、既存のカラムのrenameができなかったり、テーブル名のrenameができなかったりする。 これらのrenameがしたい場合は、dynamodbのstreamという機能を使ってデータを新しいカラム(もしくはテーブル)に流しつつ、既存のデータをコピーしないと行けない。しんどい。 既存のテーブルの形の修正がしにくいから、結局最初に設計した未熟なテーブルの良くない部分をアプリケーション

                                                    • テクノロジー
                                                    • 2020/12/02 19:54
                                                    • 設計
                                                    • 「ブラウザからファイルアップロードする際にプログレスバーを表示したい」調べたことまとめ

                                                      3 users

                                                      zenn.dev/dove

                                                      一番カンタンな方法 axiosの第3引数にoptionを渡す。コードはaxiosのgithubから抜粋 document.getElementById('upload').onclick = function () { var data = new FormData(); data.append('foo', 'bar'); data.append('file', document.getElementById('file').files[0]); var config = { onUploadProgress: function(progressEvent) { var percentCompleted = Math.round( (progressEvent.loaded * 100) / progressEvent.total ); } }; axios.put('/upload/s

                                                      • テクノロジー
                                                      • 2020/11/28 19:27
                                                      • AWS
                                                      • あとで読む

                                                      このページはまだ
                                                      ブックマークされていません

                                                      このページを最初にブックマークしてみませんか?

                                                      『zenn.dev』の新着エントリーを見る

                                                      キーボードショートカット一覧

                                                      j次のブックマーク

                                                      k前のブックマーク

                                                      lあとで読む

                                                      eコメント一覧を開く

                                                      oページを開く

                                                      はてなブックマーク

                                                      • 総合
                                                      • 一般
                                                      • 世の中
                                                      • 政治と経済
                                                      • 暮らし
                                                      • 学び
                                                      • テクノロジー
                                                      • エンタメ
                                                      • アニメとゲーム
                                                      • おもしろ
                                                      • アプリ・拡張機能
                                                      • 開発ブログ
                                                      • ヘルプ
                                                      • お問い合わせ
                                                      • ガイドライン
                                                      • 利用規約
                                                      • プライバシーポリシー
                                                      • 利用者情報の外部送信について
                                                      • ガイドライン
                                                      • 利用規約
                                                      • プライバシーポリシー
                                                      • 利用者情報の外部送信について

                                                      公式Twitter

                                                      • 公式アカウント
                                                      • ホットエントリー

                                                      はてなのサービス

                                                      • はてなブログ
                                                      • はてなブログPro
                                                      • 人力検索はてな
                                                      • はてなブログ タグ
                                                      • はてなニュース
                                                      • ソレドコ
                                                      • App Storeからダウンロード
                                                      • Google Playで手に入れよう
                                                      Copyright © 2005-2025 Hatena. All Rights Reserved.
                                                      設定を変更しましたx