Skip to content

Instantly share code, notes, and snippets.

Avatar
🎯
Focusing

Makoto Shiga MacoTasu

🎯
Focusing
View GitHub Profile
@MacoTasu
MacoTasu / datetime-vs-datetime-epoch.pl
Last active Sep 1, 2015
Benchmark DateTime vs DateTime::epoch
View datetime-vs-datetime-epoch.pl
#!/usr/bin/perl
use strict;
use utf8;
use warnings;
use DateTime;
use Benchmark qw(:all) ;
my $now_1 = DateTime->now;
@MacoTasu
MacoTasu / pre-commit
Last active Jun 28, 2019
commitするときに、差分のあったファイルのみgo fmtを実行して、変なフォーマットがないかチェックするためのshellscript
View pre-commit
#!/bin/sh
before_diff_bytes=`git diff | wc -c`
diff_files=(`git diff --name-only HEAD ./`)
for diff_file in "${diff_files[@]}"
do
if [[ $diff_file =~ \.go$ ]]; then
gofmt -w $diff_file
fi
done
@MacoTasu
MacoTasu / gist:746d42c6cced111508b2
Created Jun 24, 2015
ダンゲル氏の傑作コード
View gist:746d42c6cced111508b2
func (k *Ksatriya) handle(method, path string, hf HandlerFunc, filterFuncs map[string]FilterFunc) {
k.router.Handle(method, path, func(w http.ResponseWriter, req *http.Request, args httprouter.Params) {
ctx := NewContext(req, args)
if ff, ok := filterFuncs[BeforeFilterFuncKey]; ok {
ff(ctx)
if ctx.Response().StatusCode() == http.StatusFound {
ctx.Write(w)
return
}
@MacoTasu
MacoTasu / gist:7ce1f00d434fe72e0710
Last active Aug 29, 2015
intaractve select bucket
View gist:7ce1f00d434fe72e0710
func getBucket(svc *s3.S3) string {
» var param *s3.ListBucketsInput
» resp, err := svc.ListBuckets(param)
» if err != nil {
» » assert(err)
» }
» var buckets []string
» for index, b := range resp.Buckets {
View mouse.pl
package Result::User {
use strict;
use warnings;
use utf8;
sub new { bless {}, shift }
sub to_model {
my $self = shift;
Model::User->new(user => $self);
@MacoTasu
MacoTasu / gist:3cd2d8d0b8af4ed759b7
Last active Aug 29, 2015
コードレビュー初心者視点
View gist:3cd2d8d0b8af4ed759b7
  1. 新しいチームに入って最初に見たコードなんでわからないことしか無いので、「なんでこうしてるんだ?」っておもったらまず聞くことを心がけた
  • 聞かないことには始まらないし、深い理由を追えない
  • 理由を聞くと思想がわかってくるから、他のコード見た時「あ、なるほどな」ってなるようになるのでいい
  1. コードで大切にしている方針を見ながらレビューするようにした
  • ポケットだと「良いコード = みんなが理解しやすいコード」みたいなのがざっくりあったからそれを意識してレビューしてた
  • ex) mapとgrep使いまくって一行で納めてるコードより、methodに細分化して名前をつけたコードのほうがみんな分かりやすい的な
  • チームで大切にしている考えをもとにレビューしていけば、いいプロダクトになる
  1. LGTMつかってこ 
View method override
#例えばAcme::Testにあるpingというメソッドを変更したかったら..
#このスコープ内だけでメソッドを有効にする
{
local *Acme::Test::ping = sub{
##ここに処理を書く
}
}
@MacoTasu
MacoTasu / irc-notification.pl
Last active Dec 16, 2015
script which contributes to irc from a command line
View irc-notification.pl
use strict;
use warnings;
use AnyEvent;
use AnyEvent::IRC::Client;
# conf
my $conf = {
irc => {
server => '*****',#server
channel => '#****',# channel
@MacoTasu
MacoTasu / gist:4230822
Created Dec 7, 2012
redirect実装したい
View gist:4230822
ackage Actlog::Controller::Login;
use Ark 'Controller';
use Actlog::Models;
use Try::Tiny;
use JSON::Types;
use Facebook::Graph;
use CGI;
You can’t perform that action at this time.