ホーム

アプリ開発で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 にシェア

エンジニアにおすすめできる本

Card image cap
リーダブルコード

より良いコードを書くためのシンプルで実践的なテクニック

Card image cap
Webを支える技術

HTTP,URI,HTML,そしてREST

Card image cap
誰でもPythonで作れる

儲かるAIとソフトウェアの作り方

Card image cap
プログラマが知るべき97のこと

現場で使える実践哲学のマスターピース

Card image cap
情熱プログラマー

時代を超えて。ソフトウェア開発者の幸せな生き方

Card image cap
アジャイルサムライ

プログラミング達人開発者への道

Card image cap
Rubyを作った男 まつもとゆきひろ

コードの世界 スーパー・プログラマになる14の思考法

ご提供 sponsor
 

Meee!(ミー)は、ビジネスからプライベート利用まで、個人のスキルを気軽に売り買いできるスキルマーケットです。カテゴリや居住地から、検索することが可能です。

 

ランゲージエクスチェンジは、ネイティブスピーカーと気軽にマッチングできる言語交換プラットフォームです。あなたの地元に住む外国人を探したり、留学や海外移住の前に、現地のネイティブスピーカーと繋がることもできます!

宣伝
 

りょすけトークchは、仕事や私生活をより豊にするYouTubeチャンネルです。文献(本、映画、論文)から役に立つ情報をまとめ、生涯にわたり役に立つ哲学をお届けしています。是非、チャンネル登録してみてね

-ホーム

Copyright© offブログ! , 2021 All Rights Reserved Powered by AFFINGER5.