めんどくさいと思う気持ちが大事
はじめに
皆さんはプログラマーにとって大切な精神ってなんだと思いますか?
主体性?根性?そうですね。それも重要ですね。
しかし、それらと併せて大事な事があります。
それは、何事にも面倒臭い、と思える気持ちです。
当たり前ですが、面倒臭いから何もしないのが大事ってことではありません。
面倒臭い・・もっと簡単な方法や速度アップする方法はないのか?と考えるってことです。
そのためには例えば以下のような事を念頭において進めることが大切になりますね。
・作業効率を上げること。
・作業の自動化を目指すこと。
・書類やソースコードを整理すること。
・手順書(手順書と言えるほど立派なものでなく、トラブル解決法などのメモ書きでもよい。)を書く事。
こういう事はどのような職種でも言われる事ですが、プログラマーの場合は特に重要です。
なぜなら作業の自動化とか、他の職種なら大金を払って他社に依頼しなければいけないところを自分である程度できるのだから。(実際には簡単なものでない限り買った方が時給換算したら遥かに安い事がほとんどですが。)
面倒を軽減するために身につけるべきスキル
無限にありますが、ここではテキストデータの扱いについていくつかコツを紹介します。
検索ボックスを使いこなす
大抵のエディタではCtrl+Fを押すと検索ボックスが出ます。
そこでテキストを入力して検索ボタンを押すとファイル内から簡単に探し物が見つかります。
え?知ってますか?そうですか。
でも、それ本当に使いこなせてますか?
例えば下の名前の一覧から、山田さんと田中さんだけを1回の検索で出せますか?
山田 太郎
鈴木 一郎
田中 花子
川下 愛
田中 透
木下 武
山田 大輝
田所 未来
田畑 洋介
それくらい2回検索して調べればいいって?
これが10000行になって、対象が30種類の苗字になってもまだそれでやりますか?
え?根性の見せ所!?
・・・そういうのはパワープレイといって、ダメな思考の典型です。
そんなことしなくても正規表現を使えば一撃でできますよ。
そしてこの条件で引っ掛けた行だけを削除するとか、文字列の一部だけを置換するとか、様々な事ができます。
正規表現覚えるの難しくて・・・っていう人はChatGPTに正規表現パターンを書いてもらいましょう。
全文検索
大量のファイルから一撃で検索する方法です。
Linuxだとgrepコマンド。
GUIアプリでもサクラエディタなどの高機能なエディタには大体用意されています。
当然VScodeやeclipseなどのデベロッパーツールには標準搭載されています。
宣言箇所検索
変数や関数の宣言箇所を検索します。
プログラマーで知らない人はいないと思いますが。
呼び出し階層検索
関数がどこから呼び出されているかを追いかけます。
eclipseやPHPStormに搭載されています。
全文検索ではヒットしすぎて、どれが目的の箇所か分からなくなってしまいますが、
この機能を使うと正確に遡る事ができます。
参照検索
これも一部の高機能開発環境に限られますが、変数を使っている箇所をリストアップできます。
画面分割
複数のファイルを画面分割して同時に開く事ができます。
さらに、1つのファイルを分割して表示する事ができるため、検索して見つかったところに移動して、移動先でCtrl+Cやってまた戻るのに検索してという手間が省けます。
移動・戻るボタン
直前に編集して場所にいったり、帰ったりできます。
ファイル名検索
ファイル名を指定してそのファイルを1発で開けます。
vscodeでも可能。
案件で使うエディタが決まったらまっさきにショートカットコマンド覚えるべきものの一つ。
性能の高いエディタほど、このファイル名のインクリメンタルサーチが使いやすい。
行数検索
何行目に行きたいかその行を表示できます。
対応するカッコへ移動
開きカッコの場所でショートカットコマンドを入力すると対応する閉じカッコに移動できます。
あってはいけないことですが、残念ながら実務では1つの分岐の中が500行を超えるひどいコードも実在します。
しかもその中でさらに多段ネストしたりしています。
そうなると、目で追いかけるのは不可能に近いレベルのため、こういった機能を使いこなして処理のブロックを調べるスキルが必要になります。
まとめ
今回は検索術が中心になりましたが、マクロやシェルスクリプト、DockerやJenkinsを覚えたり、コードフォーマッターを使ったり。
いろいろな時短術が存在します。
学習コストも学習難易度も高いですが、覚えれば覚えるだけ楽になっていきます。
なかなか急にはできませんが、少しでもパワープレイから脱却できるよう常日頃から、あ、これは無駄、これは面倒くさい、いつかなんとかしたい、という気持ちを持っていきましょう。
株式会社ONE WEDGE
【Serverlessで世の中をもっと楽しく】 ONE WEDGEはServerlessシステム開発を中核技術としてWeb系システム開発、AWS/GCPを利用した業務システム・サービス開発、PWAを用いたモバイル開発、Alexaスキル開発など、元気と技術力を武器にお客様に真摯に向き合う価値創造企業です。
Discussion