ホーム

アプリ開発でReactとNodeを選択した理由 ① | 現役エンジニアが語る

皆さまどうも、りょすけです。

 

本日は、プログラミングの話しをしようと思います。

 

この前、新規Webサービス開発のイロハと銘打って、

 

システム開発を、安く、早く終わらせる開発手法、考え方について、

 

前々から開発してるスキルシェア・サービスのMeee!(みぃ)の例を出しながら、

 

ご紹介したわけですが、

 

(こちらはブログと動画にもしてるので是非ご覧ください)

 

本日は、そのMeee!(みぃ)開発の手法などについて、もっと詳しく書いてみようと思いました。

 

具体的に、自分がどういうつもりで技術の選定をしたのか、どういう流れで開発を進めていったのか

 

ここら辺の、私の脳内思考を、一個づつ話していきたいと思います。

 

この記事は連載其の一になります。

 

それで、今回も中級編なので、初心者の方には分からない単語も出てくるかと思いますが、

 

そのような場合は、近い将来、スキルが向上したときに、

 

もう一度うちへ来ていただけると嬉しいです。 🙂

 

では、行ってみよう٩( 'ω' )و

 

Webアプリ開発でReactとNodeを選択した理由

 

まずは、フロントエンドの話しからしてみます。

 

なんで、Reactを採用したの??

 

いくつか理由があります。

 

実は、私はReactアプリの開発に着手する前、既にLanguage Exchangeという、

 

Webサービスを既にリリースしていました。

これはRailsで作ってて、自分は当時Railsが一番得意だったので、

 

Railsで書こうかとも思ったのですが、

 

次に新しいサービスを開発するなら、

 

勉強も兼ねて、他の技術を模索してたんです。

 

つまり、モチベーションの観点から、やりたいという気持ちから、Reactを選んだ節があります。

 

ソフトウェア開発において、モチベーションの維持というのはとても大切なので、頭に入れておいていただけると嬉しいです。

 

それで、さらに、

 

自分の場合は2020年に入り、Reactの案件を新しく獲得したということもあり、、

 

勇気を出してMeee!のフロントの技術として採用し、

 

Reactを学びながらサービス開発することにしました。

 

当時の記事に、Reactの案件を獲得した経緯は書いてるので、そちらも興味があれば是非。

 

ちなみに余談ですが、

 

おそらく、Web開発の初心者の方は、最初のWebサービス開発で、

 

Reactを選択することは少ないと思います。

 

初心者の方がWebで新規サービスを開発するなら、

 

RailsとかLaravelとか、フルスタックフレームワークで作り始めると思う。

 

Reactはフロントエンド技術にイノベーション起こしたSPAの最先端技術ですが、

 

フロントエンドにReactを採用した時点で、バックエンドの技術を別で学ばないといけないからです。

 

APIを作るのか、クラウド技術などを使うのかは分かりませんが、

 

バックエンドはReactでは作れませんから、コストがダブルでかかります。

 

まるでSwiftでiOS、JavaでAndroidを作るかのような地獄です。

 

さて。

 

 

バックエンドにNode.jsを採用した経緯に関しても説明します

 

 

先ほども説明したが、フロントエンドをReact採用した時点で、

 

バックエンドのAPIを何で作るかということを考えます。

 

APIが何かを知らない人のために簡単に説明しますと、

 

APIとは、ズバリこういうことです。

 

 

ご理解いただけましたでしょうか。

 

Reactでフロントのビューを作って、そのAPIをバックエンドを作るのです。

 

Railsなどが既に分かる人は、この動画↓もよければどうぞ。

 

勿論ブログもあるよ。

 

 

ちなみに、APIをバックエンドで作るのは実は、

 

めちゃくちゃ便利な側面もあると思う。

 

例えば、スマホアプリを開発しようとした際に、既にAPIが出来上がっていればそのままそれを使えたり、

 

開発を進めるとき、ビューのコードなど見なくて良いので、効率も上がります。

 

自分の話しをすると、先ほど少し紹介したLanguage exchangeを、Railsで作ってしまったが故に、

 

これ、スマホアプリ開発するとしたら、Railsの上にまたAPI書かないとDBを同居できないやん!って今困ってます。。。

 

話を戻します。

 

バックエンドのAPIにNodeを使って理由としては、敢えて上げるとすると、以下のような点があると思う。

 

・Reactと同じJavaScriptで、相性がいいこと。

・JavaScriptはWebとも相性がいいこと。

・JavaScritだから開発も楽なこと

・npmがとても便利で開発が捗ること

・MongoDBとの相性もいいこと

・Herokuに簡単にデプロイできること

・Expressを使える

 

例えば、一つポイントを上げると、Webサービスはサーバーでアプリを動かしてるだけでランニングコストがかかります。AWSのEC2みたいなものを使うと、毎月、そこその負担になるので、自分はHerokuサーバーに上げたかった、管理もとても楽だしね、インフラ作る手間もなし、最高です。

 

また、実は、もう潰してしまったサービスなのですが、

 

ちょっと前にGoのフルスタックフレームワークでWebサービスを開発してました。

 

その際、Go開発だと、自分にとってはかなり面倒くさい問題が多発しました。

 

・ポインタなどを使いこなす時間がかかる

・メモリリークでアプリが落ちる

・Herokuに簡単にアップできなかった

・Goの環境を作るのがダルい

・IrisというGoのWebフレームワークのバージョンを上げるとコードが動かないwwwww

 

ここら辺の問題は、JavaScriptやrailsなどのWebと相性の良い技術だとあまり問題にならないので、

 

今回は無難にNodeを選択して開発をすることにしました。

 

Goは、超良い言語だと思うけど、個人レベルで開発してくには難易度が高い。学習コスト高いなって思ってます。

 

具体的な開発の手順について

 

では、ここからは詳しい開発の手順を説明していきたいのですが、

 

この続きはまた次回!

 

お楽しみに〜

Pocket
LinkedIn にシェア



新規webサービスの開発の依頼ならoffテク⭐️

低コストで、Reactなどモダン言語での新規webサービス開発を承ります

-ホーム

Copyright© off , 2020 All Rights Reserved Powered by AFFINGER5.