GithubHelp home page GithubHelp logo

wantedly-kadai's Introduction

課題1

WEBフレームワークとして、ginを使って書きました。 ginのルーター機能を使って、8080ポートへのGETメソッドに対するレスポンスをHelloWorldで行っています。

課題2

herokuを使って課題1のアプリケーションを公開しました。 URLはこちらです。 herokuにおいては、Dockerコンテナを起動するポートを環境変数で指定するという仕組みになっているため、課題1のコードをベースに環境変数から起動ポートを取得するということを行いました。 また、外部に公開するということなので、go runではなくビルドして、実行コードを生成するという方式にしました。

課題3

goで書いたapiサーバーのコンテナ(serverディレクトリ)と、postgresqlを使って構築したデータベースコンテナ(dbディレクトリ)をdocker-composeを使って同時に起動する仕組みにしました。 apiサーバーではserver.goでサーバーのセットアップとルーティング、user.goでリクエストのハンドリング、model.goでデータベースコンテナとのやり取りを実装しています。 Dockerfile内のfreshというコマンドは、コードの変更を感知して自動ビルド、実行してくれるものです。また、goのmodule機能を使って、使っている外部モジュールを管理しています。 dbコンテナでは、起動時に自動実行されるディレクトリにinit.sqlを配置することで、コンテナ起動時に自動的に必要なデータベースとテーブルを作成するようにし、apiサーバーのdepend on にdbコンテナを指定することで、dbコンテナが起動していることを担保するようにしました。 仕様から、idはユニークであることが予想されたため、データベースの主キーはidとし、データベース側でユニークかつ連続であることを担保しました。 タイムスタンプに関してはmodel.goで実際にデータベースを操作するタイミングで時間を取得しクエリを構成しました。

採用担当の方へ

説明を聞いた際に、攻めのインフラという考えに興味を持ち、インフラコースに応募しました。まだまだ技術的には未熟ですが、参加できたら様々なことを吸収していけたらと考えています。

wantedly-kadai's People

Contributors

kotaro7750 avatar

wantedly-kadai's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.