Golang完全初心者がチュートリアルを完了させればなにができるようになるか
by
katryo
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Golang完全初心者がチュートリアル を完了させればなにができるように なるか @katryo
Slide 2
Slide 2 text
自己紹介 • @katryo • 新卒1年目 • これまで作ったもの – h/p://denkinovel.com • Rails4製 • 言語 – Ruby, Python, JavaScript 2年 • ウェッブ開発が主目的です – C, Java, Obj-‐C ちょっとだけ – 主にLL
Slide 3
Slide 3 text
Go 3 週 間
Slide 4
Slide 4 text
• A Tour of Goは
Slide 5
Slide 5 text
A Tour of Go • 完全にはやってないです(´・_・`) • 演習問題をしっかり解くのはちょっとしんどい • 書いてあることを読んで、RUNしただけで す…… じっくり時間をかけて 演習問題を解くと いいことある気がする
Slide 6
Slide 6 text
結論
Slide 7
Slide 7 text
コマンドラインツールを作れた • WordNetで上位語を再帰的に発見するコマン ドラインツール • h/ps://github.com/katryo/wordnet_go • 以前Python3で書いた h/ps://github.com/katryo/wordnet_python を Goに書き換えたもの
Slide 8
Slide 8 text
デモ
Slide 9
Slide 9 text
作った感想 • DRYにするやりかたがまだわからなくてつらい – 現在、全部1ファイル – 別packageにしてimportするというやりかたがよさそう – SQLiteからレコードを引き出すという、似た処理を同じ 関数にまとめる方法わからない – チュートリアルちゃんとやります(´・ω・`) • stringが使いやすい – charじゃなくてstringが基本 – LL感覚で文字列を処理できる • UTF-‐8前提なので、非la]n1語ではPythonより使いやすいか も
Slide 10
Slide 10 text
結論に至るまでに得たもの
Slide 11
Slide 11 text
メモリの気持ちが ちょっとだけわかった • Golangは変数にメモリ領域割り当て => 初期 化の手順が必要 • MutableなArrayは メモリ管理がめんどいことを把握 • LLでは味わえないメモリとの触れ合い • でもGCはあるよ! やった!
Slide 12
Slide 12 text
Golangは学習コストが小さくてよい • Pythonを意識した仕様の小ささ – len()関数とか、既知の語に寄せている – 型を変数名の後に書くなど直感に従った (かつ実用的な)書き方 • No クラス • No オブジェクト指向 • Structにメソッドは作れるけど、Rubyとかの、クラスを基本に したオブジェクト指向とは別物 • public/private は命名で管理(言語仕様) – 大文字で始まる関数はpublic
Slide 13
Slide 13 text
LL使いが Golangを始めるにあたって 戸惑ったこと
Slide 14
Slide 14 text
GOのインストール • Homebrewでインストールすると、GOROOTを 自分で設定しないといけない • おとなしくpkgファイルでインストールしました
Slide 15
Slide 15 text
GOPATHの流儀 • 好きな場所に設定してよい • あんちぽ(kentarok)さん流 – GOPATH=$HOME – h/p://blog.kentarok.org/entry/ 2014/06/03/135300 – ghqと組み合わせて使っている – こわいので自分ではやれてないです • 自分のやりかた – GOPATH=~/repositories
Slide 16
Slide 16 text
Errorは戻り値 • 例外処理がない • ちょっと戸惑うけど慣れたら問題ない • Errorが発生しうる場面ではdeferを利用すると、 ファイルを開いたりRDB使うときに便利 – Pythonのwithみたいな機能
Slide 17
Slide 17 text
Java, Cとくらべて • 学習コストがとても小さい – 最大の利点 – めんどうなことを書かなくていい • public sta]c … • 気軽に書いて、動かせる – スクリプト感覚でgo runできる • LL使いが最初に学ぶ静的言語として最適だと思 う – まだこれから広まりそう – 自分ではGoSublimeを使って書いたけど、IDEを使うと 恩恵にあずかれると思います
Slide 18
Slide 18 text
まとめ
Slide 19
Slide 19 text
Goは コマンドライン ツール くらいなら すぐに作れる Goodな言語
Slide 20
Slide 20 text
Thank you for listening