1. Kotlin / Говнокод #26591

    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
    enum class Measures {
        B, KB, MB, GB;
    
        private val size = BigDecimal.valueOf(1024L).pow(ordinal)
    
        companion object {
            fun toHumanSize(value: Long): String {
                val decValue = value.toBigDecimal()
                val measure = values().reversed().find { it.size < decValue } ?: B
                return "${decValue.divide(measure.size, 3, RoundingMode.UP)} $measure"
    
            }
        }
    }

    MAKAKA, 20 Апреля 2020

    Комментарии (142)
  2. Kotlin / Говнокод #26408

    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
    data class User(
    
        @Expose
        @SerializedName("email")
        val email: String? = null,
    
        @Expose
        @SerializedName("username")
        val username: String? = null,
    
        @Expose
        @SerializedName("image")
        val image: String? = null
    ) {
        override fun toString(): String {
            return "User(email=$email, username=$username, image=$image)"
        }
    }

    JetBrains сделали прекрасный стандартный toString у дата классов, а они всё равно пишут свой туСтринг, который выдаёт результат в точности повторяющий стандартный.

    https://github.com/mitchtabian/MVIExample/blob/master/app/src/main/java/com/codingwithmitch/mviexample/model/User.kt

    Gorr, 03 Февраля 2020

    Комментарии (76)
  3. Kotlin / Говнокод #25919

    0

    1. 1
    2. 2
    3. 3
    4. 4
    // One workaround is to approximate a namespace by using with a singleton object class.
    object FooActions {
        fun foo() {...}
    }

    Им дали возможность описывать функции на уровне пакета, без надобности совать их в MyOhuennyeUtils, а они жалуются что нету неймспейсов и пихают функци в класы. Долбоебы ¯\_(ツ)_/¯
    https://medium.com/keepsafe-engineering/kotlin-the-good-the-bad-and-the-ugly-bf5f09b87e6f#3a98

    Lorip1971, 08 Октября 2019

    Комментарии (45)
  4. Kotlin / Говнокод #25734

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    private fun getProviders(): List<Provider> =
                applicationContext.getBeansOfType(Provider::class.java).values +
                        applicationContext.getBeansOfType(List::class.java).values.flatten().flatMap { bean ->
                            when (bean) {
                                is Provider -> listOf(bean)
                                else -> listOf()
                            }
                        }

    Грамотная работа с applicationContext'ом

    pasha3103, 27 Июля 2019

    Комментарии (37)
  5. Kotlin / Говнокод #25394

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    private fun GetDeviceInfo(request: HttpServerRequest): HashMap<String, Info>
    	{
    		val deviceInfo = request.getParam(NAME_ID)?.let { id ->
    			(Ports.ById(id) ?: Ports.ByDeviceId(id))?.let(DeviceInfo.Companion::Create)
    			?: Files.FromPath(id)?.let { file ->
    				FileInfo.GetInfo(file)
    			} ?: (Core.GetTask(id) as? Scenario)?.SourceFile?.let(::FileInfo)
    		}
    
    		return deviceInfo?.let { hashMapOf(REQUEST_RESULT to it) } ?: hashMapOf()
    	}

    jadedolej, 21 Февраля 2019

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