Skip to content

Instantly share code, notes, and snippets.

View laysakura's full-sized avatar

Sho Nakatani laysakura

View GitHub Profile
@laysakura
laysakura / cloudSettings
Last active March 23, 2020 03:11
Visual Studio Code Settings Sync Gist
{"lastUpload":"2020-03-23T03:11:38.527Z","extensionVersion":"v3.4.3"}
@laysakura
laysakura / 01-commands-on-your-host.bash
Last active February 8, 2020 08:20
Running benchmarks in riscv/riscv-tests using a RISC-V emulator `Spike`
docker build -t spike:latest .
docker run -it spike:latest bash
@mpppk
mpppk / clean_architecture.md
Last active December 19, 2025 02:34
クリーンアーキテクチャ完全に理解した

2020/5/31追記: 自分用のメモに書いていたつもりだったのですが、たくさんのスターを頂けてとても嬉しいです。
と同時に、書きかけで中途半端な状態のドキュメントをご覧いただくことになっており、大変心苦しく思っています。

このドキュメントを完成させるために、今後以下のような更新を予定しています。

  • TODO部分を埋める
  • 書籍を基にした理論・原則パートと、実装例パートを分割
    • 現在は4層のレイヤそれぞれごとに原則の確認→実装時の課題リスト→実装例という構成ですが、同じリポジトリへの言及箇所がバラバラになってしまう問題がありました。更新後は、実装時の課題リストを全て洗い出した後にまとめて実装を確認する構成とする予定です。

2021/1/22追記:

@qnighy
qnighy / rust-patterns.md
Last active March 6, 2025 19:03
Rustのパターンっぽいやつメモ

パターンとはその言語が抽象化できなかった敗北の歴史である。 しかしどんなに優れた言語であってもあらゆる繰り返しに勝てるわけではない。 人は必ずメタ繰り返しを欲するからだ。 そしてそれはRustも例外ではない。

ここでは、OOPでも知られているパターンよりも、Rustに特有のパターンを思いつく限りまとめてみた。名前は適当。

  • crate splitting
    • でかいcrateを分割して、見通しを良くする・再コンパイルの分量を削減する・並列コンパイルを可能にする
  • 親玉crate(全てにdependする)と殿crate(全てにdependされる)があることが多いので、だいたい束みたいな形になる。
@matsu-chara
matsu-chara / gateaway.scala
Last active May 23, 2017 01:42
finatra風?コントローラ
import com.twitter.util.Future
import scala.reflect.ClassTag
// generated code
case class FooReqThrift(value: Int)
case class ThriftException(message: String, cause: Throwable) extends RuntimeException(message, cause)
// libs
abstract class RequestAdapter[ReqThrift, ReqDto] {
def adapt(a: ReqThrift): Future[ReqDto]
@matsu-chara
matsu-chara / _危険例外渡しミス.scala
Last active March 16, 2017 05:24
危険例のようにabstract class宣言時やextends時にcauseのデフォルト引数でnullを指定するとcauseを渡し忘れる事故が発生するので避けた方が好ましい。(causeを渡し忘れているためスタックトレースが追跡できない状態になっているが、コンパイルは通るし相当気づきにくいので本番でエラーログみようとして初めて情報がないことに気づく・・・という事故)
abstract class DomainException(message: String, cause: Throwable) extends RuntimeException(message, cause)
sealed abstract class FooDomainException(message: String, cause: Throwable) extends DomainException(message, cause)
// causeが必ず存在するような例外
case class BarDomainException(message: String, cause: Throwable) extends FooDomainException(message, cause)
// causeがあったりなかったりするような例外
case class BazDomainException(message: String, cause: Throwable = null) extends FooDomainException(message, cause)
@gakuzzzz
gakuzzzz / sbt-coursier.md
Last active June 27, 2019 03:23
あなたの sbt update を爆速にする sbt-coursier の紹介

あなたの sbt update を爆速にする sbt-coursier の紹介

この記事は Scala Advent Calendar 2016(Adventar) 10日目の記事です。

今は 12/10 の 625時です。年明けなんて無かった。いいね?

さてさて、sbt の依存jarのダウンロードが遅い、というのは割とよく言われる事であります。

で、この原因の一旦に、sbtが Apache Ivy を使っている、という点があります。

@voluntas
voluntas / yunagido.rst
Last active December 24, 2018 07:43
夕凪堂コトハジメ
@gakuzzzz
gakuzzzz / 1_.md
Last active March 7, 2025 06:35
Scala の省略ルール早覚え

Scala の省略ルール早覚え

このルールさえ押さえておけば、読んでいるコードが省略記法を使っていてもほぼ読めるようになります。

メソッド定義

def concatAsString(a: Int, b: Int): String = {
  val a_ = a.toString();
  val b_ = b.toString();
@murooka
murooka / perl_first.md
Last active March 10, 2020 23:37
Linuxでのperl環境の構築

perlの環境構築

perlbrewとperlのインストール

何はともあれまずperlbrewを入れる

\curl -L http://install.perlbrew.pl | bash
echo 'source ~/perl5/perlbrew/etc/bashrc' >> .bashrc
source .bashrc