UI以外のコードの再利用

Silicon Valley Super Ware

2020年5月20日

UI以外のコードの再利用

Vue.jsやReactなどのフレームワーク(ライブラリ)を使うと UIの部品化のメリットがある事は既に何回か取り上げた通りです。 前回は、UIとデータ処理を分けるとコードが見やすくスッキリする という話を書きました。
では、データ処理の部分のコードの部品化はどうでしょうか? 今日は、データ処理部分の部品化について取り上げます。

オブジェクト指向は部品化がしやすい!

最近のプログラミング言語の殆どがオブジェクト指向と 言われるプログラミングの「スタイル」をサポートしています。
シリコンバレースーパーウエアでWebサービス制作の為に 推奨しているJavaScriptもオブジェクト指向の概念が 取り入れられています。
でも、「オブジェクト指向」ってそもそも何? 意外にきちんと説明できる人は少ないです。

オブジェクト指向とは?

オブジェクト指向というのは、英語の「Object oriented programming」を ほぼ直訳した言葉です。
オブジェクトもいろいろ訳せると思いますが、基本的には「物」みたいなイメージです。 要は部品化を勧めましょうという考えの基に生まれたプログラムのやり方です。
例えば、「時計」という物があります。これをオブジェクトと呼んでいるイメージです。 時計には、時間を自分自身で測って表示するという機能がついていますよね。 さらに、時間の調節をしたり、日付などを合わせたりする機能もあります。 それらを全て含めて「時計」というわけです。
何が便利かというと、この時計の機能に追加して別の製品として売る事ができる! これがポイントです。

普通の時計は、世界中で決まったある瞬間を基準に時間を計っています。

既に、時間を図る機能はありますが、この基準の時間を変えてみたらどうなるでしょう? 例えば好きな瞬間からの時間を図る機能があれば、「ストップウォッチ」が作れますよね?
あるいは、ある時間になったら音を出すようにすればアラーム機能もつけられます。
これと似たことをプログラムの世界で実現したのがオブジェクト指向のプログラミングの 考え方です。ある「クラス(class)」に何か新しい機能(method)を追加すると、 以前の機能はそのままに機能の拡張ができるという感じです。

テレビとビデオデッキ

別な考え方が、テレビとビデオデッキという2つの違った製品を 一緒にしてテレビとビデオデッキ一体型の製品を作るというのも このオブジェクト指向の考え方です。
最近はそんな製品は見かけませんが一時は結構売っていました。 一台で全部できるというのは、ある層からは受け入れられた製品でした。
オブジェクト指向自体は、ある機能の集合体のクラス(オブジェクト)を 部品化して別のプログラムでも活用しようというのが一つのコンセプトです。

プログラミングの世界では何ができるのか?

では、オブジェクト指向でプログラミングをすれば 部品化が可能かという話です。

分野を絞れば上手く行く場合が多い!

結論から言ってしまうと、分野を上手く絞れれば部品化は十分に可能です。 しかし、広い分野でというと結構難しくなります。 データには
その分野「特有」の部分
が多いからです。
Webサービスの場合、HTMLで使える部品は限られていて それを基に使いやすいデザインが考えられています。 見かけだけは、CSS等を駆使すれば変化はつけられますが、 HTMLの部分は余り大きな違いは出てきません。

UIはフレームワークが作りやすく部品化しやすいのです!

最近のプログラミング言語自体が良く利用される機能は言語の中に 既に取り込まれている場合が多く、そのレベルでの部品化は余り 必要がなくなっています。
そのため、部品化が必要になってくるのは実際のデータの中身を理解して 行おう処理の部分になります。例えば、経理(お金の計算)をする人と 回路設計をする人では扱うデータが全く違います。その場合は、共通点は 少なく殆どがその都度つくる必要が出てきます。
テータ処理で部品化を進めるためには、分野を絞って似たような処理を 共通化するなど、よく考えて工夫しないと難しくなります。

データ処理とUIを分離する理由

昨日の話は、データ処理とUIの分離の話を取り上げました。 UIは分野が多少違っても同じような機能が必要な場合は沢山あります。 そう考えると、UI部分から違う事の多い部分はできるだけ切り離した方が 共通化しやすいという事です。
今回制作した、Vue.jsでの「お問合せフォーム」でも データー処理で共通化できる部分は殆どありません。 強いて言えばログインフォームぐらいです。 しかし、「Firebase」を利用しているため、その処理も数行で 書けてしまうレベルです。
こうした場合は、データ処理をUIの中に書いても余り問題にはなりません。 しかし、Webサービスの規模が大きくなると、UIとデータ処理が混在して しまうと、どちらの手直しもとても大変になります。 Webサービスを作る場合、データ処理とUIの境界がある程度決められると よいサービスを作る事ができます!
シリコンバレースーパーウエアでは、シンプルなWebサービスの作り方だけではなく、 より複雑なWebサービスをテーマにした講座も同時に提供しています。 さらに、作ったWebサービスを利用したビジネスの展開まで考えたWebサービスの 作り方がわかるようになります。

興味のある方は今すぐお問合せください!



またよろしければ、ニュースレターの登録をお願いします!大体週一回お届けしています。ブログよりは一歩踏み込んだもっと濃い内容を発信しています。


Copyright(c) 2020 by Silicon Valley Super Ware, all rights reserved.

コメント

このブログの人気の投稿

ユーザーインターフェースの設計

足し算以外もできるようにする

改良版足し算プログラム