問題タブ [history]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - .NET属性の履歴の前身は何でしたか?
.NET 1.0チームが最初から属性の概念を組み込むために影響を与えた言語またはプラットフォームは何ですか?これはアスペクト指向のものでしたか?シリアル化?または、他の何か?この時点ではまだVB6ランドにいて、1.0より前の.NETバージョンを使用したことはありません。
history - デスクトップソフトウェア開発のタイムライン
デスクトップソフトウェア開発に影響を与えた最も重要なイベントは何ですか?私は良いタイムラインを考え出そうとしていますが、重要なイベントがたくさんないことを知っています。
- パソコンの紹介(70年代後半?)
- VisiCalcのリリース(1980)
- 1986年のWordPerfect4.2
- Windows 3.1(1992)
- Visual Basic
- Windows 95 .. ..
Java、X11、.NET、Delphi、PowerBuilder、QT?
sql-server - 複数のテーブルに分割されたエンティティの監査ログを維持する
5 つの異なるテーブルに分割されたエンティティがあります。これらのテーブルのうち 3 つのレコードは必須です。他の 2 つのテーブルのレコードはオプションです (エンティティのサブタイプに基づきます)。
テーブルの 1 つがエンティティ マスターに指定されます。他の 4 つのテーブルのレコードは、マスターからの一意の ID をキーとしています。
更新/削除トリガーが各テーブルに存在し、レコードの変更後、(トリガー内の削除されたテーブルから) 履歴が関連する履歴テーブルに保存されます。各履歴テーブルには、関連するエンティティ フィールドとタイムスタンプが含まれています。
したがって、ライブ レコードは常にライブ テーブルにあり、履歴/変更は履歴テーブルにあります。履歴レコードは、タイムスタンプ列に基づいて並べ替えることができます。明らかに、タイムスタンプ列は履歴テーブル間で関連付けられていません。
さて、より難しい部分です。
- レコードは、最初は 1 つのトランザクションで挿入されます。1 回のトランザクションで 3 つまたは 5 つのレコードが書き込まれます。
- 個々の更新は、5 つのテーブルのいずれかまたはすべてに対して発生する可能性があります。
- すべてのレコードは、単一のトランザクションの一部として更新されます。ここでも、1 回のトランザクションで 3 つまたは 5 つのレコードが更新されます。
- 番号 2 は複数回繰り返すことができます。
- 番号 3 は複数回繰り返すことができます。
アプリケーションは、単一のトランザクションとしてのみ書き込まれたレコードに基づいて、ある時点の履歴エントリのリストを表示することになっています (ポイント 1、3、および 5 のみ)。
現在、タイムスタンプ データのみに基づいて履歴レコードを取得するアルゴリズムに問題があります。
トランザクションに関する追加情報を保持する HISTORYMASTER テーブルを追加すると、問題が部分的に解決されるようです。すべてのトランザクションの前に、新しいレコードが HISTORYMASTER に追加されます。新しい HISTORYMASTER.ID は、トランザクション中に各エンティティ テーブルに保存されます。特定の HISTORYMASTER.ID (タイムスタンプ順) の最初のレコードを選択することで、特定の時点の履歴を取得できます。
複数のテーブルにまたがるエンティティの AFTER (UPDATE, DELETE) TRIGGER に基づいて監査テーブルを管理する最適な方法はありますか?
git - git への svn の遡及インポート
これが私の問題です:
- Git に切り替えるまで、Subversion をしばらく使用していました。さらに時間が経過しました。
- Subversion から Git への履歴のインポートはありませんでした。それは厳密なチェックアウト、.svn ディレクトリの削除、そして git init でした。賢明な動きではありません。
- 今、何千もの git コミットが行われた後、最初の git コミットが発生したときに作成された Subversion リポジトリのバックアップを見つけました。あはは!
gitリポジトリを0日目にロールバックし、svnリポジトリを適切にインポートしてから、すべてのgit変更を再適用して、最初に行われなかったものを修正したいと思います。
誰もこれを試みましたか?どうすればこれを行うことができますか?すべてのリベースの母のように聞こえます。
java - Java で状態の履歴を作成する
Java アプリケーションのいくつかのアクションの状態の履歴を保存する必要があります。これを後でリロードして、特定のアクションで状態を復元することができます。言い換えれば、状態が関連付けられた画面があり、いつでも画面の状態を復元できるように、それと履歴の変更を保存する必要があります。これは「元に戻す」のようなものですが、2 つの状態の違いが非常に大きくなる可能性があり、状態を変更する明確に定義されたアクションがないため、厳密にはそうではありません。
例を挙げて説明しましょう。非常に基本的な画面状態には、1 つのマップのみが含まれる場合があります。状態 A では、この Map にはキー「Key1」を持つ「Object1」とキー「Key2」を持つ「Object2」への参照が含まれています。状態 B では、Map には「Object1」への参照がまだ含まれていますが、「Object2」が変更され、「Object3」が追加されています。ここで、状態 A に戻れるようにする必要があります。これには、Object3 を「ドロップ」し、Object2 を以前の状態に復元する必要があります。Object2 にどのような変更が加えられたか、Object2 のタイプさえもわからないため、カスタムの「元に戻すアクション」を定義できません。さらに、状態 A と B の Object2 の参照は同じままであるため、これらの変更は状態 A に反映され、Object2 は以前と同じではありません。
クローン メソッドを実装することが最善の解決策であると認識していますが、すべてのタイプのオブジェクト (プリミティブと標準コレクションを含む) をサポートする必要があるため、これは実現不可能です。状態遷移が発生するとすぐに Map をシリアル化し、再び必要になったときにそれを逆シリアル化する、シリアライズ可能なものを使用することを考えましたが、非常に醜い解決策のようです。
他のアイデアはありますか?ありがとう、リストレット
version-control - 最後の「最新バージョンを取得」以降のチェンジセットを表示しますか?
TeamFoundationServerとVisualStudio2008を使用して、前回の「最新バージョンの取得」以降の提出物を強調表示する方法はありますか?これにより、最後に同期したチェンジセットを覚えていなくても、最後の「プル」以降に送信されたものをすばやく特定できます。
ありがとう。
エリック
architecture - コンピュータの種類
最近どこかで、コンピューターの種類に関連するものを読んだことがあります。
読書は、チューリングマシンのような「アーキテクチャ」モデルに適合する Lisp と Emacs に関連していました。
一方、それは C であり、「他の」アーキテクチャ モデルは名前を覚えていない誰かにちなんで名付けられましたが、最も成功したタイプのコンピューターとして名付けられました。 +などなど)。
チューリングマシンでない場合、そのタイプのコンピューターの名前は何ですか (私の知る限り、物理モデルではなく抽象的なモデルです)。
バイト!
c# - C# の属性はどこから来たのですか?
C# の属性、Python のプロパティも非常に良いアイデアだと思います。それらの直接の祖先は Java の注釈から来た可能性があると思いますが、この概念が最初にどこから来たのか興味があります。誰か手がかりがありますか?