OutSystemsは魔法じゃないと気付いたとある会社員の学び
7724 ワード
はじめに
- 本ページはOutSystems愛知ユーザー会 #1のLT資料です
- connpassにこの資料へのリンクを貼っておきます
- タイトルはネタです
OutSystemsとは?
OutSystemsの超概要をご覧下さい。
言いたいこと
- OutSystemsは優れたツールです
- しかしながら、OutSystemsにもよくないところはあります
- それらを理解した上でOutSystemsを使わないと「思ってたんとちがう」となります
これまでの経緯
- 2014年にOutSystemsをあるプロジェクトに導入
- 導入当初は自分でOutSystemsを使うよりも企画、マネジメント中心
- 2017年からシステム開発について真面目に勉強するように(DDD、クリーンアーキテクチャー、JavaScript、Python、C#、テストコード、Git、アジャイル・・・)
- この半年ほどは自分でもOutSystemsを利用するように
するとどうなったか?
- PythonならできるxxxがOutSystemsではできんやん!
- Jasmineなら簡単に書けるテストコードがOutSystemsだと面倒臭い!
- 2014年にOutSystemsをあるプロジェクトに導入
- 導入当初は自分でOutSystemsを使うよりも企画、マネジメント中心
- 2017年からシステム開発について真面目に勉強するように(DDD、クリーンアーキテクチャー、JavaScript、Python、C#、テストコード、Git、アジャイル・・・)
- この半年ほどは自分でもOutSystemsを利用するように
するとどうなったか?
- PythonならできるxxxがOutSystemsではできんやん!
- Jasmineなら簡単に書けるテストコードがOutSystemsだと面倒臭い!
などと今更気付く(2014年に気付いていれば・・・)。みなさんに同じ思いをしてもらいたくないので、OutSystemsのイマイチと思うところを共有します。
OutSystemsのイマイチなところ
- DBと密結合
- Actionの引数にActionを設定できない
- ビルド(Publish)が遅い
- 周辺ツールが充実していない
- IDEが弱い
- コードがテキストじゃない
DBと密結合
- テストにDBが必須
- テストデータの分離ができない
- 自動テストのデータとマニュアルテストのデータの分離
- チーム間で利用するデータの分離
Actionの引数にActionを設定できない
- テストにDBが必須
- テストデータの分離ができない
- 自動テストのデータとマニュアルテストのデータの分離
- チーム間で利用するデータの分離
Actionの引数にActionを設定できない
例えばActionを渡せると以下のように書ける(わかりやすくするためJavaScriptで書いています)。
テスト実行ユーティリティ.js
function testExecution(testScenario, fn) {
var testResult = fn(testScenario);
saveTestResult(testScenario, testResult);
}
呼び出し処理.js
var testScenarios = getTestScenarios(getActionName(testAction));
for(var i = 0; i < testScenarios.length; i++) {
testExecution(testScenarios[i], testAction);
}
Actionを渡せないと以下のように書くことになる。
呼び出し処理.js
var testScenarios = getTestScenarios(getActionName(testAction));
for(var i = 0; i < testScenarios.length; i++) {
// 自分でテストを実行し、結果を保存する必要がある
var testResult = testAction(testScenarios[i]);
saveTestResult(testScenarios[i], testResult);
}
ビルド(Publish)が遅い
- 昔と比べて速くなった
- OutSystems11になってできたService eSpaceは特に速い
- それでもTDDする(レッド、グリーン、リファクタリングのループを回す)には遅い
周辺ツールが充実していない
- OutSystemsにはForgeというマーケットプレイスのようなものがあり、BSDライセンスモデルにもとづきソフトウェアが公開されている
- しかし、テストツールはあまり充実していない。カバレッジを取得するツールもない
IDEが弱い
- JavaScriptのエディタには以下の機能がない
- フォーマッター
- リンティング
- コード補完
- IDEはオープンソースでもなく、APIも公開されていないため、自分たちでは機能拡張できず、世の中のエディタとの格差は開いていく一方では?
コードがテキストじゃない
- OutSystemsのコード(設計情報)はメタデータとしてDBMSに格納されている。これをXMLとして取り出すことはできる
- アイコンの座標なども格納しているためサイズが大きい。過去バージョンも全て保持するため、定期的に削除しないとパンクする(1つのeSpaceが1GBを超えることはよくある)
- 「StaffってEntityどこにあったっけ?」となっても簡単には探せない(ツールを作れば簡単に探せます)
- コードの共有が難しい
- 「このActionでエラー出てるんですけど原因わかりますか?」といった問合せをStack OverflowにしようとしたときにeSpaceを添付するしかない(普通のプログラミング言語ならばテキストのコピー&ペーストで済む)
- その上、Intellectual Property Protection (IPP) という機構があるため、他人の(ライセンスの異なる)eSpaceは自分の環境にはPublishできない
- GitHubのような「設計図共有サイト」もなくノウハウが貯まりづらいのでは?
最後に
- 色々とネガティブなことを書きましたが、ローコード開発の市場規模は急速に拡大しており、2022年には2兆円を超えると言われています
- その中でリーダーのポジションであるOutSystemsはシステム開発の有力な選択肢のひとつです
- OutSystemsはメリット、デメリットを理解した上で正しくお使い下さい
- OutSystemsにはForgeというマーケットプレイスのようなものがあり、BSDライセンスモデルにもとづきソフトウェアが公開されている
- しかし、テストツールはあまり充実していない。カバレッジを取得するツールもない
IDEが弱い
- JavaScriptのエディタには以下の機能がない
- フォーマッター
- リンティング
- コード補完
- IDEはオープンソースでもなく、APIも公開されていないため、自分たちでは機能拡張できず、世の中のエディタとの格差は開いていく一方では?
コードがテキストじゃない
- OutSystemsのコード(設計情報)はメタデータとしてDBMSに格納されている。これをXMLとして取り出すことはできる
- アイコンの座標なども格納しているためサイズが大きい。過去バージョンも全て保持するため、定期的に削除しないとパンクする(1つのeSpaceが1GBを超えることはよくある)
- 「StaffってEntityどこにあったっけ?」となっても簡単には探せない(ツールを作れば簡単に探せます)
- コードの共有が難しい
- 「このActionでエラー出てるんですけど原因わかりますか?」といった問合せをStack OverflowにしようとしたときにeSpaceを添付するしかない(普通のプログラミング言語ならばテキストのコピー&ペーストで済む)
- その上、Intellectual Property Protection (IPP) という機構があるため、他人の(ライセンスの異なる)eSpaceは自分の環境にはPublishできない
- GitHubのような「設計図共有サイト」もなくノウハウが貯まりづらいのでは?
最後に
- 色々とネガティブなことを書きましたが、ローコード開発の市場規模は急速に拡大しており、2022年には2兆円を超えると言われています
- その中でリーダーのポジションであるOutSystemsはシステム開発の有力な選択肢のひとつです
- OutSystemsはメリット、デメリットを理解した上で正しくお使い下さい
- フォーマッター
- リンティング
- コード補完
- OutSystemsのコード(設計情報)はメタデータとしてDBMSに格納されている。これをXMLとして取り出すことはできる
- アイコンの座標なども格納しているためサイズが大きい。過去バージョンも全て保持するため、定期的に削除しないとパンクする(1つのeSpaceが1GBを超えることはよくある)
- 「StaffってEntityどこにあったっけ?」となっても簡単には探せない(ツールを作れば簡単に探せます)
- コードの共有が難しい
- 「このActionでエラー出てるんですけど原因わかりますか?」といった問合せをStack OverflowにしようとしたときにeSpaceを添付するしかない(普通のプログラミング言語ならばテキストのコピー&ペーストで済む)
- その上、Intellectual Property Protection (IPP) という機構があるため、他人の(ライセンスの異なる)eSpaceは自分の環境にはPublishできない
- GitHubのような「設計図共有サイト」もなくノウハウが貯まりづらいのでは?
最後に
- 色々とネガティブなことを書きましたが、ローコード開発の市場規模は急速に拡大しており、2022年には2兆円を超えると言われています
- その中でリーダーのポジションであるOutSystemsはシステム開発の有力な選択肢のひとつです
- OutSystemsはメリット、デメリットを理解した上で正しくお使い下さい
ボツロゴ
Author And Source
この問題について(OutSystemsは魔法じゃないと気付いたとある会社員の学び), 我々は、より多くの情報をここで見つけました https://qiita.com/shoji9x9/items/0ebbc8acef1e92d9a709著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .