わかりそうでわからない。フレームワークとは?
いまや、webの開発に留まらずどんな開発にも必須となっているフレームワークですが、プログラミングの勉強したての頃は
「え、また新しいこと覚えるの、、、」ってなりがちです。
私もこんなことを気にしつつも、フレームワークを使ってるとプログラミングへの本質的な理解ができなくなる。なんていう意見もあり、初心者の頃は何も分からず、生phpでプログラムを組んでいました笑。
今だったら狂気の沙汰と思われるようなことも平気でやっちゃうんですね。初心者って怖いです。
こういうやらかしがちな初心者やプログラムを最短で学びたい人はプログラミングスクールに通うのが良いです。
転職を念頭に置いているのであれば転職成功でキャッシュバックされるプログラミングスクールもあるので一度検討されてみてはいかがでしょうか?
そもそもフレームワークとは?
フレームワークとは、「特定の開発に特化したライブラリの寄せ集め」です。開発者はこのフレームワークを使用することによってより速く、安全にシステムを開発できるようになります。
もっというとこの記事で言うフレームワークの正式名称はwebアプリケーションフレームワークと言い、WAFと訳されたりします。
具体的にいうと、Ruby on Rails、Laravel,CakePHP,Springなどがそれにあたります。
ライブラリの寄せ集めと言われてもなかなかピンとこない方もいるかもしれませんが、プログラムの世界では、何度も同じ処理を書かなくて済むように偉大な先輩方たちが開発したライブラリ郡があります。
例えばRailsやLaravelで使われているORM(オーアールマッパー)と言われるライブラリはデータベースのデータをオブジェクトに変換して、データベースを意識せずに(だいたいの処理でSQLを書かなくてすむ)開発を進めることができます。
ORM(オーアールマッパー)は今やwebの開発ではマストなライブラリとなっていますが、Ruby on RailsやLaravelなどのwebフレームワークはこのようなライブラリをたくさん搭載しています。
初心者はフレームワークを学ぶべき??
フレームワークは便利なツールで、実際の挙動を深く知らなくてもある程度の品質のアプリケーションを作ることができます。
これは大変大きなメリットなのですが、反対に意識しないと実際の挙動を知る機会が得にくいというデメリットもあります。
そういった理由から「初心者ははじめからRailsやLaravelなどのフレームワークを使うな!」みたいな意見もあるようですが、私はそんなこともないと思っています。
確かに、フレームワークを使うとプログラムをする上で守らないといけないルールを勝手によしなにしてくれる。というのがあるのですが初心者のうちにこれら全部を意識しながら実装を行うのは現実的ではありません。
「最初から正しいフォームを完璧に身につけないと野球をやっちゃいけない」みたいに言っているのと一緒で、野球やりたいなら多少フォームが汚くても、とりあえずキャッチボールからはじめてみたりしますよね。
正しいフォームというのは重要で、後の成長に関わってくるのでなるべく早く身につけたいところではありますが、何も最初からガチガチにやる必要はないというのが私の意見です。
プログラムで遊んでいくうちにだんだん慣れてきたり、仕事で必要になった時にそれらを学べば良いだけなので、初心者の方々はある程度プログラムの基礎を勉強したらRailsなどのフレームワークを使って実際にアプリを作ってみるのが良いと思います。
初心者がフレームワークを使い始める目安は?
フレームワークで使っている言語の基本文法(RailsならRuby,LaravelならPHP)、HTML/CSS、データベース、コマンド操作などの基本を押さえられたら自分が学んでいる言語のフレームワークで実際にアプリを作ってみましょう。
一通りの基礎と言われても抽象的すぎではありますが、一通り目を通して内容を理解しているのであれば基礎を理解したということで良いと思います。
ほぼ最初の段階で全ての項目を完璧に理解しているということはあり得ないので、フレームワークを使いながら、システムを作りながら適宜わからないところは戻って調べてということを繰り返しましょう。
まとめ
以下ここまでのまとめです。
- フレームワークとは、開発者がより早く簡単に質の高いアプリケーションを作るためのライブラリの寄せ集め
- 初心者のうちは、フレームワークを使ってweb開発に慣れていきましょう
- フレームワークの勉強を始める目安はweb開発に関する基礎を一通り勉強してから
- フレームワークを使いつつ、基礎と応用を反復して復習し力をつける。
フレームワークは本当に便利で慣れるまでに多少の時間はかかりますが、一度慣れてしまうと生のプログラムが書きたくなくなるくらい便利です。
上級者になると、自分でフレームワークを作ってしまう人もいるのですが、初心者のうちにこれをやるとまぁほぼ100パーセント挫折します笑。初心者がいきなりフレームワーク使うなという言葉を信じて自分で考えて、できたシステムは割と目も当てられない結果になることが多いので(フレームワークはシステムを作る上で考慮すべきところを最初から機能として準備してくれる)ある程度の基本を学んだあとは、PHPならLaravel,RubyならRuby on Railsを勉強することをオススメします。