Shinjuku.LT#18に行ってきた

# Shinjuku.LTにいってきた
[Shinjuku.LT](http://www.shinjukult.tk/#/aboutus) に行ってきたのでレポ
スライドは上がり次第追加していきます。

# [DI with Reader Monad](https://speakerdeck.com/to4iki/di-with-reader-monad) - @to4iki 
## tl;dr
* swiftでDIする時にやり方が確立されていない
* Reader Monadを使ってみたDIの説明

## 見たこと・聞いたこと

```swift:関数モナド(例)
(input) -> Elementのラッパー
struct Reader <Input, Element> {
    typealias WorkFactory = (Input) -> Element
    private let workFactory: WorkFactory
    func execute(_ input: Input) -> Element {
        return workFactory
    }
}
```

```swift:使用例
let reader = Reader<Int, Int> { $0 + 2 }
reader
    .map { $0 * 2 }
    .map { "value is \($0)" }
    .execute(5) // "value is 14"

reader
    .flatMap {
        Reader<Int, Int> { y in x * y }
    }
    .execute(4) // 24
```
* 評価するまで依存を遅延させられるので良い！
* `execute`に値を渡した時点で評価が確定する
* Reader Monadを使うと関数単位で細かなDIが出来る
* DIしたいものは型を`Reader`にしないといけないのでロックインされる
* 型がネストしていったときの扱いが厳しい

## まとめ
* DI手法の一つにReader　Monadがある
    * swiftで扱うには少しむずかしいかも
* **チームや文化に応じて適切な手法を使っていこう**


## 宣伝
[builderscon2018](https://builderscon.io/tokyo/2018) あります！
[Battle Conference 2018](https://bcu30.jp/) あります！

## 所感
* 全力で関数型に統一してるコードじゃないと使いづらくなるのかー感
* モナドもDIも分かってる力無いので勉強しようと思いました

# SearchSuiteのシステム構成について
* 諸般ノ事情ニヨリ割愛

# 引っ越しを支えるかもしれない技術 - [@yuhsno](https://twitter.com/yuhsno)
## tl;dr
* 最近引っ越しをした
* 知見を共有

## 引っ越しに使ったサービス
* 本のダンボール買い取りサービスを使った
    * 引越し後に情報足りないってダンボールごと送り返された
* [ミニクラ](https://minikura.com/)のような貸し倉庫っぽいサービスで私財減らしておくと良かったかも
* 物件探しはレインズを使いたい

## 所感
* 笑顔が多いLTだった
* そのうち本買い取ってもらう

# ツリー構造のデータをRDBで扱う - [@ftsan](https://twitter.com/futesi_nebusoku)
## tl;dr
* ツリー構造のデータをRDBで扱う方法三種の説明
    * 隣接リスト
    * 経路列挙
    * 閉包テーブル

## 隣接リスト
* ツリーの構造が深くなるにつれて情報の取得、更新が困難になる
    * SQLがややこしい、joinが増える
    * もしくはSQL発行回数が増える(キャッシュ使おう)
* 隣接リストを使ったツリー構造は`ナイーブツリー`と呼ばれるアンチパターン
    * DBの実装によっては問題なく使える場合もある

## 経路列挙
* 親の全部のIDを文字列としてもつ
    * `foo/bar/baz` のような感じで自分のカテゴリまでのパスを文字列で持つ
* 参照は簡単
* 挿入・削除も簡単
* 更新・削除は参照整合性を維持することが出来ない

## 閉包テーブル
* ツリー全体のパスを別のテーブルに格納する方式
    * ツリー名テーブルとツリー構造テーブル
* 見た目結構複雑な感じになる(に見える)
* 参照簡単、インデックスきかせやすい
* 挿入・削除も難しくない
* 参照整合性を保てる
* 初見殺し
* データ量が増える

## 所感
* 各手法の最後にまとめがあって分かりやすかった
* テーブル構造はよく考えよう

# 第一回 デザインクイズ - [@dende6231](https://twitter.com/dende6231)
## tl;dr
* [クイズで学ぶデザイン・レイアウトの基本](https://www.amazon.co.jp/%E3%82%AF%E3%82%A4%E3%82%BA%E3%81%A7%E5%AD%A6%E3%81%B6%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%BB%E3%83%AC%E3%82%A4%E3%82%A2%E3%82%A6%E3%83%88%E3%81%AE%E5%9F%BA%E6%9C%AC-%E3%83%A4%E3%83%9E%E3%83%80%E3%82%B8%E3%83%A5%E3%83%B3%E3%83%A4-ebook/dp/B00FZIZMBY)の例を参考に良いデザイン、良くないデザインを考える
* クイズに答えるとイイねとお菓子がもらえる

## 問題.1
* 同系色でまとめていると違いや特徴が表現しづらい
* **コントラスト**が有ると特徴をはっきりさせやすい
* シンメトリな配置で比較しやすい

## 問題.2
* 写真や雰囲気に合わせて色やフォントに統一感があると良い
* 色数やフォントの種類が多すぎると統一感なくなる

## 問題.3
* 同じような要素の大きさが並ぶと何を強調したいのか分からなくなる
* 余白がないと読みづらい
* メリハリがあると一番に伝えたいことがわかりやすい
* **ジャンプ率**を利用して余白をもたせると見やすい

## 問題.4
* **グリッド**を利用したレイアウトにすることで情報が要素に分かれるので見やすい

## 問題.5
* 関連するジャンルに分類すると見やすい

## まとめ
* 色の使い方に気をつけよう
* イメージを統一させよう
* メリハリをつけよう
* 余白を上手に使おう
* 揃えるところは揃えよう
* グルーピングしよう

>　**「誰のためのデザインなのか、何のためのデザインなのか」**

## 所感
* イイね富豪になった
* 普段あまり気にしてなかったけどデザインを見る良い機会だった
* お菓子美味しかった

# Bug Bashを1時間やって他チームに細かいIssueを洗い出して貰いました - @HomMarkHunt 
## 内容
* AWS Lambdaの話をしようと思ってやめた
* 代わりに[こちらを参照](http://honmarkhunt.hatenablog.com/entry/2018/03/26/122136)

## Bug Bash
http://blog.kyash.co/entry/2018/02/02/170530
こちらの取り組みを参考に自分のプロダクトでも実施してみた話

## まとめ
* Bug Bashすごく楽しかった
* 公然と悪意ある攻撃できるの良い
* 自分のところでもしたい（したい）
* [Shinjuku.LT#18](http://honmarkhunt.hatenablog.com/entry/2018/03/24/173856)の話はこちらも

# カイゼンジャーニー読んだよ - [@_yum_t](https://twitter.com/_yum_t)
## 内容
* [カイゼン・ジャーニー](https://www.amazon.co.jp/%E3%82%AB%E3%82%A4%E3%82%BC%E3%83%B3%E3%83%BB%E3%82%B8%E3%83%A3%E3%83%BC%E3%83%8B%E3%83%BC-%E3%81%9F%E3%81%A3%E3%81%9F1%E4%BA%BA%E3%81%8B%E3%82%89%E3%81%AF%E3%81%98%E3%82%81%E3%81%A6%E3%80%81%E3%80%8C%E8%B6%8A%E5%A2%83%E3%80%8D%E3%81%99%E3%82%8B%E3%83%81%E3%83%BC%E3%83%A0%E3%82%92%E3%81%A4%E3%81%8F%E3%82%8B%E3%81%BE%E3%81%A7-%E5%B8%82%E8%B0%B7-%E8%81%A1%E5%95%93/dp/4798153346/ref=sr_1_1?ie=UTF8&qid=1522084579&sr=8-1&keywords=%E3%82%AB%E3%82%A4%E3%82%BC%E3%83%B3%E3%82%B8%E3%83%A3%E3%83%BC%E3%83%8B%E3%83%BC)の紹介

## カイゼン・ジャーニー
* 小説+解説な構成
* 実話のエッセンスも入っているから身につまされる
* リアルな状況に則した形で色々なプラクティスを紹介
* 61の手法を紹介

## 所感
* LTぽくてよかった！
* **「それで、あなたは何をしている人なんですか？」**には答えられない :cry: 

# 過去の内容
[Shinjuku.LT#8](https://qiita.com/moomooya/items/8592583287e272ff73b6)
[Shinjuku.LT#16](http://honmarkhunt.hatenablog.com/entry/2018/01/20/152505)
[Shinjuku.LT#17](http://honmarkhunt.hatenablog.com/entry/2018/02/18/181052)