並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 91件

新着順 人気順

論理削除の検索結果1 - 40 件 / 91件

  • データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし

    こんにちは、id:shallow1729です。最近はインフラ寄りなお仕事をよくやっていますがこれまでにいくつかデータ移行やデータ基盤構築などのバッチ処理のお仕事をしてきました。以前にも一度そういった経験を元に記事を書いたのですが、MySQLやシステムに関する知識が以前よりも増えた今もう一度書き直したいなと思いました。 なので今回はバッチ処理を書く時のテクニック2022版という感じです。今の仕事の関係でMySQLやrailsを前提にしている話が多いですが、おそらく他のデータベースを使っている人にも役に立つ話が多いのではないかと思います。ただ、今回の記事は経験に基づくものが多く、あまりよくないアイデアもあるかもしれません。改善点や間違いなどあればご指摘ください。 冪等性を持つように 冪等性とは端的に言えばある操作を複数回実行しても一回しか実行しなかった時と同じ結果になる性質の事です。長時間かか

      データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし
    • SQLアンチパターンもりもりDBを設計しよう! - Qiita

      概要 名著SQLアンチパターンを読み終えたので、それの復習のために悍ましいデータベースを作ろうと思った。 まず前半では、SQLアンチパターンを意図的に盛り込み、目も当てられない酷い設計をします。 そのあとリファクタリングを行なったER図に書き直していきます。 なお、真面目に書くと参考書の丸写しになってしまうので、この記事は アンチパターンもりもりのER図を見て嫌悪感を学習し、設計に役立てようという趣向のもと、詳しい説明は省きます。 とても良い本なので読んでください。 想定するシステムの概要と状況 目的において適切かはわかりませんが、とりあえず考えることの多い”お金”を扱うシステムを想定してみます。 私はブラックジョークが好きなので、今回は「ちょっと怖い金融屋さんが使う債務者管理システム」のER図を設計してみようと思います。 ざっくりした要件 債務者を登録でき、プロフィールを入力できる。 債

        SQLアンチパターンもりもりDBを設計しよう! - Qiita
      • pixivのブックマークに関する負荷対策をしました - pixiv inside

        10/22(金) 追記 この記事で解説している内容について解説する勉強会を開催することとなりました。以下のconnpassよりお申し込みください。 pixiv.connpass.com 10/22(金) 追記 pixivのブックマークについて ブックマークDBの問題について 具体的な対策内容 論理削除廃止・index追加・ブックマークタグのテーブル分割 適応ハッシュインデックスの無効化 アプリケーションコードのリファクタリング・全発行クエリの列挙と見直し 大きな更新処理の非同期化 結果 あわせてよみたい pixivではサービスの成長に伴い、気に入った作品に対して付けることができるブックマークの総数が急速に増加しており、ユーザーの皆様に滞りなくサービスを提供し続けるためブックマークに関するデータベース(以後DB)の負荷対策が必要になりました。 2021年2月より対策を行うプロジェクトを発足し

          pixivのブックマークに関する負荷対策をしました - pixiv inside
        • Elasticsearch運用ノウハウ | メルカリエンジニアリング

          こんにちは、メルカリMicroservices SREチームの藤本(@jimo1001)です。 私は現在、Embedded SRE として サーチインフラチームに入り活動しています。このサーチインフラチームは、Elasticsearchを使用した検索基盤を管理し、様々なマイクロサービスに検索機能を提供するチームです。この検索基盤は非常に巨大なプラットフォームで、メルカリ全体のマシンリソースの高い割合を占めており、メルカリの検索を支える非常に重要なものです。私の Embedded SRE としてのミッションは検索基盤の信頼性の向上と自動化を推進することです。 今回は、メルカリの検索基盤で利用している Elasticsearch における運用のノウハウを紹介したいと思います。 Elasticsearch とは Elasticsearch は、Elastic社が開発する Apache Lucen

            Elasticsearch運用ノウハウ | メルカリエンジニアリング
          • あなたの遅延はどこから? SQLから! 〜患部に止まってすぐ効くSQLレビューチェックリスト 年初め特大サービス号〜 - ANDPAD Tech Blog

            あけましておめでとうございます! 今年は異世界放浪メシのアニメが放送されるらしいので楽しみなバックエンドの原田 (tomtwinkle)です。 内部で運用しているSQLレビューチェックリストの一部を抽出し思いつきで追記して行った結果、結構な分量になってしまいました。 暇な時でも流し読みして頂けるとありがたいです。 Motivation SQLレビュー観点 大きくSQLが変更される修正の際にはEXPLAINをレビュー内容に加える 検索のキーにINDEXを使用しているか SQL発行回数がN+1(1+N)の構造になっていないか サブクエリを利用したSQLはパフォーマンス要チェック Viewの利用は基本的に禁止 CROSS JOINは禁止 WHERE句で十分に絞った検索をしているか 必要なcolumnだけSELECTしているか レコード数だけ必要な場合にCOUNT用のSQLを発行しているか 集計関

              あなたの遅延はどこから? SQLから! 〜患部に止まってすぐ効くSQLレビューチェックリスト 年初め特大サービス号〜 - ANDPAD Tech Blog
            • オワコン大手SIerに学ぶアンチパターン - Qiita

              軽い読み物としておもしろおかしく読んでください。 はじめて社外の人の仕事を見た 今まで社内の成果物しか目にしてこなかったのですが、ふとしたきっかけで外部ベンダーが作ったシステムを移行することになりました。 会社名を見て、よく知った会社でちょっと安心しました。 「ここなら設計書とかもきちんとしてるだろう、多少古臭くても堅実にやってるんじゃないかな」って思ってました。ええ。 実態は全然違った とんでもない量のExcelが設計書として渡されました。 さすがに設計が専門だけあって設計書の量はすごいなぁ。と思って読んでいるといろいろ察してきました。 正直、「オワコン大手SIer」と呼ぶしかありません。設計しかできないと思っていたのに、何もできないなんて・・・ 実際に自分が見た「オワコン大手SIer」のアンチパターンをご紹介していきます。 自分が多く当てはまっている場合は今すぐ直してください。移行する

                オワコン大手SIerに学ぶアンチパターン - Qiita
              • 最強データベース(RDB)設計とは?アンチパターンの見極め方法も - FLEXY(フレキシー)

                ※2020年6月に公開された記事です。 日本PostgreSQLユーザ会の理事を務める合同会社Have Fun Techを起業した曽根壮大(@soudai1025)と申します。元株式会社オミカレ副社長兼CTOです。直近では、『失敗から学ぶ RDBの正しい歩き方』を執筆しました。 今回はデータベースをテーマとして、魅力やMySQLとPostgreSQLの違い、アンチパターンの見極めなどの基礎知識に加え、勉強法などもご紹介します。 RDB関連の求人検索はこちら データベースを学ぶ魅力をエンジニア目線で考察 1.知識の費用対効果が高い エンジニアがデータベースを学ぶ利点という観点から言うと、データベースの特徴は寿命が長いことと私は考えています。 Webアプリケーションの界隈では1年単位でバージョンアップしたり流行っている言語が変わってしまうことがザラにありますが、データベースは10年、20年とい

                  最強データベース(RDB)設計とは?アンチパターンの見極め方法も - FLEXY(フレキシー)
                • 2022年4月に発生したアトラシアンのサービス停止に関するインシデント事後レビュー | Atlassian Japan 公式ブログ | アトラシアン株式会社

                  本ブログは、こちらに掲載されている英文ブログの意訳です。万が一内容に相違がある場合は、原文が優先されます。また、PDF版をダウンロードいただけます。 はじめに – 共同創業者兼共同最高経営責任者より 2022年4月上旬に発生した障害により、お客様へのサービス提供が中断されたことをお詫び申し上げます。私たちは、当社の製品がお客様のビジネスにとってミッションクリティカルであることを理解しており、その責任を重く受け止めています。今回の全責任は私たちにあり、影響を受けたお客様の信頼を回復するために尽力しています。 アトラシアンのコア バリューの 1 つに「オープンな企業文化、デタラメは無し (Open company, no bullshit)」というものがあります。この価値を実現する取り組みの一環として、インシデントについてオープンに議論し、学びにつなげています。そして、このインデント事後レビュ

                    2022年4月に発生したアトラシアンのサービス停止に関するインシデント事後レビュー | Atlassian Japan 公式ブログ | アトラシアン株式会社
                  • 外部キー制約は何も考えずに適用するとよくない - かとじゅんの技術日誌

                    このブログが話題になってますね。制約を付けること自体はよいことだけど、無目的に適用すると害も生じると思います。 無目的という言い方はおかしいな…。外部キー制約をどのように使えばいいのか、逆にどんなときに使うとまずいのかを考えてみたいと思います。 tech.tabechoku.com 例えば、これ。外部キー制約はできるだけ付けるとか、何も考えずに付けるとよくないと思います。 外部キー制約は、可能な限りつけるようにしています。 DBが別れている場合、外部キーはもちろん貼れないのですが、そうでない場合はとにかく何も考えず貼っています。データベース設計の際に気をつけていること - 食べチョク開発者ブログ テーブル設計をシミュレーションする いいたいことの結論はこれ。以上終了なのですが、もう少しわかりやすく書いてみよう。 何も考えずに外部キーを貼るのは良くないな。トランザクション境界の外で結果整合性

                      外部キー制約は何も考えずに適用するとよくない - かとじゅんの技術日誌
                    • 中途入社のソフトウェアエンジニアがWebサービス開発に参加するとき役立ったこと - kymmt

                      この記事は一休.com Advent Calendar 2023 8日目の記事です。 2023-09-25に入社して2か月半が経ったので、既存のWebサービスの開発にソフトウェアエンジニアとして参加するにあたって役立ったことを書いておく。 『Webサービスのソフトウェアエンジニアとしての転職活動で役立ったこと』の続編といえるかもしれない。 前提 観点 どのようなサービスかを調べる どのようにデータを保持するかを調べる どのようなコードかを調べる 「未知の未知」をできるだけ早く減らす チームの開発体制に興味を持つ 所感 前提 レストラン予約のサービスの開発に参加した 歴史が長い(2006〜) Webアプリケーションを開発する 技術スタックは転職前後で完全に変わった 前: Rails, PHP, Nuxt, MySQLなど7年 後: Rust, Next.js, Python, Microso

                        中途入社のソフトウェアエンジニアがWebサービス開発に参加するとき役立ったこと - kymmt
                      • 新規事業の決済機能としてStripeを導入する上で考えたこと全て - Timee Product Team Blog

                        こんにちは、タイミーデリバリー開発チームの宮城です。 この記事はJP_Stripes Advent Calendar 2020の10日目の記事です。 タイミーデリバリーはデリバリーを頼みたい人が安い価格で注文でき、飲食店も安い利用料で注文を受けられるデリバリープラットフォームです。 その決済機能として今回はStripeを導入しました。 この記事では、決済基盤の技術選定/Stripeを活用したクレジットカード決済と各事業者への入金までの流れ/Railsでの具体的な実装内容 をそれぞれタイミーデリバリーでの活用事例として紹介します。 導入にあたった背景 決済基盤の技術選定基準 Stripeでできること PCI DSSについて 利用したStripeの機能 Custom Account Stripe SDKを利用したRails/Swiftでの実装内容 PaymentIntent Customer

                          新規事業の決済機能としてStripeを導入する上で考えたこと全て - Timee Product Team Blog
                        • 受取期限の過ぎたデータをMySQL上から削除する話 | GREE Engineering

                          こんにちわ。せじまです。今回は地味で泥臭い話をします。ただ、割と平易な内容かと思いますので、初学者の方にもオススメです。 はじめに ゲームでは、受取期限のついたログインボーナス的なものがよくあります。ユーザが期限までに受け取らないと、ユーザからそのデータは不可視になりますが、必ずしも、不可視になった瞬間にデータベースから直ちに削除される、というわけでもありません。バッチジョブか何かで、ガベージコレクションのように削除するケースが多いのではないでしょうか。 また、論理削除という概念もあります。論理削除についてはいろいろ意見や考え方があるかと思いますので、ここでそれについては論じませんが、「削除フラグが立ってユーザから不可視になった後、三ヶ月以上経過したデータを削除したい」みたいなことは、ゲームに限らず、しばしばあるんじゃないかなと思います。 こういった、ユーザから不可視になってしばらく経過し

                            受取期限の過ぎたデータをMySQL上から削除する話 | GREE Engineering
                          • ADR を1年間書いてみた感想 - 一休.com Developers Blog

                            宿泊開発チームでエンジニアをしている @kosuke1012 です。チームで ADR を書き始めて1年くらい経ったので、その感想を書いてみたいと思います。 この記事は 一休.comのカレンダー | Advent Calendar 2023 - Qiita の13日目の記事です。 ADRとは アーキテクチャ・ディシジョン・レコードの略で、アーキテクチャに関する意思決定を軽量なテキストドキュメントで記録していくものです。 出典はこちらで、 Documenting Architecture Decisions わかりやすい和訳は以下の記事が、 アーキテクチャ決定レコードの概要  |  Cloud アーキテクチャ センター  |  Google Cloud アーキテクチャ・デシジョン・レコードの勧め | 豆蔵デベロッパーサイト アーキテクチャの「なぜ?」を記録する!ADRってなんぞや? #設計 -

                              ADR を1年間書いてみた感想 - 一休.com Developers Blog
                            • Nostrプロトコル(damus)を触ってみた - Qiita

                              はじめに Twitterの動乱に巻き込まれている皆様、いかがお過ごしでしょうか。 私も例外なく巻き込まれており、特にAPI利用していたアプリケーションを停止することになって非常に残念です。 そこでTwitter代替サービスを探すわけですが Mastodon Misskey とActivityPub系が来て、何か新たに面白そうなものが現れました。 Damus、そしてそのプロトコルのNostrです。 今回、こちらをちょっと触ってみたので紹介します。 とりあえず触ってみたい人はこちら AT Protocolも書きました。こちら 注意 Nostr Assets ProtocolおよびNostrトークンは、Nostrの名前を勝手に使用している無関係の(おそらく詐欺)通貨です。混同しないようにご注意ください。 最近の動向含めた最新情報(2023/12) こちらの記事が参考になります ▽それ、1個のアカ

                                Nostrプロトコル(damus)を触ってみた - Qiita
                              • 勘でリレーションを張っていないか? - Qiita

                                はじめに 今回は外部キーを張るときに最低限意識したいことについて書きました。 何か間違えがあったり、もっとこういうところも意識してますという人がいたらコメントお願いします。 この記事で伝えたいこと ①リレーションシップ先のデータを消したときに同時にリレーションシップ元のデータが消えても自然な状態を作る ON DELETE CASCADEをうまく利用できる状態を作る つまり親子関係を正確に表現する。 リレーションシップ先は親テーブル、リレーションシップ元は子テーブルを意味しています。 ②データを作成するときのことを考えてデータの生成順序がおかしくならないように外部キーを張る ③関連を表現するときに中間テーブルを利用したほうが良い場面がある 注意 下記【例を交えながら説明】の説明に出てくるテーブル設計に関しては、上記の【この記事で伝えたいこと】の①と②と③の項目に対して想像しやすいように、理解

                                  勘でリレーションを張っていないか? - Qiita
                                • Firebase利用時に発生しやすい脆弱性とその対策10選 - Flatt Security Blog

                                  はじめに こんにちは。株式会社Flatt Securityセキュリティエンジニアの梅内(@Sz4rny)です。 本稿では、弊社がこれまでに実施してきたFirebase診断の事例や筆者独自の調査をもとに、Firebaseを活用して開発されたサービスにおいて発生しやすい脆弱性の概要やそれにより引き起こされるリスクおよびその対策を深刻度や発生頻度の評価を踏まえつつお伝えします。本稿を通じて、Firebaseを活用したサービスにおいて発生しやすい脆弱性にはどのようなものがあるのか、また、そのような脆弱性を埋め込むことなくセキュアなサービス実装を実現するためにはどのような観点に気をつければよいのかについて理解を深めていただけますと幸いです。 なお、本稿では「Firebase活用時に限って発生しうる脆弱性(例:Firestoreのセキュリティルールにおけるバリデーション不備)」と「Firebaseを活

                                    Firebase利用時に発生しやすい脆弱性とその対策10選 - Flatt Security Blog
                                  • MySQLでNested Loopなクエリはインデックスをどう辿っているか - $shibayu36->blog;

                                    タイムライン的なものをSELECTだけで実装しようと思った時に、Nested LoopなクエリでUsing temporary; Using filesortが出るようなそこそこ遅いクエリになる。その時にMySQLがインデックスをどう辿っているかを知りたかったので調べてみた。MySQLバージョンは8.0.33。 あまり自信はないので、もし間違った話をしていたら教えて欲しい。 どのようなクエリを検証するか タイムラインの取得ができるような、ユーザー・フォロー関係・投稿の3つのテーブルを作る。スキーマは次の通り。 CREATE TABLE users ( id INTEGER PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL ); CREATE TABLE follows ( id INTEGER PRIMARY KEY AUTO_I

                                      MySQLでNested Loopなクエリはインデックスをどう辿っているか - $shibayu36->blog;
                                    • 27. 論理削除とは何か?どのような解法があるのか? w/ twada | fukabori.fm

                                      話したネタ 論理削除とはそもそも何か? 物理削除とは? なぜ、論理削除が生まれてくるのか? SQLアンチパターン 幻の第26章「とりあえず削除フラグ」 理由1: 心理的なハードルの高さ、怖さがある 理由2: 削除したデータを検索対象に入れたい場合がある 理由3: ログとしての用途 理由4: 誤操作をすぐに戻したい アンチパターンとは何か? なぜ、論理削除はアンチパターンとして捉えられるのか? 全てのSQL文のWHERE句に削除フラグが必ず入る LIMIT 1などが蔓延していく 論理削除に気づくきっかけは何か? テーブル設計や、規約から気づく 論理削除というアンチパターンをどのように解いていくか? 論理削除という概念は世の中にまずなく、お客様は論理削除という言葉を使っていない 要件をどのように設計すればいいのか? ORMの論理削除プラグインはあまり良くない 状態遷移として捉える方法 Soft

                                        27. 論理削除とは何か?どのような解法があるのか? w/ twada | fukabori.fm
                                      • ソシャゲサーバー開発するとき始めに考慮しておかないと死ぬポイント備忘録

                                        事前知識編 システム開発するプログラマも読んでおいたほうがいい資料とか。 今時のシステムならまず仕様や運用に反映される。されてなかったらむしろこっちから確認取りに行った方がいい。 JOGAガイドライン 昔ガチャとかが問題になったときに出てきた協会のガイドライン。 オンラインゲーム安心安全宣言 オンラインゲームにおけるビジネスモデルの企画設計および運用ガイドライン ランダム型アイテム提供方式を利用したアイテム販売における表示および運営ガイドライン オンラインゲームガイドライン 開発環境編 GitHubみたいなPullRequestを出せる環境 GitだけじゃなくてGitHub。必然的に規模が大きくなるのでプルリク出して進めることになります。 CIまで設定をする 最初のうちにCircleCIのようなテストの自動実行する仕組みまで揃えてしまっておいたほうが良いです。後からだとそもそも対応できなく

                                          ソシャゲサーバー開発するとき始めに考慮しておかないと死ぬポイント備忘録
                                        • Webアプリケーションのパフォーマンス勉強会を開催しました! - ANDPAD Tech Blog

                                          はじめまして、サーバサイドエンジニアの立木です。 特定業種向けポータルサイトやスマートフォンゲーム開発などを経て、昨年3月に入社し、現在はANDPADの開発に従事しています。 アンドパッドでは、技術顧問をして頂いてる三谷(mita2)さんによる、データベースに関する勉強会が定期的に行われております。 tech.andpad.co.jp 先日もデータベースの観点から、Webアプリケーションのパフォーマンスをいかにして監視し、改善していくかという勉強会を開催していただきました。 今回はその勉強会について気になったポイントをまとめてみたいと思います。 当日の資料 概要 ANDPADの現状について分析 Datadogによる分析手法 よくある改善パターン 質疑応答 ANDPADの現状について分析 Webサイトのパフォーマンスは大事当たり前ですが、Webサイトにとってパフォーマンスはとても重要です。

                                            Webアプリケーションのパフォーマンス勉強会を開催しました! - ANDPAD Tech Blog
                                          • 書き手の意図やコードの背景を残す方法のあれこれ −きれいなコードの次に意識すべきこと− - give IT a try

                                            はじめに 先日、こんなエントリを書きました。 blog.jnito.com 上の記事の中で、僕は「きれいなコードだけではすんなりコードが理解できないこともある」というような話を書きました。 もちろん、ある程度の規模になってくるといくらがんばっても「すんなり」では済まない場合も増えてくるけど、それでも最初に挙げた特徴を兼ね備えたコードとそうでないコードでは、開発効率に雲泥の差が出てくる。 僕が考える「良いコード」 - give IT a try きれいなコードを書くことはいつでも大事ですが、きれいなコード「だけ」では大きなコードを理解するのは難しいです。 そこできれいなコードを書くことに加えて、僕が意識しているコードを理解しやすくする工夫について書いてみようと思います。 ただし、ここで書く内容はあくまで僕が普段心がけていることです。 現場の文化やコードの規模や歴史、開発チームのスキルや人数、

                                              書き手の意図やコードの背景を残す方法のあれこれ −きれいなコードの次に意識すべきこと− - give IT a try
                                            • あの日買ったSSDが早死にした理由を僕達はまだ知らない😇 - Qiita

                                              どうやら1TB相当のSSDは240TBまでの書き込みが保証されているようです。 「基本PCは落とさずにスリープ状態にしてるし、毎日多くても数百KBのコードしか書かないし、240TB/500KB = 131万年。 無限に使えるな」と思ったあなた、実はSSDには書き込もうと思った以上の書き込みが発生しているんです。 実際はOS起動時の読み込みがGB単位であるのでもっと使われてます。 とは言えより多く、一日5GBの書き込みを想定しても130年持つので、コードを書くだけならそこまで気にする必要はないかもしれませんが... ブラウザの設定で動画のcacheをしていたり、大量の画像を保存して編集して、とやっていると瞬く間に寿命がやってきます。 SSD めっちゃ書き込まれる問題 「諸々の理由」により、SSDへの書き込みはOSが書き込もうと思った以上の書き込み量へと増幅されます。この現象をWrite Am

                                                あの日買ったSSDが早死にした理由を僕達はまだ知らない😇 - Qiita
                                              • サービス無停止を実現するデータ移行戦略 - ZOZO TECH BLOG

                                                はじめに こんにちは、ECプラットフォーム部会員基盤ブロックのturbofishです。弊社ではモノリスのプログラムで動いているZOZOTOWNをマイクロサービス化する取り組みを行なっており、複数チームが1つの大きなオンプレシステムをマイクロサービスでリプレイスしています。その中で私が所属する会員基盤ブロックでは、ZOZOTOWNの会員情報を管理するマイクロサービスを開発しています。 本記事では、弊チームを含む複数のマイクロサービス開発チームにおいて、既存のアプリケーションの一部をマイクロサービスを使用する処理に置き換えた際、サービス無停止でオンプレ環境にあるDBからマイクロサービスが使用するクラウド環境のDBにデータを移行した戦略を紹介します。 ディスクレイマー 本記事で紹介するデータ移行方法には下記の制約があり、全ての状況に対応できるわけではありません。 DBへの書き込み処理と読み取りの

                                                  サービス無停止を実現するデータ移行戦略 - ZOZO TECH BLOG
                                                • 「Not for me」からの卒業――開発畑のプロダクトマネージャーの失敗から学べ

                                                  本連載は、ソフトウェア開発者からプロダクトマネージャーに転身した、ゆずたそ(@yuzutas0)さんが自身の経験を振り返り、切り替えるべきだったと考えるマインドセットを紹介していく連載です。第2回は、「責任から逃げてしまう」という問題を取り上げます。自身の責任範囲は想像以上に広くなるのだ、ということを認識しましょう。(編集部) はじめに こんにちは、ゆずたそ(@yuzutas0)です。この連載では、ソフトウェア開発者からプロダクトマネージャーに転向した筆者が、多くの失敗を経て重要性を痛感した「プロダクトマネージャーのマインドセット」を解説します。 主な対象読者としては、同じようにソフトウェア開発を出自とした方で、「同じような失敗経験のある方」「これから失敗を経験するであろう方」を想定しています。連載の前提条件の詳細、免責事項などについては、第1回の冒頭を併せて参照ください。 「Not fo

                                                    「Not for me」からの卒業――開発畑のプロダクトマネージャーの失敗から学べ
                                                  • RDBMSのVIEWを使ってRailsのデータアクセスをいい感じにする【銀座Rails#10】|TechRacho by BPS株式会社

                                                    morimorihogeです。しばらくぶりですが、この度銀座Rails#10 @リンクアンドモチベーションにて発表させていただきましたので、その内容をまとめたいと思います。 ※当日は時間が足りなくて端折ってしまう部分もあるかと思うので、その補遺としての意味合いもあります 注1:本記事では分かりやすさのためにTABLEやVIEWなどのSQL予約語は大文字で記載していきます。 注2:Rails 5.2.3、PostgreSQL 11環境で検証しています おさらい:VIEWについて 本記事におけるVIEWはRDBMSにおけるVIEWの話で、ActionViewではありません。 VIEWについて使ったことがない人もいるかなと思うので、最初に軽く解説します。 VIEWは一言で言ってしまえばSELECT文の実行結果に名前を付けて、TABLEと同じようにアクセスできるものです。 例えば、以下のようなpr

                                                      RDBMSのVIEWを使ってRailsのデータアクセスをいい感じにする【銀座Rails#10】|TechRacho by BPS株式会社
                                                    • 「10年かけてGitHubリポジトリが集めた5万4000個ものスターをうっかりミスで失ってしまった」という体験談

                                                      ソフトウェア開発プラットフォームであるGitHubには公開されているリポジトリに「Star(スター)」を送る機能があり、リポジトリが気に入ったり更新の通知がほしかったりする場合にスターを送ることができます。そんなGitHubの人気リポジトリ作成者が、「GitHubで10年間にわたり公開されており5万4000件ものスターを獲得してきたリポジトリが、たった1回のうっかりミスですべてのスターを失ってしまった」と報告したブログが話題となっています。 How we lost 54k GitHub stars – HTTPie blog https://httpie.io/blog/stardust 今回のブログを執筆したのは、直感的な操作でコマンドラインからHTTPリクエストを送信するオープンソースのツール「HTTPie」の作成者であるJakub Roztocil氏です。HTTPieは2012年2月

                                                        「10年かけてGitHubリポジトリが集めた5万4000個ものスターをうっかりミスで失ってしまった」という体験談
                                                      • MyRocksの論文がVLDBに掲載されてBest Industrial Paper Awardを受賞していたので紹介 - tom__bo’s Blog

                                                        先週開催されたVLDB(Very Large Data Base)というDatabase分野のトップカンファレンスで松信さんがFirst authorの論文 MyRocks: LSM-Tree Database Storage Engine Serving Facebook's Social Graph が発表され、Best Industrial Paper Awardを受賞されました。 ↑ VLDB 2020 Awards - VLDB2020 Tokyoのスクショ 特にTwitterやブログ等で書いている人がいないようなので、この内容を紹介します。 VLDBはDatabase分野ではトップ中のトップカンファレンスで、新規のアーキテクチャやアルゴリズムが掲載されるものだと思っていました。 なので、VLDBにMyRocks論文が掲載されたと知って正直驚きましたが、内容を読んでみると松信さん

                                                          MyRocksの論文がVLDBに掲載されてBest Industrial Paper Awardを受賞していたので紹介 - tom__bo’s Blog
                                                        • 【6/30まで】iOSの「アカウント(データ)削除機能」の検討進んでますか? - 思い出したいことがある

                                                          …進んでないですよね。 と言うことで、2021年末から改正個人情報保護法対応と併せて頭を悩ませてきた「App Store Reviewガイドライン」について書いていきます。 1.App Store Reviewガイドラインとは (1)位置付け 皆さんご存知の通り、スマートフォンアプリの大部分はapple/googleと言う2大プラットフォーマーのアプリストアを通じて提供されています。 アプリの提供者は、アプリストアを利用するに際してapple/googleとの間で契約を結ぶ必要があり、当該契約で定められたルール(以下、総称してデベロッパー規約と言います)に拘束されます。このルールの一つがApp Store Reviewガイドラインです。 App Store Reviewガイドラインに違反すると、場合によっては提供しているアプリがbanを喰らうことになります。 (2)参考資料 デベロッパー規

                                                            【6/30まで】iOSの「アカウント(データ)削除機能」の検討進んでますか? - 思い出したいことがある
                                                          • ミラティブのインターンで趣味開発と大規模開発のギャップを体験しました - Mirrativ Tech Blog

                                                            皆さんこんにちは、earlgray(@earlgray329) と申します。 10月17日〜12月19日の期間で、株式会社ミラティブの就業型インターンシップに参加していました。私は基盤開発技術部のバックエンドチームに所属して様々なタスクに携わらせて頂きました。 インターンシップの中で、普段行なっている趣味開発と Mirrativ という規模の大きいアプリケーションの開発の間で様々なギャップを経験することができたので、今回はインターンの中で着手したタスクとそれによって得られた知見等を紹介します。 目次 目次 基盤開発技術部とは 着手したタスク 1. Mirrativ 管理画面のログイン画面の SPA(React) 化 背景・概要 苦労したこと・得られたこと 2. 任意のユーザとしてログインできるようなデバッグ機能の追加 背景・概要 フィードバック 3. エモカラのオススメのアーティスト一覧と

                                                              ミラティブのインターンで趣味開発と大規模開発のギャップを体験しました - Mirrativ Tech Blog
                                                            • 中途で入社したての私からみたメドピア開発環境のいいところ - メドピア開発者ブログ

                                                              2020年1月付けで入社した社長室 エンジニアの芝田と申します。 社長室ではkakariという、かかりつけ薬局化を支援するサービスをやっており、そちらでサーバーサイドエンジニアとして働いています。 エンジニアとしてのキャリアはメドピアで2社目で、まだまだ勉強中の身です。 今回はメドピアでの開発を始めて、開発環境のいいところや実装のtipsを一部ご紹介したいと思います。 開発環境のいいところ CIでRSpecやRubocopをはじめとする複数のLint👮が通っていないと原則マージできない Rubyは自由な記法ができるメリットの反面で、記法のばらつきが比較的出がちです。そこは、Lintによってある程度カバーすることが可能です。 また、ClassLength・LineLength・AbcSize等によって、ファイルの肥大・コードの複雑度合いを知ることができます。 kakariではClassLe

                                                                中途で入社したての私からみたメドピア開発環境のいいところ - メドピア開発者ブログ
                                                              • 意外と知らないMySQLの落とし穴ーDELETEする際の注意点

                                                                なぜDELETEしてもディスク容量は空かないのか一度取得した領域はDELETEしても再利用するために保持しておくためです。 どうしてもディスク容量を空ける必要がある場合は テーブルを最適化する際に使うOPTIMIZE TABLEを実行する 「OPTIMIZE TABLE テーブル名」で実行できますALTER TABLEでテーブルを作り変えるALTER TABLEはテーブルの作り替えです 実行中はテーブルロックがかかります 「ALTER TABLE テーブル名 ENGINE INNODB」で実行できますDELETEのみ実行した場合(PTIMIZE TABLE/ALTER TABLEしない場合)、ディスク容量面でのメリットはないのかDELETEした領域は、再度使われるタイミング(INSERTしたタイミング)で再利用されるため、ディスク容量の減りは緩やかになるメリットはあります。 DELETEす

                                                                  意外と知らないMySQLの落とし穴ーDELETEする際の注意点
                                                                • 初心者がExcelで「削除フラグ」のメリットとデメリットを本気で学ぶための勉強会資料 - わえなび ワード&エクセル問題集 waenavi

                                                                  最近では、Excelで会員名簿や商品リストなどの一覧表を作ることが多くなりました。一覧表を作ると、例えば会員名簿の場合は退会や休会、商品の場合は生産中止や販売終了、得意先一覧の場合は取引中止のように一覧表から削除しなければならないことがあります。このとき、誤って削除して上書き保存をしてしまうと、削除してしまったデータを復元することができず大変なことになります。 初心者のなかには、誤ってデータを削除するのを避けるため、行全体をグレーで塗りつぶしたり、行を非表示にしたりと、とんでもない方法で管理している人がいるようです。おそらく正しい削除の方法が分かっていないのではないかと思われます。 そこで、今回は、誤った削除の方法の例、論理削除と物理削除の違い、Excelで削除フラグを用いて管理する方法とそのメリット・デメリットについて解説します。 目次 1.勝手に削除してはいけない 2.書式で削除を表現

                                                                    初心者がExcelで「削除フラグ」のメリットとデメリットを本気で学ぶための勉強会資料 - わえなび ワード&エクセル問題集 waenavi
                                                                  • Rails 6からActiveRecordのAssociationはscopingの影響を受けなくなっている件と対処法

                                                                    こんにちは。日本ではすっかり秋の空が近づいてきました。個人的に夏は暑さが苦手であまり好きではないのですが、終わってしまうとなると毎年どこか寂しい気持ちになります。 一方で、秋はご飯が美味しいので食べる事が好きな僕にとっては一番好きな季節でもあり、結構心が踊っています。笑 さて、前置きは置いといて今回は表題の通り、とあるRails 5.2プロジェクトをRails 6にアップグレードした際に、ActiveRecordのscopingの仕様変更を踏んでしまったのでその対処法をご紹介します。 そもそもscopingとは ActiveRecord::Relation の機能で、引数にブロックを受け取り、その中では、実行時に適用されていたスコープを全クエリでデフォルトで適用する、と言う物になります。 例として、deleted_at (timestamp, nullable) と言うattributeを

                                                                      Rails 6からActiveRecordのAssociationはscopingの影響を受けなくなっている件と対処法
                                                                    • REST API Common Spec としての HTTP Status Code と Error の提案 - Affamative Way

                                                                      この記事は Timee Advent Calendar 2023 シリーズ 2 の14日目の記事です。 qiita.com はじめに TL;DR API HTTP Response Code Definition 2xx 4xx 5xx Errors Problem Details まとめ We’re Hiring! はじめに CTO室に10月に入社した id:cos31 です。 色々とやり始めたばかりで、ネタに苦しいので仕事にもタイミーには全く関係のないネタになります!*1 TL;DR RFC 9457 - Problem Details for HTTP APIs と RFC 9205 - Building Protocols with HTTP をあわせて使うとすっきりする インフラレイヤーとアプリレイヤー HTTP Status code が棲み分けできるステキ感 エラーメッセージ

                                                                        REST API Common Spec としての HTTP Status Code と Error の提案 - Affamative Way
                                                                      • 技術的な雑談をするテックトークを開催して半年が経ちました - Timee Product Team Blog

                                                                        はじめに こんにちは、マッチング領域でバックエンドエンジニアをしているぽこひで ( @pokohide ) です。 タイミーのアドベントカレンダー2日目の記事です。 今回は、タイミーのプロダクト組織で毎週開催している技術的な雑談を行うテックトークの紹介をします。なぜ開催しようと考えたか、どのように運用をしているかなどをお話しします。 はじめに 開催の背景 毎週ゆるく開催するテックトークについて テックトークの仕組み化 会の説明や目的の共有 WINの共有 ポストモーテムの学び共有 雑談タイム やってみて さいごに 開催の背景 タイミーのプロダクト組織では、働き方の柔軟性を担保する観点などからフルリモートという働き方を選択しています。また、タイミーではチームトポロジーを採用しており、それに沿ってチーム構成などを考えています。 チームトポロジーの変遷や取り組みについてはCTOとCPO(発表当時は

                                                                          技術的な雑談をするテックトークを開催して半年が経ちました - Timee Product Team Blog
                                                                        • Datomic Cloud を半年運用した感想|hden

                                                                          こんにちは、株式会社トレタで Clojure を書いている鄧(でん)です。 2021 年 7 月より新規事業をして飲食店向けのセルフオーダーシステムを開発しており、そのバックエンドに Datomic Cloud と Clojure を採用しました。 採用理由は幾つかありますが、主に履歴、監査ログ、変更通知周りの機能要件がマッチしていると考えており、現状 Datomic と親和性が最も高い Clojure も共に採用しました。 良かったところ、気に入ったところ直感的なデータモデリングができる データモデリングをする際には意外とデータベース自体の制限や思想に影響されることがあると思います。例えば MySQL や PostgreSQL などのリレーショナルデータベース(RDB)に慣れている人であればリレーショナルな情報を表現するときに 1:1、1:n、n:1、n:n の関係性をテーブル構造として

                                                                            Datomic Cloud を半年運用した感想|hden
                                                                          • オワコン大手SIerに学ぶアンチパターン - Qiita

                                                                            軽い読み物としておもしろおかしく読んでください。 はじめて社外の人の仕事を見た 今まで社内の成果物しか目にしてこなかったのですが、ふとしたきっかけで外部ベンダーが作ったシステムを移行することになりました。 会社名を見て、よく知った会社でちょっと安心しました。 「ここなら設計書とかもきちんとしてるだろう、多少古臭くても堅実にやってるんじゃないかな」って思ってました。ええ。 実態は全然違った とんでもない量のExcelが設計書として渡されました。 さすがに設計が専門だけあって設計書の量はすごいなぁ。と思って読んでいるといろいろ察してきました。 正直、「オワコン大手SIer」と呼ぶしかありません。設計しかできないと思っていたのに、何もできないなんて・・・ 実際に自分が見た「オワコン大手SIer」のアンチパターンをご紹介していきます。 自分が多く当てはまっている場合は今すぐ直してください。移行する

                                                                              オワコン大手SIerに学ぶアンチパターン - Qiita
                                                                            • 週刊Railsウォッチ(20201221前編)aws-sdk-rails gemの機能をチェック、RubyWorld Conference 2020のDHHインタビューほか|TechRacho by BPS株式会社

                                                                              2020.12.21 週刊Railsウォッチ(20201221前編)aws-sdk-rails gemの機能をチェック、RubyWorld Conference 2020のDHHインタビューほか こんにちは、hachi8833です。約400年ぶりという木星と土星の超大接近は12/21(月)なので今夜ですね。と思ったらもう西の空に沈んでしまったようです。 参考: 【特集】2020年12月 木星と土星の超大接近 - アストロアーツ 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙇 ⚓Rails: 先週の改修(Rails公式ニュースより) 今

                                                                                週刊Railsウォッチ(20201221前編)aws-sdk-rails gemの機能をチェック、RubyWorld Conference 2020のDHHインタビューほか|TechRacho by BPS株式会社
                                                                              • 2021 年振り返り - yoheimuta’s blog

                                                                                今年も一年の振り返りを簡単にまとめました。 私生活 体調管理 1 日も風邪をひくことなく元気に過ごせました 仮にコロナにかかると、子どもが濃厚接触者になります。その間仕事は休まないといけなくなるので、市中感染が多いときは積極的に在宅するようにしてました。 お手伝い 12/31 にコミックマーケット99(通称、冬コミ)の手伝いに行きました。二年ぶりでオペレーションを忘れているかと緊張しながらスペース設営に望みましたが、だんだんと勘を取り戻せて無事一年を締めくくれました。入場者数に制限がかかっていたため、常に怒号が鳴り響くこともなく、また、間違って人流に逆らった瞬間命の危険を感じることもなく、例年に比べると随分と落ち着いたイベントでした。 サークル入場開始直後の東ホール NFTs and a Thousand True Fans[1] で引用されている a Thousand True Fans

                                                                                  2021 年振り返り - yoheimuta’s blog
                                                                                • 週刊Railsウォッチ(20191015)スライド「Rails Performance issues and Solutions」を見る、dirtyに*_previously_was が追加、Sidekiq 6.0.1ほか|TechRacho by BPS株式会社

                                                                                  2019.10.15 週刊Railsウォッチ(20191015)スライド「Rails Performance issues and Solutions」を見る、dirtyに*_previously_was が追加、Sidekiq 6.0.1ほか こんにちは、hachi8833です。台風前のつっつきでしたので、エントリを減らし気味にしてみました🙇。 台風19号の最大瞬間風速は75mらしく、これを時速に直すと270km/h。 東海道新幹線の最高速度が285km/h、飛行機の離陸時の速度が240〜300km/hらしいので、新幹線や飛行機並みのスピードでいろんなものが飛んできます。ヤバい。https://t.co/iKTTEgf5Nzhttps://t.co/Ic8ky9GPsUhttps://t.co/Ic8ky9GPsU pic.twitter.com/Y5TpNX2Dvg — Junich

                                                                                    週刊Railsウォッチ(20191015)スライド「Rails Performance issues and Solutions」を見る、dirtyに*_previously_was が追加、Sidekiq 6.0.1ほか|TechRacho by BPS株式会社