Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Go URL短縮サービス(練習用)

Go言語の基礎を学ぶためのシンプルなURL短縮サービスです。 このプロジェクトは学習目的のため、ローカル環境での利用を想定しています。

Go言語とは?

Goは、Googleが開発したプログラミング言語です。他の言語と比べて、以下のような特徴があります:

  1. シンプルで学びやすい

    • 文法がシンプルで覚えやすい(他の言語と比べて特別な記号や複雑な書き方が少ない)
    • 標準ライブラリが充実している(よく使う機能が最初から使える)
    • コードの書き方が統一されている(チームで開発する際に便利)
  2. 高速な実行速度

    • コンパイル言語(プログラムを実行する前に機械語に変換するため、実行が速い)
    • 並行処理が簡単(複数の処理を同時に実行できる)
    • メモリ管理が自動的(メモリの解放を手動で行う必要がない)
  3. Web開発に適している

    • 標準でHTTPサーバー機能を提供(Webアプリを作るのに必要な機能が最初から使える)
    • テンプレート機能が組み込み済み(HTMLファイルを簡単に扱える)
    • JSONの処理が簡単(データのやり取りに便利)
  4. 開発効率が高い

    • コンパイルが高速(プログラムの実行準備が速い)
    • 依存関係の管理が簡単(必要なライブラリの管理が楽)
    • クロスコンパイルが容易(Windows、Mac、Linuxなど、いろいろな環境で動かせる)

プロジェクトの構成

ファイル構成

go_shortURL/
├── main.go      # メインのプログラム
├── go.mod       # Goモジュールの定義ファイル
└── readme.md    # このファイル

技術スタック

  • Go言語の標準ライブラリのみを使用
    • net/http: Webサーバーの実装
    • html/template: HTMLテンプレートの処理
    • crypto/rand: 安全な乱数生成
    • encoding/base64: 短縮URLの生成

モジュール管理

  • go.modファイルでプロジェクトを管理
  • 外部ライブラリは使用せず、標準ライブラリのみを使用
  • プロジェクトの依存関係やGoのバージョンを管理

機能と使い方

主な機能

  1. URLの短縮

    • 長いURLを入力すると、6文字の短縮URLを生成
    • 例:https://example.com/very/long/urlhttp://localhost:8080/abc123
  2. リダイレクト

    • 短縮URLにアクセスすると、元のURLに自動的に移動

実行方法

開発時の実行(コードを修正しながらテストする場合):

go run main.go

本番用の実行ファイルの作成と実行:

# 実行ファイルの作成
go build

# 実行ファイルの実行
./go_shortURL

実行ファイルについて

  • go buildコマンドで作成される実行ファイル
  • コンパイル済みのため、起動が速い
  • Go環境がなくても実行可能
  • OS依存のため、実行ファイル自体はGitHubにアップロードしない

アクセス方法

  1. サーバー起動後、ブラウザで http://localhost:8080 を開く
  2. URLを入力して短縮URLを取得
  3. 生成された短縮URLをクリックして動作確認

注意点

  • サーバーを再起動すると、保存したURLの情報は消えてしまいます(メモリ内保存のため)
  • 同じURLを複数回短縮すると、毎回新しい短縮URLが生成されます
  • このサービスはローカル環境での利用を想定しています
  • 本番環境での利用には、データの永続化やセキュリティ対策が必要です
  • サーバーの停止は Ctrl + C で行います

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages