ゆずめも

メモ的なブログです。主に勉強した事について書いてます。

Go Modules時代のimport

最近ちょこちょこGolangを勉強していて、1.13になってデフォルトONになるgo modulesを使った時にimportをどうやるのかわからなくて困ったのでメモ

tl;dr

go.modmodule項目とwikiを見て

github.com

gopath mode

go modulesじゃない時はGOPATHがあったのでimportの時は$GOPATH/srcが見えないけどついてるイメージでプロジェクトがgithub.com/yuzu441/nogiなのであれば

import "github.com/yuzu441/nogi/package"

と書けば指定したパッケージがimportできる

module-aware mode

go modulesを使う設定にするとGOPATHがないのでパッケージ名の指定をどうするのかがわからなかったが、githubwikiを見ていると答えが書いてあった

go modules環境ではgo.modというファイルがあって

これを生成するのにgo mod initというコマンドを使うんだけど、これの後ろにgithub.com/yuzu441/nogiのように指定してやる

go mod init github.com/yuzu441/nogi

するとgo.modファイルの先頭にmodule github.com/yuzu441/nogiのように記述されgopathモードの時と同じようにパッケージを参照できる

なので以下のように実行すると

go mod init yuzu441/nogi

yuzu441/nogiでアクセスできる

import "yuzu441/nogi/package"

のように参照することができる

サンプルコード

go mod init yuzu441/samplego.modを生成したという仮定でのサンプル

// service/calc.go
package service

func Add(x int, y int) int {
    return x + y
}

// main.go
package main

import (
    "strconv"

    "yuzu441/sample/service"
)

func main() {
    result := service.Add(1, 2)
    println("add result: " + strconv.Itoa(result))
}

echoのバナー表示を消す

golangのwebフレームワークのechoで実行時に表示されるバナー(ロゴみたいなEcho文字列)がGoogleAppEngineのログ表示を見づらくしてしまっていたので、それの表示を止める

要するに↓のこれを表示しないようにします

   ____    __
  / __/___/ /  ___
 / _// __/ _ \/ _ \
/___/\__/_//_/\___/ v4.1.5
High performance, minimalist Go web framework
https://echo.labstack.com
____________________________________O/_______
                                    O\
⇨ http server started on [::]:8080

やり方

HideBannerというオプションがあるのでそれにtrueを設定すると表示されなくなる

package main

import (
    "github.com/labstack/echo/v4"
    "github.com/labstack/echo/v4/middleware"
    "net/http"
    "os"
)

func main() {
    e := echo.New()

    // このオプションを設定する
    e.HideBanner = true

    e.Use(middleware.Logger())
    e.Use(middleware.Recover())

    e.GET("/", hello)

    port := os.Getenv("PORT")
    if port == "" {
        port = "8080"
    }
    e.Logger.Fatal(e.Start(":" + port))
}

func hello(c echo.Context) error {
    return c.String(http.StatusOK, "Hello World")
}

就職しました

完全に書くの忘れてて学校の後輩に「まだニートなんですか?」みたいに聞かれたので書いておく

退職エントリー書いてから早くも7ヶ月、お気づきの方もいらっしゃるかと思いますが就職しました

いつ就職したの

3月1日に初出社してました

ちなみに出社初日の様子です

https://twitter.com/yuzu_441/status/1101354590983745537

どこで何してるの?

大阪本町某所のスタートアップでWebエンジニアをすることになりました

会社としては採用コンサルで「エンジニアが足りない、もっとエンジニア欲しい…」というお客様を新卒採用をメインに採用のノウハウを提供して、採用のお手伝いする会社ですが、会社の制度設計を行ったり、自社サービスの開発や受託案件をやってる会社です。

自分がいるエンジニアチームは人数が少ないので基本的に必要になったら全部見て、技術選定も自分たちでするという楽しい職場で働いていて、就活の経験から採用コンサル等を行っているチームが採用に関して関西トップレベルだと思ってる*1ので、知らない事などを知れてとても楽しいです。

今後

自社だったり、受託だったりをこなしながら、やっぱりチームに関心があるので前職だと発言権がなかった”どうやったらいい組織が作れるのか”みたいな分野をもっと考えていきたいと思っている。

あとは割とあれな新卒研修を見て、これくらいだったらうちで研修業とかできるんじゃないの?とか思ったのでやってみたさが出てきてる。

cm

最後に「うち採用うまく行ってないんですよ」という企業様がいらっしゃいましたらTwitterのDMか何かで連絡を頂ければ、解決をお手伝いできるかもしれませんのでよろしくお願いします

*1:関西でしか就活してない