新入社員の東京再チャレンジ

Branding Engineer営業の高橋です。

APIとは

API

=(Application Programming Interface)

=日本語でいうと「アプリケーションプログラミングインターフェース」

 

https://www.nativemedia.com/blog/wp-content/uploads/2018/01/api-icon.png

 

APIとはソフトウェアの機能を共有すること

自己のソフトウェアを一部公開して、他のソフトウェアと機能を共有できるようにしたもの。ソフトウェアの一部をWEB上に公開することによって、誰でも外部から利用することができるようになる。

それによって、自分のソフトウェアに他のソフトウェアの機能を埋め込むことができるようになるので、アプリケーション同士で連携することが可能になる。

 

外部からソフトウェアの機能を利用するといっても、内部のコードまでは公開していない。

が故、外部からは機能の使い方や仕様がわからないため、「こうすると機能を利用できます」「この機能はこのように使ってください」のような使い方を説明する必要がある。

またセキュリティの観点から、「このような使い方はできません」「このような使い方はしてはいけません」などのルールも定められている!!

API」は、このような仕様やルールと一緒にまとめてWEB上に公開しているものが一般的になっている。

つまり

API」=「機能+仕様書」

と言い換えることもできるもの。

 

APIを使うメリット

・より多くの新しいサービスを開発をできる

・データの2次利用、他社のデータを使うことができる

・同じプログラムを一から使う必要性がないので開発の効率化を図れる。

・他社のユーザー情報を使って、自社のサービスにログインできる。

 →例)インスタグラムにFacebookのアカウントを使ってログインできる。

フレームワークとライブラリの違い

フレームワーク

枠組み。システム開発を楽に行えるように用意された、プログラムとかのひな形のこと。

フレームワークには、あらかじめ必要な機能が用意されて、あとはそれにオリジナリティを出す部分を組み込めば完成。はめ込めるようになっているシステム。

特徴としては

・みんなが必要になりそうな部分が、あらかじめ用意されている
・部分的な提供ではなく、全体的に面倒を見てくれる
・一から全部作るのに比べて、自由度は低い

 

【ライブラリ】

便利なプログラムの部品をいっぱい集めて、ひとまとめにしたファイルのこと。

フレームワークとは違って全体を動かすためのロジックがない。ただの部品の集まり。

使いたい部品が入っている道具箱。

https://mag.minne.com/images/2017/01/27/special_odougubako/image_07.jpg

様々なプログラムが共通して利用する汎用性の高い機能などがライブラリとして開発・提供されることが多く、標準的なライブラリはOSやソフトウェア開発環境の一部として添付されることもある。

javascriptの用途

javascript

https://s3-ap-northeast-1.amazonaws.com/mash-jp/staging/uploads/6001/a5cd3c11d6eefa35c459424ad4b10ee31384b4cd.6098.desktop.png

 

【用途】

・Web デザイン
・大規模な Web アプリの開発/例 PayPal(金融)、JetBlue(チケットサービス)
スクレイピング(データ収集)
・ハイブリッド型アプリの開発
・Web 対応のゲーム制作(canvas
Google シートや Excel への機能追加
API など

Web サイトの 90%* 以上が JavaScript を使用!!

 

【フロントサイド】

・ポップアップ表示
・スクロールエフェクト
・図形描画・アニメーション

 

【サーバーサイド(node.js)】

・チャット
・ToDO リスト
・ユーザー管理
・支払の決済
・ページの自動更新(ノンブロッキング I/O)
・タスクランナー(Grunt)

 

【FWとライブラリ】

jQuery/全 Webサイトの約 72% で利用*/採用事例 freepik.com、freelancer.comなど
・Angular.js/Google 社開発/採用事例 Upwork.com、YouTube.com、Lego.com など
・React.js/Facebook 社開発/採用事例 FacebookYahoo!mail、New York Times、Codecademy など

 

国内にも優れたメンターが多数いて学習しやすく、また Web サイトにしても アプリ開発にしても JavaScript はほぼ必須で登場してくるのでまだまだ需要の絶えない言語ではないだろうか。

 

BPRと業務改善の違い

http://innovategov.org/wp-content/uploads/2014/05/business_process_reengineering1.jpg

BPR

Business Process Re-engineering(ビジネス・プロセス・リエンジニアリング)

の頭文字をとってBPRと言われる。業務改革と言われることもある。

これを一つ一つ直訳すると ビジネス・過程・再構築 つまり企業の目標を達成するために、企業活動や組織構造、業務フローを再構築することである。 

 

対して業務改善とは

現状での業務の進め方、情報や仕事の流れに関しての問題点を分析・抽出し、改善策を考え、それを実行すること。

 

BPRが改革なのに対し、業務改善はその名の通り改善なのだ。

「改革」と「改善」では意味が大きく異なる。改善は「現状を肯定し劣る部分を是正すること」である一方、改革は「現状を否定し従来の制度を改めること」である。現状を否定するのが「改革」で、現状を肯定するのが「改善」なのである。

 

 (業務改善)          (BPR)

・プロセスはそのまま     ・プロセスに問題

・少しずつ          ・一気に

・ムダをなくす、問題解決的  ・再構築

・情報システム技術は二次的  ・情報システム技術が大前提

 

BPRがよく行われる事例としては

いくつもの会社を吸収して急激に大きくなってきた会社や、営業が強い会社でどんどん支店などを出して、 管理業務の強化が成長に追い付いていない会社などで行われることが多い。

・重複している業務が非常に多い
・そもそも重複している業務を探し出すことが難しそうだ
・データベースの統合も中途半端になっている

 

古い伝統やシステムを一度壊して新しいものを再構築するこのBPRがこれからの日本では重要になってくるのではないだろうか。

 

 

 

「ソフトウェア」と「アプリケーション」の違い

「ソフトウェア」と「アプリケーション」の違い

 

アプリケーションもソフトウェアの一種。

http://wa3.i-3-i.info/img/diff/200/df00233-2.png

ソフトウェアという大きなくくりの中にざっくりと分類するとOSとOS以外のものがあり、この2つの分類のうち「OS以外」の呼称が「アプリケーション」。

スマホ用のソフト」を意図する場合は「アプリ」と表現する場合が多い。

そもそもアプリケーションの正式名称は「アプリケーション ソフトウェア」と言う。

LAMP環境とは

f:id:kokoro_bianchi:20180227212050p:plain

 

LAMP環境とは、LinuxApacheMySQLPHP(もしくはPythonPerlで構築されているWebアプリケーションを開発する環境のこと。

 

L(Linux

1991年に登場したUnixに類似にした振る舞いをするOSです。Linuxカーネルおよび、その他の構成要素がオープンソースであり無償で使用できるメリットがある。

 

A(Apache)

Web上にサイトを公開するためには、必ず「Webサーバー」というものが必要になります。その構築をしてくれるソフトウェアとして、世界中でもっとも多く使われている。

Webソフトサーバソフトウェア。

 

M(MySQL)

Webサービスを作るときは、このデータベースにユーザー情報やその他もろもろの情報を保存して、プログラムを通してデータを書き込んだり変更したりして処理を実装していくことが多い。読み方は「マイエスキューエル」。

 

P(PHP,Python,Perl)

サーバーサイド・スクリプト言語として利用されています。LAMPに使用されるプログラミング言語の大半がPHPで構成されていますが、PerlPythonといった動的型付けのスクリプト言語が使用される場合もある。

 

LAMP環境のメリット〜
①普及している

②安心

みんなが使用している環境が多いから、バグが事前につぶされている可能性高いから

③学習コストが低い

すでに多くの情報がたくさんあり、使いやすい環境があるし、

ネット検索も書籍もたくさんある。

全部無料で始められるから

④汎用性が高い
LAMP環境に使用されているLinuxを筆頭に、非常に汎用性が高いシステム環境

Javascriptのフレームワーク

http://cdn-ak.f.st-hatena.com/images/fotolife/p/paiza/20150320/20150320133304.png

1,Vue.js

全体的にシンプルで学習コストが低い。Vue.jsはWebアプリケーション上で存在感を発揮するというよりは、サポートに回っている感覚。

Vue.jsは柔軟で自己主張をしない。

 

2,React.js

Facebookによって作られたJavaScriptフレームワーク。2013年発表と新しいオープンソースフレームワーク

 

3,Backbone.js

軽量なJavaScriptフレームワークとして、2010年にジェレミー・アシュカナスによってオープンソースソフトウェアの形でリリースされた。現在ではTwitterPinterest、Hulu、Foursquare、Pandora Radioといったパワフルで大規模な開発を行っているWebサービスに使われている。

 

4,Angular.js

エンタープライズ系(企業向けのシステムを作る企業の事)のフレームワークとして人気が高く、多くの複雑なWebアプリケーションを開発するために使われている。

例えば、ApplePayPalGoogle、Domino’s Pizza、Ryanairといった誰もが知っている様々な有名企業が、AngularJSというJavaScriptフレームワークを用いて開発を行っている。

※node.js

サーバーサイドのJavaScriptJavaScriptはユーザーのブラウザで動作するプログラミング言語ですが、Node.jsはサーバー側で動作するJavaScript