タグ

2024年5月12日のブックマーク (17件)

  • Prisma ORMを2年運用して培ったノウハウを共有する

    TSKaigi 2024 ref: https://tskaigi.org/talks/tockn

    Prisma ORMを2年運用して培ったノウハウを共有する
  • ブラウザキャッシュの仕組みについてまとめた

    Web開発において、ページの読み込み速度は非常に重要になります。 そのためにもブラウザのキャッシュは効率的なWebサイト運営に不可欠な機能です。 ブラウザのキャッシュには次のHTTPヘッダを設定することができます。 Expiresヘッダ Cache-Controlヘッダ Last-Modifiedヘッダ ETagヘッダ これらのキャッシュには強いキャッシュと弱いキャッシュで分類が可能です。 「Expires」「Cache-Control」は強いキャッシュであり、「Last-Modified」「ETag」は弱いキャッシュに分類できます。 強いキャッシュと弱いキャッシュ 強いキャッシュは設定された期間内は完全にローカルキャッシュを利用して、サーバーへのリクエストを行いません。 一方で弱いキャッシュはキャッシュされたリソースの検証が必要であり、ETagやLast-Modifiedヘッダを利用して

    ブラウザキャッシュの仕組みについてまとめた
  • サブクエリの書き方を2万文字弱かけてすべて解説する

    これはなに ども、レバテック開発部のもりたです。 今回はSQLのサブクエリについてまとめます。仕事でクエリを書く際、サブクエリは頻出の構文だと思うんですが、同時にサブクエリの書き方を完全に理解しているよという人は案外少ないのではないでしょうか?[1] 実際、MySQLの公式ドキュメントを見ると12ページくらいを割かれており、意外と奥深いのがサブクエリです。使いこなせると便利ですし、何よりちょっとSQLのコツみたいなのがわかって面白いよ、ということで記事にしてみました。 前提 この記事は以下の前提を含んでいます。 環境 MySQL8.0系 読者の知識 なんとなくサブクエリが書ける けど相関サブクエリとかになると「あーっ」つってGoogle meetを閉じてしまうくらいのレベル感 記事のボリューム 18,000文字 おれの卒論が20,000文字だった マサカリ 間違ってたら投げてくれ〜〜 それ

    サブクエリの書き方を2万文字弱かけてすべて解説する
  • AI時代にこそTDDだと思う話

    GitHub Copilot、みなさん使ってますか?すでに多くの方が利用しており、「ないと困る」という方から「提案の質に問題がある」「まだまだ使えない」という方まで、様々な意見を聞きます。 筆者はGitHub Copilotに対して非常にポイティブな立場です。GitHub Copilotは使い方次第で開発速度を格段に向上させることを身をもって体験しており、これからの時代においてはGitHub CopilotなどのAIツールを使いこなせるかどうかで、個人の開発速度に非常に大きな差が出ると考えています。 重要なのは使い方次第と言う点です。前述のように様々な感想が溢れているのはAIツールの習熟度が大きく影響しているようにも感じます。AIツールは静的解析同様、利用者側の手腕が大きく問われるツールであると筆者は感じています。コマンドプロンプトエンジニアリングという言葉もあるように、AIツールを使いこ

    AI時代にこそTDDだと思う話
  • スレッドとプロセスの違いを完全に理解する

    はじめに こんにちは、FarStep です。 プログラミングを学ぶ中で、「プロセス」と「スレッド」という言葉を耳にしたことがある方は多いと思います。 しかし、これらの違いを明確に説明できる自信がない方も多いのではないでしょうか。 記事では、プロセスとスレッドの違いについて、エッセンスを抽出して 解説します。 説明を簡潔にしましたので、記事は 5 分程度で読み終えることができます。 記事の内容を自分の言葉で説明できるようになれば、プロセスとスレッドの違いの理解は十分でしょう。 それでは、始めます 🚀 プログラムとは プロセスとスレッドの違いを理解する前に、まずは「プログラム」について理解しましょう。 プログラムとは、プログラミング言語で書かれた一連の命令 のことです。 プログラミング言語の例としては、以下のようなものがあります。 C 言語 Java Python Ruby JavaS

    スレッドとプロセスの違いを完全に理解する
  • 話題のローコードツール「Dify」で生成AIアプリを作ってみよう! - Qiita

    Difyって何? 少し前から話題の、プログラミングなしで生成AIアプリケーションを開発できるOSSです。 「Dify すごい」 でSNSを検索すると、驚き屋さんがみんな驚いています。このゴールデンウィークはAmazon BedrockとDifyの話題でもちきりでしたね。 元々は「GPTビルダーのOSS版ね。はい解散」という感じだったのですが、最近追加された「ワークフロー」機能がすごく便利のようです。 ちょっとしたアプリなら、ローコードで簡単に作れてしまうとのこと。 最近は自分でPCやサーバー準備して動かさなくても、SaaS版が公式から準備されたようです。無料プランもあります。 やってみた サインアップ 公式サイト右上の「Get Started」からサインアップします。 GitHub連携すると、いきなり開発画面に辿り着きました!いいUX。 「(いち?)から作成」よりワークフローを作ってみまし

    話題のローコードツール「Dify」で生成AIアプリを作ってみよう! - Qiita
  • pytest でテストケース毎に DB を自動的に初期化して、テスト開発体験を向上させる - SalesNow Tech Blog

    概要 Web バックエンドのテストコードを書く場合、その多くは DB に依存していることが多いです。 DB 関連のテストは、テストデータの準備やテストケース毎の DB 処理化を適切に行うことが重要ですが、手間がかかる場合あるため、Mock で擬似的にテストしてしまうことも多いかと思います。 ただ、Mock を使ったテストは質的な問題を検知できない意味のないテストになってしまう可能性があり、可能な限り DB の Mock を行わずに、実際の DB を使用してテストすることが望ましいと考えています。 記事では、pytest、sqlalchemy、PostgreSQL を使った場合に、テストケース毎に DB を簡単に初期化しつつ、テストケース毎の前提データ登録も簡単うことでテスト開発体験を向上させる方法を紹介します。 前提環境 記事では、以下の環境を前提として説明いたします。 python

    pytest でテストケース毎に DB を自動的に初期化して、テスト開発体験を向上させる - SalesNow Tech Blog
  • CockroachDB はどのくらい「しぶとい」のか? / How tough is CockroachDB?

    CockroachDB はどのくらい「しぶとい」のか? / How tough is CockroachDB?

    CockroachDB はどのくらい「しぶとい」のか? / How tough is CockroachDB?
  • 「GitHub Copilot全社導入」の前にたちはだかった3つの壁 ZOZOはどう乗り越えたか

    生成AIのビジネスへの利活用の一環として、AIプログラミング補助ツール「GitHub Copilot」の導入に踏み切る企業が増えている。ファッションECサイト「ZOZOTOWN」を運営するZOZOもその一つで、2023年5月に法人向けサービスである「GitHub Copilot Business」を全社導入した。 ZOZOには約500人のエンジニアが所属しており、その全員がGitHub Copilot Businessを利用できるようにした。一方で、AIツールの全社導入に当たっては、セキュリティや費用対効果など、検討すべき点も多い。ZOZOではどのような検討の結果導入に至ったか、同社のテックリードを務める堀江亮介さん(技術技術戦略部CTOブロック)が公開している外部向け資料からひもとく。 全社導入を進める際、ZOZOでは「セキュリティ上の懸念」「ライセンス侵害のリスク」「導入による費用

    「GitHub Copilot全社導入」の前にたちはだかった3つの壁 ZOZOはどう乗り越えたか
  • SQL滅ぶべし | ドクセル

    SQL • リレーショナルデータベースシステムと会話するための言語 • 1970年 Codd が RDB モデルと同時に提案 (Alpha言語) • 1974年 Chamberlin と Boyce が改良 • 元々は SEQUEL (Structured English Query Language) だったが、商標登録されていた • 読み方は エスキューエル とそのまま読む (Glliespie 2012) SQLSQL は目的別に 4つに分けられる • DCL (データ制御言語) GRANT とか • DDL (データ定義言語) CREATE TABLE とか • TCL (トランザクション制御言語) ROLLBACK とか • DML (データ操作言語) • INSERT, UPDATE, DELETE, SELECT • データ分析者にとって重要なのは SELECT 文

    SQL滅ぶべし | ドクセル
  • PythonだけでWebアプリが作れるライブラリが増えている(2024.05) - Qiita

    2024.8.6:FastHTMLについて追記しました。 ※記事で言及しているReflexのdiscordサーバー内に日語チャンネルをつくってもらいました。もし、興味をもった人がいたら参加してみてください。 1.PythonだけでWebアプリをつくるライブラリが増えている 最近(2024.05)、Python界隈ではPythonだけでWebアプリが作れるライブラリが増えています。詳しくは他の記事を参照してもらえればと思います。 以下の記事がとても参考になりました。ありがとうございます。 2.ライブラリの分類 こうしたライブラリも大きくわけて2つの種類があるように思います。 ①データ解析の結果を表示するダッシュボードライブラリ ②汎用的なWebアプリをつくるローコードライブラリ ①ダッシュボード系ライブラリ たとえば、上記の記事にも出てきますし、ネットでもかなり情報の多い、Streaml

    PythonだけでWebアプリが作れるライブラリが増えている(2024.05) - Qiita
  • なぜ管理職は罰ゲームなのか。 - Qiita

    はじめに タイトルでお察しかと思いますが、今回は「罰ゲーム化する管理職」の著者である小林祐児さんがPIVOTのYoutubeチャンネルに出演されており、そちらの内容が非常に素晴らしかったので、管理職の課題や対策について、記事にまとめたいと思います。 また、途中で出す資料はパーソル総合研究所の中間管理職の就業負担に関する定量調査からお借りしています。 中間管理職の課題 部下育成が不十分、後継者不足 働き方改革が進んでいるもの、現在の管理職は人手不足・ダイバーシティ・ハラスメント対応・人手不足などによって業務量が増加。 管理職人の負担が増えている他、部下育成と後任者の不在という課題も抱えている。 昨今の働き方改革やハラスメント対応などにより、管理職の業務量は増加傾向にあります。 小林さんに言わせれば、「働き方改革は一般層の働き方改革」であって、それによって管理職の首を絞めていると。 業務量増

    なぜ管理職は罰ゲームなのか。 - Qiita
  • フロントエンドのスピードに置いていかれたので、よく聞く技術を調べて分類してみた

    元フルスタックエンジニア(死語)をやらせていただいていたものです。 JavaScript(TS)周りの進歩が凄く、あまりにもついていけていなかったので、気になったワードを片っ端から整理してみました。 それぞれに対する説明の正しくないものが含まれてしまっている可能性があります。 そんなところを見つけたときは優しく教えてくださると助かります。 各ツールの詳細というよりは、それぞれがどんな役割のものなのかを記載しています。 この記事が誰かの助けになれば幸いです。 調査・分類した言葉(技術)たち Hono Bun Deno Biome Vite Webpack Turbopack esbuild Babel SWC Prisma まず上記に上げたものが、どういった機能を持つものなのかもわかりませんでした。 それを整理すると以下になるようです。 JavaScript Runtime Deno Bun

    フロントエンドのスピードに置いていかれたので、よく聞く技術を調べて分類してみた
  • Python 3.12で増えた並列処理と、これまでの並列処理の挙動を比べてみる - Qiita

    この記事ですることを3行で Pythonの標準ライブラリでできる並列実行を、あらためて総当たりで速度比較しよう ウォーターフォールチャートで、それぞれの並列処理の処理時間の特徴を可視化しよう boto3の実行をモデルケースにして、どの並列処理が一番早いのかを調べよう この記事の結論を先に Python 3.12から格的に使えるようになったサブインタープリターは、CPUで実行する処理について言えば、従来のサブプロセスよりも高速 boto3の実行は、サブインタープリターよりも署名付きURLの非同期実行のほうが速い → S3からの10ファイルの取得であれば、実行時間を90%削減できます → Bedrockの3回実行であれば、実行時間を60%削減できます 今回使ったソースコードはこちらに置いています。 お手持ちの環境で再実行できるようにしていますので、気になる方はぜひ。 どうしてこの記事を書くの

    Python 3.12で増えた並列処理と、これまでの並列処理の挙動を比べてみる - Qiita
  • SQLは滅ぶべきか|ミック

    でかい釣り針が来たので釣られてみる。とりあえず以下の資料を読んでいただきたい。そんなに長くないのでサクッと読める。 SQLの記述順序と思考の順序が違うので書きにくいし、エディタの補完機能の恩恵が受けられないのが嫌だ、という意見はもう大昔からある。何度も何度も何度も繰り返されてきた議論である。以下の2011年のスレッドでも「SQLはFROM句が最初に来るべきではないか?」という問いが提起されている。すぐに出てこないが、筆者はこれより古い文書も見た記憶がある。

    SQLは滅ぶべきか|ミック
  • Pythonでリトライ処理を簡単に追加できる「tenacity」を使ってみる | DevelopersIO

    今回はPythonで簡単にリトライ処理を追加できる「tenacity」を使ってみます。 デコレータ形式で簡単にリトライ処理を追加できるので便利です。 tenacityについて プログラムを書いていて、HTTPの通信などでリトライ処理を実装する機会は多いと思います。 今回はそんなリトライ処理を簡潔に書けるtenacityの使い方を説明します。 インストール インストールはpipで可能です。 pip install tenacity 使い方 シンプルな例 import random from tenacity import retry @retry def random_error(): num = random.randint(0, 10) if num > 4: print(f"Error: num={num}") raise Exception("Error!") else: retur

    Pythonでリトライ処理を簡単に追加できる「tenacity」を使ってみる | DevelopersIO
  • 表記揺れ検出ツール「テキストゆれないくん」 - inzkyk.xyz

    その他のサンプル: Wikipedia:良質な記事, Wikipedia:長いページ 紹介 「テキストゆれないくん」は文章に含まれる表記揺れを検出するツールです。「コンピュータ」と「コンピューター」、あるいは「全て」と「すべて」といった同じ単語の別表記が使われていないかどうかをチェックできます。 「テキストゆれないくん」は元々このサイト (https://inzkyk.xyz/) の文章校正用に開発されました。機能が成熟してきたので UI を付けて公開します。 このページから手動で使う限り、「テキストゆれないくん」は商用/非商用を問わず自由に使って構いません。「テキストゆれないくん」は無保証で提供されます。 特徴 ウェブブラウザから使える このページをウェブブラウザで開いているなら、「テキストゆれないくん」は既に動いています。このページの最初にあるのは「テキストゆれないくん」を使うための完

    表記揺れ検出ツール「テキストゆれないくん」 - inzkyk.xyz