ぺやろぐ

・・・死は避けられない。あんたも死ぬし、俺だって死ぬ。みんないつか死ぬ。・・・だが、今日じゃない! by 映画「バトルシップ」

if文すらまともに書けないやつはプログラマをやめてしまえ

人気記事セレクション

スポンサーリンク

作業は投げたい。
どうも、ぺやんぐ(@peyangu485)です。

今回は、IT業界の闇の部分について愚痴混じりにお話ししますよ。







IT業界って適当に仕事しているやつが多いんじゃないか問題

この場合の適当は、いい意味ではなく、悪い意味。
文面からわかると思うが。




さてさて、私がこの業界に入ってから今年で5年目になります。
それなりにいろいろな現場を回り、いろいろな人やいろいろなシステム、いろいろなコードを見てきました。
その中で私は就職前に持っていた、IT業界へのイメージを1年足らずで壊されることになりました。(いい悪い両方の意味で)




まずは、いいことから。

  • 案外残業が少なかった
  • なんだかんだでプログラミングは楽しい

以上。

1つ目の「残業が少ない」は入った会社がよかったんでしょうね。
その点に関してはいいところに入れたのかなと思います。
もっと残業だらけだと思っていましたから。
外に行ってても終電帰りは0ですね。

まぁ、行くところに行けば残業だらけのブラックもあるんでしょうが……。




2つ目は専門に通ってた頃から感じていた、プログラミングの楽しさは就職しても変わらなかったですね。
今でもそうです。
仕事のプログラミングは楽しくないんじゃないだろうかと不安に思っていましたが、仕様通りの動きをするのであれば、ある程度好きに書けるので、工夫のしようがあるという点で楽しく書けました。

自分で1からクラスを作ったり、画面を作る時なんて心躍りますよ。
「どのようにきれいに作ってやろうか……グヘヘwwww」ってな感じで。
そして、自分の持てる最大限の力を注いで妥協せずに画面ができたときの爽快感は、いいもんです。
それでなおかつ1発で動けば文句なしなんですがね……。(現実は甘くない)

就職してからさらにプログラミングが好きになりましたね。
いかにして、読みやすくて修正しやすいコードが書けるか、自分との勝負!

ただ、好きになったからこそこの業界の闇が私を襲うのですが……。




ということで、悪いこと。

  • 糞コードが量産されている
  • 残業が当たり前
  • 技術的なことを追いかけている人が少ない
  • 糞コードが量産されている
  • 糞コードが量産されている
  • 糞コードが量産されている

以上。

ごめんなさい、3つほど盛りました。


残業が当たり前

糞コードは最後に回して、「残業が当たり前」について。
いいことに書いたことと矛盾しているように見えますが、ちょっと違います。

残業は少ないです。
私の場合、多い月で45時間行くか行かないか程度です。
これ、だいぶ少ない方じゃないかな。
という意味ではホワイトですし、文句はほぼないです。

ですが、少ないのは「みんなが意識して定時内で終わらせよう!」とかではなく、単純に仕事がそこまで多くないからってだけです。
いいことなんですがねぇ。
でも、「意識して行ったこと」と「たまたまそうなっている」では同じ事象でもぜんぜん中身が違います。

で、だいたいの場所が「たまたまそうなっている」感じでした。

なかには、1日2時間~3時間の残業は普通みたいな風潮がある場所もありました。
そんな環境では、人は工夫しようなんて考えませんので、アナログで面倒くさいやり方が平然と残ってたりします。
定型業務なのにメモすらなかったり、定時過ぎた後にレビューがあったり。

定時内で終わらせてさっさと帰ろうっていう考えの現場は1か所しか知りません。(7,8か所中ってところですけど)
そこはスケジュール自体にゆとりを持たせていたので、すごく気楽に仕事ができました。

だいたいはスケジュールに追われるのに……。

「お客様の業務効率改善」とか言う前に自分たちの業務効率改善をしましょうよ……。




技術的なことを追いかけている人が少ない

次、「技術的なことを追いかけている人が少ない」
少なくとも自社内では知りません。
外に出て、初めて見つけたときはうれしくなったもんです。

SNS等ではよく見かけるのですが、どこに生息していらっしゃるのか……。

自社は、そもそも関わりがないからそういう話をしないってのがでかいと思います。
もうちょっと表に出てきたらいいのになぁ。
じゃあ、てめーがやれよってことなんでしょうが、愛想尽かしてる感あるのでもういいです。

WPFすら知らない人がいたときはびっくりしましたけどね。(私より結構先輩(年配の方ではないです))

なので、モチベの維持が大変ですね。
身近にともに頑張ろうぜって言ってくれる先輩が欲しかった……。





ふぅ。



やっと本題に入れる。
この記事を書くきっかけになったこの業界の闇。

「糞コードが量産されている」


糞コードが量産されている

プログラムのコードって、何も決めずに書くと書く人によって表現ががらっと変わります。 だいたいのプロジェクトは「コーディング規約」*1 なるものがあって、それに従えば似たような品質のコードができあがるはずなんですが、なぜかこれに従わない輩がいて、オレオレ流コードを残していきます。(ドヤ顔かは知りませんが)

で、だいたいそういうコードはゴミみたいな書き方をしているので、後から入った私が「なんじゃこの糞コード」となるわけです。
「もしかしたら、1年目の子が書いたのかもしれない」と最初は考えるわけです。
で、読み進めていくと「ああ、どうも1年目っぽいな」と確信が得られると、「じゃあ、仕方ないね。レビューしてもらえなかったんだね」としぶしぶ納得はできます。




でも、たまに「ん?この書き方知ってるのにこれ知らんとかありえんの?」となる記述があって、さらに読み進めて「こいつぁ、経験者だ。間違いねぇ」と確信する時がくるとさぁ大変。
「ぬおおおお、これ規約にあるやん!」とか「てめーが読めればそれでいいのか!」とか「こんな書き方して平然としていられるの?」などなどの気持ちがわんさかとあふれてくるわけです。




まだそこに統一感があれば、まだいいんです。
「こういう書き方をする人なんだな」で済みますから。




吐き気を催す邪悪までくると、「つい数行前に同じ記述があるけど、書き方が違う」なんてのが出てきます。
スーパーで売られてる刺身で例えるなら、「たんぽぽの位置が毎回違う(たんぽぽを置いてる人は同じ人)」が近しい表現かと。
「右上に置くならずっとそこを維持しろよ!」ってなりません?

そこまで気にしない?
ここは一旦気にしてください。

いくら自由に置いてもいいとはいえ、少なくとも同じ人が置いてる間ぐらいは統一してほしくないですか?




コードの話に戻りますと、コードは「見るもの」じゃなく「読むもの」なので場所によって表現を変えられると、ノイズになって理解するのに余計な労力が必要になります。 たんぽぽは「見るもの」というか「気にしないもの」なのでそこまで気にする人はいないと思いますが。

コードはぱっと読んで、何をしているか理解したいので「ん?」となるような表現はできるだけ避けた方がいいのですが、それを理解してコードを書いてる人は少ないですね。(私が見てきた中では)

私は意識して書き方を統一しようとしています。(たとえそれが糞コードになるとしても)
見やすいコード、理解しやすいコードを常に自問自答しながら書いてます。

プログラムを書く人全員がそういう心がけを少しでもしてくれたら、糞コードは減るだろうに……。
少なくとも今よりマシな糞コードになるでしょう……。




最後にこの記事を書くことになったきっかけの糞コードはif文の書き方。
(□は半角スペースを表します)

if(条件) 処理

if(条件)
□□□□処理

if(条件)
{
□□□□処理
}

が1つのクラス内に混在していた。
「処理」は全部1行。

2個目のifの書き方が続いた後に1個目の書き方が出たときは、マジで理解するのに数秒かかった。
「え? え? どういうこと?・・・ん、あー・・・あー、あ、これ1行にまとめてるんか!」な感じ。

1個目の書き方単体ならわかるんだけど、たしかこう書かれてたはず。

何かしら処理
if(条件) 処理
何かしら処理
何かしら処理
何かしら処理
何かしら処理

空行なかったから、何かしてるぐらいの認識だったんだけど、「if?」って気づいて↑に続く。

その直前はこれやったんですよ。

if(条件)
□□□□処理

何かしらの処理

これはやられた。
なんでコードを読んでて罠にかかった気分にならなきゃいけないのか……。




細かすぎるんかなぁ。
でも、そういう細かいことを気にしてこそでしょう……?

うーん、「動けばいい」っていうのを全否定はしないけど、もうちょっとプライド持ってほしいなぁ。




おわり

以上、IT業界ってできる人たちの集まりだと甘い幻想を抱いていた1人の若者の愚痴でした。
取り組む姿勢から違うんだろうなぁ。

レビューされないから、変な癖がついたままコードを書き続けてるからってのもありそうか。
忙しいのがそもそもの原因のような気もしますね。




*1:「このプロジェクトでは、頭文字は大文字で、共通処理はどこどこのクラスに記述して~」とコードを書く上での約束事を決めたもの