SCLOG:プログラミング言語のすべての機能を備えた自転車

ユーザーフィルター(または条件)のシステムの開発に着手したとき、メインのインターフェイスマネージャーであるMishaがハングしていました。 彼は思慮深く窓の外を見て、次々に喫煙し、時々壊れて、ナシを叩き始め、わいせつなものを叫びました。 一般的に、彼の仕事は簡単ではありませんでした。前回の会議で、ユーザーにルールをテキスト形式で作成させることは非人道的で直感的ではないと判断されました。



この娯楽の3日目に、ミシャ( oporkov )は「私たちには木があります!」と叫びました。 解決策は非常に簡単であることがわかりました。条件をツリー形式で表示し、その分岐は論理的な「and」または「or」を表し、葉は比較演算を示します。 数日間、彼はモニターを見て、キーボードを叩き、わいせつなものをつぶやきました。 SQLクエリの最適化に夢中になっていることを考えて、彼がツリーをどのように保存するかを尋ねると、最初に思いついた「オンライン」を曖昧にしました。



その結果、次のことを検討しました。

&( s_!=~( city , " - " ) , s_=( platform , " Linux " ) , i_>( screenw , 1024 ) , i_>( screenh , 800 ) , |( i_>( viewed , 7 ) , i_>=( timeonsite , 30 ) ) )







そのようなツリーに対応するもの:





この行と彼女の姉妹を見ている間、すべてがプログラミング言語のように見えると感じました。 結局、いくつかの実験の後、最も簡単な方法はこの言語のインタプリタを作成し、別のロジックに入力しないことであることが明らかになりました。 ブラケットが豊富であるため、作業名は「scisp」でした。 しかし、少し考えてから、あまり適していないと判断しました。 作業はロジックを使用して実行されますが、リストを使用して実行されません。 その結果、言語は最終的な名前「SCLOG」を取得しました。



現在、SCLOGは2種類のデータ(「文字列」と「整数」)、2つの論理演算子(「and」と「or」)、文字列の4つの比較演算(「等しい」、「等しくない」、「含む」、 「含まない」)、整数の6つの操作(「等しい」、「等しくない」、「より大きい」、「より小さい」、「以上」、「以下」)、jQueryで記述された視覚的なツリー構築ツール、およびphpのインタープリター。



上記の行は次のようになります。

&( !~(city,"-"),=(platform ,"Linux"),>(screenw,1024),>(screenh,800),|(>(viewed,7),>=(timeonsite,30)))







わずかなギャップがなくなり、比較操作がわかりやすいアイデアを得ました。 ツリーは次の形式に進化しました(ほぼ完全に変更可能なCSS):





次に何が起こるか:





見どころ:





PS彼らは人生の例を追加するように頼みました、私たちがこれを必要とする理由を教えます

ユーザーがルールを設定します。 主な戦いは、ルール(フィルター)が、たとえばOutlookよりも理解しやすい方法で作成されたことだけでした。 私たちの意見では、木は線のリストよりも視覚的に見えます。 さらに構築されたツリーは、SCLOG言語の文字列として保存されます。 次に、フィルターの処理時に、この文字列はサーバー側で解釈され、TRUEまたはFALSEを返します。



All Articles