Gitの中身を説明してみる
- Gitではソースコードのツリー構造をグラフデータベースで管理している
| Git用語 | ファイルシステム | graph用語 |
|---|---|---|
| blob | ファイル内容 | エッジ |
| tree | ディレクトリ | ノード |
| package models | |
| import scalikejdbc._ | |
| import skinny.orm.{SkinnyCRUDMapper, SkinnyRecord} | |
| case class Example( id: Long, name: Option[String] = None ) extends SkinnyRecord[Example] { | |
| def skinnyCRUDMapper = Example | |
| } | |
| object Example extends SkinnyCRUDMapper[Example] { |
| import scala.Predef.; | |
| import scala.Serializable; | |
| import scala.collection.immutable.Range.Inclusive; | |
| import scala.runtime.AbstractFunction1; | |
| import scala.runtime.BoxedUnit; | |
| import scala.runtime.RichInt.; | |
| public final class Hello$ | |
| { | |
| public static final MODULE$; |
| val xml = | |
| <body> | |
| <item> | |
| <name>aaaaa</name> | |
| <url>httpppppp</url> | |
| <description>cccc</description> | |
| </item> | |
| <item> | |
| <name>aaaaa</name> | |
| <url>httpppppp</url> |
| // 失敗する処理 | |
| def fail(i: Int): Either[String,Int] = Left(s"error occored from $i") | |
| // 成功する処理 | |
| def success(i: Int): Either[String,Int] = Right(i + 1) | |
| println("すべて成功する (e is 5)") | |
| val result0 = for { | |
| a <- success(0).right | |
| b <- success(a).right |
| type Database = Map[String, Any] | |
| case class Item[+A](name: String) { | |
| def get(d: Database) = d(name).asInstanceOf[A] | |
| } | |
| implicit class DB(val d: Database) extends AnyVal { | |
| def get[A](n: Item[A]): A = n.get(d) | |
| } |
| import scala.swing._ | |
| object Hello extends SimpleSwingApplication { | |
| def top = new MainFrame { | |
| title = "Hello world" | |
| contents = new Label("Hello world") | |
| } | |
| } |
| module Kernel | |
| def maybe | |
| block_given? && yield | |
| rescue NoMethodError | |
| end | |
| end |
| class Maybe < BasicObject | |
| def initialize(obj) | |
| @just = obj | |
| end | |
| # for debug | |
| def inspect | |
| "#<Maybe: just(#{@just.inspect})>" | |
| end |
| fizzbuzz = ->(i){ i % 3 == 0 && i % 5 == 0 ? 'FizzBuzz' : i } | |
| fizz = ->(i){ i % 3 == 0 ? 'Fizz' : i } | |
| buzz = ->(i){ i % 5 == 0 ? 'Buzz' : i } | |
| (1..16).map(&fizzbuzz).map(&fizz).map(&buzz) |
Gitの中身を説明してみる
| Git用語 | ファイルシステム | graph用語 |
|---|---|---|
| blob | ファイル内容 | エッジ |
| tree | ディレクトリ | ノード |