Skip to content

Instantly share code, notes, and snippets.

class SampleService
extends ActiveModel::Model
validates :name, presence: true
def initialize(attributes)
# ...
end
def run!
@a-suenami
a-suenami / 糖質制限アンチパターン.md
Last active February 5, 2016 05:51
糖質制限アンチパターン 2015 の 2 日目のエントリです。

このエントリは糖質制限 Advent Calendar の 2 日目のエントリです。前日は @chiastolite さんの「半年の糖質制限生活の経過報告的なにか」でした。

お前誰?

a_suenami と申します。ネット界隈では「糖質警察」として多少知られてると思います。よろしくお願いします。 僕の糖質制限への熱い想いはこのへんを見ていただければわかるかと思います。

糖質とプログラミングと私

今日のテーマ

@a-suenami
a-suenami / fibonacci.sql
Created December 14, 2015 09:58
PostgreSQL でフィボナッチ数列計算。
WITH RECURSIVE x(n, a, b) AS (
SELECT 1 AS n, 0 AS a, 1 AS b
UNION ALL
SELECT n + 1, b, a + b FROM x
),
fibonacci AS (
SELECT n, a AS fibonacci FROM x
)
SELECT * FROM fibonacci LIMIT 30;
@a-suenami
a-suenami / fizzbuzz.sql
Created December 14, 2015 10:49
PostgreSQL で FizzBuzz
WITH RECURSIVE fizzbuzz(n, fizzbuzz) AS (
VALUES (1, '1')
UNION
SELECT
n + 1,
CASE
WHEN (n + 1) % 15 = 0 THEN
'FizzBuzz'
WHEN (n + 1) % 3 = 0 THEN
'Fizz'
(function 繰り返す() {
食べる();
寝る();
コード書く();
繰り返す();
})();
@a-suenami
a-suenami / check.rb
Created April 12, 2018 08:29
Effect of includes and merge to associations
# CREATE DATABASE demo CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
# USE demo;
# CREATE TABLE articles (id BIGINT PRIMARY KEY);
# CREATE TABLE comments (id BIGINT PRIMARY KEY, article_id BIGINT NOT NULL, status SMALLINT NOT NULL);
require 'active_record'
ActiveRecord::Base.establish_connection(
adapter: 'mysql2',
host: 'localhost',
@a-suenami
a-suenami / README.md
Last active November 19, 2018 14:01
すえなみチャンス忘年会 企画概要

きっかけ

こんな感じで雑に思いついた。

https://twitter.com/search?q=%E3%81%99%E3%81%88%E3%81%AA%E3%81%BF%E3%83%81%E3%83%A3%E3%83%B3%E3%82%B9%E5%BF%98%E5%B9%B4%E4%BC%9A&src=typd

やりたいこと

  • 語弊を恐れずに言うと、僕(a-suenami)が会いたい人が一同に集まって飲みながらいろいろ話せる場。
  • 僕のための会ということになるのでお金的なところはそこそこ何とかする気概はある。(人数次第では全奢りとかは厳しいけど)
@a-suenami
a-suenami / README.md
Last active June 13, 2022 07:46
Railsでエヴァンスのいう集約の概念を取り入れる方法(案)
@a-suenami
a-suenami / product_mapper.rb
Last active March 13, 2019 11:03
インピーダンスを解決したいの会
class ProductMapper
def attributes
[:id, :name, :price]
end
def self.map(relation, limit: nil)
mapping_type = Struct.new(attributes)
relation.limit(limit).pluck(attributes).map do |record|
mapping_type.new(record)
end
class Person # エンティティ
attr_reader :name, :yakiniku_treatment_type
def initialize(name, yakiniku_treatment_type, credit_card_number, cash_amount)
@name = Person::Name.new(name)
@yakiniku_treatment_type = Person::YakinikuTreatmentType.new(yakiniku_treatment_type)
end
def 焼肉を奢る
@yakiniku_treatment_type.奢る