ネットのコラム

コピペプログラマから脱却しよう! 簡単な思考法を紹介

2019年2月5日

ネットや上司から教えてもらったその記述、コピペしなくても書けますか?
おまじないをおまじないのままにしていませんか?

そこで今回は私が普段意識している方法をご紹介いたします。

※コピペをするなと言う記事ではありません。
 意味を理解して使うことで、コピペによるエラーを防いだり、自身で必要な改変ができるようになるのが目的です。

コードを書く時の思考法とは

単語単位で一つずつ、意味を理解しながら記述していく

めちゃくちゃ当たり前のこと言ってますが、何気にこれは結構難しいんです。

人は理解していないコードや文字の羅列を見ると、一つの分からないものの塊として見てしまいます。
簡単な英単語なら分かるはずなのに、文章は見る気も起きなくなるのと同じです。

実践: ストーリーを紐解く

コマンドやコードには必ずストーリーがあります。
どういうことか、簡単な例を使って実際にやってみましょう!

コマンド例

まず、以下のコマンドを見てください。

bundle exec thin start -e development -p 3001 -a 127.0.0.1 --prefix /redmine

これはWebサービスである「Redmine」というアプリをコマンドラインで立ち上げるコマンドになります。
アプリケーションサーバーには「thin」を利用しています。

簡単に言うと、RedmineというWebサイトをサービスとして立ち上げて公開するコマンドです。

「http://localhost:3001/redmine」

にアクセスして、Redmineに繋がれば成功です。

実際に打っていく

「thin」で「Redmine」を立ち上げるんでしたよね?
ではまずは「thin」を使いましょう。

と言いたいところですが、Library(以下gem)などの環境はアプリごとに変えて使いたいです。
そこで、バージョン管理ライブラリである「bunlder」のコマンドをまず打ちます。

bundle

bundlerでインストールしたgemを使用するには「exec」と打ちます。

bundle exec

今回は「thin」というgemを使ってアプリを立ち上げるのでしたね。

bundle exec thin

「thin」は「start」コマンドで起動します。

bundle exec thin start

ちょっと待ってください。
アプリは環境によって起動設定が異なります。

今回は開発環境ということで、 「development」 で動かしましょう。
引数は「-e」つまり「enviroment」、環境を指定あげます。

bundle exec thin start -e development

これで、bundlerによってローカルに保存された「thin」を使用し、アプリを「development」環境によって起動するというところまできました。

ですがまだ、アクセスするURLが生成できていませんね。
これではどこにアクセスすれば良いか分かりません。

今回は「http://localhost:3001/redmine」がURLです。


接続先は「localhost」つまり自分自身ですね。
なのでIPv4における自分自身を指すIPアドレス「127.0.0.1」を指定します。

引数は「-a」つまりadressです。

bundle exec thin start -e development -a 127.0.0.1

これによってドメインが指定され、「http://localhost/」にアクセスできるようになりました!

しかしこれ、良く見るとポート番号が無いですよね。
ログインしたいのは「http://localhost:3001/」です。

という訳で、引数「-p」つまり、port=ポートで指定してあげます。

bundle exec thin start -e development -a 127.0.0.1 -p 3001

これで「http://localhost:3001/」にアクセスできるようになりました。
あとURLっぽくなってきましたね。

しかし、良く見るとアドレスに「redmine」がありません。
これも指定してあげましょう。

今度は「--prefix」で指定します。
「prefix」は接頭辞、つまりアドレスの一番最初につく文字列を指します。
実際はアクセスすると「http://localhost:3001/redmine/my/page」や「http://localhost:3001/redmine/admin」というように、アドレスの先頭に「redmine」が入るからですね。

bundle exec thin start -e development -a 127.0.0.1 -p 3001 --prefix /redmine

これでめでたく「http://localhost:3001/redmine/」をURLとしたWebアプリが立ち上がりました!
なんてことは無いですね。

まとめ: コードを書く流れ

ここまでの流れを簡潔に書くと次のようになります。

  1. ローカル環境のライブラリを使用するために「bundler」を使う
  2. bundle exec
  3. 使うライブラリは「thin」で起動コマンドはstart
  4. bundle exec thin start
  5. アプリの動作環境はテストなので開発環境にする
  6. bundle exec thin start -e development
  7. アクセス先は自身で、ポート番号は3001
  8. bundle exec thin start -e development -a 127.0.0.1 -p 3001
  9. URLは「/redmine/~」となるようにしたいので接頭辞に/redmineを指定する
  10. bundle exec thin start -e development -a 127.0.0.1 -p 3001 --prefix /redmine

このように、必要なことを一つ一つ記述していくと、自然と引数だらけのコマンドが完成しています。

一度理解してしまえばこれらのコマンドは覚える必要はありません。
例えば、IPアドレスを指定するのは何だったかなとなれば、「-h」などでだいたい引数一覧が出てきます。

もうコピー先が紛失してしまったり、改変する必要があっても自分で判断して書けますね。

コードもコマンドも全ては必要なことを書いているに過ぎないので、初めて見るものは一つずつ意味を紐解いてみましょう!

-ネットのコラム

Copyright© 本気でのんびり生きていく , 2019 All Rights Reserved.