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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
tsuyoshi nakamura
August 31, 2016
Technology
57
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
golang
tsuyoshi nakamura
August 31, 2016
More Decks by tsuyoshi nakamura
See All by tsuyoshi nakamura
社内の勉強会で発表した_output_一部抜粋版_.pdf
tsuyoshi
0
520
PHPを少しでも早く_条件はあるよ_.pdf
tsuyoshi
0
93
スタートアップ6年目のレビュー文化.pdf
tsuyoshi
1
2k
PHPを少し深堀るよ.pdf
tsuyoshi
0
420
Reactive_Manifesto.pdf
tsuyoshi
0
98
About_Resilience.pdf
tsuyoshi
1
110
エンジニアの循環ってgood_or_bad_.pdf
tsuyoshi
0
1.3k
スタートアップしてからの失敗の数々
tsuyoshi
0
2.5k
スタートアップエンジニアの役割
tsuyoshi
0
570
Other Decks in Technology
See All in Technology
組み立てて楽しむ AWS Blocks 入門
kmiya84377
0
230
10年後、Engineering 行為を剥奪されるとして、わたしたちは、どう、何を創ればいいだろうか。 / If Engineering Is Taken Away in 10 Years, How and What Should We Create?
bitkey
PRO
1
130
AI 時代の Azure エンジニアリング ~ 私たちは何を磨き、何を任せるのか ~
chack411
1
600
子育てエンジニアの可処分時間が減っても成長を諦めない戦い方
sudoakiy
6
4.5k
実践! SRE × AI - ABEMA における AIOps -
tetsuya28
8
3k
hackers_champloo_2026_tidb
makocchi
0
140
Cognition AI Japan - ウェビナー2_テストQA_運用監視
cogakira
0
140
今こそ知りたいAmplifyGen2
mkdev10
2
160
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
880
M5Stackで作る BLEマウス GPSログの世界
tomokusaba
0
170
実践!Cloud Run ハンズオン!! / Cloud Run handson
y0hgi
1
250
Jetson Orin Nanoとk3sとローカルLLMで音声文字起こしシステム作ってみた
y_sera15
0
120
Featured
See All Featured
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
590
Darren the Foodie - Storyboard
khoart
PRO
4
4k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
620
The untapped power of vector embeddings
frankvandijk
2
1.9k
Building an army of robots
kneath
307
47k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
880
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
490
Transcript
Go lang入門 2015-12-11 社内勉強会 Tsuyoshi Nakamura
動くデモまで出来れば良 かったのですが、すいま せん間に合いませんで した。
アジェンダ • Go langって? • 開発環境まわり • 今までのphp,java等のオブジェクト志向言語との違い • まとめ
Go言語って? • 登場時期:2009年 • Googleが開発 • 静的型付言語 今まで多く使ってきたLL言語とはちょっと違う 「コンパイルが必要 → javaをイメージ → 遅い」とはならない。らしい コンパイルされる為、凡ミス的なsyntax
errorとかは心配ない LLライクなC • ググる場合は 「go lang」とlangをつけないとヒットしない(個人的に一番重要)
開発周り • /usr/local/goに最新のgoをダウンロードして解凍。.bashrcを設定で終わり export GOPATH=~/.go export PATH=$PATH:/usr/local/go/bin • エディタ:fatih/vim-go(オールインワンプラグイン)あれば良い感じがする vimのパッケージ管理(neobundle)経由で「NeoBundle
‘fatih/vim-go’」で速攻入る それ以外に使っているプラグインは 「scrooloose/syntastic」シンタックスチェック 「ervandew/supertab」tabでコード補完 • IntelliJ周りは知らん • 標準でテストライブラリがgo言語にはあるけど「assertequals」使えないので (https://github.com/stretchr/testify)使おうと思ってるけど試してない ※吉田さん教えてくれた • 対話式の確認したい時(https://github.com/motemen/gore)。REPL ※吉田さん教えてくれた コードの変更、保存をトリガーにホットデプロイのリロードしてくれるプラグインも あるらしいので、合わせて検討中
オブジェクト志向言語との違い • 継承して拡張して使っていくという考えがない ややこしいけど、「合成・埋め込み」という考えがあり、それが代替になるっぽい 親クラスからまるっとメソッド等をもらって、独自に拡張するのでなく 再利用可能な部品を作り、必要に応じて合成して使うイメージ • 例外処置として「panic()」「recover()」とかあるけどtry〜catchとは何か違う。 まだ慣れてない。。。
• 略が多い。「var aaa int = 10」 = 「aaa := 10」 • ハードタブ • 関数の{} 位置が決まってる • ポインタ、並列処理、マップ、スライス、構造体、インターフェイス等々。。。
まとめ • 基本的なことはなんとなく理解できた。結構違う部分が多い気がする いろいろとはまりどこりいっぱいありそう • フレームワーク、ORM、テストあたりを触ってみる