エンジニアの立ち振舞: 出来ない時でも代価案を出す
はじめに
というお題があって面白そうなので乗っかってみる 今回は出来ない時でも代価案を出すについて
代価案を出す
エンジニアをやっているとディレクターから
- 〇〇みたいなのできない?
- ××使って△△みたいなことやりたいんだけど
と依頼を受けることがある。
調べて実現可能なことなら「できますね」と答えられるのだが、公開されているAPIの制限だったりで技術的に困難なことがあることが少なからずある
そういう時は 「できないですね」で終わるのでは無く
- 「〇〇みたいなことはできないですけど、 ♢♢ぐらいならできますよ」
- 「××を使っては難しいですけど、□□を使ってなら△△は実現できると思います」
と必ず代価案を提示するようにしている。
理由としては
- 本来実現したい事は質問の内容が全てではない事が多い
- ディレクターが気を使って例を上げてくれている事が多い
- 本来やりたいことは似ているが別の事がある
- いちエンジニアとして出来ないとだけ答えるのは悔しい
- 代価案を出すことで〇〇さんにとりあえず聞いてみるかみたいな空気が出来る
パッと思いつく程度ではこのぐらいかな (もっとあると思うけど)
最後に
- 色々な立ち振舞が出てくると嬉しい
- 参考になるものがあれば真似していきたい
みんなのGo言語を読んで
iPhone7の発表やRubyKaigiのことでTLが賑わう今日この頃、みなさんいかがお過ごしでしょうか。 自分は新型PS4が気になるところです。
さてみなさん、明日 9月9日は何の日でしょうか?
そうですね!! みんなのGo言語 の発売日ですね!!
- 作者: 松木雅幸,mattn,藤原俊一郎,中島大一,牧大輔,鈴木健太
- 出版社/メーカー: 技術評論社
- 発売日: 2016/09/09
- メディア: Kindle版
- この商品を含むブログを見る
著者の1人である @fujiwra さんから発売日より、一足先に頂くことができたので読んだ感想を書かせていただきます。
はじめに
自分は業務のメイン使用言語はPerlで業務で使っているツール類(rmlp, google-play-review-watcher をGoで書いたり、趣味で使うツールも最近はGoメインで書いている感じです。
なので、今回の感想はそんなバックグラウンドがある人が書いた感想だと思っていただければと思います。
感想
各章どんなことが書かれているのかは @soh335 さんが書かれている
みんなのGo言語【現場で使える実践テクニック】 に よくまとめられているのでこちらをご覧下さい。
全体的に自分の知らなかった知識や改めて理解を深めることが多く全体的にとてもためになりました、読んでいて特にためになったのは
の章が特にためになりました
3章
自分が担当しているサービスのプロダクション環境で実際に利用しているstretcher、fluent-agnet-hydraの開発を通して得た知見を惜しみなく紹介してくれています
- Goで外部コマンドを使うときって…
- この処理にタイムアウト機能をつけたいんだよな
- goroutineを途中で止めたいんだけど
とアプリケーションやコマンドラインツールなどを作っていて 以上の事を調べたり/嵌ったりしたことがある人は読む価値があると思います。
また、以下の発表資料を読んでなるほど~~~ってなった人も、詳しく説明がされているのでオススメです。
4章
Goはクロスコンパイルが可能なので、Goを使ってコマンドラインツールを作ってみた人もいるのでは無いでしょうか。
そんな中で、
コマンドラインを一作ったことがある人は一度は経験した(嵌った)であろう事柄が紹介されているので、 コマンドラインツールを作った事がある人/これから作ってみようかな と思っている人はいかがでしょう。
表紙
かわいい
さいごに
No patch utility found の対処法
$plenv install 5.xx.xx … No patch utility found ABORT
となりエラーになった
$ which patch /usr/bin/which: no patch …
となり patch
コマンドがインストールされていないのが原因だった
$ sudo yum install -y patch
して無事解決
めでたしめでたし
参考記事
brewでのnginx openrestyのインストールに嵌ったのでメモ
はじめに
OpenResty を使ってやりたいことがあったので
手元の環境(Mac)にhomebrew
を使ってインストールしようと思ったらエラーがでて嵌ったのでメモ
TL;DR
brew install opensll brew link --force opensll brew install ngx_openresty
エラーになる
nginx openresty を homebrew
でインストールする場合は
$ brew install ngx_openresty
でインストールできる
ただ、今回実行したら
... checking for OpenSSL library ... not found ./configure: error: SSL modules require the OpenSSL library. You can either do not enable the modules, or install the OpenSSL library into the system, or build the OpenSSL library statically from the source with nginx by using --with-openssl=<path> option. ...
のような感じでopnesslのパスが見つけられない様子でエラーになった
解決方法
homebrew
でopenssl
をインストールしたら解決した
brew install openssl
このままだと /usr/bin/openssl
が参照されるので
brew link --force openssl source ~/.zshrc
これで homebrew
でインストールしたopenssl
が参照されるので
brew install ngx_openssl
が上手く行った
net/httpで静的ファイルを返す
追記 (2016/04/13)
完全に読み間違えていましたね やっちゃいけないそうです
やるならこう
func main() { http.HandleFunc("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static")))) http.ListenAndServe(":3000", nil) }
まとめ
ドキュメントをみましょう
軽いwebアプリケーション作ってたら読み込んだjsがhtmlでエラー出てて??? ってなってた
よくよく調べたら /static
以下のhandlerを定義してなかったので/
にマッチしてtopのhtmlが返ってきてたからだった
調べたらこんな感じで静的ファイルを返せばよさそう
http.Handle("/static/", func(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, r.URL.Path[1:]) })
GoでMySQLからdatetimeのデータを引いてtime.Time に食わせるときに嵌った
db, err := sql.Open("mysql", "<user>:<password>@/<db name>?parseTime=true&loc=Asia%2FTokyo")
parseTime=true
をつけるといい感じにparesしてくれる
ただこれだとUTCになるっぽうので loc=Asia/Tokyo
をつけるとよい
#shibuyago #2でLTしてきました
はじめに
@suzu_v さん VOYAGE GROUP さん会場提供及び、 🍺と🍕の提供ありがとうございました
🍕と🍻 ごちそうさまです🙏 #shibuyago pic.twitter.com/JnHK8nh7RB
— こんぼい。 (@Konboi) 2016年3月22日
発表資料
こちら発表資料になります
自分のツールの紹介もしつつ、時期的に新卒氏にも読んで欲しい内容にまとめた感じです
さいごに
- 最初からビール飲みピザ食べれるのはお腹減らなくて良いですね
- ただ、ビール最初に飲んじゃうと発表時に大分眠くなるという罠w