Skip to content

Instantly share code, notes, and snippets.

@sunaot
sunaot / road_to_hikarie.txt
Last active October 5, 2015 05:58
Hikarie Entry Protocol
入り方の手順は、
- ヒカリエにたどり着く
- 11F で入館受付
- 21F で SeminarRoom の部屋へ
の順になります。
* ヒカリエの場所 (地上駅直結だと 2F、地下鉄直結だと B3 へ着きます)
http://www.hikarie.jp/access/index.html
* 入館受付
require 'test/unit'
class Test < Test::Unit::TestCase
def test_resolv_error
force_resolv_error do
# do something
end
end
private
@sunaot
sunaot / diff.sql
Created July 27, 2012 19:14
2 テーブルの差分を MySQL で。
select
'a dake' as type
, id
, ckey
from
table_a a
where not exists
(select 1 from table_b b where a.id <=> b.id and a.ckey <=> b.ckey)
union all
select
@sunaot
sunaot / gist:5118117
Last active December 14, 2015 16:49
git reset
soft mixed hard
HEAD o o o
index - o o
working tree - - o
  • index は git add して登録されたインデックス
  • working tree は add される前の展開されてるファイル

setup を DRY にしたい

# こんな支援モジュールを書く
use strict;
use warnings;

{
 package Foo::Bar;
@sunaot
sunaot / if.md
Last active October 2, 2019 15:15
条件分岐とのつきあい方

条件分岐とのつきあい方

プログラムが複雑になる一番の理由は条件分岐 (if 文など) です。

条件分岐がなければ、一本道で読み下していけばいいのでバグが入り込む余地は大変少なくなります。

ということで、

  • 条件分岐を書かなくていいように書く
  • 条件分岐を書くなら、わかりやすく局所化して書く
select
  c.id
from
  user u
  join
  recipient r
    on (u.id = r.user_id)
  join
 conversation c
  • スローテスト問題
    • なぜスロー?
      • DB アクセス、GUI からのテスト、etc
    • 対策は?
      • 並列実行
      • GC 止めたら速くなったYO!
      • setup に時間のかかるリソースを prefork するように
    • ほんとにそれ対策になってるの?
      • CI 管理者が今あるテストを前提に高速化をする話と明日書くコードが遅い話は混ぜちゃダメ
  • 明日書くコードは生まれながらに高速に書けばいい
@sunaot
sunaot / exception.md
Created August 2, 2013 09:13
例外設計の話

例外設計の話。

こんな指針がいいのかなー 2013 夏 ver.

例外の目的とは?

.NET の「例外のデザインのガイドライン」にもこう書いてある。