2017-01-01から1年間の記事一覧
Goで開発しているときに 標準パッケージの動作確認したい ライブラリの動作確認したい 簡単なスクリプト(HTTPやgoroutineなど)を書きたい と思って調べてみました。 Rubyならirbやpryを使ってコンソールで簡単な動作検証を行えたり、変数の内部見ることが…
Go+GAEの環境でCloudDataStoreからデータを取得するときに Get() GetMulti() GetAll() の挙動の違いでハマったので備忘録として挙動をまとめておきます。 Datasotreのライブラリ datastore https://godoc.org/google.golang.org/appengine/datastore googlea…
GAEではmemcache一択 appengineのmemcacheパッケージを使ってみました。 リファレンスはこちら https://cloud.google.com/appengine/docs/standard/go/memcache/reference goでキャッシュを扱うときに最初 go-cache を使おうと思っていたのだけれど、GAEでキ…
Preference ▶ Editor ▶ Appearance で show right margin をoffにする これでソフトラップがoffになる。 goは変なところでソフトラップがかかって改行されるとコンパイルエラーになるのが嫌なので、ソフトラップをオフにしてます。 参考 http://samuraism.co…
※ IDE…統合開発環境 エディタをカスタマイズすること エディタをバリバリカスタマイズしてこそエンジニアだ(# ゚Д゚) なんてことを思っていた時期もありました。 (今でも少し思ってます) バリバリエディタをカスタマイズして、キーバインドバチバチで、開発効…
少し前に以下の記事をはてブで見つけたので、いい機会だったので使ってみました。 http://wonderwall.hatenablog.com/entry/2017/08/07/222350 普段はfishを使っているので、fish上では ls コマンドを拡張して exa コマンドを叩けるようにしました。 インス…
前置き ginやechoと言ったgoのwebフレームワーク(FW)を使って開発するときに、glideみたいなパッケージ管理ツールを使って依存パッケージを管理しているケースはよくあると思います。 その依存パッケージの管理ディレクトリはプロジェクトルートではなく、…
GoogleCloudStrageでkey(RDBでいうところのprimarykey)をフックにしてentityをselectしようと思ったらちょっとハマったのでそのメモ 最初に書いたクエリ SELECT * FROM KIND_NAME where ID = 123 この形式ではentityを取得できない。 正しいクエリ SELECT * …
goには2つの値の型があります 値型 参照型 値型と参照型 関数に渡されるときにコピーされる。 そのため、呼び出し元で引数に指定した値型の変数は関数に渡されるタイミングでコピーされ、コピーされた値が関数の呼び出しに使用されるので、呼び出し元の値は…
shellを二重で使ってみてます。 使っているshell fish zsh 用途によって分ける 普段使いのshellはfishです。 もともとzsh使っていたのですが、なんとなく使っていてもっさり感が出てきたのと、いちいちrcファイルでカスタマイズするのがめんどくさくなってき…
Golangのtemplateファイルでisやnot equal、and条件、or条件の書き方を調べたので備忘録です。 ※ 適宜追加していきます。 is評価 {{ if eq num 1 }} // if num == 1 // 以下同義 {{ if eq ( .num, 1 ) }} not equel評価 {{ if ne .num 1 }} // if num != 1 /…
理解がなんとなく浅いと感じていたGolangの抽象化について簡単にまとめました。 goのサンプル package main import "fmt" type Stringer interface { String() string } // Stringerを実装する type Hex int func (h Hex) String() string { return fmt.Spri…
マイクロサービスアーキテクチャを読んだ話 去年くらいに話題になった「マイクロサービスアーキテクチャ」を最近読みました。 仕事でマイクロサービスアーキテクチャを採用しているプロジェクトに関わることがあり、自分自身今までマイクロサービスアーキテ…
GolangでUnixタイムをISO8601形式に変換したいということがあって、実際に返還する際にFormatの指定の仕方でかなりハマりました。 こういった方の記事を参考にしたらすぐわかったのですが、 GO言語での日付処理 そもそもGoで時刻表記をするときにちょっとク…
重複削除処理を実装する ruby でいうところの uniq メソッドみたいなものが golang の slice にもないのかと思って調べてみたけどないらしいので、重複のある slice に対して独自に処理を実装しなければ行けない。 go は非常にシンプルでLL言語をずっと書い…
goで外部コマンド(デフォルトのコマンドやshellスクリプト)を実行するCLIツールを作ったのでその触りをまとめます。 内容は、goでCLIツール書く時の実装方法について。 やったこと shellスクリプトを外部コマンドとして叩く goの os/exec パッケージを利用…
fishでのお話。 ターミナル上で特定の文字列を変数にセットして使う方法 $ set x (ls) | echo $x # 当該ディレクトリ上で ls した内容を出力する set x (何か出力をともなうコマンド) とすると () 内で実行されたコマンドの出力結果を x に格納する。 セット…
fish を使っていて、 eval の設定方法がわからなかったので調べました。 参考 eval command in config.fish # evalの設定方法 # bashrc での rbenv の設定 # eval "$(rbenv init -)" と同様のことを書きたい時 eval (rbenv init - | source) # その他の書き…
ユースケース オブジェクトの中に意図するプロパティを取り出せるのかを確かめる方法に、オブジェクトが持つメソッドを調査するという方法があります。 rubyではjsonオブジェクトのプロパティもメソッドとして取り出せるので、プロパティ not found エラーが…
ユーザーネームを変更しようと思った背景 もともとのgithubのユーザーネームは ememhr っていうのを使っていたのですが、これ、前職で会社用のgithub.comを作るために、もともと作っていた個人用のgithubとは別にとったもので、インターネット周りでは全ての…
goはオブジェクト指向言語とは違って、書いていてC言語を書いている印象に近く、OOPで言うところのクラスが構造体で、クラスにメソッドを定義することは、構造体にメソッドを定義することになる。 しかし、クラスでカプセル化したりするわけではないので、構…
zshの管理がめんどくさくなってきたのでもう少しイケてるshell環境をつくれないものかと調べてたら、fish なるものがあるらしく、使い勝手がよさげなので、期間限定で乗り換えてたときの備忘録 パッケージ管理 oh-my-fish fisherman 1と2もどちらもパッケー…
http.HandlerFuncを使う場合 package main import ( "fmt" "net/http" ) func main () { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request){ w.Writer([]bytes(`表示内容`)) } } if err := http.ListenAndServe(":8080", nil); err ! = ni…
go言語を学び始めました。 最近専らクライアントサイドの開発がメインだったので、サーバーサイドやりたくなったので、徐々に浸透してきたgoについてキャッチアップはじめました。 環境構築 環境 MacOSX Sierra go 1.8 エディター atom goのインストール と…
『なぜ、あなたの仕事は終わらないのか スピードが最強の武器である』を読んでみての感想。 新卒時代に、当時の上司から口酸っぱく言われていたことが全て書いてあり、当時の上司はこの著者の言っていることを指して指導してしくれていたのだとここに来て気…
トラブル概要 MacOSX Sierraを2017/04/06時点の最新版にアップデートしたら $ mysql mysql not found になってしまった。 対応した手順 brew list でインストールされているか確認 $ brew list | grep mysql mysql56 mysql@5.6 入っている… mysqlの最新版は5…
アプリのTableViewから詳細画面に遷移するインターフェースを考えます。 詳細画面に遷移する時に、HTMLをViewに描画するとき、 URLをLoadして直にwebViewを読み込む HTMLの文字列をHTMLの段組みに合わせてWebViewで表示する。 参考 How to load a HTML strin…
今日から新年度ですね。 渋谷ではおそらく新卒入社と呼ばれるみなさんが飲み会をしてました。 賑やかでこの時期ならではの華やかな空気感が色んなところに感じられるようになりました。 自身も新卒で社会に出てから4年目になってしまい、世間的ににはまだま…
目次 unrecognized selector sent to instance のエラーが出た時 Cannot override with a stored property refreshControl unrecognized selector sent to instance のエラーが出た時 RefreshControlを使ってSwipe & Refreshを実装しようとした際に、 unreco…
概要 エリックエバンズの「ドメイン駆動設計」を読む中で、アプリケーション開発に適用する時に感じてきた違和感をまとめてみました。 まだ前半しか読み終えてないので、後半を読んだ際にはまた別のエントリーでまとめようと思います。 レイヤー化アーキテク…