uz
Feedback
ToCode

ToCode

Kanalga Telegramโ€™da oโ€˜tish

ื˜ื™ืคื™ื ืงืฆืจื™ื ืœืžืชื›ื ืชื™ื ืžืืช ื™ื ื•ืŸ ืคืจืง

Ko'proq ko'rsatish
1 420
Obunachilar
Ma'lumot yo'q24 soatlar
Ma'lumot yo'q7 kunlar
-530 kunlar
Postlar arxiv
ToCode
1 420
ื”ื—ืœืง ื”ืฉื ื™ ืœื ื ืจืื” ืžืกื•ื‘ืš ืื‘ืœ ื‘ื’ืœืœ ืฉื˜ื•ื™ื•ืช ืฉืœ ืื™ื ื“ืงืกื™ื ื”ื•ื ืœืงื— ืœื™ ื”ืจื‘ื” ื™ื•ืชืจ ื–ืžืŸ ืžืžื” ืฉื”ื™ื” ืฆืจื™ืš. ื”ืžืฉื™ืžื” ื”ืคืขื ื”ื™ื ืœืกื•ื‘ื‘ ืืช ื”ืœื•ื— ืœื›ืœ 4 ื”ื›ื™ื•ื•ื ื™ื ื•ืื– ืœื”ืžืฉื™ืš ืœืขืฉื•ืช ืืช ื–ื” ืฉื•ื‘ ื•ืฉื•ื‘ ืกืš ื”ื›ืœ 1000000000 ืคืขืžื™ื (ืื ื™ ืืคื™ืœื• ืœื ื™ื•ื“ืข ืื™ืš ืœืงืจื•ื ืืช ื”ืžืกืคืจ ื”ื–ื”), ื•ืื– ืœื—ืฉื‘ ืืช ืกื›ื•ื ื”ืขื•ืžืก ืฉืœ ื”ืกืœืขื™ื. ื™ืฉ ืคื” ืฉื ื™ ืืชื’ืจื™ื - ืงื•ื“ื ื›ืœ ืฆืจื™ืš ืœืฉื›ืคืœ ืืช ื”ืงื•ื“ ืฉืžื˜ื” ืืช ื”ืœื•ื— ืœืžืขืœื” ืœื›ืœ 4 ื”ื›ื™ื•ื•ื ื™ื, ื•ืื—ืจื™ ื–ื” ืœื—ืฉื•ื‘ ืื™ืš ืœื”ืจื™ืฅ ืื•ืชื• ื”ืžื•ืŸ ืคืขืžื™ื ื•ืœื”ื’ื™ืข ืžืชื™ืฉื”ื• ืœืชื•ืฆืื”. ืคื” ืืคืฉืจ ืœืฉื™ื ืœื‘ ืฉื‘ื“ืจืš ื›ืœืœ ืื—ืจื™ ื›ืžื” ืคืขืžื™ื ืฉื ื˜ื” ืืช ื”ืœื•ื— ืœื›ืœ ื”ื›ื™ื•ื•ื ื™ื ื”ื›ื“ื•ืจื™ื ื™ื™ื›ื ืกื• ืœืžืกืœื•ืœ ืงื‘ื•ืข ื•ืœื›ืŸ ื ืจืฆื” ืœืžืฆื•ื ืืช ื”ืžืขื’ืœ ื”ื–ื” ื•ืื– ืœื ื ืฆื˜ืจืš ืœื”ืจื™ืฅ ืืช ื”ืœื•ืœืื” 1000000000 ืคืขืžื™ื ืืœื ืจืง ื‘ื›ืคื•ืœื” ืฉืœ ื’ื•ื“ืœ ื”ืžืขื’ืœ. ื‘ืืชื’ืจ ื”ืจืืฉื•ืŸ ื‘ื˜ื— ืฉื”ื™ื” ืขื“ื™ืฃ ืœื•ื•ืชืจ ืขืœ ืฉื›ืคื•ืœื™ื ื•ืœื”ื•ืฆื™ื ืืช ื”ืคื•ื ืงืฆื™ื•ื ืืœื™ื•ืช ื”ืžืฉื•ืชืคืช ืœืคื•ื ืงืฆื™ื•ืช, ืื‘ืœ ืื ื—ื ื• ืคื” ื‘ืื™ืœื•ืฆื™ ื–ืžืŸ ื•ืžืžื™ืœื ืœื ื ื—ื–ื•ืจ ืœืงื•ื“ ื”ื–ื” ืื– ื ืงืจื ืœื–ื” ื’ื™ืจืกืช ื”ืงื•ืคื™ ืคื™ื™ืกื˜:
  def updateRowAsString(matrix: Map[(Int, Int), Char],
                        rowNumber: Int,
                        updater: String => String): Map[(Int, Int), Char] =
    val row = matrix.collect {
      case ((row, col), ch) if row == rowNumber => (col, ch)
    }.toList.sortBy(_._1).map(_._2).mkString
    val updated = updater(row)
    updated.zipWithIndex.foldLeft(matrix) { case (matrix, (ch, idx)) =>
      matrix.updated((rowNumber, idx), ch)
    }

  def tiltUp(column: String): String =
    column
      .split('#')
      .map(_.sorted.reverse)
      .mkString("#")

  def tiltDown(column: String): String =
    column
      .split('#')
      .map(_.sorted)
      .mkString("#")

  def tiltLeft(row: String): String =
    row
      .split('#')
      .map(_.sorted.reverse)
      .mkString("#")

  def tiltRight(row: String): String =
    row
      .split('#')
      .map(_.sorted)
      .mkString("#")

  def spinCycle(matrix: Map[(Int, Int), Char]): Map[(Int, Int), Char] =
    val maxColumn = matrix.keys.maxBy(_._2)._2
    val maxRow = matrix.keys.maxBy(_._1)._1

    val s1 = 0.to(maxColumn).foldLeft(matrix) { (matrix, c) => updateColumnAsString(matrix, c, tiltUp) }
    val s2 = 0.to(maxRow).foldLeft(s1) { (matrix, c) => updateRowAsString(matrix, c, tiltLeft) }
    val s3 = 0.to(maxColumn).foldLeft(s2) { (matrix, c) => updateColumnAsString(matrix, c, tiltDown) }
    val s4 = 0.to(maxRow).foldLeft(s3) { (matrix, c) => updateRowAsString(matrix, c, tiltRight) }
    s4

ื‘ืฉื‘ื™ืœ ื”ืืชื’ืจ ื”ืฉื ื™ ื›ื‘ืจ ืืคืฉืจ ืœื”ืกืชืคืง ื‘ืคื•ื ืงืฆื™ื” ืจืงื•ืจืกื™ื‘ื™ืช ืฉืžื—ืคืฉืช ืืช ื”ืžืขื’ืœ:
  @tailrec
  def findCycle(matrix: Map[(Int, Int), Char],
                iterate: (Map[(Int, Int), Char] => Map[(Int, Int), Char]),
                seen: List[Map[(Int, Int), Char]] = List()): List[Map[(Int, Int), Char]] =
    if (seen.contains(matrix)) {
      seen :+ matrix
    } else {
      findCycle(iterate(matrix), iterate, seen :+ matrix)
    }
ื‘ืงื•ื“ ื”ืคื™ืชืจื•ืŸ ืขืฆืžื• ืฆืจื™ืš ืœื–ื›ื•ืจ ืฉื”ืžืขื’ืœ ื›ื ืจืื” ืœื ืžืชื—ื™ืœ ืžื”ืžื™ืงื•ื ื”ืจืืฉื•ืŸ, ื›ืœื•ืžืจ ื™ื”ื™ื” ืœื ื• ื›ืžื” ืคืขืžื™ื ืฉื ื˜ื” ืืช ื”ืœื•ื— ืœื›ืœ ื”ื›ื™ื•ื•ื ื™ื ื•ืื– ืจืง ื”ื›ื“ื•ืจื™ื ื™ื™ื›ื ืกื• ืœืžืกืœื•ืœ ืžืขื’ืœื™. ื›ื›ื” ื ืจืื” ื”ืคื™ืชืจื•ืŸ ื‘ืกืงืืœื”:
  @main
  def day14part2(): Unit =
    val matrix = parseInput(Source.fromResource("day14.txt"))
    val maxColumn = matrix.keys.maxBy(_._2)._2
    val maxRow = matrix.keys.maxBy(_._1)._1
    val cycle :+ dup = findCycle(matrix, spinCycle)
    val prefix = cycle.indexOf(dup)
    val actualCycle = cycle.drop(prefix)
    LazyList.iterate(matrix)(spinCycle).take(prefix + ((1000000000 - prefix) % actualCycle.size) + 1)
      .last
      .pipe(totalLoad)
      .pipe(println)
ื™ืฉ ืœื›ื ืจืขื™ื•ื ื•ืช ืื—ืจื™ื? ืคื™ืชืจื•ื ื•ืช ืžืขื ื™ื™ื ื™ื ื‘ืฉืคื•ืช ืื—ืจื•ืช? ืžื•ื–ืžื ื™ื ืชืžื™ื“ ืœืฉืชืฃ ื‘ืชื’ื•ื‘ื•ืช ืื• ื‘ื˜ืœื’ืจื.

ToCode
1 420
ืคื™ืชืจื•ืŸ Advent Of Code 2023 ื™ื•ื 14 ื‘ืกืงืืœื” (ื—ืœืง ืจืืฉื•ืŸ) ืขื•ื“ ืฉื‘ื•ืข ืžืชื—ื™ืœ ื•ืกื•ืคื™ ืฉื‘ื•ืข ื”ื ื–ืžืŸ ืžืฆื•ื™ืŸ ืœืคืชื•ืจ ืขื•ื“ ืชืจื’ื™ืœ ืฉืœ Advent Of Code. ื”ืคืขื ืื ื—ื ื• ื‘ื™ื•ื 14 ื•ืขื“ื™ื™ืŸ ืขื ืžื˜ืจื™ืฆื•ืช. ื”ืชืจื’ื™ืœ ื ืชื•ืŸ ืœื•ื— ืขื ืกืœืขื™ื, ื—ืœืงื ืขื’ื•ืœื™ื ืฉืžืชื’ืœื’ืœื™ื ื•ื—ืœืงื ืžืจื•ื‘ืขื™ื ืฉืœื ื–ื–ื™ื. ื›ื›ื” ื–ื” ื ืจืื”:
    O....#....
    O.OO#....#
    .....##...
    OO.#O....O
    .O.....O#.
    O.#..O.#.#
    ..O..#O..O
    .......O..
    #....###..
    #OO..#....
ืขื›ืฉื™ื• ืื ื—ื ื• ืžื˜ื™ื ืืช ื”ืœื•ื— ืงืฆืช ืœืžืขืœื”, ืื– ื›ืœ ื”ืกืœืขื™ื ื”ืขื’ื•ืœื™ื ืžืชื’ืœื’ืœื™ื ืœืžืขืœื” ื•ืื ื—ื ื• ืžืงื‘ืœื™ื ืืช ื”ืฆื•ืจื” ื”ื–ืืช:
    OOOO.#.O..
    OO..#....#
    OO..O##..O
    O..#.OO...
    ........#.
    ..#....#.#
    ..O..#.O.O
    ..O.......
    #....###..
    #....#....
ื”ืžืจื•ื‘ืขื™ื ืœื ื–ื–ื• ื›ืžื• ืฉื“ื™ื‘ืจื ื• ื•ื”ืขื’ื•ืœื™ื ื”ืชื’ืœื’ืœื• ืขื“ ืฉื ืขืฆืจื• ื‘ื’ืœืœ ืกืœืข ืื—ืจ. ืขื›ืฉื™ื• ื ืกืžืŸ ื›ืœ ืฉื•ืจื” ื‘ืžืกืคืจ ื•ื ืจืฆื” ืœื“ืขืช ื›ืžื” ื›ื“ื•ืจื™ื ื™ืฉ ื‘ื›ืœ ืฉื•ืจื”. ื‘ืฉื‘ื™ืœ ืœื”ื’ื™ืข ืœืžืกืคืจ ืื—ื“ ื›ื•ืคืœื™ื ืืช ื”ืžืกืคืจ ืฉืœ ื”ืฉื•ืจื” ื‘ืžืกืคืจ ื”ื›ื“ื•ืจื™ื ืฉื‘ื” ื•ืกื•ื›ืžื™ื ืืช ื›ืœ ื”ืชื•ืฆืื•ืช. ืขื ื”ืžืกืคืจื™ื ื–ื” ื ืจืื” ื›ื›ื”:
OOOO.#.O.. 10
OO..#....#  9
OO..O##..O  8
O..#.OO...  7
........#.  6
..#....#.#  5
..O..#.O.O  4
..O.......  3
* ....###..  2 *
* ....#....  1 *
ื™ืฉ 5 ื›ื“ื•ืจื™ื ื‘ืฉื•ืจื” ืฉืœ 10 ืื– ื–ื” ื ื•ืชืŸ 50, ืขื•ื“ ืฉื ื™ ื›ื“ื•ืจื™ื ื‘ืฉื•ืจื” ืฉืœ 9 ืฉืžื•ืกื™ืคื™ื 18, ื•ื›ื›ื” ืžืžืฉื™ื›ื™ื ื•ืžื—ื‘ืจื™ื ืขื“ ืฉืžืงื‘ืœื™ื ืืช ื”ืกื›ื•ื 136. ื”ืžืฉื™ืžื” ื”ื™ื ืœื›ืชื•ื‘ ืชื•ื›ื ื™ืช ืฉืžืงื‘ืœืช ืืช ื”ืžื˜ืจื™ืฆื” ื•ืžื—ืฉื‘ืช ืืช ื”ืกื›ื•ื ืื—ืจื™ ื›ืœ ื”ื˜ืœื˜ืœื”. ืคื™ืชืจื•ืŸ ื‘ืกืงืืœื” ื”ื“ื‘ืจ ื”ืจืืฉื•ืŸ ืฉืงื•ืคืฅ ืœืขื™ืŸ ื›ืืŸ ื”ื•ื ืฉื”ื”ื–ื–ื” ืงื•ืจื™ืช ืœื›ืœ ื˜ื•ืจ ื‘ื ืคืจื“, ื•ืฉื‘ืชื•ืš ื”ื˜ื•ืจ ื™ื—ืกื™ืช ืงืœ ืœื”ื‘ื™ืŸ ืื™ืš ื”ื•ื ื™ืจืื” ืื—ืจื™ ื”ื”ื˜ื™ื” ืœืžืขืœื” - ืคืฉื•ื˜ ื—ื•ืชื›ื™ื ืืช ื”ื˜ื•ืจ ื‘ื›ืœ ืกื•ืœืžื™ืช, ืžื–ื™ื–ื™ื ืืช ื›ืœ ื”ืขื™ื’ื•ืœื™ื ืœื”ืชื—ืœื” ื•ื”ื ืงื•ื“ื•ืช ืœืกื•ืฃ ื•ืื– ืžื—ื‘ืจื™ื ื—ื–ืจื”. ื‘ืกืงืืœื” ื–ื” ื™ื”ื™ื” ืคืฉื•ื˜:
"OO.O.O..##".split('#').map(_.sorted.reverse).mkString("#")
ื•ืื– ื”ืงื•ื“ ืœื˜ื™ืคื•ืœ ื‘ื”ื˜ื™ื” ืœืžืขืœื” ื™ื™ืงื— ืขืžื•ื“ื” ืขืžื•ื“ื”, ื™ื–ื™ื– ืืช ื”ืกืœืขื™ื ื‘ื” ืœืžืขืœื” ื•ื‘ืกื•ืฃ ื™ื—ืฉื‘ ืืช ื”ืกื›ื•ื ืœืคื™ ื”ื—ื™ืฉื•ื‘ ื‘ืชืจื’ื™ืœ. ื–ื” ื”ืกื™ืคื•ืจ ื‘ืกืงืืœื”:
import scala.annotation.tailrec
import scala.io.Source
import scala.util.chaining.*

object aoc2023day14 {
  val demoInput: String =
    """O....#....
      |O.OO#....#
      |.....##...
      |OO.#O....O
      |.O.....O#.
      |O.#..O.#.#
      |..O..#O..O
      |.......O..
      |#....###..
      |#OO..#....""".stripMargin

  def parseInput(input: Source): Map[(Int, Int), Char] =
      input
        .getLines()
        .zipWithIndex
        .collect {
          case (line: String, index: Int) => line.toList.zipWithIndex.map((ch, column) => (index, column, ch))
        }
        .flatten
        .flatMap { case (row, column, ch) => Map((row, column) -> ch) }
        .toMap

  def printMatrix(matrix: Map[(Int, Int), Char]): Unit =
    val maxRow = matrix.keys.maxBy(_._1)._1
    val maxColumn = matrix.keys.maxBy(_._2)._2
    0.to(maxRow).foreach { row =>
      0.to(maxColumn).foreach { col =>
        print(matrix((row, col)))
      }
      println()
    }

  def updateColumnAsString(matrix: Map[(Int, Int), Char],
                           columnNumber: Int,
                           updater: (String) => String): Map[(Int, Int), Char] =
    val column = matrix.collect {
      case ((row, col), ch) if col == columnNumber => (row, ch)
    }.toList.sortBy(_._1).map(_._2).mkString
    val updatedColumn = updater(column)
    updatedColumn.zipWithIndex.foldLeft(matrix) { case (matrix, (ch, idx)) =>
      matrix.updated((idx, columnNumber), ch)
    }

  def tiltUp(column: String): String =
    column
      .split('#')
      .map(_.sorted.reverse)
      .mkString("#")

  def totalLoad(matrix: Map[(Int, Int), Char]): Long =
    val maxRow = matrix.keys.maxBy(_._1)._1
    matrix.map {
      case ((row, col), 'O') => maxRow + 1 - row
      case ((row, col), _) => 0
    }.sum

  @main
  def day14part1(): Unit =
    val matrix = parseInput(Source.fromResource("day14.txt"))
    val maxColumn = matrix.keys.maxBy(_._2)._2

    0.to(maxColumn).foldLeft(matrix) {(matrix, c) =>
      updateColumnAsString(matrix, c, tiltUp)
    }.pipe(totalLoad)
    .pipe(println)
}

ืžื—ืฉื‘ื•ืช ืขืœ ื—ืœืง 2

ToCode
1 420
ืกื˜ื™ื™ื˜ ื•ื‘ื—ื™ืจืช ืงื•ืžืคื•ื ื ื˜ื•ืช ืจื™ืืงื˜ ืจื™ืืงื˜ ื”ืชื—ื™ืœื” ื‘ืชื•ืจ ืกืคืจื™ื™ืช UI ื•ืœื›ืŸ ื–ื” ืœื ื”ื™ื” ืžื•ื–ืจ ืœื—ืฉื•ื‘ ืขืœ ืงื•ืžืคื•ื ื ื˜ื” ื‘ืชื•ืจ "ื”ื—ืœืง ื‘ืขืžื•ื“ ืฉืžืฉืชื ื” ื™ื—ื“". ื”ืกื˜ื™ื™ื˜ ืฉืœ ื”ืงื•ืžืคื•ื ื ื˜ื” ื”ื•ื ื”ืžื™ื“ืข ืฉืฉื™ื ื•ื™ ืฉืœื• ืžื•ื‘ื™ืœ ืœืฉื™ื ื•ื™ ื‘ UI ื•ืื ื™ืฉ ืžื™ื“ืข ืฉืฆืจื™ืš ืœื”ืฉืคื™ืข ืขืœ ื›ืžื” ืงื•ืžืคื•ื ื ื˜ื•ืช ื ืฉืžื•ืจ ืื•ืชื• ื‘ืื™ื–ืฉื”ื• ืžืงื•ื ื—ื™ืฆื•ื ื™ (ืคืœืืงืก, ื–ื•ื›ืจื™ื?) ื•ื ื—ื‘ืจ ืืช ื”ืงื•ืžืคื•ื ื ื˜ื•ืช ืœืฉื. ื”ื“ื‘ืจ ื”ื—ืฉื•ื‘ ื‘ื—ืœื•ืงื” ืœืงื•ืžืคื•ื ื ื˜ื•ืช ื”ื™ื” ืœื”ื™ื•ืช ืžืกื•ื’ืœื™ื ืœืขืฉื•ืช Reasoning ืขืœ ื”ื—ืœืงื™ื ื‘ืขืžื•ื“. ืœื”ื™ื•ืช ืžืกื•ื’ืœื™ื ืœื”ื‘ื™ืŸ ืœืžื” ื”ื•ืคื™ืข ืขื›ืฉื™ื• ื”ืกื™ืžืŸ ืฉื™ืฉ ื”ื•ื“ืขื” ื—ื“ืฉื”. ืื‘ืœ ื›ืœ ื–ื” ื”ื™ื” ื”ื’ื™ื•ื ื™ ื‘ 2015. ืื•ืœื™ ื‘ 2018. ื”ื™ื•ื ื•ื‘ืžื™ื•ื—ื“ ืžืื– Hooks ืื ื—ื ื• ื—ื•ืฉื‘ื™ื ืขืœ ืงื•ืžืคื•ื ื ื˜ื” ื‘ืชื•ืจ ื”ื“ื‘ืจ ื‘ืขืžื•ื“ ืฉื—ื•ื–ืจ ืขืœ ืขืฆืžื• ื‘ื›ืœ ืžื™ื ื™ ืžืงื•ืžื•ืช ื•ื”ืงืฉืจื™ื. ื‘ืชื•ืจ ื” Building Block ืฉืœ ืืจื›ื™ื˜ืงื˜ื•ืจื” ืžื‘ื•ืกืกืช ืงื•ืžืคื•ื ื ื˜ื•ืช. ืžืฉื”ื• ืฉื™ืฉ ืœื• ืœื•ื’ื™ืงื”, ืžืฉื”ื• ืฉืžื–ื™ื– ื“ื‘ืจื™ื ื‘ื™ื™ืฉื•ื. ืจื™ืืงื˜, ืœืžืจื•ืช ืžื” ืฉื”ื ื›ื•ืชื‘ื™ื ื‘ื›ื•ืชืจืช, ื”ื™ื ื›ื‘ืจ ืœื ืกืคืจื™ื” ืจืง ืœ UI ืื• ืœืคื—ื•ืช ืื ืฉื™ื ืœื ืžืฉืชืžืฉื™ื ื‘ื” ืจืง ื‘ืื•ืคืŸ ื”ื–ื”. ื•ื›ืš ื ื•ืœื“ ื”ืงื•ื ืคืœื™ืงื˜- ื”ืื ืœื™ืฆื•ืจ ืงื•ืžืคื•ื ื ื˜ื•ืช ืœืคื™ ืกืžื™ื›ื•ืช ืžื‘ื—ื™ื ืช ืกื˜ื™ื™ื˜ ืื• ืœืคื™ ืžืžืฉืง ื—ื™ืฆื•ื ื™ ื•ืืคืฉืจื•ืช ืœืฉื™ืžื•ืฉ ื—ื•ื–ืจ? ืœืคืขืžื™ื ืฉื ื™ ื”ืฉื™ืงื•ืœื™ื ื”ืืœื” ื”ื•ืœื›ื™ื ื™ื—ื“, ืœืคืขืžื™ื ื”ื ืžืชื ื’ืฉื™ื, ื•ื‘ื›ืœ ืžืงืจื” ืฆื•ืจืช ื”ื—ืฉื™ื‘ื” ืฉืžื•ื‘ื™ืœื” ืœื›ืœ ืื—ื“ ืฉื•ื ื”. ืœื”ืฉืชืžืฉ ื‘ืกื˜ื™ื™ื˜ ื‘ืชื•ืจ ืงื• ืžื ื—ื” ืœื‘ื—ื™ืจืช ืงื•ืžืคื•ื ื ื˜ื•ืช ื–ื” ืงืฉื” ื›ื™ ื”ืื™ื ื˜ื•ืื™ืฆื™ื” ืฉืœื ื• ื›ืžืชื›ื ืชื™ื ืžื—ืคืฉืช "ืœืกื“ืจ" ืืช ื”ืงื•ื“ ืœืืœืžื ื˜ื™ื ืœื•ื’ื™ื™ื. ื‘ืžืงืจื” ืฉืœ ืจื™ืืงื˜ ื–ื” ืฉื•ื•ื” ืืช ื”ืžืืžืฅ ืœื—ืฉื•ื‘ ื›ืžื• ืžืคืชื—ื™ UI.

ToCode
1 420
ื›ืžื” ืžืชื›ื ืชื™ื ืฆืจื™ืš ื‘ืฉื‘ื™ืœ ืœื”ืชื—ื‘ืจ ืœ S3? ืžืชื›ื ืช ื—ื›ื ืื—ื“ ื‘ื ื” ืชืฉืชื™ืช ืžืฉื•ื’ืขืช ืœื—ื™ื‘ื•ืจ ืœ S3 ื‘ืชื•ืจ POC. ื”ื•ื ืจืฆื” ืœื”ืจืื•ืช ืฉืฉืžื™ืจืช ื”ืงื‘ืฆื™ื ืขืœ S3 ืชื•ื›ืœ ืœืฉืคืจ ืืช ื”ื‘ื™ืฆื•ืขื™ื ื‘ืžืขืจื›ืช ื•ืœืืคืฉืจ ื’ื“ื™ืœื” ืื•ืคืงื™ืช. ื”ืคืจื•ื™ืงื˜ ืื•ืžื ื ื ืงื‘ืจ ื‘ื’ืœืœ ื—ื™ืœื•ืคื™ ื”ื ื”ืœื” ืื‘ืœ ื”ื‘ืกื™ืก ืฉืœ ื”ืงื•ื“ ื›ื‘ืจ ื”ื•ื›ื ืก ืœืžืขืจื›ืช. ืžืชื›ื ืช ื—ื›ื ืฉื ื™ ืงื™ื‘ืœ ื‘ืงืฉื” ืžืœืงื•ื— ืœื—ื‘ืจ ืœื—ืฉื‘ื•ืŸ ืฉืœื• ืืช ื”ืงื‘ืฆื™ื ืฉื›ื‘ืจ ืฉืžื•ืจื™ื ืœืœืงื•ื— ืขืœ S3. ืืฆืœื• ื‘ืฆื•ื•ืช ืžืชื›ื ืชื™ื ืงื™ื‘ืœื• ืงืจื“ื™ื˜ ืœืคื™ ื›ืžื” ื‘ืื’ื™ื ื”ื ืคื•ืชืจื™ื ื•ืœื›ืŸ ื”ื™ื” ื—ืฉื•ื‘ ืœื’ืจื•ื ืœื“ื‘ืจื™ื ืœืขื‘ื•ื“ ืžื”ืจ ื•ืœื”ืžืฉื™ืš ืœืกื™ืคื•ืจ ื”ื‘ื. ื”ื•ื ื™ื“ืข ืฉื™ืฉ ืื™ื–ื” ืชืฉืชื™ืช ื‘ืกื™ืกื™ืช ืื™ืคืฉื”ื• ืื‘ืœ ืœืžื™ ื”ื™ื” ื–ืžืŸ ืœื”ื‘ื™ืŸ ืื™ืš ื–ื” ืขื•ื‘ื“ ืื– ื”ื•ื ื‘ื ื” ืžื ื’ื ื•ืŸ ื—ื“ืฉ ื•ืžืžื•ืงื“ ืฉืขื‘ื“ ืžืžืฉ ื‘ืกื“ืจ. ืžืชื›ื ืช ื—ื›ื ืฉืœื™ืฉื™ ื’ื™ืœื” ืฉืžื™ืฉื”ื• ื›ื‘ืจ ื‘ื ื” ืกืคืจื™ื™ื” ืฉืžืชื—ื‘ืจืช ืขื S3 ื•ื’ื ื‘ื•ื ื” ืื‘ืกื˜ืจืงืฆื™ื” ื›ืœืœื™ืช ืžืขืœ ืื™ื—ืกื•ืŸ ืงื‘ืฆื™ื ื‘ืขื ืŸ (ื›ืš ืฉืืคืฉืจ ื™ื”ื™ื” ืœืขื‘ื•ืจ ืžื”ืจ ืœืขื ื ื™ื ืื—ืจื™ื). ื”ื•ื ื”ื—ืœื™ื˜ ืœืžืžืฉ ื‘ืืžืฆืขื•ืชื” ื—ื™ื‘ื•ืจ ืœ S3 ืขื‘ื•ืจ ืคื™ืฆ'ืจ ื—ื“ืฉ ืื‘ืœ ืœื ืจืฆื” ืœื”ืกืชื›ืŸ ื‘ืœืฉื‘ื•ืจ ืงื•ื“ ื™ืฉืŸ ื•ืœื ื‘ื“ื•ืง, ื•ืœื›ืŸ ืœื ื‘ื™ืฆืข ืžื™ื’ืจืฆื™ื” ืžืœืื”. ืžื ื”ืœ ื—ื›ื ืื—ื“ ืฉืžืข ืฉื”ืจื‘ื” ืœืงื•ื—ื•ืช ืจื•ืฆื™ื ืœืื—ืกืŸ ืงื‘ืฆื™ื ืขืœ S3 ื•ื™ื“ืข ืฉืขื›ืฉื™ื• Micro Services ื”ื ื”-ื“ื‘ืจ, ืื– ื”ื•ื ืžืฆื ืฆื•ื•ืช ื‘ืื•ืงืจืื™ื ื” ืฉื™ื‘ื ื• ืžื™ืงืจื• ืกืจื‘ื™ืก ืขื ื—ื™ื‘ื•ืจ ืœ S3. ื ื›ื•ืŸ ืฉื”ืกืจื‘ื™ืก ื›ืชื•ื‘ ื‘ Erlang ืื‘ืœ ื”ื‘ื˜ื™ื—ื• ืœื• ืฉื”ื‘ื™ืฆื•ืขื™ื ื™ื”ื™ื• ืžืฆื•ื™ื ื™ื ื•ืฉื”ืื•ืงืจืื™ื ื™ื ื™ื•ื›ืœื• ืœืคืชื•ืจ ื›ืœ ื‘ืขื™ื” ื‘ืœื™ ืœื’ืขืช ื‘ืฉืืจ ื”ืžืขืจื›ืช. ืžืชื›ื ืช ื—ื›ื ืจื‘ื™ืขื™ ื”ื™ื” ืฆืจื™ืš ืœืขื“ื›ืŸ ืืช ืžื ื’ื ื•ืŸ ืื—ืกื•ืŸ ื”ืงื‘ืฆื™ื ืฉืœ ื”ืœืงื•ื—ื•ืช. ื”ืื•ืงืจืื™ื ื™ื ืœื ื–ืžื™ื ื™ื ื›ื‘ืจ ืฉื ืชื™ื™ื ื•ื›ืืŸ ืืฃ ืื—ื“ ืœื ื™ื•ื“ืข Erlang. ืืช ื”ืกืคืจื™ื” ืฉื”ืฉืœื™ืฉื™ ื”ื›ื ื™ืก ื”ื•ื ืœื ื”ื›ื™ืจ ื•ืžืžื™ืœื ื”ื™ื ื›ื‘ืจ ืœื ื ืชืžื›ืช ื•ืฉื ื™ ื”ืžื ื’ื ื•ื ื™ื ื”ืื—ืจื™ื ืœื ื”ื™ื• ืžืกืคื™ืง ื’ื ืจื™ื™ื ืื• ืงืœื™ื ืœืฉื™ืžื•ืฉ. ืžื–ืœ ืฉื‘ื“ื™ื•ืง ื™ืฆืื” ืกืคืจื™ื™ืช ื—ื™ื‘ื•ืจ ื—ื“ืฉื” ืœ S3 ืขื ืžืžืฉืง ื—ื“ืฉื ื™ ื•ืื‘ื˜ื—ืช ืžื™ื“ืข ืžืฉื•ืคืจืช. ื›ืš ื ืจืื” ื—ื•ื‘ ื˜ื›ื ื™. ื›ืš ื ืจืื™ืช ืžืขืจื›ืช ืฉื›ื‘ืจ ืงืฉื” ืœื”ืชืงื“ื ืขื ืคื™ืฆ'ืจื™ื ื›ื™ ื›ืœ ืฉื™ื ื•ื™ ืฉื•ื‘ืจ ืžืฉื”ื• ืื—ืจ. ื–ื” ื”ืคื™ืš ืื‘ืœ ื“ื•ืจืฉ ืขื‘ื•ื“ื” ื•ื”ื™ื•ื ื”ื•ื ื‘ื“ื™ื•ืง ื™ื•ื ืžืฆื•ื™ืŸ ืœื”ืชื—ื™ืœ ืœืื—ื“ ืžื ื’ื ื•ื ื™ื.

ToCode
1 420
ืœื ื›ื›ื” ืžืฉืชืžืฉื™ื ื‘ื–ื” ืื™ืŸ ืœื™ ืกืคืง ืฉืœืกื˜ื™ื‘ ื’'ื•ื‘ืก ื”ื™ื• ื›ื•ื•ื ื•ืช ื˜ื•ื‘ื•ืช ื›ืฉื”ื•ื ื”ืืฉื™ื ืืช ื”ืžืฉืชืžืฉื™ื ืฉืžื—ื–ื™ืงื™ื ืœื ื ื›ื•ืŸ ืืช ื”ื˜ืœืคื•ืŸ ืฉืœื•. ื”ื•ื ืจืื” ืืช ื›ืœ ื”ืฉืขื•ืช ืฉื”ื ื‘ื™ืœื• ื‘ืžืขื‘ื“ื•ืช ื‘ื‘ื“ื™ืงื•ืช, ืืช ื›ืœ ื”ื ืกื™ื™ื ื™ื ืฉื ื™ืกื• ื›ืœ ืคื•ื ืงืฆื™ื” ื‘ื˜ืœืคื•ืŸ, ืืช ื”ื‘ื“ื™ืงื•ืช ื”ืื•ื˜ื•ืžื˜ื™ื•ืช, ืืช ื”ืœื•ื’ื™ื, ืืช ืžื ื’ื ื•ื ื™ ื”ื”ื’ื ื” ื•ื”ืจื’ื•ืœืฆื™ื•ืช. ื•ื”ื ื” ื”ืžื•ืฆืจ ื™ื•ืฆื ืœืฉื•ืง ื•ื”ืžืฉืชืžืฉื™ื ืขื•ืฉื™ื ืื™ืชื• ื“ื‘ืจื™ื ืฉืืฃ ืื—ื“ ืœื ื—ืฉื‘ ืขืœื™ื”ื ื‘ื–ืžืŸ ื”ืคื™ืชื•ื—. ืžืื™ืคื” ื™ืฉ ืœื”ื ืืช ื”ื—ื•ืฆืคื”? ื•ื–ื” ืœื ืจืง ื”ืื™ื™ืคื•ืŸ... ืื™ืš ื”ื ืœื•ื—ืฆื™ื ืขืœ ื›ืคืชื•ืจ ืคืขืžื™ื™ื ืœืคื ื™ ืฉืกื™ื™ืžืชื™ ืœื˜ืคืœ ื‘ืœื—ื™ืฆื” ื”ืจืืฉื•ื ื”? ืœืžื” ื”ื ืฉื•ืžืจื™ื ืืช ื”ืกื˜ื™ื™ื˜ ื›ืœ ื›ืš ื’ื‘ื•ื” ื‘ืขืฅ ื”ืงื•ืžืคื•ื ื ื˜ื•ืช? ื”ืจื™ ืืžืจืชื™ ืœื›ื ืฉื–ื” ื™ื‘ื™ื ืœื™ื•ืชืจ ืžื“ื™ ืจื ื“ืจื™ื. ืœืžื” ื”ื ืžื ืกื™ื ืœืชืฉืืœ ืืช ื‘ืกื™ืก ื”ื ืชื•ื ื™ื ื‘ืœื™ ืื™ื ื“ืงืกื™ื? ื‘ืจื•ืจ ืฉื–ื” ื™ืขื‘ื•ื“ ืœืื˜. ืžื” ืคืชืื•ื ื”ื ื‘ื•ื ื™ื ืฉืื™ืœืชืช SQL ืžืงืœื˜ ืฉืžื’ื™ืข ื‘ื˜ื•ืคืก? ื”ืจื™ ืืžืจืชื™ ืœื”ื ืฉืฆืจื™ืš ืœื ืงื•ืช ืืช ื”ืงืœื˜ ืœืคื ื™ ืฉืžืฉืชืžืฉื™ื ื‘ื•. "ืœื ื›ื›ื” ืžืฉืชืžืฉื™ื ื‘ื–ื”" ืœื ืขื•ื‘ื“. ืื ืฉื™ื ื™ืžืฉื™ื›ื• ืœื”ืฉืชืžืฉ ืœื ื ื›ื•ืŸ ื‘ืžื•ืฆืจื™ื ืฉืœื ื•, ื•ื™ืžืฉื™ื›ื• ืœื‘ื•ื ื‘ื˜ืขื ื•ืช. ื›ื“ืื™ ืœื–ื›ื•ืจ: 1. ื‘ืชื•ืจ ืžืฉืชืžืฉื™ื ื—ืฉื•ื‘ ืœื“ืขืช ืื™ืš ื”ื™ื•ืฆืจ ื”ืžืงื•ืจื™ ืชื›ื ืŸ ืฉื ืฉืชืžืฉ ื‘ืžื•ืฆืจ. ืœื ื—ื™ื™ื‘ื™ื ืœื”ืฉืชืžืฉ ื‘ืคืจื™ื™ืžื•ื•ืจืง ืœืคื™ ื”ื—ื•ืงื™ื ืื‘ืœ ื—ืฉื•ื‘ ืœื”ื›ื™ืจ ื•ืœื”ื‘ื™ืŸ ืื•ืชื ื›ื“ื™ ืœื”ื‘ื™ืŸ ืื™ืš ื‘ื“ื™ื•ืง ื–ื” ื™ื™ืฉื‘ืจ ื›ืฉื ื—ื–ื™ืง ืืช ื–ื” ืœื ื ื›ื•ืŸ. 2. ื‘ืชื•ืจ ื™ื•ืฆืจื™ื ืขืœื™ื ื• ืœื”ื™ื•ืช ืžื•ื›ื ื™ื ืœื‘ื™ืงื•ืจืช ืขืœ ื”ืžื•ืฆืจื™ื ืฉืœื ื• ื•ื™ืฉ ืœื ื• ืืช ื”ื‘ื—ื™ืจื” - ืœืชืงืŸ ืื• ืœื”ืชืขืงืฉ. ืจื™ืืงื˜ ืื•ืžื ื ืžืชืขืงืฉื™ื ืขืœ ืžื ื’ื ื•ืŸ ื ื™ื”ื•ืœ ื”ืกื˜ื™ื™ื˜ ืฉืœื”ื ืื‘ืœ ืžื ื’ื ื•ื ื™ ORM ืคืชืจื• ื›ืžืขื˜ ืœื’ืžืจื™ ืืช ื”ื‘ืขื™ื” ืฉืื ืฉื™ื ื‘ื•ื ื™ื ืฉืื™ืœืชื•ืช SQL ื‘ืฆื•ืจื” ื™ื“ื ื™ืช ื•ืœื ืžืื•ื‘ื˜ื—ืช. ื’ื ื›ืฉืžื—ืœื™ื˜ื™ื "ืœื”ืชืขืงืฉ" ืืคืฉืจ ืœื•ื•ื“ื ืฉื”ืžืฉืชืžืฉื™ื ืฉืœื ื• ืžื‘ื™ื ื™ื ืžื” ื”ื ืขื•ืฉื™ื ืœื ื‘ืกื“ืจ ื•ืื™ืš ืžืชืงื ื™ื. ื‘ืจื™ืืงื˜ ื‘ื’ืœืœ ื–ื” ื“ื•ืื’ื™ื ืœื”ื“ืคื™ืก ืื–ื”ืจื” ื›ืœ ืคืขื ืฉืื ื—ื ื• ืžืจื ื“ืจื™ื ืงื•ืžืคื•ื ื ื˜ื•ืช ื‘ืœื•ืœืื” ื‘ืœื™ key. ื‘ืกื™ืก ื”ื ืชื•ื ื™ื JanusGraph ืžื“ืคื™ืก ืœื™ ืื–ื”ืจื” ืœืœื•ื’ ื›ืœ ืคืขื ืฉืื ื™ ืฉื•ืœื— ืฉืื™ืœืชื” ื•ืื™ืŸ ืœื• ืื™ื ื“ืงืก ืžืชืื™ื ื‘ืฉื‘ื™ืœื”. ื‘ืกื•ืฃ ื‘ืจื•ืจ ืฉื–ื” ืกื™ืคื•ืจ ืฉืœ ืชื™ืื•ื ืฆื™ืคื™ื•ืช - ืืฃ ืื—ื“ ืœื ืžืฆืคื” ืœื–ืจื•ืง ืืช ื”ืื™ื™ืคื•ืŸ ืžืงื•ืžื” ืจื‘ื™ืขื™ืช ื•ืฉื™ืžืฉื™ืš ืœืขื‘ื•ื“, ืื‘ืœ ืื ื—ื ื• ื›ืŸ ืžืฆืคื™ื ืฉื ื•ื›ืœ ืœื”ื—ื–ื™ืง ืื•ืชื• ืื™ืš ืฉื ืจืฆื” ื•ืขื“ื™ื™ืŸ ืœื”ื•ืฆื™ื ืฉื™ื—ื•ืช. ื›ื›ืœ ืฉื ืชืงืฉืจ ื˜ื•ื‘ ื™ื•ืชืจ ืขื ื”ืžืฉืชืžืฉื™ื ืฉืœื ื• ื•ื ื‘ื™ืŸ ืืช ื”ืฆื™ืคื™ื•ืช ืฉืœื”ื ื ื•ื›ืœ ืœื‘ื ื•ืช ืžื•ืฆืจื™ื ืฉื™ืชืืžื• ื•ืืฃ ื™ืชืขืœื• ืžืขืœ ืื•ืชืŸ ืฆื™ืคื™ื•ืช.

ToCode
1 420
ืœืžื” ืื ื™ ืœื ืžืชืœื”ื‘ ืž React Forget ืื ืขื“ื™ื™ืŸ ืœื ืฉืžืขืชื ื›ื›ืœ ื”ื ืจืื” ืจื™ืืงื˜ 19 ืชืฉื•ื—ืจืจ ืขื ืชืžื™ื›ื” ื‘ React Forget ื”ืงื•ืžืคื™ื™ืœืจ ื”ื—ื“ืฉ ืžื‘ื™ืช ืจื™ืืงื˜ ืฉืืžื•ืจ ืœื”ื•ืกื™ืฃ useMemo ืื•ื˜ื•ืžื˜ื™ืช ืœืชื•ื›ื ื™ื•ืช ืฉืœื ื•. ื”ื ื™ืžื•ืงื™ื ืฉืœื”ื ืœืคื™ืชื•ื— ื”ืคื™ืฆืณืจ (ืžืชื•ืš ื”ืคื•ืกื˜) ื”ื™ื•- 1. ื›ืชื™ื‘ืช useMemo ื™ื“ื ื™ืช ืžืœื›ืœื›ืช ืืช ื”ืงื•ื“. 2. ืงืœ ืœื˜ืขื•ืช ื›ืฉืฆืจื™ืš ืœื”ื—ืœื™ื˜ ื™ื“ื ื™ืช ืœืžื” ืœืขืฉื•ืช Memoization. 3. ืชื•ืกืคืช ื”ืงื•ื“ ืžืขืžื™ืกื” ืขืœ ื”ืชื—ื–ื•ืงื”. ื”ื ื” ืžืฉืคื˜ ื”ืžืคืชื— ืžืชื•ืš ื”ืคื•ืกื˜- > Our vision is for React to automatically re-render just the right parts of the UI when state changes, without compromising on Reactโ€™s core mental model. ื•ืžื”ื• ืื•ืชื• ืžื•ื“ืœ ืžื ื˜ืœื™ ื‘ืœื™ื‘ื” ืฉืœ ืจื™ืืงื˜? ื’ื ืคื” ื”ื ืขื•ื ื™ื ืฉื”ืžืžืฉืง ื”ื•ื ื‘ืกืš ื”ื›ืœ ืคื•ื ืงืฆื™ื” ืขืœ ืžืฆื‘ ื”ืืคืœื™ืงืฆื™ื”, ืื• ื‘ืžื™ืœื™ื ืื—ืจื•ืช ืฉืžืกืคื™ืง ืœื”ืกืชื›ืœ ืขืœ ืคื•ื ืงืฆื™ื™ืช ื”ืงื•ืžืคื•ื ื ื˜ื” ื•ืขืœ ื”ืกื˜ื™ื™ื˜ ื›ื“ื™ ืœื“ืขืช ืžื” ื™ื•ืคื™ืข ืขืœ ื”ืžืกืš. ื•ืขื›ืฉื™ื• ืืคืฉืจ ืœื—ื–ื•ืจ ืœื›ื•ืชืจืช. ืขื ื›ืœ ื”ื”ืกื‘ืจื™ื ืฉืœ ื”ื—ื‘ืจื™ื ื‘ืจื™ืืงื˜, ืื™ืš ืงืจื” ืฉื”ื‘ืœื•ื’ืจ ื”ื–ื” ืœื ื”ื›ื™ ืžืชืœื”ื‘ ืžืจื™ืืงื˜-ืฉื•ื›ื—. ื”ื ื” ื”ืกื™ื‘ื•ืช ืฉืœื™- 1. ืื™ืŸ ื‘ื–ื” ืฆื•ืจืš, ืื• ื™ื•ืชืจ ื ื›ื•ืŸ ื”ืฆื•ืจืš ื”ื™ื—ื™ื“ ื”ื•ื ื™ื—ืกื™ ืฆื™ื‘ื•ืจ. ื‘ื›ืœ ืคืจื•ื™ืงื˜ ืจื™ืืงื˜ ืฉืขื‘ื“ืชื™ ืขืœื™ื• ื‘ืขื™ื•ืช ื”ื‘ื™ืฆื•ืขื™ื ื ื•ืฆืจื• ื‘ื’ืœืœ ื—ื•ืกืจ ื”ื‘ื ื” ืฉืœ ืื™ืš ืจื™ืืงื˜ ืขื•ื‘ื“ ื•ืขื•ื“ ื™ื•ืชืจ ื’ืจื•ืข ื—ื•ืกืจ ื”ื‘ื ื” ืฉืœ ื”ืžืจื—ืง ื‘ื™ืŸ ืงื•ื“ ืฆื“ ืฉืจืช ืœืงื•ื“ ืฆื“ ืœืงื•ื—. ื‘ืจื•ื‘ ืžื•ื—ืœื˜ ืฉืœ ื”ืกื™ื˜ื•ืืฆื™ื•ืช ืืคืฉืจ ื”ื™ื” ืœื”ื—ืœื™ืฃ ืืช useMemo ื‘ืืจื’ื•ืŸ ืื—ืจ ืฉืœ ื”ืงื•ื“ ื”ืงื•ืžืคื•ื ื ื˜ื•ืช ื•ืœืคืชื•ืจ ืืช ื‘ืขื™ื•ืช ื”ื‘ื™ืฆื•ืขื™ื (ื•ื’ื ืœืงื‘ืœ ืงื•ื“ ื˜ื•ื‘ ื™ื•ืชืจ). 2. ื”ื•ืกืคืช "ืงื•ื“ ืื•ื˜ื•ืžื˜ื™" ืจืง ืžืกื‘ื›ืช ืืช ื”ื”ื‘ื ื” ื•ื”ืชื—ื–ื•ืงื”. ืงื•ื“ ืฉืื ื™ ืœื ืจื•ืื” ืขื“ื™ื™ืŸ ื ืžืฆื ืฉื, ื•ืื ื™ ืฆืจื™ืš ืœื–ื›ื•ืจ ืื•ืชื• ื•ืœื—ืฉื•ื‘ ืขืœื™ื• ื›ืœ ื”ื–ืžืŸ. 3. ื”ื•ืกืคืช ืžื ื’ื ื•ื ื™ื ื›ืžื• React Forget ืจืง ืžืจื—ื™ืงื” ืื•ืชื ื• ืžืคื™ืชืจื•ืŸ ื”ื‘ืขื™ื•ืช ื”ืืžื™ืชื™ื•ืช ืฉืœ ืจื™ืืงื˜. ื‘ืžื•ื‘ืŸ ื”ื–ื” ืกื™ื’ื ืœื™ื ื”ื™ื• ื™ื›ื•ืœื™ื ืœื”ื™ื•ืช ืชื•ืกืคืช ื”ืจื‘ื” ื™ื•ืชืจ ืžื•ืขื™ืœื” ื•ืžืขื ื™ื™ื ืช. ื”ืื React Forget ื™ื’ืจื•ื ืœืืคืœื™ืงืฆื™ื•ืช ืฉืœื ื• ืœืขื‘ื•ื“ ืžื”ืจ ื™ื•ืชืจ? ื›ื ืจืื” ืฉื›ืŸ. ื”ืื ื”ื•ื ื™ื‘ื™ื ืื™ืชื• ื‘ืขื™ื•ืช ื—ื“ืฉื•ืช ืฉืืฃ ืื—ื“ ืœื ื”ื™ื” ืฆืจื™ืš ื‘ืฉื‘ื™ืœ ืฉื™ืคื•ืจ ืžื™ื ื•ืจื™ ื‘ื‘ื™ืฆื•ืขื™ื? ื›ื ืจืื” ืฉื’ื ื›ืŸ.

ToCode
1 420
ืžืื™ืคื” ื”ื’ื™ืขื” ื” Z ื‘ืกื•ืฃ ื”ื–ืžืŸ? ื‘ืฉื‘ื™ืœ ืœืงื—ืช ื‘ืกืงืืœื” (ืื• Java) ืืช ื”ืฉืขื” ื”ื ื•ื›ื—ื™ืช ื•ืœืฉืžื•ืจ ืื•ืชื” ื›ืžื—ืจื•ื–ืช ืื•ื›ืœ ืœื”ืฉืชืžืฉ ื‘ืงื•ื“ ื”ื‘ื:
import java.time.*
import java.time.format.DateTimeFormatter

LocalTime.now().format(DateTimeFormatter.ISO_LOCAL_TIME)
ื•ื”ืžื—ืจื•ื–ืช ืฉืชืชืงื‘ืœ ืขืฉื•ื™ื” ืœื”ื™ืจืื•ืช ื›ืš:
"16:51:44.748375"
ืื‘ืœ ื›ืฉืžืกืชื›ืœื™ื ื‘ื‘ืกื™ืกื™ ื ืชื•ื ื™ื ื•ื‘ืจืฉืช ืื ื—ื ื• ื ืชืงืœื™ื ื‘ืžื—ืจื•ื–ื•ืช ื“ื•ืžื•ืช ืฉืžืกืชื™ื™ืžื•ืช ื‘ืื•ืช Z ืœื“ื•ื’ืžื”:
14:54:10.140198Z
ืœืžื” ื”ื ื”ืชื›ื•ื•ื ื•? ืžืื™ืคื” ื” Z ื”ื’ื™ืข? ื•ืื™ืš ืื ื™ ื’ื ืžืงื‘ืœ ืื—ื“? ืื– ื‘ื•ืื• ื ืชื—ื™ืœ ื‘ืงื•ื“ ื‘ืฉื‘ื™ืœ ืœื™ืฆื•ืจ ืžื—ืจื•ื–ืช ื–ืžืŸ ืขื ื” Z ื‘ืกื•ืฃ ืื ื™ ืœื ืฆืจื™ืš ืœืฉืจืฉืจ ืื•ืชื• ื™ื“ื ื™ืช ืืœื ืœื”ืฉืชืžืฉ ื‘ืงื•ื“ ืžืงื‘ื™ืœ ืฉื›ื•ืœืœ ื”ืชื™ื—ืกื•ืช ืœืื–ื•ืจ ื–ืžืŸ:
OffsetTime.now(ZoneId.of("UTC")).format(DateTimeFormatter.ISO_OFFSET_TIME)
ื” Z ืžืกืžืŸ ืฉื–ื•ื”ื™ ืชื•ื•ื™ืช ื–ืžืŸ ื‘ืื–ื•ืจ ื–ืžืŸ UTC. ืื–ื•ืจื™ ื–ืžืŸ ืื—ืจื™ื ื›ื‘ืจ ืžืงื‘ืœื™ื ืกื™ืžื•ืŸ ื™ื•ืชืจ ื‘ืจื•ืจ ืœื“ื•ื’ืžื” ืขื‘ื•ืจ ื™ืฉืจืืœ ื ืงื‘ืœ:
scala> OffsetTime.now(ZoneId.of("Israel")).format(DateTimeFormatter.ISO_OFFSET_TIME);

val res5: String = 16:57:24.769026+02:00
ื•ื›ืŸ ื”ื™ื” ืืคืฉืจ ื‘ืžืงื•ื ื” Z ืœื›ืชื•ื‘ ืžืฉื”ื• ื›ืžื• ืคืœื•ืก ืืคืก, ืื‘ืœ ื›ื ืจืื” ืฉื–ื” ืœื ืžืกืคื™ืง ืžื‘ืœื‘ืœ ื‘ืฉื‘ื™ืœ ืžื™ ืฉื›ื•ืชื‘ ืชืงื ื™ื ืœื“ื‘ืจื™ื ื›ืืœื”. ื›ืฉืื ื—ื ื• ื‘ื•ื ื™ื ืžืขืจื›ืช ืฉืฆืจื™ื›ื” ืœืชืžื•ืš ื‘ื›ืžื” ืื–ื•ืจื™ ื–ืžืŸ ื™ืฉ ืœื ื• ืฉืชื™ ืืคืฉืจื•ื™ื•ืช ืžืจื›ื–ื™ื•ืช - ื”ืื—ืช (ืคืฉื•ื˜ื” ื™ื•ืชืจ ื•ืœื“ืขืชื™ ืžื•ืžืœืฆืช), ืœื”ื—ืœื™ื˜ ืขืœ ืื–ื•ืจ ื–ืžืŸ ื‘ื• ื ืฉืžื•ืจ ืืช ื›ืœ ื”ืฉืขื•ืช ื‘ืžืขืจื›ืช ื•ืœืฉืžื•ืจ ื‘ื‘ืกื™ืก ื”ื ืชื•ื ื™ื ืฉืขื” ืœืœื ืื–ื•ืจ ื–ืžืŸ. ื‘ืžืฆื‘ ื›ื–ื” ื›ืœ ืคืขื ืœืคื ื™ ืฉืžื™ืจื” ื‘ื‘ืกื™ืก ื”ื ืชื•ื ื™ื ื ืจืฆื” ืœื”ืžื™ืจ ืืช ื”ืฉืขื” ืฉื™ืฉ ืœื ื• ืœืฉืขื” ื‘ืื–ื•ืจ ื”ื–ืžืŸ ืฉืœ ื‘ืกื™ืก ื”ื ืชื•ื ื™ื, ื•ื‘ื›ืœ ืงืจื™ืื” ื ืจืฆื” ืœื‘ืฆืข ื”ืžืจื” ื”ืคื•ื›ื”. ืื•ืคืฆื™ื” ืฉื ื™ื” ื™ื•ืชืจ ืžื•ืจื›ื‘ืช ื”ื™ื ืœืฉืžื•ืจ ืืช ื”ืžื™ื“ืข ื›ื•ืœืœ ืื–ื•ืจ ื”ื–ืžืŸ ื‘ื‘ืกื™ืก ื”ื ืชื•ื ื™ื. ื‘ืฉื‘ื™ืœ ื–ื” ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื”ืคื•ืš ืืช ื”ืฉืขื” ืœืžื—ืจื•ื–ืช ื”ื›ื•ืœืœืช ืื–ื•ืจ ื–ืžืŸ (ืขื ื” Z ื‘ืกื•ืฃ ืœ UTC, ืื• ืขื Offset ืœืื–ื•ืจื™ ื–ืžืŸ ืื—ืจื™ื). ื‘ืžืฆื‘ ื›ื–ื” ืœื ื ื“ืจืฉืช ื”ืžืจื” ืื‘ืœ ื›ืœ ืงื•ื“ ื”ืžืขืจื›ืช ื™ื”ื™ื” ืžื•ืจื›ื‘ ื™ื•ืชืจ ื›ื™ ืชืžื™ื“ ืฆืจื™ืš ืœื—ืฉื•ื‘ ื‘ืื™ื–ื” ืื–ื•ืจ ื–ืžืŸ ืื ื—ื ื• ื•ืœืขื‘ื•ื“ ืขื ืกื˜ ื”ืžื—ืœืงื•ืช ื”ืžืชืื™ื.

ToCode
1 420
ืขืœ ื’ื™ื˜ื”ืื‘, ื—ืชื™ืžื” ืขืœ ืงื•ืžื™ื˜ื™ื ื•ืœืžื™ ืื›ืคืช ื‘ื•ืื• ื ืชื—ื™ืœ ื‘ื ื™ืกื•ื™ (ืจืง ืœืืžื™ืฆื™ื ืฉื‘ื—ื‘ื•ืจื”) - ืžืฉื•ืจืช ื”ืคืงื•ื“ื” ืฉื ื• ืืช ืฉืžื›ื ื•ืืช ื›ืชื•ื‘ืช ื”ื“ื•ืืจ ื”ืืœืงื˜ืจื•ื ื™ ืฉื’ื™ื˜ ื—ื•ืฉื‘ ืฉื™ืฉ ืœื›ื ืขื ื”ืคืงื•ื“ื•ืช:
git config --replace-all user.name elite-hacker
git config --replace-all user.email hacker@theboss.com
ื•ืื– ื”ื›ื ื™ืกื• ืงื•ืžื™ื˜ ืœืžืขืจื›ืช. ื™ื›ื•ืœ ืœื”ื™ื•ืช ื’ื ืจื™ืง, ื•ื”ืคืขื™ืœื• git log. ืžื” ื”ืคืจื˜ื™ื ืฉืืชื ืจื•ืื™ื ื‘ืงื•ืžื™ื˜? ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืฉืœ ื’ื™ื˜ ื‘ืžืฆื‘ ื›ื–ื” ื”ื™ื ืœืชืช ืœื›ื ืืช ื”ืฉืœื™ื˜ื” ื•ืœื›ืŸ ื”ืฉื ืฉื™ื•ืคื™ืข ื‘ืงื•ืžื™ื˜ ื”ื•ื ืื›ืŸ ื”ืฉื ืฉื‘ื—ืจืชื. ืื ืขื›ืฉื™ื• ืชื“ื—ืคื• ืืช ื”ืงื•ืžื™ื˜ ืœืžืื’ืจ ืžืจื•ื—ืง ื”ืงื•ืžื™ื˜ ื™ื•ืคื™ืข ืฉื ืขื ื”ืฉื ื”ืžื–ื•ื™ืฃ ืฉืœื›ื. ื”ื“ืจืš ืฉืœ ื’ื™ื˜ ืœืืžืช ืืช ื”ื–ื”ื•ืช ืฉืœื›ื ื‘ืงื•ืžื™ื˜ ื”ื™ื ื—ืชื™ืžื” ืขืœ ืงื•ืžื™ื˜ื™ื. ื›ืืŸ ื™ืฉ ืžื“ืจื™ืš ืื™ืš ืœืงื ืคื’ ื”ื›ืœ ื‘ื’ื™ื˜ื”ืื‘: https://gist.github.com/troyfontaine/18c9146295168ee9ca2b30c00bd1b41e ืื– ืœืžื” ืื ื—ื ื• ืœื ื—ื•ืชืžื™ื ืขืœ ืงื•ืžื™ื˜ื™ื? (ื‘ืคืจื•ื™ืงื˜ื™ื ืคื ื™ืžื™ื™ื. ื‘ืคืจื•ื™ืงื˜ื™ ืงื•ื“ ืคืชื•ื— ื”ื›ืœ ื—ืชื•ื ืืœ ื“ืื’ื”). ืคื” ืื ื™ ื—ื•ืฉื‘ ืฉื”ืืฉืžื” ืขืœ ืžื ื˜ืœื™ื•ืช ื”"ืœืžื™ ืื›ืคืช" ื•ื‘ืคืจื˜ ื”ืžื—ืฉื‘ื•ืช: 1. ืžื™ ื™ืจืฆื” ืœืขืฉื•ืช ืงื•ืžื™ื˜ ื‘ืฉื ืื—ืจ? ื›ื•ืœื ื• ืขื•ื‘ื“ื™ื ื‘ืื•ืชื• ืืจื’ื•ืŸ. ืื™ืŸ ืืฆืœื ื• ืื ืฉื™ื ืจืขื™ื. 2. ื–ื” ื‘ื˜ื— ืžืกื•ื‘ืš ืœื”ื’ื“ื™ืจ ืืช ื›ืœ ื”ื“ื‘ืจื™ื, ื•ืื– ื™ื”ื™ื” ืื™ื–ื” ืขื“ื›ื•ืŸ ื•ืคืชืื•ื ื“ื‘ืจื™ื ืœื ื™ืขื‘ื“ื• ืืฆืœื™. ื—ื‘ืœ ืขืœ ื”ื–ืžืŸ. 3. ื”ืืงืจื™ื ืžืžื™ืœื ื™ื•ื“ืขื™ื ืœื–ื™ื™ืฃ ืืช ื”ื—ืชื™ืžื•ืช ืฉืœื ื• ืื– ื‘ืฉื‘ื™ืœ ืžื” ืœื”ืชืืžืฅ. ืื‘ืœ ื”ืืžืช ื”ื™ื ืฉืื ื—ื ื• ืคืฉื•ื˜ ืœื ืื•ื”ื‘ื™ื ืฉืžื™ืฉื”ื• ืžื–ื™ื– ืืช ื”ื’ื‘ื™ื ื” ืฉืœื ื•. "ื›ืœ ื”ื—ื™ื™ื ืœื ื—ืชืžืชื™ ืขืœ ืงื•ืžื™ื˜ื™ื ื•ืœื ืงืจื” ื›ืœื•ื, ืื– ืœืžื” ืœื”ืชื—ื™ืœ ื”ื™ื•ื?". ื”ืชืฉื•ื‘ื” ืฉืœื™ ืœืฉืœื•ืฉืช ื”ืกืขื™ืคื™ื ืชื”ื™ื”: 1. ืื™ ืืคืฉืจ ืœื“ืขืช ืžื™ ื™ืจืฆื” ืœืขืฉื•ืช ืงื•ืžื™ื˜ ื‘ืฉื ืื—ืจ ื•ื‘ืื™ื–ื” ื ืกื™ื‘ื•ืช, ืื•ืœื™ ื–ื” ืืคื™ืœื• ื™ืงืจื” ื‘ื˜ืขื•ืช. ืชืžื™ื“ ืขื“ื™ืฃ ืœื”ื™ื•ืช ืงืฆืช ื™ื•ืชืจ ืžื•ื’ืŸ. 2. ื“ื•ื•ืงื ื“ื™ ืคืฉื•ื˜. ื”ืžื“ืจื™ืš ื‘ืœื™ื ืง ืฉื”ื“ื‘ืงืชื™ ืœืžืขืœื”. 3. ืื– ืœืžื” ืœืขืฉื•ืช ืœื”ื ื—ื™ื™ื ืงืœื™ื? ืฉื™ืชืืžืฆื• ืงืฆืช ื”ื”ืืงืจื™ื. ืขื•ื“ ืœื ื—ื•ืชืžื™ื ืขืœ ืงื•ืžื™ื˜ื™ื? ื”ื™ื•ื ื”ื•ื ื™ื•ื ืžืฆื•ื™ืŸ ืœืงื ืคื’ ืืช ื–ื”.

ToCode
1 420
ื˜ื™ืคื•ืก ืฉืœ GUI ื‘ื‘ื ื™ื™ืช ืžืขืจื›ืช ืฆืจื™ืš ืœื”ืชื—ื™ืœ ืžื”ืžืžืฉืง ื”ื’ืจืคื™ ืื• ืžื‘ืกื™ืก ื”ื ืชื•ื ื™ื? ืืช ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” ืฆืจื™ืš ืœื›ืชื•ื‘ ืžืœืžืขืœื” ืœืžื˜ื” (ืงื•ื“ื ื”ืื‘ืกื˜ืจืงืฆื™ื•ืช ื•ืื—ืจื™ ื–ื” ื”ืงื•ื“ ืขืฆืžื•) ืื• ืžืœืžื˜ื” ืœืžืขืœื” (ืงื•ื“ื ื”ืงื•ื“ ื•ื›ืฉืจื•ืื™ื ื—ืœืงื™ื ืžืฉื•ืชืคื™ื ืžื™ื™ืฆืจื™ื ืื‘ืกื˜ืจืงืฆื™ื”)? ืืช ื”ื‘ื“ื™ืงื•ืช ื›ื•ืชื‘ื™ื ืœืคื ื™ ืื• ืื—ืจื™ ื”ืงื•ื“? ื›ื‘ืจ ืœืคื ื™ ื”ืจื‘ื” ืฉื ื™ื ื”ื‘ื ืชื™ ืฉืื™ืŸ ืชืฉื•ื‘ื” ืื—ืช ืฉืžืชืื™ืžื” ืœื›ื•ืœื ื•ื–ื” ื‘ืกื“ืจ - ืื‘ืœ ื‘ื’ืœืœ ืฉืจื•ื‘ ื”ืื ืฉื™ื ืฉืงืจืืชื™ ื”ื™ื• ืขืงื‘ื™ื™ื ื‘ื“ืขื•ืช ืฉืœื”ื ื—ืฉื‘ืชื™ ื‘ื˜ืขื•ืช ืฉื–ื” ืขื ื™ื™ืŸ ืฉืœ ื˜ืขื ืื™ืฉื™, ื›ืœื•ืžืจ ืืชื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ื‘ืฆื“ ืฉืœ TDD ืื• ื‘ืฆื“ ืฉืœ ื”ื‘ื“ื™ืงื•ืช ืื—ืจื™ ื”ืงื•ื“. ืืชื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ื‘ืฆื“ ืฉื›ื•ืชื‘ ืจืง ื‘ื“ื™ืงื•ืช ืื™ื ื˜ื’ืจืฆื™ื” (ื•ื—ื•ืฉื‘ ืฉื‘ื“ื™ืงื•ืช ื™ื—ื™ื“ื” ื”ืŸ ื‘ื–ื‘ื•ื– ื–ืžืŸ) ืื• ืฉืืชื” ืžืืžื™ืŸ ื‘ื‘ื“ื™ืงื•ืช ื™ื—ื™ื“ื” ื•ื›ื•ืชื‘ ืื•ืชืŸ ืขืœ ื›ืœ ืžื•ื“ื•ืœ. ืืชื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ื˜ื™ืคื•ืก ืฉื›ื•ืชื‘ GUI ืงื•ื“ื ืื• ื˜ื™ืคื•ืก ืฉื›ื•ืชื‘ ืงื•ื“ื ืืช ืงื•ื“ ืฆื“ ื”ืฉืจืช. ืื ื™ ื˜ื™ืคื•ืก ืฉืœ GUI ื”ื™ื™ืชื™ ื—ื•ืฉื‘ ื‘ืœื‘ ื•ืžืžืฉื™ืš ืœื›ืชื•ื‘ ืืช ื”ืžืžืฉืง ืœืคืจื•ื™ืงื˜ ื”ื‘ื. ืขื“ ืฉื™ื•ื ืื—ื“ ื–ื” ื›ื‘ืจ ืœื ืขื‘ื“. ืฉืžื›ืœ ืžื™ื ื™ ืกื™ื‘ื•ืช ื•ืื™ืœื•ืฆื™ื ืฉืœ ื”ืคืจื•ื™ืงื˜ ื›ืœ ืคืขื ืฉื ื™ืกื™ืชื™ ืœื”ืชื—ื™ืœ ืžื” GUI ื”ืงื•ื“ ืœื ื›ืชื‘ ืืช ืขืฆืžื• ื‘ื›ืœืœ ื•ื”ื’ืขื ื• ืœืžื‘ื•ื™ ืกืชื•ื. ื”ื™ืคื•ืš ื”ื›ื™ื•ื•ืŸ ืขื–ืจ ืœืงื“ื ืืช ื”ืคืจื•ื™ืงื˜ ืื‘ืœ ื™ื•ืชืจ ืžื–ื” ืขื–ืจ ืœื™ ืœืฆืืช ืžื”ืงื™ื‘ืขื•ืŸ. ืื ื™ ื™ื›ื•ืœ ืœื”ื™ื•ืช ื˜ื™ืคื•ืก ืฉืœ GUI ืื• ืฉืœ Back End, ืื‘ืœ ื–ื” ื‘ื›ืœืœ ืœื ืจืœื•ื•ื ื˜ื™. ื™ื•ืชืจ ื—ืฉื•ื‘ ืœืฉืื•ืœ ืžื” ื”ืื™ืœื•ืฆื™ื ืฉืœ ื”ืคืจื•ื™ืงื˜? ืžื” ืžื™ื“ืช ื”ื’ืžื™ืฉื•ืช ืฉื ืฆื˜ืจืš ื‘ื•? ืžื” ืื ื—ื ื• ื™ื•ื“ืขื™ื ืœืขื•ืžืช ืžื” ืขื•ื“ ืฆืจื™ืš ืœื’ืœื•ืช? ืื™ื–ื” ื—ืœืงื™ื ืฆืคื•ื™ื™ื ืœื”ืฉืชื ื•ืช? ื•ืื•ืœื™ ื‘ื›ืœืœ ืืคืฉืจ ืœื—ืœืง ืืช ื”ืขื‘ื•ื“ื” ื•ืœื”ืชืงื“ื ื‘ืžืงื‘ื™ืœ? ืฉื•ืจื” ืชื—ืชื•ื ื” ื”ืฉืืœื” ื”ื™ื ืœื ืื™ืคื” ืื ื—ื ื• ืžืจื’ื™ืฉื™ื ื™ื•ืชืจ ื ื•ื— ืืœื ืžื” ื˜ื•ื‘ ืœืคืจื•ื™ืงื˜ ื•ืžื” ื™ืืคืฉืจ ืœื ื• ื™ื•ืชืจ ื’ืžื™ืฉื•ืช ื›ืฉื ืฆื˜ืจืš ืื•ืชื”. ืžืชื›ื ืชื™ื ื˜ื•ื‘ื™ื ืฆืจื™ื›ื™ื ืœื”ื™ื•ืช ืžืกื•ื’ืœื™ื ืœืขื‘ื•ืจ ื‘ื™ืŸ ื”ื’ื™ืฉื•ืช ื•ืœื”ืขื“ื™ืฃ ืชืžื™ื“ ืืช ื˜ื•ื‘ืช ื”ืคืจื•ื™ืงื˜.

ToCode
1 420
ืฉืœื•ืฉ ื ืงื•ื“ื•ืช ืขืœ SQL-ื™ื ืžืกื•ื‘ื›ื™ื ืžื“ื™ ื”ืชื•ื›ื ื™ืช ื”ืžืงื•ืจื™ืช ืฉืœื™ ืœืคื•ืกื˜ ืกื•ืคืฉื‘ื•ืข ื”ื™ืชื” ืœืคืชื•ืจ ื•ืœืคืจืกื ืขื•ื“ ื™ื•ื ืฉืœ Advent Of Code, ืื‘ืœ ืžืคื” ืœืฉื ืืช ื›ืœ ื–ืžืŸ ื”ื›ืชื™ื‘ื” ื‘ื–ื‘ื–ืชื™ ืขืœ ืฉืื™ืœืชื” ืžืกื•ื‘ื›ืช ืžื“ื™ ืœื‘ืกื™ืก ื”ื ืชื•ื ื™ื ืฉื‘ืกื•ืฃ ื’ื ื”ื™ื ืœื ืขื‘ื“ื”, ื•ืœื›ืŸ ื‘ืžืงื•ื ืื ื™ ืจื•ืฆื” ืœืฉืชืฃ ืฉืœื•ืฉ ื ืงื•ื“ื•ืช ืืœื™ื”ืŸ ื›ื“ืื™ ืœืฉื™ื ืœื‘ ื›ืฉื”ื•ืœื›ื™ื ืžื›ื•ืช ืขื ืฉืื™ืœืชื•ืช (ื•ื‘ืขืฆื ืขื ืคืจื™ื™ืžื•ื•ืจืง ื‘ืื•ืคืŸ ื›ืœืœื™)- 1. ืœืคืขืžื™ื ื–ื” ืฉื•ื•ื” ืืช ื”ืžืืžืฅ. ื™ืฉ ืฉืื™ืœืชื•ืช SQL ืฉืื—ืจื™ ืฉืžืฆืœื™ื—ื™ื ืœื›ืชื•ื‘ ืื•ืชืŸ ืžื‘ื™ื ื™ื ืžืฉื”ื• ื—ื“ืฉ ืขืœ SQL. ื›ืŸ ื™ืฉ ื“ื‘ืจ ื›ื–ื” Window Functions ื•ืื ืฆืจื™ืš ืœื”ืฉืงื™ืข ืขื›ืฉื™ื• ืฉืขืชื™ื™ื ื‘ืœืœืžื•ื“ ืื™ืš ื”ืŸ ืขื•ื‘ื“ื•ืช ื–ื” ืžืžืฉ ืฉื•ื•ื” ืืช ื”ื”ืฉืงืขื”. 2. ืœืคืขืžื™ื ื”ืฉืื™ืœืชื” ื‘ืืžืช ืžืกื•ื‘ื›ืช ืžื“ื™ ื•ืœื ืฉื•ื•ื” ืืช ื”ืžืืžืฅ. ืจืื™ื ื• ื›ื‘ืจ ืžืกืคื™ืง ืฉืื™ืœืชื•ืช ืžืกื•ื‘ื›ื•ืช ืžื“ื™ ืฉื‘ืกื•ืฃ ื”ื™ื” ืฆืจื™ืš ืœืฉื›ืชื‘ ืœืฉืื™ืœืชื•ืช ืคืฉื•ื˜ื•ืช ื™ื•ืชืจ ืื• ืœื”ืขื‘ื™ืจ ื—ืœืง ืžื”ืœื•ื’ื™ืงื” ืคื ื™ืžื” ืœืงื•ื“ ื›ื™ ื” DB ืœื ืขืžื“ ื‘ืขื•ืžืก. 3. ืœืคืขืžื™ื ืฉืื™ืœืชื•ืช ืžืกื•ื‘ื›ื•ืช ื”ืŸ ืจืžื– ืœื‘ืขื™ื™ื” ื‘ืžื‘ื ื” ื”ื˜ื‘ืœืื•ืช. ื‘ืื•ืชื• ืจื’ืข ื›ืฉืžื ืกื™ื ืœื’ืจื•ื ืœืฉืื™ืœืชื” ืœืขื‘ื•ื“ ืื ื—ื ื• ืขื“ื™ื™ืŸ ืœื ื™ื•ื“ืขื™ื ืื™ื–ื” ืžืฉืœื•ืฉืช ื”ื“ืจื›ื™ื ืชื”ื™ื” ื”ื˜ื•ื‘ื” ื‘ื™ื•ืชืจ ื•ืงืœ ืœื”ื™ืชืงืข ืขืœ ื”ืคื™ืชืจื•ืŸ ื”ืจืืฉื•ืŸ ืฉื ืจืื” ื”ื’ื™ื•ื ื™. ื‘ื•ืื• ื ื ืกื” ืœื–ื›ื•ืจ ืฉืชืžื™ื“ ื™ืฉ ืขื•ื“ ื“ืจื›ื™ื ื•ืื•ืœื™ ื”ืคื™ืชืจื•ืŸ ื”ื•ื ืฆืขื“ ืื—ื•ืจื” ื•ื”ืžืฉืš ื‘ื›ื™ื•ื•ืŸ ืื—ืจ.

ToCode
1 420
ืžื” ืขื•ืฉื™ื ื‘ืžืงื•ื ื”ืชื™ืขื•ื“ ื”ืœื ืจืœื•ื•ื ื˜ื™ ืื” ื–ื” ืžื” Readme? ืชืชืขืœื ื”ื•ื ืœื ืžืขื•ื“ื›ืŸ ื”ื”ืขืจื” ื”ื–ืืช ื™ืฉื ื” ืืช ื™ื›ื•ืœื” ืœื”ืชืขืœื, ืฉื™ื ื™ื ื• ื”ืจื‘ื” ืงื•ื“ ืžืื– ืชืชืขืœื ืžื”ื‘ื“ื™ืงื•ืช ืฉื ื›ืฉืœื•ืช ืฆืจื™ืš ืœืกื“ืจ ืื•ืชืŸ ืขื›ืฉื™ื• ืื ื™ ื™ื•ื“ืข ืื™ืŸ ื–ืžืŸ ืœืขื“ื›ืŸ ื•ืœื ื ืขื™ื ืœืžื—ื•ืง, ืื– ืžื” ืขื•ืฉื™ื ืขื ื›ืœ ื”ืชื™ืขื•ื“ ื”ืœื ืจืœื•ื•ื ื˜ื™ ื”ื–ื”? ืื™ืš ื ื“ืื’ ืœื–ื” ืฉื”ื•ื ืœื ื™ืžืฉื™ืš ืœื‘ืœื‘ืœ ืื—ืจื™ื? ื˜ืจื™ืง ืื—ื“ ืฉื”ืชื—ืœืชื™ ืœื ืกื•ืช ื–ื” ื›ืŸ ืœืžื—ื•ืง ืืช ื”ื“ื‘ืจื™ื ื•ื‘ืžืงื•ืžื ืœื”ืฉืื™ืจ ื”ืขืจื” ื‘ืงื•ื“ ืขื ืžืกืคืจ ื”ืงื•ืžื™ื˜ ืฉื‘ื• ืื•ืชื• ืชื™ืขื•ื“ ื™ืฉืŸ ื›ืŸ ื”ื™ื” ื‘ืžืขืจื›ืช. ื›ื›ื” ืžื™ ืฉื™ื’ื™ืข ืœืžืงื•ื ื™ืฆื˜ืจืš ืœืขื‘ื•ื“ ื›ื“ื™ ืœืžืฆื•ื ืืช ืื•ืชื• ืชื™ืขื•ื“ ืœื ืจืœื•ื•ื ื˜ื™, ื•ื’ื ื™ื”ื™ื” ืœื›ื•ืœื ื‘ืจื•ืจ ืžื” ืžืฆื‘ื• ืฉืœ ืื•ืชื• ืชื™ืขื•ื“. ื›ืฉืžื™ืฉื”ื• ื›ืŸ ื™ืžืฆื ืืช ื”ื–ืžืŸ ืœืชืงืŸ ื™ื”ื™ื” ืงืœ ืœืžืฆื•ื ืืช ื”ื’ื™ืจืกื” ื”ืื—ืจื•ื ื” ื•ืœื”ืžืฉื™ืš ืžืฉื.