技術と趣味となにか

ゆるくやる

Goを始めて3日で何かを作る。あとひとり言

この記事はICT Advent Calendar 13日目の記事です。

おはようございます。

昨日から風邪をひいて寝込んでいるねむじんです。
今年も残すところあとわずかですが、みなさん体調には気をつけていきましょう。

この記事では風邪をひく前にGo言語で作っていたCUIツールの紹介とGoの浅い話をしていきたいと思います。

余談ですが、こういうタイトルよくありますよね。
個人的には始めて何日だろうが何かを作った人はえらいと思います。
なので僕もえらいです。

これを作った

github.com

notifissueといいます。名前は適当につけました。
Githubのissueやpull requestなどのアクティビティを取得して、コンソール上に表示してくれます。

もちろん日常的にGithubをブンブン使い倒している方なら、IssuesPull Requestsなどをご覧になっているかと思います。しかし、違うのです。開発をするときに一番最初に何を開くかと言われたらブラウザではなくコンソールなのです。ブラウザを開いてGithubに飛びIssuesに遷移する。たったそれだけのことが面倒なのです。それならコンソールで見れたらいいと思いました。

動作

https://user-images.githubusercontent.com/18340344/70629082-b3fd7780-1c6c-11ea-9b2b-f6773e8a2844.png

Shellの起動時に動くようにしているので上の画像のような動作をします。

僕がFishユーザーなのでREADMEにはFish用の動かし方しか書いていません。いつかBashZshも書くと思います。

今後ほしい機能

現時点では更新日時, Issueやpull requestのタイトルしか見れていません。
トークンも別にいいかと思って使用してないです。

🍣 アクティビティを指定して詳細やコメントを表示する
🍣 アクティビティを指定してGithubのページに飛ぶ
🍣 トークンをつけれるようにしたらコメントとかもっと細かいことができそう

Goの浅い話

Go入門の流れ

新しく言語を触り始めるとき皆さんは何をするのでしょうか。以前の僕は適当に競プロの問題をいくつかやって雰囲気を知るみたいなことをしていました。

今回僕が実践したGo入門簡単3ステップ(は?)を紹介します。

step1 記憶の中のGoを書く
step2 A Tour of Goをやる
step3 なんか作る

ものづくり駆動学習などは目的がはっきりしているので、必要な言語機能の使い方をさっさと覚えていけていいと思います。置き去りにされる知識もあると思いますが、それは使っていたらいつか知りたくなるはずなのできっと大丈夫です。

Goを触った感想

C likeな文法だけど違う部分が個人的に好きです。
関数定義と返り値の型の情報がわかれていたり、構造体の定義時にJSONなどの外部データからの情報の読み方を書くこともできます。
変数名・関数名の先頭が大文字小文字かでそのパッケージをimportしたときに見えるかどうかが変わる。C/C++だと修飾子が多くなってつらかったりするのでありだと思います。
go get hogehogeなども最近はMac OSとmanjaroを行き来しているのでビルドをよしなにやってくれて助かります。

// C
int add(int a, int b) {
  return a + b;
}

// Go
func Add(a int, b int) int {
  return a + b
}

どの言語も分かりにくいわけではないですが、修飾子で情報を明示させる度合いやコードの書き方で暗黙的に制約がつく度合いが、何を分かりやすさだとして作られたかの違いなのかなと思いました。

まとめ

新しい言語を触るのも何かを作るのも難しくないですし楽しいのでおすすめです。
しばらくはnotifissueを育てていこうと思ってるので、ぜひあれがほしいこうした方が良いなどあれば声をかけてほしいです。


以下、ひとり言

今年の振り返り

驚くほどの内容の薄さと文字の多さです。この時点で2000文字を超えています。風邪をひいて頭が回っていないのによくやったと自分を賞賛しています。

今年は成長できただろうか...

f:id:nemu_sou:20191213200532p:plain

Githubの草から分かる通り2019年前半は何も手につかないほど気が病んでいました。一体何故なんでしょうか... 病み案件が解消されてからはそれ以前よりも、日常的にGithub上で何かをやるようになっていて、少し良い感じです。1人で遊ぶだけでなく、チームでの開発やハッカソンの参加もあったりして楽しくやれました。

来年は

🍣 人として生きる -> まずは朝起きて二度寝しないことからね
🍣 やったことを記事に残していく -> 脳のメモリが2Byteくらいしかないことに気づいたよ

ICT委員会さんへ

🍣 すでに来年のプロコンチームが結成されていると思いますが、アイディア出しは病まない程度に頑張ってください
🍣 大会に出ない選択をした方々は好きなことをやりまくってLTでドヤってやりましょう

最近の推し

www.youtube.com

psycho-pass.com

終わり

明日はmitohato14さんの記事です。一体何を話してくれるのでしょうか楽しみですね。