Vela → keteroki atamai mo nga raupapa wa me etahi atu

I roto i te fintech, he maha tonu taatau ki te tukatuka i nga pukapuka maha o nga raraunga reiti moni. Ka whiwhi raraunga mai i nga maapuna rereke, a kei a ia o raatau ake whakaaro me pehea te taapiri i nga reiti whakawhiti mo apopo, te ra i muri apopo, a tera marama me nga tau e toru e whai ake nei. Mena ka taea e te tangata te matapae reiti tika, kua tae ki te wa ki te kati i te pakihi me te huri poauau noa i te moni ki muri me muri. Ko etahi o nga puna korero he pono ake, ko etahi ka tukuna he para katoa, me nga whakaurunga onge o nga uara tata, engari mo nga tokorua taangata. Ko ta maatau mahi he tirotiro i enei tekau mano o nga uara mo ia hēkona me te whakatau he aha nga mea hei whakaatu ki nga kaihoko. Me tātarihia te uara tika mai i te maha o te paru me te paru, pera i te mahi a te flamingo i te tina.

Vela → keteroki atamai mo nga raupapa wa me etahi atu

Ko te ahua motuhake o te flamingo ko to ratou ngutu kopiko whakararo, hei tātari kai mai i te wai, i te paru ranei.
 - Te Wiki

No reira i whanau ai te whare pukapuka Vela, e pupuri ana i te keteroki ahua mo nga uara maha i nga waa kua tohua. I raro i te potae, ka taraihia e ia nga raraunga kino me te tawhito i runga i te rere, me te whai waahi ki nga mea hou N nga uara whaimana mo ia matua (nga takirua moni, i roto i ta maatau keehi).

Me kii tatou ka kohi reiti mo nga takirua moni e toru. Te whakamaramatanga ngawari Vela ki te penapena i te ahua o naianei ka penei te ahua:

defmodule Pairs do
  use Vela,
    eurusd: [sorter: &Kernel.<=/2],
    eurgbp: [limit: 3, errors: 1],
    eurcad: [validator: Pairs]

  @behaviour Vela.Validator

  @impl Vela.Validator
  def valid?(:eurcad, rate), do: rate > 0
end

Whakahōu Uara

Vela.put/3 Ko te mahi ka mahi i nga waahanga e whai ake nei:

  • ka meinga validator i runga i te uara, mena kua tautuhia tetahi (tirohia te upoko Whakamana i raro);
  • ka taapirihia te uara ki te rarangi o nga uara pai mena i angitu te whakamana, ki te rarangi ratonga ranei :__errors__ ki te kore;
  • ka meinga te kōmaka ki te sorter kua tautuhia mo tetahi taviri, ka waiho noa ranei te uara ki te upoko o te rarangi (LIFO, tirohia te pene Kōmakahia i raro);
  • ka whakapai i te rarangi kia rite ki te tawhā :limit i tukuna ki runga i te hanganga;
  • ka whakahokia te hanganga kua whakahoutia Vela.

iex|1 > pairs = %Pairs{}
iex|2 > Vela.put(pairs, :eurcad, 1.0)
#⇒ %Pairs{..., eurcad: [1.0], ...}
iex|3 > Vela.put(pairs, :eurcad, -1.0)
#⇒ %Pairs{__errors__: [eurcad: -1.0], ...}
iex|4 > pairs |> Vela.put(:eurusd, 2.0) |> Vela.put(:eurusd, 1.0)
#⇒ %Pairs{... eurusd: [1.0, 2.0]}

Ano Vela whakatinana Access, na ka taea e koe te whakamahi i tetahi o nga mahi paerewa mo nga hanganga whakahōu hohonu mai i te taonga ki te whakahou i nga uara. Kernel: Kernel.get_in/2, Kernel.put_in/3, Kernel.update_in/3, Kernel.pop_in/2, a Kernel.get_and_update_in/3.

Whakamana

Ka taea te tautuhi i te kaiwhakamana hei:

  • mahi o waho me te tohenga kotahi (&MyMod.my_fun/1), ka whiwhi noa i te uara mo te whakamana;
  • mahi o waho me nga tohenga e rua, &MyMod.my_fun/2, ka whiwhi takirua ia serie, value mo te whakamana;
  • whakatinana kōwae Vela.Validator;
  • tawhā whirihoranga threshold, me - ka taea - compare_by, tirohia te pene Tauritenga i raro nei.

Mena ka angitu te whakamana, ka taapirihia te uara ki te raarangi i raro i te kii e rite ana; ki te kore, ko te tuple {serie, value} haere ki :__errors_.

Whakataurite

Ko nga uara kei roto i enei rarangi ka taea te aha. Hei whakaako Vela ki te whakataurite ia ratou, he mea tika ki te whakawhiti compare_by tawhā i roto i te whakamaramatanga raupapa (mehemea kaore e taea te whakataurite nga uara ki te paerewa Kernel.</2); me momo momo tenei tawhā (Vela.value() -> number()). Ma te taunoa he ngawari & &1.

Ano, ka taea e koe te tuku tawhā ki te whakamarama haupae comparator ki te tatau i nga uara delta (min/max); hei tauira, ma te tuku Date.diff/2 hei kaiwhakariterite, ka taea e koe te tiki i nga waahanga tika mo nga ra.

Ko tetahi atu huarahi pai ki te mahi ko te tuku i tetahi tawhā threshold, e tautuhi ana i te ōwehenga mōrahi e whakaaetia ana o te uara hōu ki {min, max} wā. I te mea kua tohua hei ōrau, karekau te haki e whakamahi comparatorengari kei te whakamahi tonu compare_by. Hei tauira, hei tohu i te uara paepae mo nga wa o te ra, me tohu koe compare_by: &DateTime.to_unix/1 (ki te tiki uara tauoti) me threshold: 1, ka whakaaehia nga uara hou mena kei roto ±band wā mai i ngā uara o nāianei.

Hei whakamutunga, ka taea e koe te whakamahi Vela.equal?/2 hei whakatairite i nga keteroki e rua. Mena ka tautuhia e nga uara he mahi equal?/2 ranei compare/2, ka whakamahia enei mahi mo te whakataurite, ki te kore e whakamahi poauau tatou ==/2.

Te whiwhi uara

Ko te tukatuka i te ahua o naianei ka timata ma te waea Vela.purge/1, e tango ana i nga uara tawhito (mehemea validator herea ki timestamps). Ka taea e koe te waea Vela.slice/1ka hoki mai keyword me nga ingoa haupae hei mau taviri me nga uara tuatahi.

Ka taea hoki e koe te whakamahi get_in/2/pop_in/2 mo te urunga taumata iti ki nga uara o ia rarangi.

Whakamahinga

Vela Ka taea te tino whai hua hei keteroki raupapa-wa i roto i te ahua o te tukanga penei GenServer/Agent. Kei te pirangi matou kia kaua rawa e whakamahi i nga uara akoranga tawhito, a ki te mahi i tenei ka pupuri noa matou i te tukanga me te mahi a te kawanatanga Vela, me te kaiwhakaatu e whakaatuhia ana i raro nei.

@impl Vela.Validator
def valid?(_key, %Rate{} = rate),
  do: Rate.age(rate) < @death_age

и Vela.purge/1 ma te ata tango i nga uara mate katoa i nga wa katoa e hiahia ana matou ki nga raraunga. Ki te uru ki nga uara tuuturu ka karanga noa matou Vela.slice/1, a ka hiahiatia he hitori iti o te akoranga (te raupapa katoa), ka whakahokia noa - kua tohua - me nga uara whaimana.

He pai te keteroki rangatū wā!

Source: will.com

Tāpiri i te kōrero