Docker を利用した実践的 EC システム構築:開発から本番環境へ
概要とアプローチ
本稿では、EC(電子商取引)システムを Docker コンテナ基盤に移行する実践的な手順を解説します。主な構成要素として、Vue 3 によるフロントエンド、Spring Boot 2.7 によるバックエンドサービス、MySQL 8.0、Redis 6、および docker-compose を用いた一括管理戦略を含みます。さらに、CI/CD パイプラインと Helm 化されていない exec コマンドベースの ...
5月16日 15:45 投稿
Redisにおける動的文字列(SDS)の内部実装とメモリ管理
Redisでは、C言語標準の文字列(char*)を拡張した独自の動的文字列ライブラリ「SDS (Simple Dynamic Strings)」を採用しています。主なソースコードは sds.h と sds.c に実装されています。
1. SDSのデータ構造
SDSは、文字列の長さに応じて複数のヘッダー構造体を使い分け、メモリ使用量を最適化しています。
typedef char *sds;
/* 構造体のパディングを無効化し、 ...
5月16日 15:32 投稿
Django REST Framework と Vue を利用したオンラインショッピングモールのホーム画面および商品数量処理、キャッシュとレート制限の実装
スライダーコンポーネントのAPI実装
最初に、PyCharmの開発環境をローカルに設定し、Vueの設定もローカルホストに変更します。
goods/serializer.py
class BannerSerializer(serializers.ModelSerializer):
class Meta:
model = Banner
fields = '__all__'
goods/views.py
class BannerViewSet(mixins.ListModelMixin, viewsets.GenericViewSet):
...
5月15日 22:19 投稿
RuoYiフレームワーク:アーキテクチャ、認証メカニズム、およびカスタムモジュールの拡張
RuoYiフレームワークの概要
RuoYi(若依)フレームワークは、バックエンドとフロントエンドが分離された設計を採用しており、それぞれの開発に最適な技術スタックを活用しています。主要な技術要素とディレクトリ構造は以下の通りです。
ファイル構造
バックエンド構造: 主にJavaとSpring Bootを中心としたモジュール構成です。
フロントエンド構造: Vue.jsを基 ...
5月15日 11:42 投稿
Javaエンジニア面接対策:核心技术知識点の深掘り
Java開発における面接で頻出する核心技术知識点について、基礎概念から応用までを体系的に整理します。
1. Java基礎概念とメモリ管理
JVM、JRE、JDKの関係性:JDK(Java Development Kit)は開発者向けのツールセットであり、JRE(Java Runtime Environment)を含みます。JREはJavaプログラムの実行環境を提供し、その核心となるのがJVM(Java Virtual Machine)です。Jav ...
5月14日 23:59 投稿
ASP.NET Core 認証・リアルタイム通信実践ガイド
Identity によるユーザー管理
ASP.NET Core Identity は、ユーザー・パスワード・ロール・クレーム・トークンなどを一元的に管理するためのフレームワークである。Entity Framework Core を経由して任意のリレーショナルデータベースに保存できる。
モデル定義
public class AppUser : IdentityUser<long> { }
public class AppRole : IdentityRole<long> { ...
5月14日 15:48 投稿
Redis Sorted Set 削除が効かない原因と回避策
Spring Data Redis の ZSetOperations.remove(K key, Object… values) を使っても、値を「更新した後」に削除しようとすると 該当メンバーが見つからず削除できない という現象が発生した。本記事では再現手順と回避策を示す。
事象の概要
新規レコードを追加(addData)
一部フィールドを変更して再追加(updateData)
更新後の値を指定して削除(removeData)
3 の時 ...
5月11日 06:03 投稿
WebレイヤーキャッシュとRedisの利用における課題と対策
Webレイヤーキャッシュはアプリケーションのパフォーマンスを向上させるために不可欠であり、繰り返しのデータ処理やデータベースクエリを減らすことで応答時間を短縮します。たとえば、ユーザーが要求するデータがキャッシュに存在している場合、サーバーはデータベースにアクセスすることなくキャッシュから結果を直接返却できます。これにより、アプリケーションの応答 ...
5月9日 23:43 投稿