Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Golang完全初心者がチュートリアルを完了させればなにができるようになるか
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
katryo
June 17, 2014
Technology
4.1k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Golang完全初心者がチュートリアルを完了させればなにができるようになるか
http://connpass.com/event/6579/
での発表資料です
katryo
June 17, 2014
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.8k
Denkinovelをどうして作り続けているのか
katryo
0
2.4k
Sprockets絶ちに挑戦した
katryo
4
1.9k
業務で使えるGolang
katryo
3
1.8k
Rails3で作り始めたアプリケーションをちょっとずつ改善してゆく道のり
katryo
3
2k
Railsアプリの運営とQOL爆アゲアイテム
katryo
0
420
Other Decks in Technology
See All in Technology
AI駆動開発における開発環境のセキュリティの考え方
yamahiro
2
620
なぜAI時代に技術記事を書くのか?どう書くのか? 〜bunの場合〜
kworkdev
PRO
0
130
シンプルな設定ファイルで実現する AWS IAM Identity Center の ユーザー管理Terraformフレームワークを公開しました / Simplifying AWS IAM Identity Center User Management: An Open-Source Terraform Framework
yamaguchitk333
0
320
クラウドエージェントの先駆け Devin。今も最先端を走る、他との違い
kinopeee
0
400
これだけは抑えておきたい!後悔しない re:Invent の過ごし方 / AWS re:Invent 2026 prestudy
kinunori
2
380
BacklogのRAG 今ならこう作る - S3 Vectorsと自前パイプラインの勘所
revsystem
0
140
CSS2026:OWS研究会・招待講演「世界観を、実装する」
atsush1_sada
2
330
局所最適は悪ではない。壊れているのは指標です。量と質を同時に見る先行指標の設計
recruitengineers
PRO
2
1.2k
「私が一番顧客に詳しい」を捨てる~ 全員が一次情報に精通する開発チームをつくり、PMが次のボトルネックへ染み出すまで
kaminashi
4
2.4k
AIをリアル世界に解き放つ 〜M5Stack×AIであなたのアイディアを手の平に〜
hamadakoji
1
540
自宅サーバと脆弱性
masakiokuda
1
110
正解のない研修に放り出されて / Being thrown into a training program with no right answers
ohnoeight
1
150
Featured
See All Featured
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
420
Building Flexible Design Systems
yeseniaperezcruz
330
41k
The Limits of Empathy - UXLibs8
cassininazir
2
730
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
940
Building an army of robots
kneath
307
47k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Being A Developer After 40
akosma
PRO
92
590k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
330
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
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