u16suzuの blog

日々学んだことのメモブログです。

1 on 1 についてのまとめ

最近、自分の周りで 1 on 1 をやる機会が多くなってきた。

そんな折に、タイムリーにも WEB+DB PRESS

ひげぽんさんが 1 on 1 の記事を書いていらして、

とても良い記事だったので、後から見返しやすいようにまとめてみました。

1 on 1 を行う目的

  • 半年の1年の評価面談で、寝耳に水のマイナス評価を突然うけるのを避けたい
    • 半年前から判明していた問題点を評価面談の時に言われても遅い(汗
    • これをなくすために、1on1で小さなフィードバックのループを維持したい

1 on 1 の枠組み

  • 1~2週間に1度の頻度で
  • 1回30分程度
  • 2人で共有できる議事録を作成し, あらかじめ話したいことを箇条書きで書いておく

1 on 1 でマネージャと話すとよいこと

  • いま困っていること
    • ブロックされていることなどマネージャが直ちに行動を起こすべきこと
  • プロジェクトの進捗
  • 人に関わる相談があれば
  • キャリアマネジメント
    • この先、5年後、10年後どうなっていたいのか
  • 社内の最新事情
    • manager たちの中で問題になっていること
    • 組織変更の予感など
  • チーム貢献
    • チームで困っている人がいる場合、MTG, work flow で改善できそうなことはないか
    • チームやマネージャーの生産性向上に寄与できると素晴らしい

1on1 をスムーズに進める為の工夫

  • 2人で共有できる議事録を作成しよう
    • あらかじめ、話したいことを箇条書きで書いておくと話がスムーズに進む
  • マネージャーとの間に、仕事以外の共通の話題が1つあると導入部分によい

マネージャからみた場合

  • 広い質問をする
  • 8割聞き役になる
  • その人が期待されている役割やパフォーマンスを一緒にみていく
    • よくできている部分
      • 大げさなくらいにほめる
    • 改善できそうなポイント
      • 「できていない」という否定の説明ではなく、「こうするともっと良くなる」という肯定的な説明をしよう

WEB+DB PRESS Vol.99

WEB+DB PRESS Vol.99

  • 作者: ?橋健一,谷口禎英,井本大登,山崎勝平,大和田純,内村元樹,坂東昌哉,平田敏之,牧大輔,板敷康洋,大?浩崇,穴井宏幸,原口宗悟,久田真寛,ふしはらかん,のざきひろふみ,うらがみ,ひげぽん,池田拓司,はまちや2,竹原,片田雄樹,渋江一晃,WEB+DB PRESS編集部編
  • 出版社/メーカー: 技術評論社
  • 発売日: 2017/06/24
  • メディア: 大型本
  • この商品を含むブログを見る

リトライ処理のメモ

Rubyでリトライ処理をする際のテンプレ。再帰を使って綺麗に書ける。

class RetryException < StandardError; end

def foo
  p Time.now
  raise RetryException
end

def retry_foo( rc = 3)
  begin
    foo
  rescue RetryException => ex # RetryException以外はretryしない
    retry_foo( rc - 1 ) if rc > 1
  end
end

retry_foo

これだと、複数のメソッドに対応できない。 後で、blockで処理を受け取るようにしたい。

追記: retry 制御構文というものがあったので、それを使って書き直してみた。

def foo
  p Time.now
  raise
end

# 単純にfooメソッドをretryする
def retry_foo(count=3)
  c = count
  begin
    c = c - 1
    foo
  rescue
    retry if c > 0
  end
end

# 受け取ったブロックをretryする
def retryer(count=3)
  c = count
  begin
    c -= 1
    yield
  rescue
    retry if c > 0
  end
end

# retry_foo(5)
retryer(3) do
  foo
end

Object#methodについてメモ

この書き方ができるの知らなかった.

# レシーバがself. (Object#methodはレシーバとメソッドの実態を封入する.)
[1,2,3].each( &self.method(:puts) )
[1,2,3].each( &method(:puts) ) # selfを省略できる
[1,2,3].each{|i| puts(i) }

こちらはたまに使う.

# レシーバが配列の各要素.
p [1,2,3].map( &:to_s )
p [1,2,3].map{|i| i.to_s }

Refer

MySQLのパーティションのメモ

パーティションのサイズを確認 check size of each partitions

mysql> use information_schema;
mysql> select partition_name,data_length,index_length from partitions where table_name = 'entries';

entries テーブルのパーティション一覧を表示する

use INFORMATION_SCHEMA;
SELECT TABLE_SCHEMA, TABLE_NAME, PARTITION_NAME, PARTITION_ORDINAL_POSITION, TABLE_ROWS FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME='entries';

パーティションを削除する

ALTER TABLE entries DROP PARTITION p201308;

パーティションを追加する

  • 後で書く

Refer

定数を定義する

module Constants
  GOLD_DEFAULT = 100
  ITEM_MAX_COUNT = 255
end

p Constants::GOLD_DEFAULT, Constants::ITEM_MAX_COUNT
# => 100
# => 255
p Constants.constants
# => [:GOLD_DEFAULT, :ITEM_MAX_COUNT]
  • 定数は初めだけ大文字であればよいのだが、全部大文字の方がしっくりくる

refer

現在見ているページのmarkdown形式のリンクを生成するブックマークレット

javascript:(function(){prompt('%E3%82%B3%E3%83%94%E3%83%BC%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84',%20%20%20%20%20'-%20['%20+%20document.title.replace(/([\[\]])/g,'\\$1')%20+%20']'%20+%20'('%20+%20location.href%20+%20')');})();

実引数側でのアスタリスク(*)の使用例メモ

  • 実引数側でのアスタリスクの使用例メモ。配列オブジェクトを展開してメソッドの各引数に入れてくれる。便利。
def foo(name, val)
  "#{name}: #{val}"
end

ar = [[:a, 1], [:b, 2], [:c, 3]]

ar.each do |elem|
  puts foo(*elem) # here
end

こちらの記事のscivolaさんのコメントを参考にしました。

Ruby初心者を脱した人が悩みがちな、ちょっと特殊な記法・演算子・イディオム - Qiita