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
「Small is Going big」mercari.go#10
Search
taqboz
August 20, 2019
Technology
0
1.4k
「Small is Going big」mercari.go#10
taqboz
August 20, 2019
Tweet
Share
Other Decks in Technology
See All in Technology
自動テストの世界に、この5年間で起きたこと
autifyhq
10
8.5k
管理者しか知らないOutlookの裏側のAIを覗く#AzureTravelers
hirotomotaguchi
2
380
アジャイル開発とスクラム
araihara
0
170
データ資産をシームレスに伝達するためのイベント駆動型アーキテクチャ
kakehashi
PRO
2
530
滅・サービスクラス🔥 / Destruction Service Class
sinsoku
6
1.6k
なぜ私は自分が使わないサービスを作るのか? / Why would I create a service that I would not use?
aiandrox
0
730
レビューを増やしつつ 高評価維持するテクニック
tsuzuki817
1
710
【Developers Summit 2025】プロダクトエンジニアから学ぶ、 ユーザーにより高い価値を届ける技術
niwatakeru
2
1.4k
抽象化をするということ - 具体と抽象の往復を身につける / Abstraction and concretization
soudai
16
3.6k
Tech Blogを書きやすい環境づくり
lycorptech_jp
PRO
1
240
2/18/25: Java meets AI: Build LLM-Powered Apps with LangChain4j
edeandrea
PRO
0
110
エンジニアが加速させるプロダクトディスカバリー 〜最速で価値ある機能を見つける方法〜 / product discovery accelerated by engineers
rince
4
320
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
Optimizing for Happiness
mojombo
376
70k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
9
440
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Building a Scalable Design System with Sketch
lauravandoore
461
33k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
Scaling GitHub
holman
459
140k
Mobile First: as difficult as doing things right
swwweet
223
9.3k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
For a Future-Friendly Web
brad_frost
176
9.5k
Visualization
eitanlees
146
15k
Transcript
8/20 2019 Mercari.go #10 Small is going big GopherCon2019
TQBOZ 吉⽥ 拓海 @taqboz ⼤学4年⽣ 経営学部 Go歴:6ヶ⽉
実際に参加してみて
もちろん、楽しみにしていましたが、 懸念点が、、、 • Go歴が短く、ついていけるか不安 • 英語を聞き取り続けていけるか不安 • コミニケーションが中⼼なのでは → 英語が不安
⾏く前
話の難易度はセッションによるので、 事前にアジェンダを⾒て⾒るものを 決めておけば⼤丈夫 GopherのコミニティSlackで 情報が流れてくるので、 ある程度は聞き逃しても情報を追える ⾏ったあと
やっぱり英語ができないと難しい けど、 • セッションのときには字幕がある • 割とフランクに接してもらえる • 結構⾃由に過ごせる ただやっぱり⾃分のしたい話をする、聞きたい話を聞くのに不便 様々な機会を取り逃すので英語は⼤事
⾏ったあと
TinyGo
source code Go TinyGo Go SSA LLVM LLVM IR binary
TinyGoについて • LLVMを使ったGoコンパイラ • バイナリファイルのサイズを抑えてビルド • LLVMがWebAssembly対応 → 副産物としてTinyGoも対応 • 現時点でのバージョン:0.7.1
WebAssemblyで試してみる ファイルサイズが約1/20になった WebAssembly goals 「Be fast, efficient, and portable」<- ファイルサイズが⼩さくなるのでロードを⾼速化できる
main.go (Hello, World) Go標準コンパイラ(1.12.7)とTinyGoの⽐較
デメリット / 制限 1. Gotoutineのサポートが完全ではない 2. GCはARMマイクロコントローラー (Cortex-M)のみ対応 3. 使えない標準パッケージが多い(net/http等)
参照:https://tinygo.org/lang-support/stdlib/ 4. mapのキーは⽂字列、整数、ポインタ、 構造体(前記の型で構成されたもののみ)のみ対応
TinyGoについて 主にIoTデバイス、 マイクロコントローラーでの活⽤ 制限があるなかでどこまでできるか 親⼦でデモで実践 by Ron Evans(@deadprogram) Small is
going big: Go on microcontrollers
セッション内でのデモ • Digispark上でLEDの点滅 (8bitプロセッサー & 8KB RAM) • Gopherbot ボタンの押し込み
でLEDの点灯 package main Import ( "machine” "time” ) func main() { led := machine.LED led.Configure(machine.PinConfig{Mode: machine.PinOutput}) for { led.Low() time.Sleep(time.Millisecond * 500) led.High() time.Sleep(time.Millisecond * 500) } }
セッション内でのデモ フライトコントローラー • Arduino Nano 33 IoT • アナログスティック •
ボタン • OLEDディスプレイ net系パッケージは動作しないものの Arduinoチップに組み込まれたWi-Fi チップで動作するインターフェイス をコントリビューターの⽅が実装し たとのこと。
Droneデモ Tello Ryze Drone IP: 192.168.10.1 PORT : 11111 Video
PORT : 8889 Commands & Response Arduino Nano33 IoT UDP I2C JoyStick Button A/O GPIO OLED IP: 192.168.10.2 PC
TinyGo PlayGround https://play.tinygo.org/ マイクロコントローラー持ってない⽅でも 試せるのでこちらで試してみては?
ご清聴ありがとう ございました