LAMPエンジニアってこういうもんでしょ

こういうもんでしょって話をつらつらと

Railを捨てて荒野に繰り出す決断をした話

久しぶりの技術ネタです。
今の会社で1年前にRuby on Rails(以下RoR)を採択して
今まさにPHPへの移行を行おうとしています。
技術選定におけるあれこれについての反省を書き連ねて行ければと思います。


前提としてRoRはとても素晴らしいFWです。

RoR disってんのかよこのクソPHPerが!」
という声が聞こえてきそうなので念のため書いておきますが
RoRは本当に素晴らしいFWです。
基本をPHPとしつつPerlもJSもPythonも触ってきましたが
とてもしっかりとしたレールが轢かれていて
ライブラリも豊富にあり
web開発においてとても有力な選択肢のうちの一つだと思いました。
勉強しながらの開発ではありましたが
レールに乗って開発をする楽しさはなかなか面白いと感じる事が出来ました。


でも乗り換えるには理由がある

RoRにおける最大の問題としては
処理におけるブラックボックスが発生しやすいという事だと思います。
これはRubyの問題ではなくFWにおける問題の一つです。
うまくFWにはまっている開発を行う分には良いのですが
FWから逸脱した要件が発生した時にフルスタックフレームワークは牙を剥いて襲ってくるなと感じました。
PHPにおけるLaravelやSymfonyにおいても同様の問題は発生しがちです。
もちろんあらゆる問題を解決するために様々なモジュールやライブラリの開発が行われていますが
根本の解決に繋がらないケースやフレームワークの根底に対してチャレンジングな実装をしているものも多々あると感じます。
特に外部インスタンスに依存するようなAPI開発やNoSQL接続に関しては
かなり神経質にならないといけない上に
ライブラリに合わせて開発を進めてしまった後でライブラリの不具合や仕様要件不足
はたまた開発停止などでライブラリを乗り換えなくてはいけなくなった時に
本当の地獄の始まりをひしひしと感じます。


乗り換えにあたって重視した点

現在のシステムはAWS上で稼働しており
RDS、ElasticsearchService、mongoDB、外部API(http)との接続があります。
データが複数インスタンスに跨って管理されているものを
ひとつの業務システムのデータとして扱わなくてはいけないので
割とゴリゴリとした実装になりがちで
データの複雑性に耐えられる、かつ実装のスピードが確保出来る保守性の高いシステムでなくてはいけません。
技術選定にあたって今回気にしたのは

  • ライブラリの変更が容易である(フレームワークにロックインされない)
  • 技術情報が豊富にある(メジャーである)
  • エンジニアの誰かが中心になれる(詳しい人が内部にいる)
  • 採用が容易である(メジャーである)
  • ソースを追いやすい(困った時には外部から取り込んだライブラリでもソースを追うため)

という点です。


採択にあたっての決め手

選定における条件の中で「ライブラリの変更が容易である」という点を重視したため
今回はマイクロフレームワークを中心に考えることになりました。
社内のエンジニアの技術スタックの中で共通している言語はPHPとJSでしたが
「詳しい人がいる」という点でPHPが有力視されました。
また、過去の職場でマイクロフレームワークでの開発実績があり
今回の要件にマッチしそうという事でSlim3が最終的に選ばれました。
SlimはPHPフレームワークでroutingしか無い、という
マイクロフレームワークの中でもかなりマイクロな構造です。
過去のプロジェクトや個人的な開発のノウハウを投入して移行先のベースは作りましたが
各オブジェクトが疎結合な状態でテストをちゃんと回せる状態になっており
かつライブラリと自作部分を組み合わせて一般的なMVC構造になっているので学習コストも割と低いと思います。


今後の展望

PHPにおいて容易で学習コストが低い故に
低スキルエンジニアを量産してきた歴史がある事は否定できませんが
容易で学習コストが低いからこそ高度な事に手を出しやすいのが今のPHPの良い所だと思います。
もっと綺麗で見通しの良いコードが書ける言語も出てきていますし
どうしても言語特有のバグの問題や
WEBの世界にロックされがちでPHPのタグが気に入らないという意見も受け止めるべきだとは思いますが
食わず嫌いだけでPHPを避けるより
言語選定においてまだまだ有力な選択肢のひとつであるという事を知ってもらえればと思います。


いや本当はRuby使うならSinatraとか使えば良かったじゃんって話なんですけどね。
CodeIgniterじゃなくてSlimってところが今のシステムの悩ましいポイントです。

「自分はこの仕事に向いていないかも」と思った時に読むポエム

新年度が始まって1週間が経ちました。
新卒社員の方は研修まみれの1週間だったり
いきなりOJTという名の元に現場でバリバリ仕事をしていたりするでしょう。
あるいは後輩が出来て振る舞い方がわからなくてまごまごしていたり
教育担当に任命されてビビったりしている先輩もいるかもしれません。
就職にしても転職にしても
環境が変わってしばらくするとたまに出てくる疑惑があります。

「もしかしてこの仕事向いていないんじゃないか」
「この職場でこの先やっていけるのか」

向いている仕事や職場に巡り会える事はとても幸せなことです。
100%向いている環境に身をおける人の方が少ないです。
だからと言って諦める必要は無いと思います。
こういう疑問が湧いてくるタイミングはある意味では大きなチャンスです。
自分を見つめなおし環境を整理してより良い生き方を模索する転機だと思って
向き合っていく必要があると思っています。
なぜなら我々システムエンジニアは課題を論理的に解決していくプロなのですから。
(格好いい事言ったと思っている)


■根底の問題を突き止める

「向いていない」感じる原因は「理想」と「現実」のギャップだと思います。
自分が、あるいは職場がもっとこうだったら良いのに
という想いがどこかにあるために出てくる
理想と現実とのギャップに対する危機感です。
今の環境に対してどういう人が「向いている人」だと考えているのか
という事を一度整理してみた方が良いです。
その時になるべく具体的なエピソードを作って考えましょう。
「明るい人」というのは非常に漠然としています。
「忙しい時に話しかけられても笑顔で対応できる人」なのか
「出社してきた時に誰よりも大きな声で挨拶をする人」なのかで
ニュアンスが大きく変わってきます。
これを洗い出す事によって環境に対する本当に自身が抱いている「不満」が透けて見えてくるはずです。
また採用や配置の際に何を周囲に求められてのものなのかも一緒に洗い出していくと
本当に求めなければいけない「理想」が見えてきやすいかなとも思います。


■今とのギャップを明確にする

理想の状態に対して今の状態というのがどうであるかを洗い出していきます。
誰に見せるものでもないのでなるべく正直に並べていきましょう。
「清潔でオシャレな職場」を求めていても
実際には「食べかけのパンが上司の机の上にずっと置いてある」のかもしれません。
恥ずかしい事や目をそむけたくなる事もあるとは思いますが
正しく現状を認識することもとても大切なことです。
そしてまだ挫けないで下さい。


■どうすれば理想に近づけるかを考える

理想の人物像や職場像が洗い出せたら
そのようにするために自分が出来るアクションを考えていきます。
中には「どうしようもない」と思う事もあると思います。
それはなぜ出来ないのか、という事もきちんと理由をつける事がとても大切です。
具体的なアクションとして定められた事は
継続していくための指標を定めて
継続した時にきちんと理想通りになるイメージが沸くかもよく考えましょう。


■本当に実行するべきかを考える

ここまでの段階は全てこの段階を深く考えるための資料でしかありません。
自身の理想の生き方を比べてみて
実行するべきアクションが自身の美学に反していないかの検証をする必要があります。
圧倒的な実力を持って孤高の存在になりたい人が
「先輩上司後輩同僚分け隔てなくニコニコ接する」なんて目標を掲げても実現出来るはずがないですし
それこそ「向いていない」状態です。
もし自身の生き方が定まっていないのであれば
それはそれとして深く考える必要があると思います。
もしここまで来て今の環境が本当に向いていないと感じるのであれば
自身に向いている環境を獲得するためのアクションを定義して動き出すべきでしょう。
具体的には転職や職種の変更という事になりますが
ここまでの思考の中で新しい環境に何を求めていくべきかが明確になっているはずです。
自身がその環境に対していかに「向いている」人間かをアピール出来れば採用される可能性も高くなると思います。


■まとめ

キャリアカウンセリングでよくやる内容です。
就活セミナーの最初にやる自己分析や転職エージェントとの面談の中でやり取りする内容はこういう感じかなと思います。
大人として認められることもそうですし
プロとして仕事をすることにも共通すると思いますが
きちんと「筋を通す」ことと「腹を括る」ことがとても大事なように思います。
そのためにはきちんと自身と向き合い自身を知り
矛盾の無い生き方をしていかなければなりません。
自分を見つめなおしチャンスはなかなか気が付けないものですし
裸の自分を見つめる事は大きな苦痛を伴う作業でもあります。
しかし大きく成長できるチャンスだと捉えてきちんと向き合える人は
後々幸せになっていくんじゃないかなと感じていたりもします。

あれから1年経ってみたらすっかりオタクになっていた話

ポエムです。
去年初めてアイドルさんのライブに参戦してから1年経ちました。

htanaka0828.hateblo.jp


その後の参戦記録としては
【2017】
・6/30 ありがとうおとももち@自宅ニコ生
・7/25 Juice=Juice LIVE AROUND 2017~Seven Horizon~@吉祥寺
・8/5 ハロコン@中野サンプラザ
・10/10 Juice=Juice LIVE AROUND 2017~in the World→J=J Day Special~@Zepp DyverCyty
・11/20 Juice=Juice LIVE AROUND 2017 FINAL at 日本武道館 ~Seven Squeeze!~@日本武道館
・12/31 ハロープロジェクトカウントダウンコンサート@中野サンプラザ
【2018】
・1/26 Juice=Juice LIVE GEAR 2018 ~Go ahead~@名古屋
・4/1 ひなフェス2018@パシフィコ横浜

都内のjuice=juiceを中心にぐるぐる巡って来た1年でした。
カントリーガールズの一部メンバーの兼任移籍や
メンバーの卒業、脱退など様々な事がありましたが
主にインターネットの力を借りて情報収集をしつつ
この1年間で様々な事を学びました。


振り返ってみてふと思ったのは
エンジニアは勉強をする仕事なのだなということでした。

 

エンジニアは日々新しい技術が出てきますし
エンジニアは職種であって業種は様々な業界に跨っているので
業界の知識も日々アップデートしなくてはいけません。
それはオタク活動においても同様で
新曲は続々出てきますしメンバーも入れ替わっていきます。
ライブもじゃんじゃんやって
髪型が~とか衣装が~とかアレンジが~とかを追っていかなければならないのです。
優秀なエンジニアの在り方のひとつとして
自身に最適な情報のインプットの方法を知っているという事なのかなと思います。


juice=juiceにおいては
新メンバーの加入に海外公演に久しぶりのシングルリリース
メンバーの体調不良もありつつもとても充実した1年間だったのかなと思います。
また他グループでも実力の向上が垣間見えたり
新しいキャラクターが開花したり
ハロープロジェクトが20周年だったりと
こちらはこちらでとても充実した1年でしたね。
この1年間の変化がとても認識できた良いひなフェスでした。


これからの1年も既にいくつかの予定が決まっているので
引き続きjuice=juiceを追いかけつつ
車を乗り回しつつ
お仕事に励んでいこうかなと思います。