コラボスタイル Developersのフィード

https://zenn.dev/p/collabostyle

「ワークスタイルの未来を切り拓く」を理念に掲げ、リアルとデジタルの2つの働く場に向けた事業展開に留まらず、自社が率先して新しいワークスタイルに挑戦し、発信を行うことでワークスタイルの未来を切り拓いていきます。

フィード

記事のアイキャッチ画像
TiDBワークショップ参加レポート
コラボスタイル Developersのフィード
はじめに先日、PingCAP社が主催するTiDBのワークショップに参加する機会がありました。TiDBはMySQL互換の分散データベースとして注目されていますが、その内部アーキテクチャがどのようになっているのか、具体的に学びPingCAP Certified TiDB Associateの取得を目指すことが目的でした。このセッションは、TiDBの全体像から各コンポーネントの役割、さらには分散トランザクションやデータ一貫性の仕組みまで、非常に濃い内容でした。本記事では、そのワークショップで学んだ内容を自分なりに整理しました。 TiDBとは?アーキテクチャの全体像TiDBは、オ...
17日前
記事のアイキャッチ画像
AIエンジニア「Devin」をさらに賢くする!キラキラ(Knowledge Suggestions)の活用
コラボスタイル Developersのフィード
AIエンジニア「Devin」をさらに賢くする!キラキラ(Knowledge Suggestions)の活用Devinを使い始めた皆さん、その驚くべき能力にワクワクしていますか?今回は、Devinをさらに強力な相棒にするためのとっておきの機能「キラキラ(Knowledge Suggestions)」についてご紹介します。 キラキラ(Knowledge Suggestions)とは?Devinがコードを書く際、時々、キラキラ✨アイコンが表示されるのを見たことはありませんか?これが「Knowledge Suggestions」、通称「キラキラ」です。これは、Devinがプ...
23日前
記事のアイキャッチ画像
TiDBの自動シャーディングを体感。AUTO_RANDOM使ってみた
コラボスタイル Developersのフィード
はじめにきっかけは、TiDBユーザグループ ミートアップ #5に参加し、そこでTiDBのシャーディングが自動で行われる仕組みに興味を持ったことです。特に、AUTO_INCREMENTが引き起こす「ホットスポット」問題と、それを解決する機能について、実際に自分の手で試してみることにしました。MySQLなどの従来DBでは、シャーディングは複雑な手作業でした。しかし、TiDBではシャーディングは完全に自動化されています。この記事では、TiDBがどのようにシャーディングを自動で行うかを解説し、AUTO_INCREMENTが引き起こすホットスポット問題をAUTO_RANDOMで解決する一...
24日前
記事のアイキャッチ画像
TiDBでベクトル検索
コラボスタイル Developersのフィード
はじめにChatGPTのような生成AIの登場により、**ベクトル検索(Vector Search)**という技術が注目されています。これは、文章、画像などを数値のベクトル(数字の配列)に変換し、その「意味の近さ」や「特徴の類似度」に基づいてデータを検索する技術です。きっかけは、TiDBユーザグループ ミートアップ #5に参加し、そこでTiDBのベクトル検索の紹介があり、どんなものかと試してみたことです。これまでベクトル検索には専門のデータベースが必要でしたが、TiDBでもついにネイティブサポートが追加されました。この記事では、TiDBを使ってベクトル検索を行う基本的な手順を、実...
1ヶ月前
記事のアイキャッチ画像
TiDB Lightning使ったデータインポートを試した
コラボスタイル Developersのフィード
はじめにきっかけは、TiDBユーザグループ ミートアップ #5に参加し、そこでTiDB Lightningの紹介があり、どんなものかと試してみたことです。「数百万行、数億行のデータをTiDBに投入したいけど、INSERT文をループで実行すると時間がかかりすぎる…」という課題を解決するこのツールに興味を持ちました。TiDB Lightningは、CSVやParquetなどのデータソースを直接TiKV(TiDBのストレージ層)に書き込むことで、従来のLOAD DATAやINSERT文とは比較にならない速度でデータをインポートします。この記事では、ローカルのTiDBクラスタに対して、...
1ヶ月前
記事のアイキャッチ画像
ローカルDockerでTiDBの水平スケーリングをテスト
コラボスタイル Developersのフィード
はじめにTiDBの大きな魅力の一つは、ノードを追加するだけで性能がリニアに向上する「水平スケーリング」です。しかし、この強力な機能をローカルの開発環境で気軽に試すのは、意外と情報が少なく、多くの落とし穴があります。この記事では、docker-composeを使ったローカル環境で、TiDBクラスタを自動で構築するTiKVノードを自動で追加(スケールアウト)するsysbenchで負荷テストを行い、性能向上を定量的に確認するまでの一連の流れを、筆者が実際にハマったエラーとその解決策を交えながら、完全な手順として解説します。この記事を読めば、誰でも手元でTiDBの真価を体感で...
1ヶ月前
記事のアイキャッチ画像
モバイルファースト vs PCファースト:現代のWeb開発でどちらを選ぶべきか
コラボスタイル Developersのフィード
はじめにレスポンシブデザインを実装する際、多くの開発者が直面する問題があります:「モバイルファーストで作るべきか、PCファーストで作るべきか?」この記事では、両方のアプローチを実際のコード例と比較しながら、現代のWeb開発においてどちらが最適かを詳しく解説します。 目次モバイルファーストとはPCファーストとは実装例での比較パフォーマンスの違い開発効率の比較実際のプロジェクトでの選択基準まとめ モバイルファーストとはモバイルファーストは、モバイルデバイス用の基本的なスタイルから始めて、段階的に大画面用のスタイルを追加していくアプローチです。 特徴...
1ヶ月前
記事のアイキャッチ画像
MariaDB WHERE INクエリの直列分割処理で最適なチャンクサイズを実測データで検証する
コラボスタイル Developersのフィード
はじめに大量のデータを扱う際、WHERE INクエリのパフォーマンスは重要な課題です。特に、数万件のIDを一度に処理する場合、単一のクエリではパフォーマンスが低下することがあります。この記事では、直列分割処理によるWHERE INクエリの最適化について、実際のベンチマーク結果に基づいて詳しく分析します。 問題の背景 単一WHERE INクエリの問題-- 50000件のIDを一度に処理SELECT * FROM test_records WHERE id IN (?, ?, ?, ..., ?) -- 50000個のパラメータこのような大量のパラメータを含むクエリに...
1ヶ月前
記事のアイキャッチ画像
10万件データで実証。データベース設計パターンの性能・保守性比較【Rust + MariaDB】
コラボスタイル Developersのフィード
はじめにデータベース設計において、パフォーマンス、拡張性、保守性のバランスを取ることは永遠の課題です。本記事では、OLTP(Online Transaction Processing)システムを想定し、10万件のデータを使用して、3つの主要なデータベース設計パターンの性能を定量的に比較し、保守性を実際のコードベースで説明します。 対象システムの特性OLTP(オンライントランザクション処理): リアルタイムでのデータ更新・参照高頻度のCRUD操作: 部屋情報の登録・更新・削除・検索複雑なビジネスロジック: 部屋の状態分析、メンテナンス管理拡張性の要求: 新しい属...
1ヶ月前
記事のアイキャッチ画像
カラム型 vs JSON文字列格納のパフォーマンス比較
コラボスタイル Developersのフィード
はじめにデータベース設計において、データの格納方式はパフォーマンスに大きな影響を与えます。今回は、カラム型ストレージとJSON文字列格納のパフォーマンスを10万件のデータで比較検証しました。特に注目したのは、JSON型が実際には「JSON構造体を文字列として格納」する方式であることによる性能への影響です。 比較対象の実装方式 カラム型ストレージ(正規化されたテーブル構造)CREATE TABLE users_column ( id CHAR(36) PRIMARY KEY, name VARCHAR(255) NOT NULL, email VA...
1ヶ月前
記事のアイキャッチ画像
ChatGPTを使ってRustで新しいプログラミング言語をつくり始めた話(if分岐)
コラボスタイル Developersのフィード
前回までのおさらい前回はPyroに「変数定義」を導入しました。letprというPyro独自の構文をRustのletに変換できるようにし、変数を使ったプログラムを書けるようにしました。letpr x = 10print(x) 今回のテーマ: if分岐次の一歩として、if分岐を実装しました。Pyroでは「数値が0以外なら真」というルールで判定しています。例:letpr x = 10if x { print("x は 0 以外です")} else { print("x は 0 です")} 実装のポイントAST (Stmt) に If を追加...
1ヶ月前
記事のアイキャッチ画像
開発環境の性能比較:Docker vs devenv ベンチマーク
コラボスタイル Developersのフィード
開発環境の性能比較:Docker vs devenv ベンチマーク はじめに現代のソフトウェア開発において、開発環境の選択は開発効率に直接影響します。APIなどのリソース取得時間、コンパイル時間、依存関係の管理は開発サイクルに大きな影響を与えます。 なぜDockerとdevenvを比較するのか?Dockerとdevenvは異なる目的で設計されたツールですが、実際の開発現場では両方とも開発環境の構築・管理に使用されています。Dockerの主な目的:アプリケーションのコンテナ化とデプロイメント本番環境との一貫性の確保環境の完全な分離とポータビリティO...
1ヶ月前
記事のアイキャッチ画像
ChatGPTを使ってRustで新しいプログラミング言語をつくり始めた話(フォルダ構成の再編と出力先の統一)
コラボスタイル Developersのフィード
目的役割別にクレートを整理して保守性を高める生成物(transpile 結果・実行バイナリ)の置き場所を統一して、開発時の混乱を防止 新フォルダ構成.├── examples│ └── main.pyro # ← 実行デフォルトを hello.pyro から main.pyro に変更└── pyro └── crates ├── pyroc # 解析(AST/Parser) │ ├── Cargo.toml │ └── src │ ...
1ヶ月前
記事のアイキャッチ画像
ChatGPTを使ってRustで新しいプログラミング言語をつくり始めた話(変数宣言)
コラボスタイル Developersのフィード
はじめに本記事では、自作プログラミング言語Pyroに変数宣言機能を追加した過程をご紹介いたします。PyroはPythonライクな構文を持ち、Rustにトランスパイルして実行可能な軽量言語です。今回はPyro独自のキーワードletprを導入し、変数を扱えるようにしました。 背景前回の実装でPyroは整数リテラルと四則演算に対応しました。しかし実際にプログラムを書く際には、値を保持して再利用する仕組みが不可欠です。そこでPyro専用の変数宣言キーワードとしてletprを導入しました。例:examples/hello.pyroletpr x = 10letpr y...
1ヶ月前
記事のアイキャッチ画像
ChatGPTを使ってRustで新しいプログラミング言語をつくり始めた話(四則演算)
コラボスタイル Developersのフィード
はじめに本記事では、自作プログラミング言語 Pyro に四則演算機能を追加した過程をご紹介いたします。Pyro は Python ライクな構文を持ち、Rust にトランスパイルして実行可能な軽量言語です。 プロジェクト構成プロジェクトは Cargo ワークスペースとして構成されています。pyro_lang_test/├── Cargo.toml└── crates ├── pyroc # フロントエンド(字句解析・構文解析) ├── pyrorts # Rust コード生成 └── pyroc-bin # CLI ...
1ヶ月前
記事のアイキャッチ画像
セキュアなiframe通信のための技術要件
コラボスタイル Developersのフィード
なぜiframe通信のセキュリティが重要なのか現代のウェブアプリケーションは、サードパーティ製のウィジェットやプラグイン、広告などを<iframe>を用いて統合するのが一般的です。<iframe>は外部コンテンツを安全に隔離する「サンドボックス」として機能しますが、このサンドボックスとその親ページが安全にデータをやり取りする必要が生じたとき、重大なセキュリティ上の課題が生まれます。この問題のコアは、ブラウザのセキュリティモデル「同一オリジンポリシー(Same-Origin Policy, SOP)」にあります。このポリシーは、異なるオリジン(プロトコル、ホ...
1ヶ月前
記事のアイキャッチ画像
CSS gap: もうmarginで悩まない!モダンなレイアウトの必須プロパティ
コラボスタイル Developersのフィード
CSSで要素間にスペースを空ける際、私が思いつくのはmarginでした。しかし、意図しない余白や、レイアウトが崩れるときがある…そんな悩みを解決してくれるのが、gapです。今回は、gapがmarginと比較して良い点を考えてみます! gapがmarginより優れている点意図しない余白を生まない 🙅marginは要素の外側に余白を作るため、レイアウトの両端にも余分なスペースができてしまうことがあります。特に、margin-leftやmargin-rightを使って要素間にスペースを作る場合、両端の要素にも余白ができてしまい、それを打ち消すための追加のCSSが必要になりま...
1ヶ月前
記事のアイキャッチ画像
ChatGPTを使ってRustで新しいプログラミング言語をつくり始めた話
コラボスタイル Developersのフィード
はじめに「自分の言語をつくる」――プログラミングに携わっていると、一度は考えたことがある人も多いと思います。今回、Rustを用いて新しいプログラミング言語を設計・実装し始めました。目指すのは次のような言語です:Pythonに近い記法で扱いやすい高速に動作するWeb開発に特化した機能を標準で備える言語名は Pyro(パイロ) としました。 前提条件cargoがインストールされているRustが動く環境である 現時点でできること現状はまだ最小限の機能しか実装していません。以下のようなコード:examples/app.pyroprint("Hello,...
1ヶ月前
記事のアイキャッチ画像
クリーンアーキテクチャ入門 Part 4: 実践的な開発フローとAI活用
コラボスタイル Developersのフィード
クリーンアーキテクチャ入門 Part 4: 実践的な開発フローとAI活用 はじめにPart1〜3でクリーンアーキテクチャの理論と実装について学んだら、最後は実践的な開発フローとAI活用について詳しく学んでいきます。この記事では、実際の開発現場でクリーンアーキテクチャを活用する方法と、AIツールを活用して効率的に開発を進める方法について理解を深めていきます。この記事で学べること:実践的な開発フローAIを活用した構成チェックよくある問題と解決策段階的な学習アプローチ成功の指標とベストプラクティス 実践的な開発フロー 開発時のチェックリスト新しい機能を実装す...
1ヶ月前
記事のアイキャッチ画像
クリーンアーキテクチャ入門 Part 3: 外部システムとの連携(Infrastructure層・Presentation層)
コラボスタイル Developersのフィード
クリーンアーキテクチャ入門 Part 3: 外部システムとの連携(Infrastructure層・Presentation層) はじめにPart2でビジネスロジックの設計について学んだら、次は外部システムとの連携について詳しく学んでいきます。この記事では、Infrastructure層とPresentation層の実装に焦点を当て、データベース、外部API、HTTPレスポンスの処理について理解を深めていきます。この記事で学べること:Infrastructure層での外部システムとの連携Presentation層でのHTTPリクエスト・レスポンスの処理技術的詳細の隠蔽方...
1ヶ月前