Skip to content

Instantly share code, notes, and snippets.

View kojilin's full-sized avatar
🐶
This is fine ☕ 🔥

Koji Lin kojilin

🐶
This is fine ☕ 🔥
  • LY Corporation
  • Fukuoka, Japan
  • X @kojilin
View GitHub Profile
@kojilin
kojilin / setup-docker.sh
Created February 8, 2024 06:11 — forked from trustin/setup-docker.sh
How to install Docker on macOS without using Docker Desktop
#!/usr/bin/env bash
set -Eeuo pipefail
# Install Docker CLI and Docker Compose, etc.
brew install docker docker-compose docker-credential-helper
# Configure Docker CLI.
mkdir -p "$HOME/.docker/cli-plugins"
ln -sfn '/opt/homebrew/opt/docker-compose/bin/docker-compose' "$HOME/.docker/cli-plugins/docker-compose"
echo '{
@kojilin
kojilin / sealed_example.kt
Created February 22, 2023 07:50 — forked from ingramchen/sealed_example.kt
Domain Model Layer Convention (Model 層級管理)

Model 層級管理

Domain Model 層的意義

一個傳統 Java Spring 的應用程式會分為三層 @Controller @Service @Repository,然後依據組織需求,再往下細分。 比方說 Service 層複雜的話,會增加 Gateway、Facade 層,或是我們組織獨有的 CoreService 層

另一個層級大部份 Java 組織會忽略的是 Domain Model 層,絕大多數 Java 開發者會開個 entity 或 model package,然後 將所有的 Entity 往裡面丟。然而該 Entity 只是一堆欄位和 getter/setter 的堆疊,也就是單純的 Table 的對應物件而已, 不具備任何 business logic

class CalculatorPresenter : Contract.Presenter {
private lateinit var view: Contract.View
private val data: Stack<String> = Stack()
override fun recordInput(value: String, currentResult: String) {
if (value.isOperator()) {
data.push(currentResult)
@kojilin
kojilin / hsdis-elcapitan.sh
Created June 1, 2016 02:07 — forked from tinkerware/hsdis-elcapitan.sh
Build hsdis for JDK 1.8u92 on El Capitan
# You will need Mercurial; get it with `brew install hg`.
hg clone http://hg.openjdk.java.net/jdk8u/jdk8u
cd jdk8u
hg update jdk8u92-b14
chmod +x ./get_source.sh; ./get_source.sh
cd hotspot/src/share/tools/hsdis
wget http://ftp.heanet.ie/mirrors/gnu/binutils/binutils-2.26.tar.gz
tar -xzf binutils-2.26.tar.gz
make BINUTILS=binutils-2.26 ARCH=amd64