Skip to content

Instantly share code, notes, and snippets.

object KotlinStaticExample {
private val TABLE = Helper.prepareTable()
object Helper {
fun prepareTable(): LongArray {
val table = LongArray(100_000_000)
for (i in 1 until table.size) {
table[i] = nextValue(table[i - 1])
}
public class KotlinSingleton2Java {
private static final long[] TABLE;
public static final KotlinSingleton2Java INSTANCE;
private final long nextValue(long seed) {
return seed * 4886718345L + 11L;
}
private KotlinSingleton2Java() {
}
object KotlinSingleton {
private val TABLE = LongArray(100_000_000)
init
TABLE[0] = 0
for (i in 1 until TABLE.size) {
TABLE[i] = nextValue(TABLE[i - 1])
}
}
class KotlinCompanion {
companion object {
private val TABLE = LongArray(100_000_000)
init {
TABLE[0] = 0
for (i in 1 until TABLE.size) {
TABLE[i] = nextValue(TABLE[i - 1])
}
@RestController // RestController – все, что вернешь, сериализуется в JSON
@RequestMapping("/api") // Префикс
class MyController(private val telegramApi: TelegramApi) { // Inversion of Control: подтянули TelegramApi
@RequestMapping("/myMethod") // /api/myMethod
fun myMethod(@RequestParam to: Long): Map<*, *> { // обязательный аргумент to, вернем Map (JSON объект, если проще)
telegramApi.sendMessage(TelegramMessageSendRequest(to, "Привет", TelegramParseMode.MARKDOWN))
return mapOf("result" to "OK") // { "result": "OK" }
}
FROM openjdk:8-jre-alpine
WORKDIR root/
ADD target/tinkoff-rates-bot-*.jar ./application.jar
EXPOSE 8080
CMD java -server -Xmx512M -Djava.security.egd=/dev/zrandom -jar /root/application.jar
@ruslanys
ruslanys / Dsl.kt
Last active October 10, 2018 09:47
val exampleHandler = handler {
commands("/taxi")
step<String> {
key("locationFrom")
question {
MarkdownMessage("Откуда поедем?")
}
}
@ruslanys
ruslanys / tokens.md
Created January 18, 2018 18:39 — forked from zmts/tokens.md
Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию

Token-Based Authentication(JWT)

Preconditions:

В данной заметке рассматривается работа JWT с симметичным алгоритмом шифрования (HS256/HS384/HS512)

Основы:

Аутентификация(authentication, от греч. αὐθεντικός [authentikos] – реальный, подлинный; от αὐθέντης [authentes] – автор) - это процесс проверки учётных данных пользователя (логин/пароль). Проверка подлинности пользователя путём сравнения введённого им пароля с паролем, сохранённым в базе данных пользователей;

Авторизация(authorization — разрешение, уполномочивание) - это проверка прав пользователя на доступ к определенным ресурсам.

FROM ubuntu:latest
RUN apt-get update && apt-get install -y ant maven gcc libssl-dev openjdk-8-jdk
WORKDIR /workdir
COPY one-nio /workdir
RUN ant