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

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

アプリで開く

はてなブックマーク

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

はてなブックマーク

トップへ戻る

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

    大阪万博

『qiita.com』

  • 人気
  • 新着
  • すべて
  • ほんとうにあった開発生産性が爆下がりする話 - Qiita

    468 users

    qiita.com/ham0215

    昨今、継続的にプロダクト開発していくことが主流となり、Four Keysなどの開発パフォーマンスを測る指標なども出てきており開発生産性を向上させることが注目されています。 しかし、かつての開発現場では今では信じられないような開発生産性を爆下げするようなことをやっていました。 この記事では10年以上前に私が経験した開発生産性を爆下げする事例を書いていこうと思います。 (私が体験したことをベースに書いているので10年前は全てがこうだったということではないのでご留意ください ) 修正前のコードはコメントアウトで残す 当時、ウォーターフォールで開発していました。 ウォーターフォールでは開発工程とテスト工程が分かれています。 開発工程で一通りコーディングして、テスト工程で動作確認を行いバグを潰します。 問題はここからです。 とある現場では、テスト工程でバグを直すときにコードを破壊的に直すのではなく、

    • テクノロジー
    • 2023/09/11 13:46
    • 開発
    • あとで読む
    • テスト
    • Qiita
    • マネジメント
    • development
    • プログラミング
    • 仕事
    • プロダクト
    • コード
    • MySQLの行ロックを図解 - Qiita

      10 users

      qiita.com/ham0215

      MySQLでロックする際、範囲指定の方法や指定するカラムによってロック範囲が変わります。 この記事ではいくつかのパターンを図解してみたいと思います。 前提条件 最初に前提条件を記載します。 この記事でMySQLを実行する際、MySQLのバージョン8.0.27を利用しています。 実際にロックを取得するのはlocks テーブルを使います。 ロックを取得する方法は様々ありますが、for updateを使い排他ロック(U)を取得してロック範囲を検証します。 テーブル定義 Name Type Nullable Extra Definition Comment

      • テクノロジー
      • 2022/06/17 15:36
      • mysql
      • performance
      • db
      • 読んだ
      • [Ruby]ありえない分岐には雑にraise NotImplementedErrorを置いておくと便利 - Qiita

        3 users

        qiita.com/ham0215

        こうしておくと何が良いのか? のちにtype3というタイプが増えたとします。 その時にtype3のテストパターンを追加すると思いますが、type3の場合はelseに入るためここを修正しないとテストが必ず落ちます。 最初の実装ではcase文がスルーされるのでテストの書き方次第ではここを修正しなくてもテストが成功してしまうかもしれません。 コードベースの大きなプロダクトでは、隅々まで影響範囲を調べるのは難しく、見落としてしまうことが多々あります。 そういう時に、後者の実装のようにテストで機械的に見つけやすくしておくことで、実装漏れを防ぎやすくなります。 おまけ: NotImplementedErrorとは? 現在のプラットフォームで実装されていない機能が呼び出されたときに発生します。

        • テクノロジー
        • 2022/02/04 08:07
        • MySQLのロックについて公式ドキュメントを読みながら動作検証してみた〜レコードロック / ギャップロック / ネクストキーロック / 他〜 - Qiita

          3 users

          qiita.com/ham0215

          mysql> select * from piyos; +----+---------+-----+-------+----------------------------+----------------------------+ | id | idx_num | num | name | created_at | updated_at | +----+---------+-----+-------+----------------------------+----------------------------+ | 3 | 40 | 50 | piyo3 | 2021-10-20 01:18:10.474960 | 2021-10-20 01:18:10.474960 | | 5 | 30 | 60 | piyo5 | 2021-10-20 01:18:10.486576 | 202

          • テクノロジー
          • 2021/10/26 10:53
          • [Rails]upsert_allで更新対象のカラムを指定したい - Qiita

            4 users

            qiita.com/ham0215

            Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

            • テクノロジー
            • 2021/07/19 11:19
            • Rails
            • [Rails]継続的にプロダクト開発していくために必要な設定たち - Qiita

              3 users

              qiita.com/ham0215

              Railsを使えば簡単にWebアプリケーションを立ち上げることができます。 例えば、Railsガイドに書かれている手順通りに実施するだけで1時間もかからずに画面を表示することができると思います。 静的なページだけではなく、scaffoldを使うことで簡単なデータ操作を一通りできる画面もサクッと作ることができます。 以前私が書いた『Rails newからproductionモードで動くようになるまで』では、1歩踏み込んでproductionモードで動くまでの手順を書きました。 ただ、上記はproductionモードで動いているものの、プロダクト開発で使うためには他にも様々な設定が必要です。 プロダクトで使えるようにするためには、同期的な処理だけでは足りず、ほとんどの場合に非同期処理を行う仕組み(Active job)やメール配信の仕組み(Action Mailer)などが必要になります。 ま

              • テクノロジー
              • 2021/04/14 10:16
              • GraphQLのnodeとegdeを正しく理解してデータベースと適切に紐づける - Qiita

                7 users

                qiita.com/ham0215

                GraphQLにはページネーションを表現する方法としてCursor Connectionsという仕様があります。 この機能を使うことでカーソルベースのページネーションを簡単に実装することができます。 仕様の詳細はGraphQLやRelayのページをご覧ください。 https://graphql.org/learn/pagination/ https://relay.dev/graphql/connections.htm この機能はとても強力な機能なのですが、私はGraphQLを使い始めたころedgeやnodeの役割を正しく理解できておらず誤った使い方をしていました。 改めて公式ドキュメントを読んだり、その他の様々な情報に触れることで正しいと思われる使い方に気づいたので記事として残しておこうと思います。 ※サンプルコードはgraphql-rubyを使ったRubyのコードで記載していますが内容

                • テクノロジー
                • 2021/02/17 10:14
                • Rails6.1で追加されたdelegated typeとGraphQLのUnion typesは相性よさそうなので試したみた - Qiita

                  7 users

                  qiita.com/ham0215

                  Rails6.1で追加されたdelegated typeとGraphQLのUnion typesは相性よさそうなので試したみたRubyRailsGraphQLgraphql-ruby VISITS Technologiesでマネージャー兼バックエンドエンジニアをしている@ham0215です。 今年のアドベントカレンダー3つ目の記事です。 直前までどのような内容の記事を書こうか迷っていたのですが、直前で @woods0918 さんがGraphQLの記事を投稿したので、私も流れに乗ってGraphQLの記事にしてみました。 Rails6.1で追加されたdelegated typeとGraphQLのUnion typesは相性よさそうだなと思ったので、実際に触ってみて使い心地を確かめてみました。 GraphQLのUnion typesとは GraphQLにはUnion typesというタイプがあり

                  • テクノロジー
                  • 2020/12/16 09:06
                  • rails
                  • graphql-rubyでページネーションがサクッと実装できたのでGemが何をやっているのか覗いてみた - Qiita

                    5 users

                    qiita.com/ham0215

                    GraphQLをRailsアプリケーションで使う場合、graphql-rubyという強力なGemがあります。 https://github.com/rmosolgo/graphql-ruby GraphQLはページネーションを実現するためにconnectionsと呼ばれる仕組みを持っています。 connectionsでは、取得件数や取得を開始する位置を指定することができます。 詳細は公式サイトを参照してください。 https://facebook.github.io/relay/graphql/connections.htm graphql-rubyを使ってページネーションを実装してみたら、ほぼコードを書くことなく実装できて感動したのでgraphql-rubyが何をしているかコードを覗いてみることにしました。 環境 動かした環境は下記です。 Ruby: 2.6.5 Rails: 6.0.0

                    • テクノロジー
                    • 2020/11/29 15:07
                    • GraphQL
                    • gem
                    • ruby
                    • MarkdownをGitHubに上げるだけでブログを公開できる仕組みをサクッと作ってみた - Qiita

                      3 users

                      qiita.com/ham0215

                      "react": "^16.12.0", "react-dom": "^16.12.0", "react-markdown": "^4.3.1", "react-router-dom": "^5.1.2", "react-scripts": "3.4.3", "styled-components": "^5.2.0", "typescript": "^4.0.3", "@material-ui/core": "^4.9.11", "@material-ui/icons": "^4.9.1", 今回の肝となっているMarkdownからwebページを生成する処理はreact-markdownを使っています。 https://github.com/rexxars/react-markdown Webサイトの準備 今回はReactを使ってWebサイトを作成します。 サイトの公開にはVercelを使

                      • テクノロジー
                      • 2020/11/05 15:26
                      • node.js
                      • qiita
                      • [Rails]カラムを絞るだけの目的でselectメソッドは使うな! - Qiita

                        3 users

                        qiita.com/ham0215

                        Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                        • テクノロジー
                        • 2020/08/18 10:15
                        • graphql-rubyを使って認可する方法 - Qiita

                          6 users

                          qiita.com/ham0215

                          GraphQLを使っているときに様々な処理で認可させたい事があると思います。 このQueryはログインユーザーのみ実行できるようにしたい このMutationは管理者のみ実行できるようにしたい このQueryは自分の所有しているデータのときだけ返却するようにしたい このFieldは自分の所有しているデータのときだけ返却するようにしたい 当初はgraphql-rubyの知識が乏しかったので取得や更新処理の中で認可する処理を呼び出していたのですが、graphql-rubyのドキュメントを改めて読み直したところ、認可のためのメソッド(authorized?)がある事がわかったので動作検証を兼ねて記事を書きました。 2021/02/10 追記 コメントでいただきましたが、類似のメソッドにready?というものがあるようです。 ドキュメントにも記載されています。 https://graphql-ru

                          • テクノロジー
                          • 2020/08/04 09:09
                          • ruby
                          • [Rails]N+1は悪!発生したらとりあえず解消せよ!!という考えは危険 - Qiita

                            37 users

                            qiita.com/ham0215

                            N+1 それは諸悪の根源!パフォーマンスの敵!! 見つけたらすぐに撃退すべき悪しき存在です!!! と思われている方が多いと思います。 実際その通りで、ネットで調べてもN+1を解消するノウハウが溢れています。 基本的にはノウハウ通りに修正すれば良いのですが、まれにN+1は解消しない方が良いパターンもあるので具体例を交えて紹介します。 この記事で話したいこと この記事で話したいことは、なぜN+1は直すべきなのか?ということです。 N+1はあまりに有名すぎて直すノウハウはたくさんありますが、なぜ直すべきなのかが忘れられている感があります。 1つ言っておきたいのは、N+1を直すのはクエリー発行数を減らしたいからではないです。パフォーマンスを改善したいからです! 言い換えるとクエリー数が減ってもはフォーマンスが改善しないのであればN+1を直す必要はないのです。 N+1とは 最初に典型的なN+1を復習

                            • テクノロジー
                            • 2020/05/29 00:08
                            • performance
                            • あとで読む
                            • DB
                            • rails
                            • article
                            • programming
                            • Rails6で追加されたinsert_allとimport(とその他)のパフォーマンス検証 - Qiita

                              3 users

                              qiita.com/ham0215

                              前回書いた記事で、activerecord-importとRails6で追加されたinsert_allのパフォーマンスを比べたところ、importの方が速そうだったのでもう少しちゃんと検証してみました。 検証方法 速度検証 1,000件のユーザーを様々な方法でバルクインサートします。 1回のバルクインサートだと数msで終わってしまうので、上記を100回実行したときの合計時間で比較します。 計測はbenchmarkを使用します。 メモリ使用量検証 こちらも同様に1,000件のユーザーを様々な方法でバルクインサートします。 計測はmemory_profilerを使用します。 環境 Ruby: 2.6.5 Rails: 6.0.0 rspec-rails: 3.9 factory_bot_rails: 5.1.1 対象 activerecord-import Railsでバルクインサートできるよ

                              • テクノロジー
                              • 2020/05/28 17:38
                              • rails
                              • Gemにモンキーパッチを当てるサンプル - Qiita

                                4 users

                                qiita.com/ham0215

                                Railsで開発していると使っているGemの挙動を一部変更したくなることが稀にあると思います。 gemに限らずですが、外部ライブラリの挙動を変えるために書く仕組みはモンキーパッチと呼ばれます。 モンキーパッチについては下記のクックパッドさんの記事がわかりやすかったのでご覧ください。 この記事でもこのやり方を参考にしています。 https://techlife.cookpad.com/entry/a-guide-to-monkey-patchers モンキーパッチはある程度やり方が定型化されていますが、たまにしか実装しないのでやり方を忘れてしまいがちだと思います。 そこで備忘録としてよくありそうなモンキーパッチの当て方をこの記事に残しておこうと思います。 対象のgem モンキーパッチを当てるsample_gemは下記の通り。 仕様 incrementというクラス変数を持っている 渡した数値を

                                • テクノロジー
                                • 2020/04/17 23:03
                                • GCPを使って日次のLine push通知を作ってみた - Qiita

                                  17 users

                                  qiita.com/ham0215

                                  日次でとある情報をクローリングしてLineにPush通知する機能を作りました。 自宅で常時起動しているマシンはないので、最近仕事で使うことが多いGCPを使い、なるべく低コストで実現することにしました。 ※すべて2019年7月時点の情報です。料金体系などは変更になっていることもあるので実際の料金は公式ホームページでご確認ください。 構成 図のような構成にしました。それぞれの詳細は後述します。 定時にcloud schedulerがpubsubのtopicにメッセージを送信 pub/subのtopicをトリガーにcloud functionsを起動 cloud functionsでwebページをクローリング 情報を整形してLineへPush通知 LINE Developers LineにPush通知を行うにはLine Developersに登録する必要があります。 https://develo

                                  • テクノロジー
                                  • 2019/07/18 08:41
                                  • LINE
                                  • あとで読む
                                  • google

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

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

                                  『qiita.com』の新着エントリーを見る

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

                                  j次のブックマーク

                                  k前のブックマーク

                                  lあとで読む

                                  eコメント一覧を開く

                                  oページを開く

                                  はてなブックマーク

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

                                  公式Twitter

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

                                  はてなのサービス

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