タグ

dai_hi_saruのブックマーク (11,720)

  • 型を意識した Ruby on Rails 上のモデル - freee Developers Hub

    こんにちは。freee販売を大阪で開発しております、bucyou (ぶちょー) というものです。 この記事は、freee Developers Advent Calendar 2023 の10日目です。 例によって普段は Ruby on Rails で開発をしておりますが、ここでのアーキテクチャや、モデリングに関する話題は、先日 freee技術 に書かせていただきました。 また、先日は TechNight にて、freee販売での取り組みを紹介させていただきました。 このや、イベントの中で伝えたかったメッセージとしては、以下のようなものでした。 実現したいビジネスを、より適切に表現するためにモデリングを重視していく。 ActiveRecord によって作られたモデルと、ビジネスを表現するためのモデルをしっかり分けていく。 しかし、はみんなで書いているものだったのでページ数はある程度

    型を意識した Ruby on Rails 上のモデル - freee Developers Hub
  • App Mesh の導入とカナリアリリース

    この記事は MICIN Advent Calendar 2023 の 12 日目の記事です。 前回は Mimu-Salon さんの「MICIN で未経験エンジニアとしての 1 年半、成長と学びの挑戦」でした。 はじめに 稿では App Mesh を採用するに至った経緯と導入時の大まかな手順、そして App Mesh を用いたカナリアリリース実施についてのナレッジや導入後の小話について記載します。 以下公式ドキュメント記載の用語は断りなく使用します。 使用している技術 技術カテゴリ 名前 採用の経緯 分散トレーシングの実現 MICIN のプロダクトでは従来より、マイクロサービスとの通信において分散トレーシングが実現されておらずエラー発生時の調査に苦戦することがありました。その問題を解決するために以下の案が挙がりました。 各サーバにトレーシングの実装する Service Mesh を導入する

    App Mesh の導入とカナリアリリース
  • 理想のフロントエンドテストをたずねて三千里 - カミナシ エンジニアブログ

    こんにちは。カミナシにて業務委託としてフロントエンドを担当している田村(@junkboy0315)です。皆さんはフロントエンドのテスト、どのように取り組んでいますか?フロントのテストはなかなか難しいですよね。 バックエンドのテストには、「入力、出力、永続化されたデータ」の3つを検証するという基セオリーがあります。しかし、フロントエンドのテストは、その粒度や手法が多様で、とっつきにくいと感じる方も多いのではないでしょうか。 カミナシでもフロントエンドのテストは以前は十分とは言えない状態でしたが、これまで継続的に改善を重ねてきました。今回は、その変遷についてお話ししようと思います。 夜明け前 カミナシのコードベースでは、元々ユニットテストがある程度整備されていました。これらは主に複雑な計算処理を行い結果を返す関数などに対して実施されていました。 しかし、画面全体の機能を網羅する包括的なテスト

    理想のフロントエンドテストをたずねて三千里 - カミナシ エンジニアブログ
  • 認証と身元確認の強度について改めて考えてみようと思った - Qiita

    記事は Digital Identity技術勉強会 #iddance Advent Calendar 2023 の11日目の記事です。 最近、パスキーのことばかり考えていましたが、その中だったり、別の文脈だったりで、「認証の強度や身元確認レベルと利用可能な機能の関係」を考える機会が、ちょいちょいありました。 例えば『パスキーでアカウント登録するを実施するのが理想的だよね』という意見を聞きます。その一方で、『パスキーでphishingの対策はできるかもしれないけど、誰でも簡単にアカウント作れたらだめだから、電話番号の登録はどのみち必要。iCloud keychain/画面ロック有効にしてない人もいるし、あくまでパスキーを全面にだすのは微妙じゃない?』という意見も聞きます。 そんな話を聞いていたら、アカウントを認証強度や身元確認強度の観点から、どういう状態があって、各状態にどういうリスクがあ

    認証と身元確認の強度について改めて考えてみようと思った - Qiita
  • MICINにおけるデータ基盤の取り組み

    この記事は MICIN Advent Calendar 2023 の 10 日目の記事です。 昨日はGoのanalysisパッケージを使った静的解析を実装するでした。 はじめに 2023年、MICINでは格的にデータ基盤を整備する取り組みを始めることができました。 稿では、ここまでの経緯やこれからの展望などをご紹介できればと思います。 データ基盤プロジェクト以前 題に入る前に、少しだけMICINの事業についておさらいです。 会社説明資料 にあるように、 オンライン医療事業 臨床開発デジタルソリューション事業 デジタルセラピューティクス事業(DTx事業) 保険事業 の大きく分けて4つの事業があります。 ご想像の通り各事業・各サービスで持っているデータは事業に特化したものとなっており、それぞれに一定のデータ分析などを行ってはいるものの課題が多い状況でした。 データ基盤プロジェクトの始動

    MICINにおけるデータ基盤の取り組み
  • Gmailの新スパム規制対応全部書く

    [2024年1月10日、19日追記] GmailとYahoo!側のアップデートに合わせていくつか細かい説明を追加しています(大筋は変わっていません)。変更点だけ知りたい方は「追記」でページ内検索してください。 2023年10月3日、Googleはスパム対策強化のため、Gmailへ送るメールが満たすべき条件を2024年2月から厳しくすると発表しました。また米国Yahoo!も、2024年2月 第一四半期[1] から同様の対策を行うと発表しています。端的に言えば、この条件を満たさないと宛先にメールが届かなくなるという影響の大きな変更です。 この記事では、Gmailや米国Yahoo!の規制強化への対応方法を解説します。ただし米国Yahoo!にメールを送る人は多くないと思うので、フォーカスはGmail寄りです。また、メール配信サービス(海外だとSendGridやAmazon SES、国産だとblas

    Gmailの新スパム規制対応全部書く
  • Shinkansen too hard ice cream - Wikipedia

    Sujahta Super Premium Ice Cream (2014 package), a.k.a. "Shinkansen too hard ice cream'". Shinkansen too hard ice cream (Japanese: シンカンセンスゴイカタイアイス) is the commonplace name for a type of ice cream sold mainly on Japanese Shinkansen trains. The term first gained popularity on the Internet, being used as a nickname that has been intermittently booming on Twitter since about 2013.[1] Since 2021 it has

    Shinkansen too hard ice cream - Wikipedia
  • Vitest(jsdom)でStorybookのStory全部テストする大作戦

    この記事は 株式会社ゆめみの23卒 Advent Calendar 2023 7日目の記事です。 今北産業 ファイル component.test.tsx を置くと、Storybook test runnerのように全部のStoryのスモークテストとインタラクションテストがVitestとjsdomでできるよ! ヘッドレスブラウザを使わずにテストできるので、CIやGit hookなど実行時間を少なくしたいシチュエーションで使えるよ! でもブラウザで実行していないから複雑なインタラクションテストやアクセシビリティテストなど、一部のテストが不安定になるかもね! 考えて使い分けよう Storybook をテストとして動かす Storybookでは、Storyファイルのplay 関数内にユーザのインタラクション(振る舞い)やアサーション(期待する結果)を記述することで、インタラクションテストを行うこ

    Vitest(jsdom)でStorybookのStory全部テストする大作戦
  • 中途入社のソフトウェアエンジニアが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
  • 状態設計から「なんとなく」を無くそう

    ウォンテッドリー株式会社の社内イベント "Tech Lunch" で話した発表です。 プログラムには大小さまざまな粒度の「状態」が存在します。 状態の設計を工夫することで、コーナーケースの発生を抑止し、ユーザー体験を最適化することができます。 発表では、私が普段どのように「状態」について考えているか、言語や環境を問わずできるだけ普遍的に使える形での言語化を試みます。発表を通じて、「状態」をなんとなくではなく合理的に設計するためのヒントを提供します。 GoogleスライドのURL: https://docs.google.com/presentation/d/1PNzz69UV05HlKPuWGlooemnPslLbLKsyLwl3R4U_XqE/edit

    状態設計から「なんとなく」を無くそう
  • はじめに · PostgreSQL Internals

  • レスポンシブ対応の遅延画像が「sizes=auto」を使用すると簡単に実装できるようになります

    朗報です! 来年の2024年に、ブラウザはCSSから画像の実際の幅を取得し、それを画像のサイズとして使用することができるようになります。 srcsetで遅延読み込みされた画像の場合、ブラウザはsrcsetからソースURLを選択するために画像のレイアウト幅を使用できるようになります。 Add sizes=auto to lazy-loaded <img> これにより、Webデベロッパーはsizes属性を省略したり、loading=lazyを持つ<img>要素に対して明示的にsizes=autoを設定することができます。 ブラウザは、画像のレイアウト幅にsrcset属性の値を使用します(遅延画像は、レイアウトが判明するまで読み込みを開始しません)。遅延ではない画像の場合は無効で、100vwと同等になります。 sizes=autoはレスポンシブ対応の<img>に特に強力です。複数のバージョンの画

    レスポンシブ対応の遅延画像が「sizes=auto」を使用すると簡単に実装できるようになります
  • 本番サーバー60台のホスト名を全部 cat にしてしまった話 - Qiita

    この記事は、番環境などでやらかしちゃった人 Advent Calendar 2023 の4日目です。年末進行、いかがお過ごしでしょうか?みなさま無事に仕事が納まることを願っております… 新人インフラエンジニアが、番ウェブサーバー60台のホスト名を全部 cat にしてしまった話について、ここに供養させていただきたいと思います 背景 おそらく今から7年くらい前、インフラエンジニアとして転職してきて1年ほどが経ち、番環境での作業もこなれてきたなというバッチリのタイミングで事を起こしてしまいました。サーバーは CentOS 6 だったと思います。 職場としてはまだまだベンチャー感にあふれ大きな裁量が与えられスピード感のある環境ながら、サービスの登録ユーザー数は1,000万を超え、番環境の規模としては既になかなかの大きさがあり、ウェブサーバーだけでも60台くらいあったと思います。ひと山につき

    本番サーバー60台のホスト名を全部 cat にしてしまった話 - Qiita
  • GitHub - kddnewton/parser-prism: A prism backend for the whitequark/parser gem

  • Terraform職人のためのOpenTofu入門 - Qiita

    この記事は クラウドワークス Advent Calendar 2023 シリーズ1 の 4日目の記事です。 はじめに 「父さんな、Terraform職人やめてお豆腐職人でっていこうと思うんだ」と言いたいだけの @minamijoyo です。 2023年8月HashiCorpはこれまでMPL2のOSSライセンスで公開していた主要製品をBSL(Business Source License)に変更することを発表し、Terraformはv1.6.0からOSSではなくなりました。 このライセンス変更を受けて、OSS版のTerraformを求める人たちで、MPL2時点のコードベースからforkしたOpenTofuの開発が進められています。 HashiCorpのBSLは、実質的に競合他社の商用利用に制限をかけたもので、ほとんどの一般的なユーザに直接的な追加の制限はありませんが、間接的にTerrafo

    Terraform職人のためのOpenTofu入門 - Qiita
  • ゴメン!オレが悪かった!~技術的負債の懺悔~|あっきー

    ごきげんよう🙋‍♀️ツクリンクでエンジニアリングマネージャーをしているあっきー(@kuronekopunk)です。 この記事はツクリンク プロダクト部 Advent Calendar 2023 4日目の記事です。 前日はSRE泉田さんの「ECS スケジュールされたタスクが起動しなかったことを監視する」でした。 自社サービスのツクリンクは最初は自分がPHPで作っていましたが、エンジニアの参画と合わせて2014年からRuby on Railsにリプレースしています。 リプレースから10年弱経った今、とりあえずで作ったけどサービス成長で運用が辛く負債に感じる部分を紹介していきます。(2021年に書いたRails以降時のnote) メール、通知の設計管理者のアドレスをBCCに入れた0→1のサービス開発当初、「ユーザーさんに送ったメールの内容を知りたい」という動機からユーザーさん宛のメールのBCC

    ゴメン!オレが悪かった!~技術的負債の懺悔~|あっきー
  • プログラミングの原則:enumの比較はすべてバグ - Uzabase for Engineers

    こんにちは、ソーシャル経済メディア「NewsPicks」のむとうです。 この記事は NewsPicks アドベントカレンダー 2023 の3日目の記事です。 昨日は@J_Nakagawa(隼佑 中川)さんによる『LambdaレスポンスストリーミングとAWS-SDKを使ってSlackに進捗バーを表示させる』でした! 世の中には再現が難しく一見してバグがありそうに思えないコードもありますが、一方でプロダクションコードの中にはひと目見てバグが有りそうなコードもまた多いものです。いくつかの特定のパターンをとる文字列(環境名など)やenum(以下どちらもenumと表現します)に関する条件分岐もその一つです。プルリクを見てこのようなパターンがあれば、バグの疑いが強くなります。周囲を見渡すと、大抵すでにバグっているか潜在バグを含むコードが見つかります。すべてバグというのは言い過ぎにせよ、わかりやすさと変

    プログラミングの原則:enumの比較はすべてバグ - Uzabase for Engineers
  • ISUCON13で優勝しました(チーム NaruseJun)

    11月25日に開催されたISUCON13でチームNaruseJunとして参加し優勝しました。 メンバーはここ4年同じで、大学時代のサークル仲間の@sekai・@takashi・とーふとふの三人です。 昨年のISUCON12でも優勝したので、チームNaruseJunは二連覇となります。 最終スコアは468,006点でした。 スコアの推移は以下の通りです。 かなり順調にスコアを伸ばしていますね。後述しますが17時直後にめちゃくちゃ伸びているのは、ログを止めた結果です。 その他のスコアは↓ ISUCON13 受賞チームおよび全チームスコア : ISUCON公式Blog 事前準備 今年はチーム全員が忙しかったので、チームで最初に集まったのは11/14でした。 その日は30分くらいで今年の流れの確認と、素振りの日(11/18)を確定して解散しました。 ありがたいことに過去優勝チームとしてLodgeで

    ISUCON13で優勝しました(チーム NaruseJun)
  • GitHub - ykiu/gql-in-ts: A type-safe way to write GraphQL.

  • GitHub - css-hooks/css-hooks: Hook into advanced CSS features from native inline styles.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - css-hooks/css-hooks: Hook into advanced CSS features from native inline styles.