株式会社スタンプ
沖縄のPHP専門WEBプログラム開発会社
・WEBプログラム開発(PHP+MySQL)
・ホームページ制作
・WEBサーバ管理
・技術者派遣


Golang(Gin)によるシステム構築を始めました
当社では、高速・高効率なWeb開発を可能にするGo言語(Golang)を本格導入し、軽量WebフレームワークであるGinを用いたシステム開発を開始しました。
現在は主に管理画面の構築において、GinによるMVCアーキテクチャに則った開発を進めております。
主な技術スタックと構成
MVC構成:明確な責務分離により、保守性と拡張性を担保
GORMを活用したModel層:データベース操作を簡潔かつ堅牢に実装
JWT(JSON Web Token)による認証機能:セキュアなログイン認証を実現
Ginのミドルウェア機能を利用した認証処理:各ルートでの認可制御を一元化
Service / Repository / Interfaceレイヤーによる責務分割:ビジネスロジック・データアクセス・抽象化の分離により、テスト性と柔軟性を確保
APIではなくViewレンダリングから始めた理由
初期段階ではREST APIの設計よりも、あえてHTMLテンプレートによるViewレンダリングを優先しております。これにより以下のような利点を得られます
画面遷移や挙動を早期に確認可能:UIとバックエンドの繋がりを即時に確認できるため、要件やUIのイメージを関係者とすり合わせやすくなります
学習コストの最適化:APIとフロントエンドの完全分離よりも構築速度が早く、社内ナレッジの蓄積にも向いています
初期導入がシンプル:テンプレートエンジンを用いたView出力により、ルーティングやミドルウェア構成を明快に確認できます
Golang導入の背景
Go言語はシンプルな文法と高いパフォーマンスにより、堅牢かつスケーラブルなWebアプリケーション構築に非常に適しています。今後はAPI化やマイクロサービス構成も視野に入れつつ、要件に応じた柔軟な開発を行ってまいります。
- C:
- .env
- .env_test
- gin-bin.exe
- go.mod
- go.sum
- main.go
- output.txt
- pf.bat
- README.md
- stampp.co.jp
- start.bat
- assets
- css
- admin.css
- images
- logo.png
- js
- .eslintrc.json
- admin.js
- css
- internal
- config
- config.go
- logging.go
- controllers
- admin_controller.go
- cron
- bitflyer_execution_cron.go
- domain
- models
- admin.go
- event_categories.go
- master.go
- repositories
- admin_repository.go
- master_repository.go
- pagination_query.go
- models
- dto
- admin_dto.go
- auth_dto.go
- form_message.go
- master_dto.go
- pagination_dto.go
- infra
- db.go
- inializer.go
- logs
- app-2024-09-03.log
- app.log
- injections
- admin_injection.go
- interfaces
- admin_controller_interface.go
- admin_repository_interface.go
- admin_service_interface.go
- master_repository_interface.go
- master_service_interface.go
- middlewares
- admin_auth_middleware.go
- request_logger_middleware.go
- migrations
- migration.go
- multitemplate
- paginate_func.go
- reder.go
- route
- admin_route.go
- web.go
- seeder
- seeder.go
- seeders
- seed_admins.go
- seed_masters.go
- services
- admin_service.go
- admin_service_test.go
- master_service.go
- view
- templates
- layout.html
- template1.html
- admins
- create.html
- edit.html
- index.html
- login.html
- templates
- config
- pkg
- flash_message.go
- pagination.go
- validation_error_parse.go