tmsTable-テーブルを表示するためのプラグインを書いたので、KISSの原則に沿って

「KISS(短くシンプルに保つ-短くシンプルにする)は、システムのシンプルさが主要な目標および/または価値として宣言されている設計プロセスと原則です。」ウィキペディア



はじめに



それが最近、頭字語KISSを解釈し、さまざまな種類の製品のソフトウェアコンポーネントを作成する傾向がますます高まっています。 この原則に基づいて、このレビューで提案されたライブラリが作成されます。 そして、それが将来、それが与えられた方法で発展する理由です。



私は、JSプログラマーとして働いたことがないことをすぐに言います。 彼のキャリアの15年すべてで、彼はサーバー側をより多く扱いました。 クライアント側に関しては、彼はより頻繁にインターフェース設計を担当し、レイアウトを専門家に信頼していました。



2012年に新しい仕事に切り替えて、2つの主要なプロジェクトに取り組み始めました。 皮肉なことに、サーバーとクライアントの両方のコードを書く必要がありました。 特徴は、両方のプロジェクトで、クライアント部分が大量の異種の表、デジタル、分析データを表示するためにシンクライアントである必要があることでした。 したがって、このトピックに関する多数の異なるライブラリとフレームワークが検討されました。 この記事では、 extJSjqGriddhtmlx (ホテルのプラグインのセットとして使用され、最終的には今日見ることができるものに成長しました)、および数十の異なるグリッドに言及します。



そして、3年後、かつて小さくて軽い製品の冗長性がはっきりと感じられました(私だけでなく、jsだけでなく、ソフトウェア全般でも)。 時間が経つにつれて、プロジェクトが急増し、効果的な資金が不器用な収穫機に変わりました。 彼らは何でもできますが、その代償はトラフィックとクライアント側の作業の遅れです。 柔軟性と使いやすさが失われます。



その結果、必要なタスクを迅速に実行するシンプルなツールを開発するという「ブラックジャックでグリッドを混乱させない」という考えとして生まれた決定が下されました。



タスク







要件







当初、このアイデアは詐欺として認識されていたため、 tmsTableコードが作成されました。このコードは現在、多くのプロジェクトで常に使用されています。



機能性







ご覧のとおり、主張されている機能は簡単に不名誉なことです-これが私が達成したことです。 ツールはシンプルでなければなりません。 私の場合、結果のライブラリは、ほとんどの場合に必要な機能セット全体を完全に実装します。



テーブルにフィルターがないと誰かが言うかもしれません。 私は完全に同意する-彼らは通常の意味ではありません。 そしてされません。 理由は簡単です:フィルターの作成は膨大なタスクであり(理解しやすく便利にしたい場合)、ライブラリコードが大幅に複雑になります。 同時に、原則として、ネイティブフィルターは全員およびすべてを満足させることはできません。 その結果、フィルターの一部が1つの場所にあり、一部が別の場所にある、松葉杖とあまり明確でないインターフェイスが表示されます。 ネイティブフィルターの代わりに、postVars属性を手に持っています。これを使用して、タスクのために、データサンプルを制限するためのツールセットを作成できます。 私の理解では、これはサードパーティのライブラリのフレームワークにロジックを詰め込もうとするよりもはるかに便利です。



既に述べたように、JSON形式のデータはサーバーから取得されます。 決定したデータのすべてまたは一部のみを表示します。 いつでも、データの完全なセットを持つ行オブジェクトにいつでもアクセスできます。



コードについて少し



ページのコードにグリッドを(スタイルと美しさのない純粋な形式で)作成するには、次のように記述する必要があります。



<link rel="stylesheet" href="css/tmsTable.css"> <script src="js/jquery-1.10.2.min.js" type="application/x-javascript"></script> <script src="js/tmsTable.js" type="application/x-javascript"></script>
      
      





ブートストラップを使用する場合、そのスタイルを使用する可能性が高いため、次のように記述する必要があります。



 <link rel="stylesheet" href="bootstrap/dist/css/bootstrap.min.css"> <link rel="stylesheet" href="bootstrap/dist/css/bootstrap-theme.min.css"> <link rel="stylesheet" href="css/tmsTable.css"> <script src="js/jquery-1.10.2.min.js" type="application/x-javascript"></script> <script src="bootstrap/dist/js/bootstrap.min.js"></script> <script src="js/tmsTable.js" type="application/x-javascript"></script>
      
      





次に、サイトページにテーブルを作成するには、プレートを含むコンテナを決定する必要があります。



 <div id="json_ttt"></div>
      
      





さて、実際にテーブルを説明してください:



 <script> json_params = { id: 'json_ttt' //   , class: 'table table-bordered table-striped table-hover' //  css    , col_names: ['id', 'title', 'date'] //    , dataType: 'jsonp' //   , url: 'data.json' //     , order_direction: 'asc' //  , order_by: 'title' //      , cols: [ {index: 'id', name: 'id', width: 100} , {index: 'title', name: 'title'} , {index: 'date', name: 'date', width: 100} ] , selectable: true //     , rowNum: 20 //       , rowNums: [10, 20, 50] //   rowNum }; var json_tbl = new tmsTable(json_params) //    json_tbl.render(); //     </script>
      
      





あなたの前に、データは知覚に便利な形で提示されます。



このプレートをサイト、cms、請求書に統合できます...すべての基本機能があります。 データのフィルターと、clickおよびdblclickの動作を説明するだけです。



ソースコードはgithub.com/Tony-M/tmsTableで入手できます

ユースケースも利用できます。



誰かがライブラリを便利だと思ったら嬉しいです。



All Articles