Skip to content

Instantly share code, notes, and snippets.

package ru.kode.appyxplayground
import android.os.Bundle
import android.util.Log
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material.Button
import androidx.compose.material.MaterialTheme
@dimsuz
dimsuz / example.kt
Last active February 4, 2022 11:03
enum class TaskState { Idle, Running }
interface Task {
val state: Flow<TaskState>
val results: Flow<Result<Int, Throwable>>
fun start()
}
@Composable
org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during code generation
File being compiled: project/lib/pathfinder/pathfinder-android/src/main/kotlin/ru/kode/pathfinder/android/ui/screen/urllist/UrlListUi.kt
The root cause java.lang.RuntimeException was thrown at: org.jetbrains.kotlin.backend.jvm.codegen.FunctionCodegen.generate(FunctionCodegen.kt:50)
at org.jetbrains.kotlin.backend.common.CodegenUtil.reportBackendException(CodegenUtil.kt:239)
at org.jetbrains.kotlin.backend.common.CodegenUtil.reportBackendException$default(CodegenUtil.kt:235)
at org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory.doGenerateFilesInternal(JvmIrCodegenFactory.kt:209)
at org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory.generateModule(JvmIrCodegenFactory.kt:62)
at org.jetbrains.kotlin.codegen.KotlinCodegenFacade.compileCorrectFiles(KotlinCodegenFacade.java:35)
at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.generate(KotlinToJVMBytecodeCompiler.kt:592)
at org
randomInUnitSphere :: State StdGen (V3 Double)
randomInUnitSphere = iterateWhile (\v -> norm v ^ 2 >= 1) random'
random' :: Random a => State StdGen a
random' = state random
-- Error
-- /home/dima/projects/raytracing/src/Main.hs:100:59-65: error:
-- • No instance for (Random (V3 Double))
-- arising from a use of ‘random'’
> Task :run
Transition #0 START
FROM: NotInitialized
EVENT: Init
Executing Transition #0 action
Transition #0 END. NEW STATE: WaitingForSocketOpen
Transition #1 START
FROM: WaitingForSocketOpen
EVENT: OnSocketOpen
Executing Transition #1 action
seedEntities1 :: MonadIO m => [MyEntity1] -> ReaderT SqlBackend m ()
seedEntities1 entities = do
deleteWhere ([] :: [Filter MyEntity1])
insert_ entities
seedEntities2 :: MonadIO m => [MyEntity2] -> ReaderT SqlBackend m ()
seedEntities2 entities = do
deleteWhere ([] :: [Filter MyEntity2])
insert_ entities
@dimsuz
dimsuz / main.dart
Created February 19, 2020 12:45
desc
class BookingCheckoutData {
}
class MyDataClass {
}
BookingCheckoutData hello() {
return getData() ?? getBookingCheckoutData();
@dimsuz
dimsuz / machine.js
Last active November 25, 2019 00:28
Generated by XState Viz: https://xstate.js.org/viz
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions
// - XState (all XState exports)
@dimsuz
dimsuz / machine.js
Last active November 24, 2019 00:12
Generated by XState Viz: https://xstate.js.org/viz
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions

Именование: Соглашения и рекомендации

Правила именования различных MVI структур

1. Имена intent-функций

Исключайте детали ui-имплементации, используйте "намерения" пользователя в качестве имён

Intent-функции внутри View-интерфейса должны называться исходя из "намерения" пользователя, их имена должны отвечать на вопрос "что именно хочет сделать пользователь?", и не должны в своём имени содержать какие-то детали имплементации внутри View.