ConoHa-CLIの進捗報告。 まだまだやりたいことには届いてないから引き続き考えていくよ!
現状
- Golangのパッケージに関して
- 複数環境のリリースに関して
- SSHに関して
Golangのパッケージに関して
Node.jsのrequireは1ファイル内でmodule.exports
に記載したものだけ返すが、
Golangのパッケージは1ディレクトリを1パッケージとして、全角英字で始まる関数やインスタンス等が全て返ってくる。
抽象化は1度しか行えないのでしっかりとオブジェクト指向的な設計が必要になる。
今回Go初挑戦ということで適当に作ったパッケージがあまり使い物にならないので見直す必要が出てきた。 現状の問題点としては、conf.Read()関数がconfigファイルを返す為、spec.tomlを操ろうと思ったらRead関数が使用済みの為に困ってしまう。
一旦はこの2つにリファクタリングしよう。
- config
- endpoints
書籍を購入して勉強しているのだが、ディレクトリによるパッケージはサブディレクトリを切ればネスト出来るのでNode.js的な管理方法も十分可能に思える。 この辺を視野にいれて調査していこう。
参考サイト:
複数環境のリリースに関して
GitHubではタグを打った後、ファイルをアップロードすることでバイナリファイルをGitHub上に設置出来るらしい。 64bitのWindows、Mac、Linuxの3つくらいは上げておきたいから勉強必須。 ゆくゆくはMakefileかなんかで一撃でリリース出来るようにしたい。
参考サイト:
- Go のクロスコンパイル環境構築 - Qiita
- privateなGitHub Releaseページのリリース物をcurl+jqでダウンロードするワンライナー - Qiita
- GitHubのリリース機能を使う - Qiita
- Creating Releases - GitHub Help
- Release Your Software
SSHに関して
GolangにはSSHパッケージがデフォルトで用意されており、osの標準入力/出力につなげてやると簡単に実装出来るとのこと。 これによりWindows環境でも(多分)動作するSSHになりうる。
でもメインが電車によるSSH接続なのでMoshにも対応したいなあ。。。 というわけで、もう少し調査した後に再開という形になる。
参考サイト: