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