Artefact

golangでフリーランス業開始. ワクワクを形にするエンジニアを目指し常に成長したい…

Artefact

golangでフリーランス業開始. ワクワクを形にするエンジニアを目指し常に成長したい、つぶやくのが苦手なINFJです。 2019/02/18 1ボタンでチャット出来るアプリ 『tsunagaru』をリリースしました! https://tsunagaru.space

マガジン

  • 本について

  • CI/CD

    CI/CDについて

  • Docker

    Dockerについて

  • Go

    Go言語の学習内容などをまとめたもの。

  • INFJ

    INFJについて

最近の記事

  • 固定された記事

Webアプリ tsunagaru をリリースしました

2019/02/18 個人制作で、Webアプリ tsunagaru をリリースしました。 スマホの操作に慣れていない方や、療養中などで体が思うように動かない方も、1ボタンで簡単にメッセージを送ることが出来るチャットアプリです。 せっかくなので、その制作過程で得られたこと感じたことを書いておこうと思います。 今回は何を考えて作ったかについて書きます。 構成まず構成について、プログラムの実装は Rails5.2、Ruby2.5.1、テンプレートエンジンは slim、画像スト

    • 単体テストの考え方/使い方を読んで[3]

      概要単体テストの考え方/使い方をほぼ読み終わったので、テストコード1年経験者が学びになったポイントをかい摘んで書き残してみたい。 本全体の所感については[1] に記載。 学びになったポイント備忘録的に学びになったポイントを残しておきたい。 なぜテストを書くのか プロジェクトの成長を持続可能なものにするため。コードベースは成長とともに劣化していき、リファクタリングなど適切に保守しないと無秩序になっていく。質の良いテストを用意することで、変更によって発生する退行(regres

      • 単体テストの考え方/使い方を読んで[2]

        概要単体テストの考え方/使い方をほぼ読み終わったので、テストコード1年経験者が学びになったポイントをかい摘んで書き残してみたい。 本全体の所感については[1] に記載。 学びになったポイント▼何をテストするか 結論、最終出力値のみをテストする。本書では外部から観察可能な振る舞いとも言い換えられている。 逆に、テスト対象のクラスが依存している別クラス(協力者オブジェクト)のメソッドの引数や戻り値などは検証しない。 ただしプロセス外依存は除く。例えばメソッドの戻り値だけでなく

        • 単体テストの考え方/使い方を読んで[1]

          概要単体テストの考え方/使い方をほぼ読み終わったので、本全体の所感や学びになったポイントをかい摘んで書き残してみたい。 所感▼この本はつまり 「単体テスト」を中心に、質の良いテストとは何か、質の悪いテストとは何か、どのような方法で実現すべきなのかをコード改修を通して学べる本。 テスト駆動であろうがなかろうが、テストコードを書く人には漏れなくお勧めできる本と感じた。 テスト駆動とは何ぞやとか、その方法はとか、テストファーストがどうのとか、「テスト」を取り巻く変遷、などには

        • 固定された記事

        Webアプリ tsunagaru をリリースしました

        マガジン

        • 5本
        • CI/CD
          1本
        • Docker
          4本
        • Go
          20本
        • INFJ
          2本
        • AWS
          1本

        記事

          Clean Architectureを読んで[2]

          概要実践ドメイン駆動設計(IDDD)を一応読み終わり、Clean Architectureも流し見程度でもいいから読もうかなと衝動買いしてこちらも読み終わったので気になったところ、気付いたところを書き残してみたい。 部分的に▼アーキテクチャのルールはどれも同じである! と序文に書かれている。数十年前から今日まで、レイヤードだのオニオンだのヘキサゴナルだの色々アーキテクチャが生まれたが、条件分岐やループ処理を組み合わせてプログラムを構築すること自体は昔と変わっていない。変わっ

          Clean Architectureを読んで[2]

          【初学】GitHub Actionsでgolangアプリの自動テストとDockerイメージをプッシュする

          概要CI/CDも触ってみたかったのでGitHub Actionsを試した。 色々試してあまり上手くいかなかったが簡単にところに落ち着いたので書き残しておく。 やりたいこと・開発中にPR作成した時に自動テストや自動Lintを通す ・特定のブランチにマージされたらDockerイメージを作成し、Docker Hubへアップロードする ・タグをプッシュした時に上記を同様に行う 成果物試したリポジトリ。 開発中用の ci ワークフロー # https://github.com/

          【初学】GitHub Actionsでgolangアプリの自動テストとDockerイメージをプッシュする

          Clean Architectureを読んで[1]

          概要実践ドメイン駆動設計(IDDD)を一応読み終わり、今更ながらClean Architectureも流し見程度でもいいから読もうかなと衝動買いしてこちらも読み終わったのでひとまず全体についての所感を書き残してみたい。 全体▼この本はつまり アーキテクチャのルールはどれも同じである! と表紙に書かれているが、その考えに至るまでの筆者の思考の旅の本。 ▼所感 前提として、この本を読む前の自分のクリーンアーキテクチャに関連した知識としては、なるセミさんの動画やQiitaの

          Clean Architectureを読んで[1]

          プライベートリポジトリを利用するgolangのdockerコンテナをビルドする際のfatal: could not read Username〜

          概要前回と同じ、プライベートリポジトリを利用するgolangアプリの構成で、Dockerコンテナビルドするとエラーになりつまづいたのでその対応などについて書きたい。 事前条件プライベートリポジトリの「Go_T_Used_Private_Repo」の「mylog」パッケージを参照する実装。 .├── go.mod├── go.sum└── main.go package mainimport ( "fmt" "github.com/ArtefactGitHub/Go_T_

          プライベートリポジトリを利用するgolangのdockerコンテナをビルドする際のfatal: could not read Username〜

          【Go初学】golangアプリ内でプライベートリポジトリを利用する際の410 Gone

          概要golangアプリ内でプライベートリポジトリを利用する際つまづいたので書きたい。 事前条件プライベートリポジトリとそれを利用する2つのgolangアプリを用意する。 goバージョンは「go1.17.4 darwin/amd64」 ▼プライベートリポジトリ この例ではプライベートリポジトリの名前は「Go_T_Used_Private_Repo」でモジュール参照先は「github.com/ArtefactGitHub/Go_T_Used_Private_Repo」となる

          【Go初学】golangアプリ内でプライベートリポジトリを利用する際の410 Gone

          【初学】docker-composeでの環境変数・秘密情報受け渡し

          概要golangアプリコンテナとDB(MySQL)コンテナをdocker-composeで立ち上げる構築の学習中。Compose周りで初級本で見なかったような点や考察 (悩み)について書きたい。 調べもの▼Compose file docker-compose.yamlについてちょっと調べてみた。 Docker Compose V2から compose.yaml が推奨ファイル名となり、またversion 指定は推奨されなくなっていくもよう。 ▼Version 互換

          【初学】docker-composeでの環境変数・秘密情報受け渡し

          docker-composeしたgolangアプリがCould not get any response

          概要docker-composeで起動したgolangアプリにPostmanで繋いだ際、 「Could not get any response」でアクセスできなかった件について、またデータベースへ接続出来なかったつまづきについて雑に書きたい。 原因と対応▼golangアプリにアクセスできなかった golangでWebAPIアプリ作成時、アクセス待ち受けする際アドレスとポート番号を指定する。上手くいかなかった時点では下記の指定だった。 http.ListenAndSer

          docker-composeしたgolangアプリがCould not get any response

          【Go初学】gormでjoinしてgroup byした総countを取得する

          概要gormでjoinしてcountを取得する処理を記述する際、何パターンもあり何が正しいのかよく分からなくなったので失敗例と成功例を記述する。 前提上記のような関係のテーブルと幾つかのレコードが存在する。 SQLとしてはあまり意味がない例になるが、タスクをユーザーID毎にまとめ、その総件数を取得する。 gorm.DBの接続処理は以下のように行った。 package mainimport ( "fmt" "gorm.io/driver/mysql" "gorm.i

          【Go初学】gormでjoinしてgroup byした総countを取得する

          【Go初学】GoLand導入、ショートカット設定など

          概要Visual Studio Codeを使っていたが、GoLandの方が生産性が良いと聞く。簡易なテスト自動作成や構造体コンストラクタフィールドの挿入など。有料ではあるものの長く使う上では非常に大事なので移行する。その際ショートカットなど自分が使いやすいように変えたいためメモとして残しておく(仕事/プライベートで共通化する)。 各種設定▼外観など 「環境設定」を開き設定する。 4Kモニターを使っているのでエディター内はもちろんだがUIのフォントサイズも調整できるのはあ

          【Go初学】GoLand導入、ショートカット設定など

          使い捨てローカルDB(MySQL)をDockerで用意する

          概要仕事でもプライベートでの学習でも、使い捨て感覚でデータベースを用意してあれこれ実験したい場合がある。コンテナを習い始めて、そうかコンテナでデータベース調達すればいいんだと気付いたのでやってみる。 準備▼ファイル配置 .├── Dockerfile└── my.conf ・my.conf [mysqld]character-set-server=utf8mb4collation-server=utf8mb4_bin[client]default-character-

          使い捨てローカルDB(MySQL)をDockerで用意する

          golangでClean Architecture[2]

          概要前回クリーンアーキテクチャの実践的学習のため簡易な非クリーンgolangアプリを作成してみた。そこから「実践ドメイン駆動設計」をある程度読んでLv3からLv5くらいになった気がしたのでWebアプリとコンソールアプリをクリーンで実装してみる(GitHub[最新版(main)])。 レイアウト修正後のfix_interactorブランチ版のレイアウトは以下の形になった。 ├── domain│ └── model│ └── task│

          golangでClean Architecture[2]

          INFJの16タイプ性格診断好きの人に100の質問[2]

          ■概要前回の、16タイプ性格診断好きの人に100の質問の続き。前回時間を掛けすぎたので少し簡潔に。 ■質問26. Youtubeでよく見るのは? ・「θ波潜在能力開発(ヒーリング系作業用BGM)」や雨の音など環境音源系 周囲の音をマスクするため。気がつくと音に気が付かなくなったりするので集中しているのだと思う。 ・「ワンインチチャンネル」 1年くらい前から見ているジークンドーの方。常に柔軟に貪欲に学ぶ姿勢が魅力。 ・「チャンネル桜」 討論など特定の再生リストや特定の方の動画

          INFJの16タイプ性格診断好きの人に100の質問[2]