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
Easy hacking, and enjoy life.
Search
Katsumata Ryo
November 13, 2019
Technology
230
0
Share
Easy hacking, and enjoy life.
雑に書いて「楽」をしよう
業務中に業務外で小さいコードを書くお話 ( 日々のこと)
Katsumata Ryo
November 13, 2019
More Decks by Katsumata Ryo
See All by Katsumata Ryo
GMO pepabo and hey 2022-05-26
katsumataryo
0
1k
hey Talk Product Manager#2 LT
katsumataryo
3
1.1k
mobprograming with onboarding
katsumataryo
3
4.2k
成長に期待しない目的志向実践のススメ
katsumataryo
8
8.6k
railsdm_katsumata.pdf
katsumataryo
9
8.1k
Other Decks in Technology
See All in Technology
AI時代の品質はテストプロセスの作り直し #scrumniigata
kyonmm
PRO
4
1.5k
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.4k
AIの揺らぎに“コシ”を与える階層化品質設計
ickx
0
270
毎日の作業を Claude Code 経由にしたら、 ノウハウがコードになった
kossykinto
1
1.3k
How to learn AWS Well-Architected with AWS BuilderCards: Security Edition
coosuke
PRO
0
120
Shiny New Tools Won't Fix Your Problem
trishagee
1
120
Gaussian Splattingの表現力を拡張する — 高周波再構成とインタラクションへのアプローチ —
gpuunite_official
0
140
知ってた?JavaScriptの"正しさ"を検証するテストが5万以上もあること(Test262)
riyaamemiya
1
190
20260513_生成AIを専属DSに_AI分析結果の検品テクニック_ハンズオン_交通事故データ
doradora09
PRO
0
220
React 19×Rustツール 進化の「ズレ」を設計で埋める
remrem0090
1
110
いつの間にかデータエンジニア以外の業務も増えていたけど、意外と経験が役に立ってる
zozotech
PRO
0
480
みんなの考えた最強のデータ基盤アーキテクチャ'26前期〜前夜祭〜ルーキーズ_資料_遠藤な
endonanana
0
300
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1k
The Invisible Side of Design
smashingmag
302
52k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Deep Space Network (abreviated)
tonyrice
0
130
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
130
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.7k
Believing is Seeing
oripsolob
1
120
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.4k
How to Talk to Developers About Accessibility
jct
2
190
For a Future-Friendly Web
brad_frost
183
10k
Transcript
ࡶʹॻ͍ͯʮָʯΛ͠Α͏ &CJTVSC -5!LBUTVNBUB@SZP ͨͷ &BTZ IBDLJOH BOE FOKPZMJGF
.& > katsumata = SelfIntroduction.new(“katsumata”) > katsumata.work.job => [“backend”, “team
development”] > katsumata.work.corp => “STORES.jp” > > katsumata.hobby => [“Guitar”, “Camera”] > katsumata.families => [“࠺”, “͓ࢠ”]
$0/5&/54 ى ɾਐḿཧʹasanaΛ͍ͬͯΔ ɾिใΛॻ͍͍ͯΔ ঝ ɾिใͷεΫϦϓτΛॻ͍ͨ స ɾasana෦ΛΓग़ͨ͠ ݁ ɾ(ܗ͚ͩͷ)·ͱΊ
ۀதʹۀ֎Ͱ খ͍͞ίʔυΛॻ͓͘
ى ɾʑεΫϥϜʹ͔ͬͬͯӡ༻ͯ͠Δ ɾνʔϜνʔϜӡ༻ͳͷͰશ෦Ѳ͕ͳ͔ ͳ͔Ή͔͍ͣ͠(ͷ༰ྔ͕Γͳ͍) ɾࣗͨͪͷݟ௨͠ͷͨΊͱPM͕શମײΛ ݟ௨ͨ͢ΊʹasanaΛ͍ͬͯΔ TEAM PJ TEAM PJ
TEAM
ى ͜Μͳײ͡ͷϘʔυ͕͋Δ (ϑΣχοΫε͕ඈΜͩΓ͔ͯ͠Θ͍͍)
ى Timeline͕ศར
ى ͜Μͳײ͡ͰQiita Teamʹຖि֤νʔ ϜिใΛ࡞͍ͬͯΔ
खॻ͖ͩͬͨ
ى िใͷߏ # िใ ## վળ ### ઌिͬͨ͜ͱ - task
### ࠓिͬͨ͜ͱ -task ## Project 1 ### ઌिͬͨ͜ͱ - task ### ࠓिͬͨ͜ͱ -task ### KPT - keep / problem / try ## Project 2 <ಉ্>
खॻ͖ͩͬͨ
िใͷεΫϦϓτΛॻ͍ͨ
ঝ ՝ ຖि΄΅ܾ·ͬͨϑΥʔϚοτͰॻ͍͍ͯΔ ͷʹҰिؒॻ͘ͷ·͊·͔͔͊࣌ؒΔɻ ͔Β͍ɻ ରࡦ िใΛॻ͖ͨ͘ͳ͍Ͱ͟͝Δɻ
ঝ asanaʹ͢Δ ͋ͱ asana API͋Δ͡ΌΜ
ঝ ଟ͜Μͳײ͡Ͱߦ͚ΔΜ͡Όͳ͍ͩΖ͏͔ ɾasana ͔ΒͬͨλεΫΛൈ͖ग़͢ ↓ ɾिใ༻ʹܗ͢Δ ↓ ɾQiita Teamʹߘ͢Δ ↓
ɾ࣮ߦͯ͠slackʹ௨͢Δ ·ͨɺ͍ͭ·Ͱ͏͔Θ͔Βͳ͍ͷͰ ɾࣗ༻ͰखݩͰಈ͚͍͍ ɾͱΓ͋͑ͣಈ͚͍͍ ͱ͍͏ํ
ঝ asana͔ΒͬͨλεΫΛൈ͖ग़͢ ࠷ॳ gem Λ୳͕ͨ͠ެࣜͷ͕͍ͭํ͕શ વϐϯͱ͜ͳ͔ͬͨɻ ಛʹ֤λεΫʹݟੵΓϙΠϯτΛৼ͍ͬͯΔ ΧελϜϑΟʔϧυͷσʔλ͕શવऔΕͳ͍ɻ ެࣜͷAPIυΩϡϝϯτΛݟͨΒઈରऔΕΔɻ ͠Όʔͳ͠ͳͷͰͦΕ༻ͷΫϥεΛࣗͰॻ
͘͜ͱʹͨ͠ɻ
ঝ asanaΛߏ͢ΔཁૉͷਪଌͷҰ෦ Workspaces Projects Tasks Sections Users Stories Sub Tasks
・name ・custom fields …andmore ※全体的に絡む
ঝ asana͔ΒͬͨλεΫΛൈ͖ग़͢
ঝ िใ༻ʹܗ͢Δ
ঝ िใ༻ʹܗ͢Δ( ۤ͠Έͷࠟ )
ঝ qiita teamʹߘ͢Δ
ঝ ࣮ߦͯ͠slackʹ௨͢Δ
ঝ ߘͰ͖ͨ
ঝ ௨͖ͨ
ঝ Before ɾʹ֤PJϦʔμʔ͕Qiitaʹॻ͖ॻ͖ ɾͬͨλεΫΛΈͳ͕Βจࣈى͜͠ ɾKPTΛॻ͖ग़͠ ɾݟੵΓϙΠϯτܭࢉ͞Εͯͳ͔ͬͨ After ɾʑͷੜ׆ͰasanaͰਐḿཧ͓͚ͯࣗ͠ಈͰिใ͕Ͱ͖Δ ɾใࠂτϐοΫε͚͔͚ͩྑ͘ͳͬͨ ɾݟੵΓϙΠϯτ͕ܭࢉ͞ΕΔΑ͏ʹͳͬͨ
ɾͦͦΘ͕ͨ͠Λ࡞Βͳͯ͘Α͘ͳͬͨ ɾΘָ͕͍ͨ͠͠ɻ ɾಉ͡ΈͰଞͷϓϩδΣΫτ͕૿͑ͯใ͕औΕΔ
BTBOB෦ΛΓग़ͨ͠
స ࣮ݸਓͰຖճࣅͨΑ͏ͳͷॻ͍ͯΔ… ɾwunderlist ɾTodoist ɾasana (ݸਓͰใ༻ʹॻ͍ͨͷΛແͨ͘͠) ɾTrello ɾasana (new!!) ͨͿΜ·ͨॻͧ͘ɻɻɻΦϨɻɻɻ
స gem ʹ͠Αʔ ٱʑʹ͚ͬͨͲ؆୯ͩͬͨ ɾ`bundle gem asaner -t` ɾasaner.gemspec Λฤू
ɾgem ґଘΛॻ͍ͨΓ ɾ`rake build` ɾ`bundle exec rake release` ɾ2FAؔ࿈ͰϋϚͬͨ https://rubygems.org/gems/asaner
స pryͰͬͨ $ gem install asaner $ pry [2] pry(main)>
require 'asaner' => true [3] pry(main)> client = Asaner::Client.new(ENV["ASANA_ACCESS_TOKEN"]) [4] pry(main)> response = client.me [5] pry(main)> response[:status] => 200 [6] pry(main)> response[:body] => {"data"=> {"gid"=>”***********", "email"=>"
[email protected]
", "name"=>"Ryo Katsumata", "photo"=> {"image_21x21"=>"https://s3.amazonaws.com/profile_photos/877225423817499.y 96p7jNRqn6joM7AP92X_21x21.png", "resource_type"=>"user", "workspaces"=> [{“gid”=>”00000000000000“, ”name“=>”My Company“, ”resource_type“=>”workspace“ . . .ུ
݁ͼ ಛʹ·ͱ·Βͳ͔ͬͨ
݁ ײ ɾۀͷ߹ؒͷΓॻ͖Ͱࡶ͚ͩͲग़དྷ্͕Δͱָ͠ ͍ ɾۀͷ߹ؒͷΓॻ͖͚ͩͲॻ͍͓ͯ͘ͱ݁ߏָʹ ͳΔ ɾ(ݟͯΒͬͯΘ͔Δͱࢥ͍·͕͢)gem͕͋Δͱ͜ Ζίʔυ͕؆ܿ ɾใࠂτϐοΫε·ͩه͍ͯ͠Δ͚Ͳasana্ʹ هͯ͠र͍͍ͨ
ɾ͜ͷํࣜͰϓϩμΫτͷόοΫΤϯυ౷Ұ͍ͨ͠ ͜ͱʹͳͬͨ ɾίʔυΛॻ͍ͯԿָ͔͕ʹͳΔͷָ͍͠ɻ ɾ·ͩҠ͚͔ͨͩͩ͠Βҭ͍͖͍ͯͯͨɻ
&OKPZ IBDLJOH BOEFOKPZMJGF
͋Γ͕ͱ͏͍͟͝·ͨ͠