私の個人的で技術的な話:使っているエディタや言語mmj blog

mmj管理者
mmj管理者
2017年08月09日

新人エンジニアの深野です。本日は少し技術寄りの話をしたいと存じます。
とはいえ、高度な内容にはならないかと思いますので、入社してから触れた技術、仕事として使う技術について書いてまいります。

使っているエディタについて

まずはエディタの話から
特に会社指定でこのエディタを使うべしということはないのですが、弊社の新人研修ではvimを取り扱います。
それに直属の先輩がvimを使っていることもあって、私もこの機にと初めてvimを使うことにしました。
大学時代にemacsを触っていたことはあったのですが、vimはモードの概念があることもあって、これまで敬遠していました。
しかしながら人間は慣れるもので、3日もすればそれなりに扱えるようになりました。

emacsとvimは、基本的にはターミナル上で起動するCUIエディタです。(それぞれGUI版もあります)
vimの最大の特徴は、先程も申し上げたモードシステムでしょう。
初めの状態はノーマルモードで、カーソルの移動やヤンク(いわゆるコピー)、削除、貼り付けなどが可能ですが、直接の文字入力はできません。
ia キーなどを入力するとインサートモードになり、カーソル位置へ文字列を入力することができます。ノーマルモードに戻るには
Esc キーを押下します。
: キーを押すとコマンドモードになり、様々なコマンドを実行することができます。特に重要なのは :w でのファイル書き込み、:q でのvimの終了でしょう。
私が思うに、vimの良さは多種多様な機能を少ないキー入力で実行できるところにあります。
たとえばカーソルの移動一つにしても、ノーマルモードで w を押すことで次の単語の語頭までカーソルを移動させられます。カーソルキーを何度も押す必要がありません。
極めれば恐ろしく速い打鍵で編集が行なえ、熟練のプロでなくば何をしているか見逃してしまうほどになるでしょう。

vimはまた様々なカスタマイズができることでも優れていますが、私は検索して手に入る最低限の変更しか行っていません。
まずは標準機能に慣れて、不満のあるところだけ対応していくつもりです。

使っているプログラム言語について

さて、次はプログラム言語についてお話します。
私のプロジェクトで扱うメインの言語はJavaとRubyですが、いまのところRubyを使うことが多いです。
私は個人的にversion 1.8くらいの頃から使っていて、思い入れのある言語でもあります。
Rubyはなんといっても楽しく直感的にコードが書けるところが良いですね。最新の2.4系では速度も十分出ますし、メタプログラミングに強いのも応用が効きます。
プロジェクトによってはRuby on railsを使うこともあるのですが、実は私はまだ詳しくないので、ちゃんと勉強したいと思っています。

Rubyの言語仕様について語るには少し長くなりすぎるので、試しにFizzBuzzコードでも書いてみましょう。

スクリプト

puts (1..20).
  map{|i| [i] }.
  each_slice(3).
  map{|f| f[2].push("Fizz") if f.size == 3; f }.
  flatten(1).
  each_slice(5).
  map{|b| b[4].push("Buzz") if b.size == 5; b }.
  flatten(1).
  map{|a| a.shift unless a.size == 1; a.join("") }.
  join("\n")

出力結果

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz

ちょっと変な書き方をしてみました。メソッドチェイン、楽しいですね。

技術面で私が目指す道

最後に、私が将来的に技術的な面で目指したいことについて書いて終わりにしましょう。
まずひとつめに、高度なことができるようになりたいと思います。
専門的な技術は武器になります。私は大学院でPythonによる数値計算を行っていましたので、その経験を引き出しとして持って、関連するニュースにアンテナを張っていたいと思います。
ある技術について深く知見を持ちたいということですね。
次に、仕事が速くできるように工夫したいです。
私ができる仕事はまだまだ単純作業的な側面が大きいですから、それを速くできるようになることはとても大事です。
そのために一連の作業をスクリプト化するなどして、ミスなく素早くこなせるように工夫したいと意識しております。
最後に、仕事を質よく行うことを目指したいです。
作るスクリプト、書くコードは後から読んでもわかりやすく、使いやすく、応用できるような形にしたいです。それが作業の効率化に繋がるはずだと信じています。
日頃取っているメモも、検索しやすいように工夫して、清書してまとめておきたいですね。

というわけで、次回は社内の雰囲気についてでも書いてみようかなと考えております。
お読みいただきましてありがとうございました。

2017年08月09日

mmj管理者 |

« »
このページのトップへ