$30 off During Our Annual Pro Sale. View Details »

Golang完全初心者がチュートリアルを完了させればなにができるようになるか

katryo
June 17, 2014

 Golang完全初心者がチュートリアルを完了させればなにができるようになるか

http://connpass.com/event/6579/ での発表資料です

katryo

June 17, 2014
Tweet

More Decks by katryo

Other Decks in Technology

Transcript

  1. Golang完全初心者がチュートリアル
    を完了させればなにができるように
    なるか
    @katryo

    View Slide

  2. 自己紹介
    •  @katryo  
    •  新卒1年目  
    •  これまで作ったもの  
    –  h/p://denkinovel.com  
    •  Rails4製  
    •  言語  
    –  Ruby,  Python,  JavaScript  2年  
    •  ウェッブ開発が主目的です  
    –  C,  Java,  Obj-­‐C  ちょっとだけ  
    –  主にLL  

    View Slide

  3. Go



    View Slide

  4. •  A  Tour  of  Goは

    View Slide

  5. A  Tour  of  Go
    •  完全にはやってないです(´・_・`)    
    •  演習問題をしっかり解くのはちょっとしんどい  
    •  書いてあることを読んで、RUNしただけで
    す……
    じっくり時間をかけて  
    演習問題を解くと  
    いいことある気がする

    View Slide

  6. 結論

    View Slide

  7. コマンドラインツールを作れた
    •  WordNetで上位語を再帰的に発見するコマン
    ドラインツール  
    •  h/ps://github.com/katryo/wordnet_go  
    •  以前Python3で書いた
    h/ps://github.com/katryo/wordnet_python  を
    Goに書き換えたもの  

    View Slide

  8. デモ

    View Slide

  9. 作った感想
    •  DRYにするやりかたがまだわからなくてつらい  
    –  現在、全部1ファイル  
    –  別packageにしてimportするというやりかたがよさそう  
    –  SQLiteからレコードを引き出すという、似た処理を同じ
    関数にまとめる方法わからない  
    –  チュートリアルちゃんとやります(´・ω・`)  
    •  stringが使いやすい  
    –  charじゃなくてstringが基本  
    –  LL感覚で文字列を処理できる  
    •  UTF-­‐8前提なので、非la]n1語ではPythonより使いやすいか
    も  

    View Slide

  10. 結論に至るまでに得たもの

    View Slide

  11. メモリの気持ちが  
    ちょっとだけわかった
    •  Golangは変数にメモリ領域割り当て  =>  初期
    化の手順が必要  
    •  MutableなArrayは  
    メモリ管理がめんどいことを把握  
    •  LLでは味わえないメモリとの触れ合い  
    •  でもGCはあるよ! やった!

    View Slide

  12. Golangは学習コストが小さくてよい
    •  Pythonを意識した仕様の小ささ  
    –  len()関数とか、既知の語に寄せている  
    –  型を変数名の後に書くなど直感に従った  
    (かつ実用的な)書き方  
    •  No  クラス  
    •  No  オブジェクト指向  
    •  Structにメソッドは作れるけど、Rubyとかの、クラスを基本に
    したオブジェクト指向とは別物  
    •  public/private  は命名で管理(言語仕様)  
    –  大文字で始まる関数はpublic  

    View Slide

  13. LL使いが  
    Golangを始めるにあたって  
    戸惑ったこと

    View Slide

  14. GOのインストール
    •  Homebrewでインストールすると、GOROOTを
    自分で設定しないといけない  
    •  おとなしくpkgファイルでインストールしました  

    View Slide

  15. GOPATHの流儀
    •  好きな場所に設定してよい  
    •  あんちぽ(kentarok)さん流  
    – GOPATH=$HOME  
    – h/p://blog.kentarok.org/entry/
    2014/06/03/135300  
    – ghqと組み合わせて使っている  
    – こわいので自分ではやれてないです  
    •  自分のやりかた  
    – GOPATH=~/repositories  

    View Slide

  16. Errorは戻り値
    •  例外処理がない  
    •  ちょっと戸惑うけど慣れたら問題ない  
    •  Errorが発生しうる場面ではdeferを利用すると、
    ファイルを開いたりRDB使うときに便利  
    – Pythonのwithみたいな機能

    View Slide

  17. Java,  Cとくらべて
    •  学習コストがとても小さい  
    –  最大の利点  
    –  めんどうなことを書かなくていい  
    •  public  sta]c  …  
    •  気軽に書いて、動かせる  
    –  スクリプト感覚でgo  runできる  
    •  LL使いが最初に学ぶ静的言語として最適だと思
    う  
    –  まだこれから広まりそう  
    –  自分ではGoSublimeを使って書いたけど、IDEを使うと
    恩恵にあずかれると思います  

    View Slide

  18. まとめ

    View Slide

  19. Goは  
    コマンドライン
    ツール  
    くらいなら  
    すぐに作れる  
    Goodな言語

    View Slide

  20. Thank  you  for  listening

    View Slide