人は導いてくれるものを欲する。成功するためにはそれにしたがっていさえ入れば良いというような、「真実の法則」の探求は、ソフトウェアにおいて新しいものでもないし、また、ソフトウェアに限定されるものでもない。
- ソフトウェアの方法論から得られるものは何か、その方法論の限界はなにかを知っておくことが重要
- 良いソフトウェアを作り出す絶対確実な方法というものはない
毎回bundle installするのはコストがかかるため、Gemfileに変更がない場合はキャッシュしたい。
参考 https://blog.freks.jp/github-action-cache/
+ - name: cache bundle directory
+ uses: actions/cache@v1
+ with:
function! Tree(lst, ret) | |
if empty(a:lst) | |
return a:ret | |
endif | |
let _ = a:ret + get(a:lst, 0) | |
return Tree(a:lst[1:-1], _) | |
endfunction | |
echo Tree(range(11), 0) | |
"=> 55 |
$ ./file_read [~/d/src/go] | |
ReadFile:148545 elapsed:167.706µs | |
ReadLine:144946 elapsed:209.144µs | |
Scanner:144946 elapsed:553.246µs |
$ ./map | |
map[1:hoge] | |
&map[1:hoge] | |
map[1:hogehoge] | |
&map[1:hogehoge] |
package regexp | |
import ( | |
"regexp" | |
"testing" | |
) | |
func BenchmarkRegexp1(b *testing.B) { | |
re := regexp.MustCompile(`(iTunes)/(\d+)\.(\d+)`) | |
for i := 0; i < b.N; i++ { |
package main | |
import ( | |
"bytes" | |
"flag" | |
"fmt" | |
"net" | |
"runtime" | |
"strconv" | |
"sync" |
depのコードを読んで面白いとか思った所
https://github.com/golang/dep/blob/4105d3a/context.go#L200-208 こういった任意の型のコンテナの探索はGenericsだ!と息巻く人もいると思うけど、stringしか扱わないならベタで書いたほうが僕は読みやすくていいと思う。
なんか毎回毎回、gitのソースコードを読んで、ref-filter.cのvalid_atomだなーと確認するのが超めんどい。なんとかしたい。
uuidgen | tr '[:upper:]' '[:lower:]' # Mac OS(darwin) generate default uppercase |