Hlavní navigace

Názor ke zprávičce Problém 2^31: Chess.com nefunguje na starších 32bitových iPadech od Karel - Ne, Unit test, pokud je správně napsaný, vám...

  • Aktualita je stará, nové názory již nelze přidávat.
  • 14. 6. 2017 11:39

    Karel (neregistrovaný)

    Ne, Unit test, pokud je správně napsaný, vám tohle neodhalí. Ten vám jen řekne, jak se aplikace chová, když přijde přetečená hodnota. Že na nějakém serveru právě teď přetekla hodnota, to Unit test neví. To má být ošetřeno v aplikaci od začátku - server nemá takovou hodnotu vůbec generovat.

    Co se používá v ERP systémech je systém včasného varování. Převedeno na tenhle případ: jakmile ID hry přesáhne 2^30, tak by to mělo začít spamovat logy (na serveru) s tím, že počitadlo brzo překročí přípustnou mez. Vývojář a správce tak mají čas na řešení - buď upraví program, nebo třebas jen zresetují počitadlo. Ty úpravy bývají všelijaké. Co jsem viděl tak například:
    - místo generování nekonečné sekvence se hledá nepoužitá hodnota
    - změní se typ z čísla na text a použije se například BASE32
    - hodnota se sváže s nějakým dalším sloupcem, takže kupříkladu místo primárního klíče "číslo objednávky" máte klíč "typ objednávky, číslo objednávky" - a pak můžete pro každý typ mít vlastní sekvenci
    - nějaká kombinace s resetem počitadla - například smazání starých záznamů 1 až 999999, reset počitadla na 1 a úprava generátoru, aby od 900000 hlásil vyčerpání sekvence a u 999999 se zastavil. Na což bude reakce smazání záznamů 1000000 až 1999999, které v to době už budou také zastaralé