SPA?フレームワーク??非同期???
WEB開発初心者の私が、開発でつまづいた、そしてつまづいているポイントをまとめます。WEBがどういう仕組みで動いているかわかったくらいでは、アプリは組めないことがよくわかりました。プログラムをどう書くか、フレームワークをどう使うかの以前の段階でのつまづきばかりです。
でもここからだ!!
初心者がWEBアプリ開発でつまづくポイント
つまづきポイント
- どの言語を使えばいいのかわからん
- どのフレームワークを使えばいいのかわからん
- CDNとかインストールとか、何が主流かわからん
- アプリの構築の仕方がわからん
- なにを基準にしたらいいのかわからん
- ネットの情報が本当に合ってるのかわからん
つまづくポイントなんてたくさんありすぎて、列挙するだけでも日が暮れます。そう言ってても始まらないので、「さぁなんらかのWEBアプリ作るぞー」となった段階でつまづいたところから遡っていきましょう。
まず、どの言語を使えばいいのかわからん
ここ、割とつまづき度高いと思います。会社とかで言語の指定があれば何も考えなくて良いのですが、「なんでも良い」が一番こまるんですよね。
WEBという時点でHTML、CSS、Javascriptのある程度の知識が必要になることはわかりました。しかし、現代のWeb開発において、セキュリティやアプリの速度、開発速度等を考えると、「フレームワークを使うこと」はデフォルトのようです。
そして、WEBアプリの特徴は「フロントエンドとサーバーサイド(バックエンド)の処理を別々に書くこと」。そしてフロントエンドとサーバーサイドで選べるフレームワークや言語がいくつもあること。
これが初心者には本当にキツイ。
いくつもの言語を渡り歩くだけでキツイというのに、選べるほど方法があるというのはもう・・・orz いったん田舎帰ります。
どのフレームワークを使えばいいのかわからん
最近のフロントエンド開発はVue.js(ビュードットジェーエス)というフレームワークが流行ってるようです。Vue.jsはUIのフレームワークだそうです。ん?UIのフレームワーク??フレームワークに種類があるのか、、、と思ったらcssのフレームワーク、アプリケーションのフレームワーク、など色々あるようです。
フレームワークの定義を今一度確認。
フレームワーク (framework)とは
概念的な意味で、何かの枠組みのこと。あるいはシステム開発を楽に行えるように用意された、プログラムとかのひな形のこと
ということは、どんなものにもフレームワークがある可能性があるということ。。。。こりゃアカン!頭がごっちゃになる。けれど、開発するうえでフレームワークを使わないということもほとんど無いとか。使って覚えて凹まされるしかないな・・・orz 実家に帰らせていただきます。
CDNとかインストールとか、何が主流かわからん
仮にフロントエンドをVue.jsを使うとして、Vue.jsのドキュメントを読むとCDNを使ってネット上からVue本体を読み込んで使うことが推奨されてる。で、実際、そういうチュートリアルもたくさんある。
しかし、Vueをサーバにインストールして使う方法もある。うちの開発はこっちのタイプで進んでます。色々選べると、何が正しくて、どんなケースで何を選べばいいかわからん!!!
WEBアプリ製作の王道がまったくわからん。Vueの本やチュートリアルは探せばあるんだけど、構文やサンプルを知りたいわけじゃなくてWEBアプリを作りたいんだよね。なかなかズバリの文献にたどり着けない。これだけ世の中WEB化しているのに、その作り方にたどり着けないのはなぜなんだ。
色々遠回りしたくなくて、WEB開発の主流にドカンとぶちあたりたいんだけど、支流にながされてる感がすごい。やはりサムライ塾に入塾するしかないのか・・・orz 探さないでください。
アプリの構築の仕方がわからん
処理系をクライアントサイドでやった方がよいのか、それともサーバーサイドでやったほうがいいのかわからん。そもそもどっちでもできるのかもわからん。
サーバーの負荷を考えると、クライアントサイドだし、クライアント側の処理能力がわからないと、あまりクライアントサイドで処理をするのもどうなのだろう?製造業ではWindows XPなんてまだ現役だし。
クライアントサイドで作って納品して、「動きませんでした!サーバーサイドに変えます」ってことにはなりたくないし。アプリ構築の段階で、どう選択したらいいのかまったくわからん!
なにを基準にしたらいいのかわからん
ここまででわかったことは、Webアプリを開発する方法が色々あることくらい。
できる人は言うでしょう、「作りたいものに適した言語やフレームワークを選ぶといいよ」と。その選択、初心者にできますかね?そもそも作りたいものに適した言語やフレームワークが複数あるから悩むわけですよね。どんな基準をもって選択して一句べきか、そこに触れられている文献がとんと見つからない。
「言語は決まった、フレームワークはこれ、さぁやるぞ」といったタイミングで手に取る書籍ばかりです。・・・orz もうお家に返して!
ネットの情報が本当に合ってるのかわからん
Qiitaや技術Blogなど、ありがたい情報が山のようにあります。記事の通りプログラミングすれば動くものは作れます。ただそれが、どの程度正しいのか初心者には判断できません。セキュリティ的に危なかったりしてても全くわからないわけですね。
プログラミングは割と独学でできる部分が多いのですが、企業内又は、サービスとしてリリースするようなWEBアプリを、ネットの情報だけで組んでも大丈夫なのかがわかりません。だれもそこに触れていないので。
かといって学習を止めれば、なにも成果物ができないわけで。やはりサムライ塾に入・・・・orz そうだ、出家しよう!
なにもかもわからん、だがそれがいい
なんやかんや最初から大きな壁にぶつかっていますが、色々調べる作業は楽しいです。プログラミングってあーでもない、こーでもない、とやっているうちにできたりします。Googleでは「15分考えてわからなければ、わかる人に聞く」というルールがあるそうですが、職場に”わかる人”が居るというのは心強いですね。
私は自力で調べて解決策を模索する学習方法が好きなので、どうしても開発が遅れがちです。会社としてはよくない社員ですね(笑)
ただ、頭の中ぐにゃぐにゃになりながら、色々調べてると、ある程度必要になる技術ってのは目星がついてきました。まぁ目星がついただけじゃアプリは作れないわけですが。ここからがスタートです。
ちょっとわかったこと:Web開発に必須のスキル
[st-mybox title=”” fontawesome=”” color=”#757575″ bordercolor=”#f3f3f3″ bgcolor=”#f3f3f3″ borderwidth=”0″ borderradius=”5″ titleweight=”bold” fontsize=”” myclass=”st-mybox-class” margin=”25px 0 25px 0″]
- HTML/CSS/javascript
- データベース(設計)
- SQL
- セキュリティ
[/st-mybox]
どうもこの辺は押さえておかないとまともなものは作れないぞ、ということがわかってきました。特に奥が深そうなのが、データベースの設計とセキュリティです。社内LANのように完全に閉じた世界で使うWEBアプリなら、ログイン機能くらいの実装で済むかもしれません。
とりあえずこの辺を読みつつ、少しずつ脳みそアップデートしていきます。
通常、サーバーサイドとフロントエンドは開発が別だそうですが、(あと設計なども)、中小企業のエンジニアはそんなことは言っていられません。設計~開発~保守までひとりの「おひとり様情シス」しかも現場と兼務、みたいな(笑)
おかげで、いろんなことが広く浅~くわかっていくわけです。
しかし、WEBの技術は深く理解しているといろんなことが起こりそうです。たとえばフリーランス転身とか、転職とか。だってITエンジニアあと10年で80万人不足するらしいじゃないですか。
製造業においても、WEBアプリでできないことが少なくなってきています。生産管理ソフトにしても、現場で使う検査ソフト(計測器とのシリアル通信など)にしても。
さいごに
世の中のトップサービスは間違いなくトップエンジニアが作っているでしょう。しかし、エンジニアの何割が優秀なエンジニアなんでしょうか?80万人も不足するといわれているエンジニア。にわかの私にもチャンスがありそうな気がして学習してます。
WEBアプリ製作のイロハが「分かりそう」で「分からない」でも「分かった」気になれるのはいつになるかな。
コメント