蛇使いの日常

コーンスネークを飼っているPythonエンジニアの日常や技術のことなど

サーバーサイドとフロントエンドによる歪み

IT企業に勤めている蛇使いです。

会社ではサーバーサイドを担当しています。

個人ではサーバーサイドもフロントエンドも関係なく、開発・運用に関係することは全てしています。

 

それぞれの大変さ

勤めている会社では、サーバーサイドとフロントエンドの担当が分かれているのですが、サーバーサイドとフロントエンドでどっちが大変か?というと、まぁ両方大変ですよね。

サーバーサイドは仕様がややこしければデータをグルグルさせたり、用件や項目が多ければ一つ一つ何に使われるか確認して実装しないといけません。

フロントエンドは使いやすいUIを考えたり、JSでハマると原因がわかりにくかったり、スタイルが思うように効いてくれなかったり大変です。

 

サーバーサイドとフロントエンドの担当が分かれていることは、正直だいぶ楽です。私はデザインが苦手なのですが、それをしなくて済むのはとても嬉しいです。

 

担当が分かれているデメリット 

片方だけを担当すると、そこだけに集中できるというメリットだけではなく、もちろんデメリットもでてきます。

その1つに「どちらがやるか?」がありますね。「これをするのはサーバーサイドでやってよ」「いやいやそれぐらいフロントでやってよ」ということがちょこちょこでてきます。「フロントのために無駄にループ回すのか~、俺だったらそれぐらいフロントのフィルタやフォーマット使ってやるわ」とか「なんでわざわざフロントで整形しないといけないんだよ。サーバーサイドでやる方が簡単だろ」などなど。

 

歪み

そしてもう1つ、片方が作ったルールによって、片方のルールが壊れてしまう歪み。

この歪みは、サーバーサイドとフロントエンドを分業している場合によく生まれます。私が別の会社でフロント寄りの人間と仕事をしていた時、よくフロント重視の注文をつけられました。わたしはよく「歪みが生まれることを考えないといけない!」と言っていました。

 

そのプロジェクトのサーバーサイドもフロント寄りの人間が担当するようになって数ヶ月後、その人間は「このパターンの場合はどうすればいいんデスカ?」と聞いてきました。私は「それが君が作った歪だ!」と答えました。彼もようやくその時に気づいたようです。

誰かが楽するには誰かが苦労する。フロントだけの理想を追いかければ、それに合わせるサーバーが苦労しなければならないということです。

 

 

このように、サーバーサイドとフロントエンドを分けた場合に、歪みが生まれやすいデメリットがあります。もしも両方を担当していたのならば、歪みが生まれるとわかった瞬間にすぐ補正するはずです。歪みに気づかずそのまま突き進んでしまうのは、自分がやっていることにしか目が向いていないから。要は自分のことしか考えていないからかもしれませんね。

 

じゃあ両方やる?

じゃあ両方やるのか?というと、私は勤めている会社ではフロントエンドをやりません。なぜなら、フロントエンドの思想が違うからです。会社はAngular4×TypeScript、私はAurelia.js×ES。めちゃめちゃライバル視(笑)

スクリプト言語ならどれだけシンプルに書くかなので、私にTypeScriptの選択はないですし、Aurelia.jsのシンプルな記述を捨てるわけにはいきません。

PythonエンジニアがわざわざRubyをインストールしてSassを使うわけにはいきません。Node.jsは必須の時代なのでそこはStylusのはずです。

今時HTMLをだらだら書いてられないので、pugなどを使わないことはありえません。

 

さいごに

サーバーサイドとフロントエンドを分けても、歪みの生まれない開発ができれば最高ですね。歪みが生まれないようにするには、サーバーサイド担当とフロントエンド担当が、お互いに両方の経験があり、両方のことを考えてルールを決めていかなければならないと思います。