Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Golang完全初心者がチュートリアルを完了させればなにができるようになるか
Search
katryo
June 17, 2014
Technology
2
3.9k
Golang完全初心者がチュートリアルを完了させればなにができるようになるか
http://connpass.com/event/6579/
での発表資料です
katryo
June 17, 2014
Tweet
Share
More Decks by katryo
See All by katryo
How to create an automated test suite for the Chromium based app and the Unity app
katryo
0
6.6k
Denkinovelをどうして作り続けているのか
katryo
0
2.3k
Sprockets絶ちに挑戦した
katryo
4
1.8k
業務で使えるGolang
katryo
3
1.7k
Rails3で作り始めたアプリケーションをちょっとずつ改善してゆく道のり
katryo
3
1.9k
Railsアプリの運営とQOL爆アゲアイテム
katryo
0
380
Other Decks in Technology
See All in Technology
【JAWS-UG大阪 reInvent reCap LT大会 サンバが始まったら強制終了】“1分”で初めてのソロ参戦reInventを数字で振り返りながら反省する
ttelltte
0
140
.NET AspireでAzure Functionsやクラウドリソースを統合する
tsubakimoto_s
0
190
2024AWSで個人的にアツかったアップデート
nagisa53
1
110
Reactフレームワークプロダクトを モバイルアプリにして、もっと便利に。 ユーザに価値を届けよう。/React Framework with Capacitor
rdlabo
0
130
三菱電機で社内コミュニティを立ち上げた話
kurebayashi
1
360
PaaSの歴史と、 アプリケーションプラットフォームのこれから
jacopen
7
1.5k
ゼロからわかる!!AWSの構成図を書いてみようワークショップ 問題&解答解説 #デッカイギ #羽田デッカイギおつ
_mossann_t
0
1.5k
embedパッケージを深掘りする / Deep Dive into embed Package in Go
task4233
1
220
re:Invent 2024のふりかえり
beli68
0
110
JAWS-UG20250116_iOSアプリエンジニアがAWSreInventに行ってきた(真面目編)
totokit4
0
140
Bring Your Own Container: When Containers Turn the Key to EDR Bypass/byoc-avtokyo2024
tkmru
0
860
デザインシステムを始めるために取り組んだこと - TechTrain x ゆめみ ここを意識してほしい!リファクタリング勉強会
kajitack
1
100
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
74
5.4k
jQuery: Nuts, Bolts and Bling
dougneiner
62
7.6k
Into the Great Unknown - MozCon
thekraken
34
1.6k
A Tale of Four Properties
chriscoyier
157
23k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.2k
Faster Mobile Websites
deanohume
305
30k
The Cost Of JavaScript in 2023
addyosmani
46
7.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
For a Future-Friendly Web
brad_frost
176
9.5k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
GitHub's CSS Performance
jonrohan
1030
460k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Transcript
Golang完全初心者がチュートリアル を完了させればなにができるように なるか @katryo
自己紹介 • @katryo • 新卒1年目 • これまで作ったもの
– h/p://denkinovel.com • Rails4製 • 言語 – Ruby, Python, JavaScript 2年 • ウェッブ開発が主目的です – C, Java, Obj-‐C ちょっとだけ – 主にLL
Go 3 週 間
• A Tour of Goは
A Tour of Go • 完全にはやってないです(´・_・`) • 演習問題をしっかり解くのはちょっとしんどい
• 書いてあることを読んで、RUNしただけで す…… じっくり時間をかけて 演習問題を解くと いいことある気がする
結論
コマンドラインツールを作れた • WordNetで上位語を再帰的に発見するコマン ドラインツール • h/ps://github.com/katryo/wordnet_go • 以前Python3で書いた
h/ps://github.com/katryo/wordnet_python を Goに書き換えたもの
デモ
作った感想 • DRYにするやりかたがまだわからなくてつらい – 現在、全部1ファイル – 別packageにしてimportするというやりかたがよさそう
– SQLiteからレコードを引き出すという、似た処理を同じ 関数にまとめる方法わからない – チュートリアルちゃんとやります(´・ω・`) • stringが使いやすい – charじゃなくてstringが基本 – LL感覚で文字列を処理できる • UTF-‐8前提なので、非la]n1語ではPythonより使いやすいか も
結論に至るまでに得たもの
メモリの気持ちが ちょっとだけわかった • Golangは変数にメモリ領域割り当て => 初期 化の手順が必要 •
MutableなArrayは メモリ管理がめんどいことを把握 • LLでは味わえないメモリとの触れ合い • でもGCはあるよ! やった!
Golangは学習コストが小さくてよい • Pythonを意識した仕様の小ささ – len()関数とか、既知の語に寄せている – 型を変数名の後に書くなど直感に従った
(かつ実用的な)書き方 • No クラス • No オブジェクト指向 • Structにメソッドは作れるけど、Rubyとかの、クラスを基本に したオブジェクト指向とは別物 • public/private は命名で管理(言語仕様) – 大文字で始まる関数はpublic
LL使いが Golangを始めるにあたって 戸惑ったこと
GOのインストール • Homebrewでインストールすると、GOROOTを 自分で設定しないといけない • おとなしくpkgファイルでインストールしました
GOPATHの流儀 • 好きな場所に設定してよい • あんちぽ(kentarok)さん流 – GOPATH=$HOME – h/p://blog.kentarok.org/entry/
2014/06/03/135300 – ghqと組み合わせて使っている – こわいので自分ではやれてないです • 自分のやりかた – GOPATH=~/repositories
Errorは戻り値 • 例外処理がない • ちょっと戸惑うけど慣れたら問題ない • Errorが発生しうる場面ではdeferを利用すると、 ファイルを開いたりRDB使うときに便利
– Pythonのwithみたいな機能
Java, Cとくらべて • 学習コストがとても小さい – 最大の利点 – めんどうなことを書かなくていい
• public sta]c … • 気軽に書いて、動かせる – スクリプト感覚でgo runできる • LL使いが最初に学ぶ静的言語として最適だと思 う – まだこれから広まりそう – 自分ではGoSublimeを使って書いたけど、IDEを使うと 恩恵にあずかれると思います
まとめ
Goは コマンドライン ツール くらいなら すぐに作れる Goodな言語
Thank you for listening