足立区在住SEのブログ

足立区在住のSE、中小企業診断士のブログです。機械学習、自然言語処理など。

OutSystemsでのDB操作

OutsystemsではEntityを定義すると、OutSystemsが物理DBに直接変更を加え
OutsystemsのEntity定義と同期する物理テーブルを作成、変更します。
そのため、開発者がDBを操作しなくても簡単にテーブルやカラムの追加を行うことができます。


通常であれば、
DDLを書いてDBに変更を加え→アプリケーションのDB操作処理を修正(Entityに対応するDAOの修正など)

とするところを、ServiceStudio上でEntityに項目を追加するだけでよい。
よくDBの変更時に、アプリとDBの同期が取れずにエラーとなることがあるが
OutSystemsが整合性を保ってくれるので、システム稼働中でも安心してカラムの追加ができます。

DBの定義が固まりきらないまま開発に着手しても
必要に応じて簡単にDBを変更できるので、アジャイルのような進め方では
大きく生産性が上がると思います。
今回、私がやっている開発もまさにそうでした。


OutsystemsがDBを直接変更することのデメリットとしては
・物理テーブル名を自分で操作できないので、外部システムからの参照が困難。
・Entityの項目を変更、削除した場合に、物理DBにはもとのカラムが残ってしまう。
直接DBを参照したときに不要なカラムがあってわかりにくい。

といったことが生じています。
実際に、開発、運用するにあたっては、DBを直で参照する必要もあるので
その点は少し不便も感じています。
が、ビューを作るなどの回避策もあるので大きな問題にはなっていません。
アプリとDBが自動で同期されるのは、とても良いと思います。

OutSystems 外部システムとのAPI連携

OutSystemsを使った開発を始めて3ヶ月ほど経ちました。

通常から考えると短期間でシステムは大分形になってきており、

ツールの制約による問題はほとんどなく

非常に生産性が高いツールだと実感しています。

 

今回のシステムでは複数の外部システム連携があるのですが

OutsystemsのAPI連携機能が威力を発揮して、短時間で連携処理を実装できています。

 

RESTのAPIを実装する場合、
JSONをコピペするだけで、そのJSONの構造に対応するStructureを
自動で作成してくれる。

 

Structureを右クリックして「Add Strucuture from JSON」を選択。

f:id:adachinose:20170503113056j:plain

 

JSONを張り付けて「Add Structure」を押せば、JSONに対応したStructureができる。

f:id:adachinose:20170503113102j:plain


後はそのStructureに値をセットし、APIコール処理の引数にStructureを渡せばREST APIコール処理が実装できてしまう。

Integrations>RESTを右クリックして「Consume REST API」を選択すると、ウィザード形式で外部APIをコールする処理が作成される。

ServiceStudio上で、作成したAPIの接続確認もできる。

f:id:adachinose:20170503113105j:plain

 

本当に簡単です。

OutSystemsを始めました。

2月からソースコードを書かずにシステム開発できるプラットフォーム
「OutSystems」でシステム開発をしている。
ポルトガルに本社がある海外製のツールで、国内ではまだあまり知られていないが
海外では有名なツールで、Gartnerとかでも高評価を受けているらしい。

http://www.outsystems.jp/product/product-devops-dev.html

OutSystemsは、「モデル駆動型開発」手法を活用することで、ソースコードを一切書くことなく、Webアプリケーションの完全な自動生成を実現しています。プロセス、インターフェース、ロジック、データの4種類の基本モデルを定義することで、.NET及びJavaのコードが自動生成されるだけでなく、動作するアプリケーションのデプロイまでも、自動で行われます。 

 とあるように、この1ヵ月間ソースを書かずにアプリを開発できている。
ロジックもフローチャートのようなツールで書くことができる。

ソース自動生成や超高速開発には以前から興味があり
国産のいくつかのツールを触ったことはあるのだが
OutSystemsは本当によくできていると思う。完成度が非常に高い。

1ヵ月で動くシステムができつつあり、要件もほぼ実現できている。
ツールの制約でできないことが、今のところほとんどない。
AWSのSQSや、REST APIFTPといった外部システムとの連携部品も結構あり
そのあたりを手で実装するよりは、かなり効率よく作れている。

開発ツールなのに細かい演出が入っていて、そういうところが海外製っぽくてよくできてるなと思う。

 

Entityをドラッグ&ドロップすると、Entityに対応する画面を作れる。

f:id:adachinose:20170503105703j:plain

 

このとき星がピカピカっとでる演出が面白い。

f:id:adachinose:20170503105657j:plain

 

こんな画面が自動で作成される。

f:id:adachinose:20170503105708j:plain

 

theme generator というブランドイメージに合わせて

サイトデザイン(Cssを自動生成)してくれるツールもある。

http://labs.outsystems.net/londontheme/Customize.aspx

f:id:adachinose:20170301094518j:plain

 

f:id:adachinose:20170301094545j:plain

 

 

 

「ResophNotes」 − 軽くてクラウド共有できるメモ帳

EvMemoという常駐型の簡易エディターをここ10年くらいずっと愛用していました。
とても軽くてホットキーを押せばすぐに立ち上がり、Escで閉じるメモ帳で
作業中や打合せ中にメモを取るのにとても便利。

ただ、メモはPCのローカルにしか保存されないので、他の端末と共有できないのが難点で、移動中のメモはクラウドサービスのSimpleNoteを使ったりしていました。


EvMemoの内容をクラウドに保存して、複数端末で共有できたらいいのになとずっと思っていたのですが
先日、まさにその通りのツールを見つけました。

ResophNotes - Quick Notes on Windows

PCでメモした内容がSimpleNoteと同期されるので、会社PC、自宅PC、スマホでちょっとメモしたことを共有できる。

会社PCで、クリーニングを取りに行くとメモしたり
移動中にスマホで、仕事の資料を送るとメモしたり
ぱっと書けて、どこでも見られるので便利です。

 

EvMemoは随分前に開発が終了していたのに、これに代わるツールを見つけられずにずっと使っていましたが
ついに乗り換えることになりました。