Slide 1

Slide 1 text

Now Loading.....

Slide 2

Slide 2 text

フロントエンドエンジニアが GO勉強したら ORM完全に理解した テ リ ス ケ 2 0 2 4 / 1 1 / 2 6

Slide 3

Slide 3 text

テリスケ IS 何? <テリスケ(本名:寺田康佑> # 音大卒業、フリーのトランペッターしてました # コロナで無職・リクルートに転職 # 社内で営業効率化システムを独学で開発(Python) # 去年4月にG’s ACADEMYに入学、フロントエンド技術を学ぶ # 10月に卒業後すぐに起業、ソフトウェア開発してます # 来年からスタートアップのテックリード兼務予定 # 生成AI # Next.js # GoogleCloud # Terraform # Go # 福岡 # ビリーズブートキャンプで半年で5kg痩せました

Slide 4

Slide 4 text

🎉25週連続LT達成!

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

テリスケさん(34)

Slide 7

Slide 7 text

ORM IS 何? # オブジェクト関係マッピング (Object-Relational Mapping)の略 # SQL文をコードで書ける # スクリプトをシンプルにしやすい # コードの再利用をしやすい # オブジェクト指向のコーディングと相性がいい

Slide 8

Slide 8 text

users = Array.new sql = "SELECT * FROM users" rows = some_sql_module.query(sql); # `some_sql_module`は簡略化された例 rows.each do |row| user = User.new; user.id = row[:id] # シンボルがカラム名として使用されると仮定 user.name = row[:name] user.email = row[:email] users << user end users = User.all SQL ORM (ActiveRecord)

Slide 9

Slide 9 text

EX/データの作成、読み取り、更新、削除 Create: データを作る。 Read: 特定のデータを探す、または全部のデータを見る。 Update: 既存のデータの内容を変える。 Delete: データを削除する。 Clauses(クロージズ) Where("color = ?", "red").Order("size ASC").Limit(10) // 赤いブロックを大きさ順に並べて、10個だけ欲しい!

Slide 10

Slide 10 text

便利だったこと # datatypes.JSONという型が便利 (MySQL ver8から使用可) # ライブラリインポートしなくても 基本デフォルトでなんでも入ってる

Slide 11

Slide 11 text

しんどかったこと #型定義キッッッッツ!! # 複数の型をまとめたカラムを そのまま扱えない # 解決策としてMarshal,Unmarshal が使える ID:数字(int) Name:文字(string) ExistingUser:Yes or NO(Bool)

Slide 12

Slide 12 text

まとめ GOはクラウドで 使おうね

Slide 13

Slide 13 text

まとめ でもGORMは超便利 # コード側からDB設計できる機能(マイグレーシ ョン)はとても便利 # コードの再利用ができるので開発がとても早く なる #Pythonなど多言語にもORMライブラリがあるら しいので、AIプロダクト作成に活かしていきたい

Slide 14

Slide 14 text

AI絵本ジェネレーター 鋭意製作中・・・!

Slide 15

Slide 15 text

THANK YOU FOR WATCHING!! プ ロ フ ィ ー ル リ ン ク と か プ ロ ダ ク ト と か