プログラミング初学者はWebのフレームワークを使うべきか?

G's Academyのメンターをやっていてメンティーが悩みやすいポイントとして、PHPでそのままプログラミングをするか?Laravelを代表とするWebアプリケーションフレームワークを使うか?という選択肢がある。

Pure PHPを使うメリデメとしては、仕様はシンプルでわかりやすいが、ログイン認証などのコードを自分で書かなくてはならないという部分がある。セキュリティを守りにくいデメリットはあるが、まだサービスリリースには程遠い段階なので、正直まあいいかなって思う部分はあるし、なんならコードレビューして突っ込んでいけばいいというのはある。

それに対して、Laravelなどを使う場合は、PHPとLaravelの両方を知ってなくてはいけないし切り分けができてないとLaravelで一通りの使い方を知った後にロジックを書く段階でPHPとの切り分けができずにハマるという学習コストの高さがポイントになってくる。

Webアプリケーションフレームワークが何故存在するのか?というと、沢山のエンジニアが大体同じようなコードを書いていて、何度もそこをデバッグしたりしないように、共通化された処理を吸収するためだと思っている。それによってテストの範囲が狭くなると同時に、セキュリティを守るためのノウハウも共通化されているのでWebアプリケーションの完成度が高くなる。

なお、特にメンティーが技術者としての転職志望でなくて起業家志望であるならば、初期のソースコードは捨てるぐらいの気持ちで、エンジニアを雇って全部書き直させてあげてくださいと言っている。起業家志望の人の技術経験に必要なのはLaravelの経験ではなくて、Pure PHPだろうがLaravelだろうがそこに共通する抽象化された技術からプロトタイプを示せるだけの技術力獲得と、ここでの経験をエンジニアに語って共感を得られる力の獲得がすべてだと僕個人では思っている。

しかし、今更多くの人がCでプログラミングはしないように、PHPそのものもCよりも上流のノウハウを結集した開発実行環境であり、さらにPHPのプラクティスを集めたものがLaravelだと考えればこそ、初学者が下のレイヤーを考えなくてもいい環境は望ましい。だから、最初から頑張ってLaravelを学ぶということに対しては賛成しかないという感覚はある。

G'sAcademyのメンターは、グローバルギークオーディション(以降GGA)と呼ばれる成果発表会に出場するまでの3ヶ月間にアドバイスなどのお手伝いをする役割である。問題は3ヶ月しかないのに、やれフレームワークの学習コストだの、認証機能の概念が理解できなくて時間を費やしてしまうというのを防ぐために、ついPure PHPで書けば?などと言ってしまう(非エンジニア志望であれば)のだが、まぁいきなり下のレイヤーからやらなくてもいいやと思えば、頑張ってLaravelを学んでほしいし、それなりの書籍はあるのでそれをしっかり見てくださいと応援するしかないかな。


この記事が気に入ったらサポートをしてみませんか?