コマンドラインツールでの設定値の優先順(設定ファイル・環境変数・コマンドライン引数)
コマンドラインツールを作る時、プログラムがユーザから値を受ける方法は何通りもあります。 特に代表的なのが設定ファイル・環境変数・コマンドライン引数です。 自分でプログラムを書く場合、これらの値を自分の好きな順番で扱えます。 ただ、自分の好きな順番で扱えるからこそ、何をどのような優先順位で処理すべきか迷うこともあるでしょう。 本記事では、各種値を一般的にはどのように処理していくかを調べていきます。 ...
コマンドラインツールを作る時、プログラムがユーザから値を受ける方法は何通りもあります。 特に代表的なのが設定ファイル・環境変数・コマンドライン引数です。 自分でプログラムを書く場合、これらの値を自分の好きな順番で扱えます。 ただ、自分の好きな順番で扱えるからこそ、何をどのような優先順位で処理すべきか迷うこともあるでしょう。 本記事では、各種値を一般的にはどのように処理していくかを調べていきます。 ...
アウトプットのネタに困ったらこれ!?Ruby初心者向けのプログラミング問題を集めてみた(全10問) で紹介された問題を解いてみようと思いました。 プログラマー歴1x年目。最近は手癖でプログラムを書いているので、意外にこの手の問題が解けなくなっているかもしれない…… ...
Go 言語を使って何を書くかといえば、なんだかんだでサーバプログラムを書くことが多いかと思います。 大抵の場合、ハンドラは goroutine で動かすことになります。また、ハンドラの中で goroutine 動かすケースも多々あります。 さて、例えばハンドラ内で外部 API を呼び出したり、マイクロサービスな関連サーバへリクエストをかけたりする際に、 それぞれのリクエストで AccessToken やタイムアウトの規定時間など、共通の値を用いるケースは多々あるかと思います。 また、 goroutine で平行で動かしているリクエストがある時、1つが失敗したら残りのリクエストも全部失敗させたいときなどもあり得るでしょう。 ...
Go 言語ではソースコード中にコメントを書くことで自動的に API ドキュメントを生成する方法が最初からサポートされています。 Godoc: documenting Go code でも、 The Go project takes documentation seriously. と書かれているほど、しっかりと練られた文書化ツールが揃っています。 ...
Markdown や PlantUML をリアルタイムで確認したいと誰でも思うものです。 いくつか方法はありますが、MacOS でリアルタイムプレビューを行う一つの方法について簡単にメモして行きましょう。 ...
Ruby な会社から Java な会社に転職したぼく。その前に立ちはだかるのは3つのビルドツールだった。 Java で一番新しいビルドツールは Gradle と聞いたぼくは、早速 Gradle の使い方について調べるのでした。 ...
今年もポエムの時間がやって来た この記事は退職者アドベントカレンダーの14日目です。 昨日はえー、忘れちゃったのかな? 仕方ないなぁ。 一昨日は @mizchi さんの エンジニアのベンチャー企業の選び方/働き方/やめ方 - mizchi’s blog でした。 うーん力強い。 今までのアドベントカレンダーは前向きに、未来を向いた記事が多かったですね! なぜ自分が転職したのか、そして何をしていきたいのか、他の方の考えがわかってとても興味深いものでした。 ...
なにもかもを忘れっぽい自分のために、 Apache Maven の入門記事をまとめておこうと思う。 毎度のことだけど、正しい情報は公式サイト読もうね Apache Maven Apache Maven はプロジェクトマネジメントツールで、Project Object Model (POM) というモデルをコンセプトとしている。 Maven を使うことで、プロジェクトのビルドやドキュメンテーションなど様々なことを行うことができる。 ...
Rails の各種コマンドは bin ディレクトリから rails new APP すると出来上がる rails プロジェクトでは、 ルートディレクトリに bin ディレクトリが生成されます。 この中には、サーバを起動したり、テストをしたり、アプリケションを管理する 様々なスクリプトファイルが置かれます。 ...
簡単な ruby のスクリプトでも、ライブラリのバージョン管理をしたい! ruby のパッケージ管理ツールである Bundler はとても便利で、当たり前のように普段使いをしています。 ところで、ちょっとした、ちょうど 1 ファイルくらいの軽量スクリプト書くときに、いちいち Gemfile を書いたりする人はあまりいないでしょう。 軽量のスクリプトなら普通に gem install hogehoge みたいにライブラリをインストールし、 require 'hogehoge' してライブラリを読み込むのが普通でしょう。 でも、たまたまこのスクリプトファイルを共有する時とかに、ライブラリのバージョン差異が出て 地味に 不便なんですよね。 ...