Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

webappに関するsh19910711のブックマーク (1,350)

  • zodスキーマからOpenAPIドキュメントを生成して、型安全なプロジェクトを構築しよう

    フロントエンド及びバックエンドがTypeScriptである場合の設計例を紹介したい こんにちは!sonicmoovエンジニアのchiakiです。 記事では、 REST APIで使用されるデータモデルやパラメータ定義 APIエンドポイントのメタ情報 といった内容をOASではなくTypeScriptで一元管理するために、@asteasolutions/zod-to-openapiを使用した設計例を紹介したいと思います! ディレクトリ構成 今回はお問い合わせフォームや一覧といった画面を想定しています。FEとBEがともにモノレポで管理され、packagesディレクトリ配下にschemaディレクトリがあるという構成になります。 └── schema/ ├── constants/ # 定数や型定義をまとめる │ └── contact.ts ├── models/ # DBやレスポンスのモデルスキ

    zodスキーマからOpenAPIドキュメントを生成して、型安全なプロジェクトを構築しよう
  • [入門] Next.js+Hono+Bunのモノレポ構成で型安全なWebアプリ開発をする

    こんにちは、やせです。 普段はゆるく個人開発をしている学生です。 はじめに 記事では、Next.js+Hono+Bunを用いて、型安全にWebアプリ開発を行う方法を入門者向けに説明していきます。 また、記事では以下の内容も扱います。ZodやDrizzleを用いて、データベースからフロントエンドまでを型安全に開発することができます。 Bun Workspacesを使用したモノレポ構成 HonoのRPC機能 Zodによる型安全なバリデーション Supabase DB + Drizzle ORMによるDB操作・マイグレーション TanStack Queryを使用したデータフェッチ Next.jsで作成したSPAをCloudflare Pagesへデプロイ Honoで作成したAPIサーバーをCloudflare Workersへデプロイ 各章の最後には、実際に手を動かして学びたい人向けにハンズ

    [入門] Next.js+Hono+Bunのモノレポ構成で型安全なWebアプリ開発をする
    sh19910711
    sh19910711 2025/02/26
    "Hono: ミドルウェアを通すことで、Zodで定義したスキーマをもとに、リクエストデータを簡単にバリデーションして、型安全にリクエストデータを扱う"
  • 個人開発から公式機能へ: PlaywrightとRailsをつなげた3年の軌跡

    Developers Summit 2025(2025.02.13-14) - 翔泳社イベント 1日目 13-E-9 あなたのプロダクトが見たい!個人開発リレーセッション で話したときの資料です。 https://event.shoeisha.jp/devsumi/20250213/session/5551

    個人開発から公式機能へ: PlaywrightとRailsをつなげた3年の軌跡
    sh19910711
    sh19910711 2025/02/18
    "作り続けるには「工夫」が必要 / 自分の役に立つソフトウェアを作るインセンティブは大きい"
  • APIを設計するのにswaggerはいらない

    なぜvte.cxはJSON SchemaやSwagger(OpenAPI)に対応しないのですか?とよくいわれます。 それに対して私は、vte.cxにとってのAPIは、アプリケーション内部でのフロントエンドとバックエンドの通信が主目的なので、swaggerで公開する目的が薄いからといってきました。 SPAなどのアプリケーション固有のAPIをJSON Schemaで作ってSwagger(OpenAPI)で公開したとしても、多くの人がそれを利用するわけではないのです。つまり、自分が作ったAPIは自分しか使わないので、インターオペラビリティを考える必要もなく、swaggerは冗長だろうと。 私はswaggerなどを採用する積極的な理由がないのであれば、対応すべきでないという立場です。要は、APIを作るのにどれだけ多くの時間と労力をかけますか?ということであり、冗長で手間がかかることはやめてシンプル

    APIを設計するのにswaggerはいらない
    sh19910711
    sh19910711 2024/10/27
    "自分が作ったAPIは自分しか使わない / 冗長で手間がかかることはやめてシンプルにすべき" '17
  • Streamlit in Snowflake + dbt Cloudでデータの可視化をしてみる!

    はじめに Streamlit in SnowflakeがPrivateLinkでも使えるようになるよ〜という記事を見かけ、そもそもStreamlit in Snowflakeはなんぞや・・・ 触ってないなというお気持ちになったので、今回はPublic経由でStreamlit in Snowflakeとdbt Cloudを触りながら簡単なデータ基盤を作ります。 Streamlitの構成→ダミーデータの選定→SOURCE/RAW→LAKE→DWH→MARTの順序で作成していくので良ければ参考にしてください。 事前準備 下記の準備を事前に完了していることが前提で進みます。 GitHub アカウントとリポジトリの作成 Account settings->Personal profile->GitHubからdbt CloudとGiHubの連携 Snowflake User (+ Key pair)の

    Streamlit in Snowflake + dbt Cloudでデータの可視化をしてみる!
    sh19910711
    sh19910711 2024/10/27
    "Streamlit in SnowflakeがPrivateLinkでも使えるようになるよ〜という記事を見かけ / SIS: 認証情報を設定ファイルに書く必要がない + Snowflake内で他ユーザへの共有がとても楽、かつ見せたい人を限定できる"
  • 生成AI/LLMを使ったウェブサイト開発 - laiso

    週末にちょっとしたウェブサイトというかリンク集(?)を作った。 今回は生成AIツールをフル活用していつもより効率よく作業ができた。 生成AIツールについては日々、新しいものがヤバイすごいと宣伝されているけど、実際にどう使っているのかという情報が少ないと感じている。 なので具体的な使い方を書いてみることにした。 作ったもの 開発の概要 最終的なアーキテクチャ UI開発に生成AIツールを使う 初期デザインの参考元 デザインツールの選定と比較 Next.jsの利用 Cursorを活用した開発 データ整形にLLMを使う スクレイピング Amazonの商品データ取得 LLMの選定 動的なコードと静的なコードの使い分け TypeScriptを使わない範囲を定めた 静的サイト生成(SSG)の採用 柔軟なデータベース設計 まとめ 作ったもの 『最も重要な「最も重要なマンガ10選」10選』は「最も重要なマン

    生成AI/LLMを使ったウェブサイト開発 - laiso
    sh19910711
    sh19910711 2024/10/27
    "生成AIツールについては日々、新しいものがヤバイすごいと宣伝 / Cursor: チャット上でソースコードの修正指示を出すと、diffを提案し、それをワンボタンでマージできる / ClaudeやCursorが生成したコードを元に学習"
  • Amazon CloudWatchで小さく始めるWebサービスのオブザーバビリティ / How to start Observability for Web Sevices with Amazon CloudWatch

    sh19910711
    sh19910711 2024/10/18
    "CloudWatch: ログの取り込み料金が高い + 保存は安い + 最近になりトレースにも対応"
  • IaLを活用したAWS FargateでのStreamlitアプリケーションデプロイ - Terraformによる自動化の実践 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 近年、インフラストラクチャ管理の分野で注目を集めているのが「IaL(Infrastructure as Language)」という概念です。IaLは、自然言語での要件定義とAIによるコード生成を組み合わせることで、インフラ構築のプロセスを大幅に簡素化し、効率化することを目指しています。 記事では、IaLの概念を活用し、AWS FargateでStreamlitアプリケーションをデプロイする過程を詳しく解説します。Terraformを使用したインフラストラクチャのコード化(IaC)と、Dockerを用いたアプリケーションのコン

    IaLを活用したAWS FargateでのStreamlitアプリケーションデプロイ - Terraformによる自動化の実践 - Qiita
    sh19910711
    sh19910711 2024/10/14
    "IaL: 自然言語での要件定義とAIによるコード生成を組み合わせることで、インフラ構築のプロセスを大幅に簡素化"
  • 格安でSteamlitのDockerコンテナをデプロイする方法

    動機:何も考えずにStreamlitアプリをデプロイしたい Streamlitは,Pythonのみで簡単にWebアプリケーションを構築できるライブラリです.社内ツールやプロトタイプを手軽に作ることができるため,非常に重宝しています. しかし,作成したアプリケーションのデプロイ段階になると,意外と面倒なことがわかります.調査すると様々な選択肢が存在しますが,それぞれに一長一短があり,理想的な解決策をなかなか見つけることができずにいました. 私が求めているのは,主に以下の3点です: セキュリティ:社内からのみアクセス可能にすること 簡便性:インフラの知識をあまり必要としない方法であること コスト効率:特に,使用されていない時間帯のコストを抑えられること IP制限やSSOログインなどで社内限定のアクセスを実現したいです.また,開発や運用においてインフラ関連の作業を最小限に抑え,Streamlit

    格安でSteamlitのDockerコンテナをデプロイする方法
    sh19910711
    sh19910711 2024/10/13
    "何も考えずにStreamlitアプリをデプロイしたい / Fly\.io: アプリケーションが使用されていない時間帯には自動的にリソースがゼロにスケールダウン / Caddy: 何も設定しなくてもLet's Encryptで証明書を発行"
  • 【encraft#2】Protobufスキーマによる明確なAPI定義

    Findy Team+ Awardを受賞したかった!ベストプラクティス応募内容をふりかえり、開発生産性向上もふりかえる / Findy Team Plus Award BestPractice and DPE Retrospective 2024

    【encraft#2】Protobufスキーマによる明確なAPI定義
    sh19910711
    sh19910711 2024/10/12
    "コミュニケーションツールとしてのprotobuf / 型定義の生成はts-protoを採用 / 単純な実装ミスは型の力をかりてコンパイル時に検出でレビューコストを低減" '23
  • GraphQL(gqlgen) の directive で事前条件、事後条件を実装する

    こんにちは。久しぶりに趣味でタイピングゲームに関するライブラリを開発している typer です。 テラーノベルでも遅まきながらバックエンド APIGraphQL に移行することになったので、GraphQL の表現力を活かしてドメインの関心事をスキーマに落とし込むことに四苦八苦している毎日です。今回は、こんな directive 作ってみたら解決したい問題にジャストフィットしたよ、というのを紹介していきます。 GraphQL 移行開始 2023年春現在、テラーノベルではバックエンド API を protocol buffer (protobuf) で定義しています。protobuf = gRPC みたいなイメージがありますが、Google App Engine(GAE) が gRPC 通信に非対応だったことやランタイムの Go のバージョンが低かったこともあって、twirp というフレ

    GraphQL(gqlgen) の directive で事前条件、事後条件を実装する
    sh19910711
    sh19910711 2024/10/12
    "gqlgen が要求する Go のバージョンにようやくGAE の Go ランタイムが追いついた / directive: 事前条件がスキーマ上で表明されていることで、APIを利用する側に対してすごく優しい(易しい)作りにできる" '23
  • 最近 Hono で外部連携用の AWS Lambda 書いています - Qiita

    AWS Lambda のハンドラは辛い こんにちは!AWS Lambda初心者です! AWS Lambda と言えば、サーバレスかつ非常に安い価格で無限にスケールアウトできる処理を書けることで有名ですが1、 2022年04月の Function URL アップデートAPI Gatewayなど用いなくてもラムダ単体かつ無料でHTTPリクエストを処理できるURLを持てるようになり、かなりの神サービスになりました。 弊社でも Function URL でラムダによる外部連携用のサーバを立てておき、ちょっとしたHTTPのリクエストを受け取って、他所のサーバにデータ連携したり、S3にリクエスト中のデータを保存したりする用途に積極的に使っています。 さて、そんな神サービスである AWS Lambda 君ですが、いざ実際にJavaScriptでHTTPサーバを書こうとすると…… ちょっと辛い! //

    最近 Hono で外部連携用の AWS Lambda 書いています - Qiita
    sh19910711
    sh19910711 2024/10/03
    "src/index.ts は純粋なHTTPサーバの定義で、src/lambda.ts はそのHTTPサーバを AWS Lambda 用のアダプタでラップ / ESBuild などでバンドル&zip化した src/lambda.ts をAWS LambdaにアップロードすればOK"
  • Streamlit ホスティング基盤をどのように作ったか

    GO TechTalk #29 タクシーアプリ『GO』のログ解析の民主化を促進するStreamlitの活用 で発表した資料です。 ■ YouTube https://www.youtube.com/watch?v=vcE70wYfrOA ■ connpass https://jtx.co…

    Streamlit ホスティング基盤をどのように作ったか
    sh19910711
    sh19910711 2024/09/25
    "プレビュー環境と社内公開環境の2枚構成 / BIツールで実装するにはちょっと複雑な分析をフィルター条件を変えながら見たいという要望 / Notebookで実行していたものをStreamlitに移行したことで可視化工数が低くなった"
  • 小規模でGraphQLを使う良さ

    sh19910711
    sh19910711 2024/09/14
    "スキーマはコミュニケーションツール / 領域関係なく話ができて共通知識を持つことができる / 仕様が先に固まるので開発に入る時に楽 / 他の人(新しいメンバーやプレゼン相手)にも伝わりやすい"
  • StreamlitとSupabaseで基礎的な認証アプリを作ってみた - Qiita

    はじめに 「認証機能付きのウェブアプリを作るのは難しそう...」そう思っていませんか? しかし、StreamlitとSupabaseを組み合わせることで簡単に実装できます。 記事では、StreamlitとSupabaseを使用して、効率的に認証システムを構築する手順をご紹介します。 コード全文はこちら import os import streamlit as st from supabase import create_client url = os.environ.get("SUPABASE_URL") key = os.environ.get("SUPABASE_KEY") supabase = create_client(url, key) def sign_up(email, password): res = supabase.auth.sign_up({"email": em

    StreamlitとSupabaseで基礎的な認証アプリを作ってみた - Qiita
    sh19910711
    sh19910711 2024/09/07
    "StreamlitとSupabaseを組み合わせることで簡単に認証アプリを作成 / Supabaseの認証APIを利用して、サインアップ、サインイン、サインアウト / 自身でログイン処理をフルスクラッチで実装するのに比べて簡単に実装できて良い"
  • Streamlit in Snowflake (SiS) で利用ユーザー毎にパーソナライズする

    はじめに 2024年7月末に Streamlit in Snowflake で Current_User と行アクセスポリシーが利用できるようになりました。 このアップデートの嬉しいところは、アプリケーションに接続した Snowflake ユーザーを識別し、ユーザー毎に処理を変えることが簡単かつセキュアに行うことができるようになったことです。 アプリケーションへのログインの仕組みやユーザー管理テーブルなどを独自に用意しなくても、例えば以下のように1つのアプリケーションをユーザー毎にパーソナライズすることが可能です。 ユーザー毎にアプリケーションの表示を変える ユーザー毎にパーソナライズされた分析ダッシュボードを用意する 行アクセスポリシーを用いてユーザー毎に異なるクエリ出力結果を取得する (Enterprise Edition 以上) 今回はユーザー個人の情報を表示する簡単な ToDo リ

    Streamlit in Snowflake (SiS) で利用ユーザー毎にパーソナライズする
    sh19910711
    sh19910711 2024/09/05
    "アプリケーションに接続した Snowflake ユーザーを識別し、ユーザー毎に処理を変えることが簡単かつセキュアに行うことができるようになった / ユーザー毎にパーソナライズされた分析ダッシュボードを用意する"
  • [Go言語] gin と singleflight を組み合わせたパフォーマンスチューニング - Techtouch Developers Blog

    singleflight とは gin とは Middleware Context 2つの実装例 1. 同期待ち方式 2. 非同期待ち方式 まとめ こんにちは。SRE 兼 テックブログ編集長の izzii です。毎年お盆休みに連泊で登山するのですが今年は台風の影響で行けませんでした。悲しい! さて、記事ではパフォーマンス最適化の文脈で登場することの多い singleflight と、ウェブフレームワーク gin を組み合わせた実装例を紹介します。要素技術の概要とモチベーションに触れつつ、試行錯誤についてもお話しします。実装に関しては結局妥協が必要であり正解の形がないので GitHub で公開という形ではなく、ブログを通して自分の考えた2つの実装を紹介することにしました。この記事は Go に関する基礎知識を必要とします。 singleflight とは 複数のスレッド(go routine

    [Go言語] gin と singleflight を組み合わせたパフォーマンスチューニング - Techtouch Developers Blog
    sh19910711
    sh19910711 2024/08/28
    "singleflight: 複数のスレッド(go routine)で同一の処理が同時になされるような場合、一つのスレッドで処理を実行して残りのスレッドで結果を受け取る形にすることで、処理にかかるリソース(e.g. DB)利用の効率化を図る"
  • 生SQLに型を手書きする時代は終わり?Prismaの新機能「TypedSQL」

    SQLを扱う $queryRaw TypeScript向けのORMライブラリとしてPrismaがあります。Prismaは直感的で型安全なAPIを提供し、TypeScript向けのORMとしては第一に名前が上がることが多いライブラリです。 しかしそんな人気なPrismaでも、裏側では少しクセのあるSQLが発行されていたり、欲しいSQLがPrismaのAPIでは実現できない場合があります。 そういった場合のために $queryRaw というメソッドが用意されており、これを使うことで生SQLを書いてその結果を受け取ることができました。他のORMにもよくある機能です。 例えば以下のように実装することができます。 const users = await prisma.$queryRaw` SELECT id, name FROM "Users" WHERE id = ${userID} `; co

    生SQLに型を手書きする時代は終わり?Prismaの新機能「TypedSQL」
    sh19910711
    sh19910711 2024/08/28
    "Prisma 5.19より、Preview Featureとして「TypedSQL」という機能が実装 / その名の通り 生SQLに対して自動で型を付けてくれる"
  • Serverless Haskell - GHCのWASMバックエンドで Haskell を Cloudflare Workers に載せる

    Serverless Haskell - GHCのWASMバックエンドで Haskell を Cloudflare Workers に載せる TL;DR GHC 9.10 から WASM バックエンド(クロスコンパイラ)が JavaScript FFI に対応したので、Haskell コードを Cloudflare Workers 上で動かしてみたよ。快適に開発するための環境構築・ハック方法と、GHCの出力をCloudflare Workers 向けに修正する方法を紹介するよ。 はじめに──Asterius から GHC WASM バックエンドへ GHC は 9.6 から WASM バックエンド(クロスコンパイラ)を搭載していますが、GHC 9.10 から WASM バックエンドが遂に JavaScript FFI に対応しました。 従来から C FFI には対応しており、これを使って F

    Serverless Haskell - GHCのWASMバックエンドで Haskell を Cloudflare Workers に載せる
    sh19910711
    sh19910711 2024/06/26
    "GHC は 9.6 から WASM バックエンドを搭載していますが、GHC 9.10 から WASM バックエンドが遂に JavaScript FFI に対応 / コンテナ上に GHCup 経由でクロスコンパイラをインストールして WASM ビルド環境を整備する"
  • Denoの静的サイトジェネレータ`Lume`の紹介

    2023年12月に静的サイトジェネレータであるLumeのバージョン2がリリースされました. 私は個人ブログを書くのに GitHub Pages + Lume を利用しているので,年末はLumeのバージョンアップなどの作業をしていたのですが,改めて体験が良いなと思ったのでLumeの紹介をしたいと思います. 前提知識 GitHub Pages GitHub PagesはGitHub社がプロジェクトプロジェクトのウェブサイトを提供することを目的に,リポジトリに配置してある静的ファイル(HTMLやJSなど)をホスティングしてウェブサイトを公開してくれるサービスです.@a-skuaというアカウント名の場合,a-skua.githu.io をというリポジトリを作成すると,https://a-skua.github.io[1]というURLのウェブサイトを作ることができます. GitHub Pages

    Denoの静的サイトジェネレータ`Lume`の紹介
    sh19910711
    sh19910711 2024/06/26
    "個人ブログを書くのに GitHub Pages + Lume を利用 / Lume: Denoをランタイムとして利用しているため,環境構築からビルドするまでのコストが低い / Lume: npm installなどを行う必要がなく, deno task buildだけで静的ファイルを生成"