こんにちは!👋です。

どんなビジネスでも、一番難しいのは始めることであることが多いですよね。そして、成功されたようですね。おめでとうございます!(^^)

ここから、プログラミング全般、特にNo-Code(複雑なプログラミング言語を習得せずにプログラムを作成する能力)を学ぶには長い道のりがあります。しかし、まずは基本的な用語について少し理解しておくとよいでしょう。

もしあなたがすでにITプロフェッショナルであれば、この入門モジュールは飛ばしていただいて結構です。ここでは、最も基本的な概念を扱います。アプリケーション、フロントエンド、データベース、HTTPプロトコル、などです。

準備はいいですか?さあ、始めましょう。


一般論

プログラミングの基本

コンピュータは、一見とても賢く見えますが、本来は自分では何もできないものです。明確な指示が必要なのです。"コンピュータは、あなたが望むことをするのではなく、あなたが命令したことをする "という古いジョークがあるくらいです。

プログラミング」とは、広い意味で、コンピュータに明確で理解しやすい命令(コマンド)を作ることであることがわかった。そして、コンピュータが理解できる言語で書かれた命令そのものが「プログラム」である。

そして、ここで注目すべきは、「コンピュータに理解できる言語」(computer-understandable language)という言葉である。確かに、私たちはある言語を話し、コンピューターは別の言語を話す。人間の話し言葉は理解できない(少なくとも、話し言葉を理解するように教えるプログラムを受け取るまでは)。私たちと同じように、特別な訓練を受けていない限り、私たちは機械語(または機械語コード)を理解することはできません。機械語は1と0の並びで表現されます。

10110100 00111010

完全に理解不能でしょう?

そこで、コミュニケーションを確実にするために、プログラミング言語が作られました(現在も新しい言語が生まれ続けています)。

低レベル」と呼ばれる言語があります。機械語コードに近いのですが、人間が理解しやすいように命令が書かれています。その代表格が「アセンブラ」である。

次の段階は「高水準」プログラミング言語である。最近のプログラミング言語のほとんどはこれに属する。Java、C++、Python、Goなどがこれにあたる。Java、C++、Python、Goなどである。しかし同時に、このような言語の1つのコマンドは、機械語では非常に複雑で長いコマンドの集合に変換することができる。

そして、ここで新しい言葉、「トランスレータ」が登場する。これはまさに、高級言語で書かれたテキストを機械語命令の集合に翻訳(コンパイル)するツールである。同時に、すべてのコンピュータは異なり、異なるプロセッサを実行し、これらのプロセッサは異なる命令セットを使用するという事実について心配する必要はありません(またははるかに少なく心配する必要があります)。トランスレータがこの作業を代行してくれます。

AppMasterプラットフォームは、No-Codeプラットフォームに属します。次の発展段階と呼んでも差し支えないだろう。これにより、プログラミング言語を全く学習せず、複雑なコードを書くことなく、企業レベルのアプリケーションを作成することが可能になった。このコースで行うのはこれです。実際、明確なビジュアル・ブロックを使って、何をしなければならないかをシンプルに説明します。そして、AppMaster.ioのテクノロジーはすでにオンになっており、彼ら自身が素晴らしいスピードでコードを書いていきます。

ちなみに、このコードはGo言語(GoLangとも呼ばれる)で書かれています。そして、一方では、これは非常に重要なことです。何しろ、Googleが特別に開発したモダンな言語を使って、効果の高いプログラムを作っているのだから間違いない。一方では、それは重要ではありません。結局のところ、そこでどんな言語が使われているかはまったく忘れて(より効果的なソリューションが見つかれば、他の言語に置き換えることもできます)、アプリケーションを作ることだけに集中し、その技術的な実装の複雑さにはこだわらないようにすればいいのです。

先に進む前に、はっきりさせておきたいことがあります。上記の文章では、「プログラム」、「アプリケーション」という異なる用語が使われています。これらは同じことを意味する同義語です。

"ソフトウェア "もここに加えることができ、通常、この用語はプログラム(アプリケーション)のセットを指します。例えば、パソコンにインストールされているソフトウェアなどです。また、"Software "という単語も同義語と考えることができます。

アプリケーションの種類

アプリケーションには、どのような種類があるのでしょうか。少し合理化・構造化してみましょう。

  1. コンソール
    テキストベースのアプリケーション、またはコマンドラインインターフェースアプリケーションとも呼ばれることがあります。
    その名の通り、このようなアプリケーションには見慣れたグラフィカル・インターフェースはなく(疑似記号を使って実装することは可能で、インタラクティブな要素を追加することもできます)、コンソールにテキストコマンドを入力することで制御します。
    このようなアプリケーションはとっくに時代遅れになっていると思われるかもしれない。しかし、実際にはハードウェアリソースに対する要求が低いため、今日に至るまでその関連性は失われていない。同時に、多くの業界では、コマンドラインの使用は、シンプルさと使いやすさの面で一定の利点さえある。

  2. デスクトップアプリケーション
    コンピュータにインストールして使用するアプリケーション。
    例えば、マイクロソフト社のオフィスアプリケーション。ワード、エクセル、パワーポイントなど。
    ブラウザを使えば、インターネット上のサイトを開いたり、この文章を読んだりすることもできる。
    ちなみに、コマンドラインで作業するための端末も、デスクトップアプリケーションであることが多い。

  3. モバイル
    スマートフォンをお持ちの方は多いでしょう。どのようなオペレーティング・システムを使用しているかは問題ではありません。Android、iOS、あるいはもっと稀なもの。いずれにせよ、スマートフォンで使用するアプリケーションは、モバイルアプリケーションです。
    例えば、ブラウザ、インスタントメッセンジャー、ゲーム、ソーシャルネットワークのアプリケーションなどです。

  4. ビルトイン(組み込み)型
    気づきにくいですが、さまざまな機器や装置を制御するためのアプリケーション(この場合、ソフトウェアと呼ぶのが正しい)です。
    プリンターが印刷ジョブを処理したり、ルーターがインターネットを配信したり、さまざまな機器の動作が内蔵ソフトのおかげで確保されているのです。

  5. ウェブアプリケーション
    ブラウザと連動し、インターネットを利用して動作するアプリケーション。
    現在最も一般的なアプリケーションの種類であり、本講座ではその作成に注目する。

Webアプリケーションにもいろいろな種類があります。主なものを挙げてみましょう。

  • ランディングフォームに入力したり、何らかの要望を残したりすることができる小さな情報ページ。
  • 情報ポータルサイト。ニュースサイト(Yahoo!)やスポーツサイト(FIFA)などがある。
  • インターネットショップ。地元の小さな店から、大規模な国際的な市場まで。
  • ソーシャルネットワーク。Twitter、Facebook、その他多数。
  • ゲーム。テキストベースのシンプルなゲームから、最先端の3Dゲームまで。
  • LMS(学習管理システム)。
  • CMS(コンテンツ管理システム)。これらのおかげで、サイトのコンテンツを簡単に管理し、新しい記事を追加することができます。
  • CRMシステム (顧客関係管理)。顧客との関係を自動化するためのシステム。
  • オンラインサービスです。その多様さは、別の分類に値するほどです。天気予報サービス、検索サービス、銀行サービスなどなど。

さて、アプリケーションを把握し、基本的な分類を行い、Webアプリケーションの種類を整理しました。しかし、そもそもウェブアプリケーションはどのように機能するのでしょうか?

ここで、非常に重要な用語が出てきます。

フロントエンドとバックエンド

最も単純な例として、演劇があります。私たちは公演を見に行き、ステージ上のアーティストを見て、拍手をして、お返しにお辞儀をします。そして同時に、演劇は客席の中だけでなく、舞台の上だけで完結するものではないことも、私たちはよく知っている。どこかで衣装が縫われ、楽屋で準備が進められ、どこかで演出家が指示を出している。それがなければ演劇は成り立たない。

それと同じように、Webアプリケーションでも、あらゆるものが整理されています。

私たちが見ることのできるレイヤーがあります。あるサイトを開いたときに表示されるページです。このページには、おそらく何らかのアニメーションがあり、クリックできるボタンもあります。

この目に見えるレイヤーを「フロントエンド」と呼びます。フロントエンドには、ユーザー側にあるものすべてが含まれます。デバイスの画面上に表示されるものすべてです。目に見え、感じることができるものです。

しかし、同時に、すべてがフロントエンドに限定されないことも確かです。というのも、ごく最近、フロントエンドそのものが、画面にもコンピューター内のメモリーにも存在しなくなったからです。他のサイトを開こうと思い、そのアドレスをブラウザに入力したときに現れる。

そのサイトを表示するためのリクエストを行い、レスポンスを受け取る。どんなブロックがあり、どこにあり、どのように見えるか、どんなフォントが使われているか。私たちがボタンを押すと、その指令がサーバーに行き、何らかの情報を計算し、答えを出し、問題の解決策を提供する。このリクエストとレスポンスのシステム「リクエスト・レスポンス」は、すべてのウェブアプリケーションが機能するための基礎となるものです。

インターネット上のリクエストは、私たちの目には見えない側、「バックエンド」と呼ばれるサーバーに届きます。同時に、リクエスト自体もある種の情報を含んでおり、いくつかのパラメータを持っています。この情報をもとに、バックエンドはどの応答を送るかを決定する(あるいは、リクエストの受信を丁寧にうなずきながら、それ以上のデータを送信しないこともある)。

データ転送プロトコルは、HTTP(HyperText Transfer Protocol)と呼ばれている。ブラウザのアドレスバーの最初にこの4文字が見えます。これは、HTTPプロトコルを使ってやり取りが行われることを知らせています。つまり、どのような言語で通信を行うかについて、当事者間で合意していると言えます。

また、その名前に惑わされないでほしい。実際、インターネットの黎明期には、このプロトコルはハイパーテキスト専用に考案されたものでした。つまり、リンク付きのテキストで、別のページに移動したり、別のテキストを取得したりする機能である。現在では、Tik-Tokから面白い写真、歌、ダンスビデオなど、あらゆるデータを転送することができます。

このコースのさらなるモジュールでは、リクエストとレスポンスの構造を詳しく扱います。リクエストとレスポンス、そしてそれらを処理するためのロジックを作成します。この段階では、フロントエンドからバックエンドへ、あるいはその逆へとデータを転送する原理そのものを理解すれば十分です。

ところで、データそのものは魔法で出現するわけではない。フロントエンド側でのリクエストの出現は、自分で入力するのでわかりやすい。しかし、情報を転送するためには、その保存と処理を何らかの方法で整理する必要があります。

そのために働くのが「データベース」(DB)です。データを構造化して保存するのです。そして、このデータを管理するシステム、DBMS(データベース管理システム)があります。DBMSでは、データベースに新しいデータを書き込んだり、そこからデータを取り出したり、変更したり、削除したりすることができる(これらをまとめてCRUD- Create, Read, Update, Deleteという略語で表現される)。これらについても、今後のモジュールで詳しく勉強していきます。一般的にデータベースとは何か、データベースはどのように構成され、AppMasterでどのように管理するのが簡単なのかを理解しましょう。

実際に試してみるのはどうでしょうか?そろそろ最初の...


ホームワーク

コマンドラインで作業するために、ターミナルを有効にする必要があります。Windowsでは、目的のアプリケーションはCMDと呼ばれ、MacOSでは - Terminalです。

curlコンソールアプリケーションを使用してください(あなたのコンピュータにインストールされていない場合、修正してください)。これは、特定のサービスにリクエストを送信し、そこからの応答を受信するために特別に設計されています。

例として、BoredAPIサービスに対してHTTPリクエストを送信します。これは、あらゆる場面で活躍するアクティビティをピックアップできるサービスです。

これを行うには、ターミナルで次のコマンドを入力します。

curl "http://www.boredapi.com/api/activity?type=diy"

アドレスは条件付きでクエスチョンマークの前と後の2つの部分に分けられることに注意してください。

最初の部分は、リクエストアドレスそのものです。この例では、"http://www.boredapi.com/api/activity "です。

2つ目の部分は、リクエストパラメーターです。この例では - "type=diy"。つまり、クエリパラメータは「type」で、値は「diy」である。したがって、我々はあなたが自分で行うことができますそのような活動を取得したいことを示した(diy - Do It Yourself)。

どんな反応が返ってきたか見てみましょう。その中で必要な情報を探す。さらなるモジュールでは、我々は、応答がどのような形で来るか、それが何で構成されているか、詳細に分析します。この段階では、バックエンドからのリクエストに対するレスポンスが、論理的に処理されてフロントエンドに美しく表示される前の状態であることを理解すれば十分です。

サービスのドキュメント(http://www.boredapi.com/documentation)をチェックし、自分自身で異なるパラメータでより複雑なリクエストを行ってみてください。例えば、従業員数が5人以上10人未満の会社にはどのような活動が適しているのかを調べてみましょう。

資料をまとめるために、より複雑なサービスをマスターしてみる。例えば - https://www.alphavantage.co/

ドキュメントを読み、データベースから為替レートや株価を入手する。

使用する前に、登録し、個人用アクセスキーを取得する必要があります。