Попалась вчера на глаза публикация на тему создания искусственной виртуальной среды, эмулирующей рыночную торговлю акциями. Представил себе в простейшем виде как могло бы выглядеть зарождение этого процесса на языке JavaScript:
const market = new Market(); const trader = { name: 'Broker Father' }; const traderId = market.register(trader); const offer = { trader: traderId, shares: [ { name: 'EDEN', totalShares: 1000000000.00, pricePerShare: 1000.00, currency: 'USD' } ] }; market.forSell(offer);
Все нижеизложенное является плодом моего извращенного чтением smart-lab-а и программированием воображения и никогда не происходило ни в одной из известных мне реальностей. Любые совпадения случайны, а действующие лица выдуманы.
Электрические полусумерки, хаотически прорезаемые редкими светящимися пятнами работающих мониторов и мягко-приглушенным светодиодным флером пары настольных ламп покрывали открытое офисное пространство. За окном, в тревожном свете уличного фонаря бесновались снежные белые вихри декабрьской вьюги. Временами, эта хаотическая пляска на миг замирала, а в следующую секунду ветер срывался с места и яростно тащил стылые хлопья вдоль окна так, что начинало казаться что это само здание несется в пространстве, продирая угловато-уродливыми контурами пушистые снежные завесы.
Илмар потер лицо руками и вернул взгляд на монитор, почти все пространство которого занимало мягко мерцающее, похожее на галактические скопления светящееся облако. В разных местах облака периодически появлялись и постепенно угасали затем цветные точки, сопровождаемые длинными строками дробных чисел. В целом вид этой виртуальной вселенной порождал ощущение спокойной надежности, за исключением одной очень небольшой области, смещенной от центра влево.
public interface DataContext { T Get<T>(); }
/// Получите ссылку на контекст торговых данных DataContext tradingDataContext = TradingData.Instance; /// Если вам нужно только читать данные из коллекции, используйте такой вызов IEnumerable<Tick> ticks = tradingDataContext.Get<IEnumerable<Tick>>(); /// Если вы хотите изменять содержимое коллекции, добавляя или удаляя ее элементы /// но чтобы при этом не срабатывали алгоритмы, наблюдающие изменение коллекции /// используйте следующий вызов ICollection<Bar> bars = tradingDataContext.Get<ICollection<Bar>>(); /// Если вы хотите изменять содержимое коллекции, заставляя при этом срабатывать /// алгоритмы, наблюдающие за ее содержимым, используйте такой вызов ObservableCollection<Trade> trades = tradingDataContext.Get<ObservableCollection<Trade>>();