Koko / Говнокод #26591 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 MAKAKA, (Updated )

Комментарии (65, +65)

Koko / Говнокод #26408 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 Gorr, (Updated )

Комментарии (48, +48)

Koko / Говнокод #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 Lorip1971, (Updated )

Комментарии (45, +45)

Koko / Говнокод #25734 Ссылка на оригинал

0

  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 pasha3103, (Updated )

Комментарии (34, +34)

Koko / Говнокод #25394 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 jadedolej, (Updated )

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