1. Список говнокодов пользователя Boeing1337

    Всего: 1

  2. Kotlin / Говнокод #28891

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    @JvmInline
    value class Code(val value: Short) {
    
        companion object {
    
            fun from(value: Number): CurrencyCode {
                checkValid(value)
                return CurrencyCode(value.toShort())
            }
    
            private fun checkValid(value: Number) {
                val targetValue = value.toDouble()
                val isValueInvalid = floor(targetValue) != targetValue
                        || targetValue < 0
                        || targetValue > Short.MAX_VALUE
                if (isValueInvalid) {
                    throw DomainRuleViolationException(
                        "Code must be of 'short' type, greater than 0 and lower than ${Short.MAX_VALUE}. Provided: [$value]"
                    )
                }
            }
    
        }
    
        init {
            checkValid(value)
        }
    
    }

    Валидация данных приходящих в контроллер. При этом в проекте существует Эксепшнхендлер на неверный инпут от пользователя, который отлично работает еще во время десерелизации запроса.

    Boeing1337, 22 Декабря 2023

    Комментарии (3)