今日書いてしまったら、もしかして、三日坊主とは言わないんじゃないの…もしかして、これは禁忌を、禁断の扉を、地獄の(ry とか考える永遠の厨二、しょっさんです。
先日、こんな感じの雰囲気の六本木で、きれいに彩られた桜を見ながら、同期の人たちと花見というなのワイン大会してたことを思い出します。ご安心ください、私はいつもどおり、おっさんに囲まれてました。
調子に乗ってくると、1つの blogにやたらめったら、時間がかかって仕方ないので、今日は軽く行きます。
目次
研修を受けてきました
どうです。この日記のような軽やかな出だし。これなら、軽く終わると自分でも想像できます。ということで、今週受けてきたのは、次の2つ。
- 「Force.com 開発者[前編]- Apex によるビジネスロジックの拡張 – salesforce.com 日本」
- 「Force.com 開発者[後編]- Visualforce によるユーザインターフェースの拡張 – salesforce.com 日本」
いずれも、Salesforce の「クラウド型 アプリケーション(apps)開発プラットフォーム – App Cloud」上で稼働する、いわゆる開発用言語です。久しぶりに、プログラミング言語なんてものを受講してきたので、不思議な気持ちです。高専のころも、すでに先生状態のところにいたので、人に教わるというよりも、一部のメンバーと研鑽を高めあうようなことが多かった、あの頃です。一人、とんでもないのがいて、私にオブジェクト指向を教えてくれたのも彼でしたね。嗚呼、懐かしい20年前(‘A`)
そんな言語聞いたことないんだけど
そうでしょう、そうでしょう。私も、1年前には知りませんでした(。・ω・。)
先ほども記述したように、Salesforceのプラットフォーム上でのみ、稼働する言語なので、一般的に利用されることはほぼありません。Salesforceを利用しているユーザや、それを再販しているSIerなどが開発して、提供していることがほとんどではないでしょうか。まぁ、そういう言語です。
- APEX
- Java に似た、静的型付けなオブジェクト指向型言語です。I/Oやデバイス操作はまったくなく、ロジック専門です。MVC で言うと、Model部分とControler部分を司ります。とは言え、Modelのもつ「データ」は、Salesforce上のオブジェクトとして定義されていて、データベースへのアクセスが非常に抽象度高く、データベースやデータの配置とかを気にすることが少なくて、便利です。
- VisualForce
- htmlを拡張したViewの部分です。完全に表示に特化しています。
<apex:〜>
タグが準備されていて、通常の htmlを拡張できるようになっています。Salesforceのデータを直接アクセスしたり、APEXで記述されたクラスをコントローラとして、制御するものを関連づけたりできます。
このように、MVC がきっちりと分かれているのと、Salesforceのオブジェクトで、データが自動的に配置される仕組みになっていますから、「データの正規化どうしよう」とか「データ、どこに配置しよう」とか、そういう面倒なことを考えずに、さっさとコーディングできるのは、開発者的にありがたいポイントだと感じます。
実際どうよ
Salesforce を使っていない人には、もちろんまったく関係のないものです。ただ、今はまだ使っていないけれども、業務システムの開発生産性を上げたい、とか、もっと楽したい、なんてことを考えているのであれば、Salesforce の利用は一考の価値があります。
開発生産性云々以前に、営業支援系のいわゆるSFA/CRM領域の製品であれば、特に開発も必要なく Sales Cloud を利用できますし、お客さま支援のコールセンターには Service Cloud なんかもあります。Community Cloud を使えば、社内の情報をリアルタイムに外部へ公開もできますし、お客さま中心のコミュニティサイトを作ることもできます。Marketing Cloud を使うことで、個客にたいしてのカスタマージャーニーもカンタンに作れます。ほんで、集まったさまざまな情報は Analytics Cloud で分析できますし、将来的には IoT Cloud も利用できるようになって、デバイスとの結びつきも強くできるようになるでしょう。
こういった、営業支援系のシステムではない、業務系のシステムの開発が必要だと、そんなことになれば、App Cloud を利用して、APEX と VisualForce をつかってカンタンに業務アプリケーションが開発できます。この辺は、私が自信を持ってオススメしていくポイントです。ね。また、社内業務ではなくて、社外の不特定多数のユーザ向けにサービスを展開したい、なんて話になれば、heroku も選択肢の1つですね。heroku なら、Rubyは元より、大抵の言語で既に開発されたアプリケーションを、そのまんま外部へ公開していくことも、余裕のよっちゃんです。
できるだけ作らずに、業務システムを準備したい、できるだけ少ない工数で、短期間に業務システムを提供したい、というニーズに対しては、ホント、とことん楽に開発できます。データの配置は、Salesforce のGUI上で、オブジェクト言う名称で、好き勝手にデータ項目を配置できます。面倒なのは、そのデータのAPI名が分かりにくい点で、そこさえなんとかできさえすれば、開発は今以上に、爆発的な勢いでスムーズに開発できるでしょう。保証します。
これまでに、ちょっとでもオブジェクト指向型、特に Javaをやっていれば APEX で悩む点はないでしょう。テストフレームワークも準備されていて、ある程度の単体テストが通過できなければ、本番へ展開できないってのも、安全なポイントの1つです。
画面については、VisualForce という名の html(+css) でデータの配置と、フォームの配置させ悩んでいれば、後は「API名なんだっけ…」しか、つまづく点はないでしょう。気が向いたら、JavaScript や Flashも当たり前に埋め込めますから、今時のサイトを作ることもカンタンです。むしろ、よけいなライブラリとか考えずに、データを引っ張ってきて、そのデータの再利用するのは当たり前に簡単ですが、CRUDが標準で揃ってますから、余計なことを考えずに、さらっと開発できちゃうと思います。
ムダに、インフラや、データで悩んだり、ムダに時間をかけて開発している部分があるなーと考えるのであれば、社内システムは Salesforce つかうの、ホントオススメです。
以上、宣伝でした。