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
0
200
Easy hacking, and enjoy life.
雑に書いて「楽」をしよう
業務中に業務外で小さいコードを書くお話 ( 日々のこと)
Katsumata Ryo
November 13, 2019
Tweet
Share
More Decks by Katsumata Ryo
See All by Katsumata Ryo
GMO pepabo and hey 2022-05-26
katsumataryo
0
870
hey Talk Product Manager#2 LT
katsumataryo
3
1.1k
mobprograming with onboarding
katsumataryo
3
3.9k
成長に期待しない目的志向実践のススメ
katsumataryo
8
8.3k
railsdm_katsumata.pdf
katsumataryo
9
7.6k
Other Decks in Technology
See All in Technology
AZ 名とAZ ID の違いを 何度でも言うよ
miu_crescent
PRO
0
100
Databricksで完全履修!オールインワンレイクハウスは実在した!
akuwano
0
120
AndroidアプリエンジニアもMCPを触ろう
kgmyshin
1
480
Cross Data Platforms Meetup LT 20250422
tarotaro0129
1
840
PostgreSQL Log File Mastery: Optimizing Database Performance Through Advanced Log Analysis
shiviyer007
PRO
1
140
Road to Go Gem #rubykaigi
sue445
0
1k
2025-04-14 Data & Analytics 井戸端会議 Multi tenant log platform with Iceberg
kamijin_fanta
0
140
バクラクの認証基盤の成長と現在地 / bakuraku-authn-platform
convto
4
820
Dynamic Reteaming And Self Organization
miholovesq
3
690
4/17/25 - CIJUG - Java Meets AI: Build LLM-Powered Apps with LangChain4j (part 2)
edeandrea
PRO
0
140
ガバクラのAWS長期継続割引 ~次の4/1に慌てないために~
hamijay_cloud
1
530
watsonx.data上のベクトル・データベース Milvusを見てみよう/20250418-milvus-dojo
mayumihirano
0
170
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
430
65k
BBQ
matthewcrist
88
9.6k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
Unsuck your backbone
ammeep
670
57k
Optimising Largest Contentful Paint
csswizardry
37
3.2k
Thoughts on Productivity
jonyablonski
69
4.6k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.6k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
400
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
119
51k
Docker and Python
trallard
44
3.4k
Rebuilding a faster, lazier Slack
samanthasiow
81
9k
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
͋Γ͕ͱ͏͍͟͝·ͨ͠