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
240
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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.2k
Other Decks in Technology
See All in Technology
DatabricksにおけるMCPソリューション
taka_aki
1
220
ローカルLLMとLINE Botの組み合わせ その3 / LINE DC Generative AI Meetup #8
you
PRO
0
130
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
13
2k
ソニー銀行におけるビジネスアジリティ向上のためのクラウドシフト戦略
srenext
0
100
CIで使うClaude
iwatatomoya
0
230
しぶいSRE: サーバから見えない障害にどう向き合うか。ラストワンマイルのデバッグ実践 / Shibui SRE
kanny
13
6k
AWS Summit の片隅で、体育座りしながらコミュニティがにぎわう理由を考えた
k_adachi_01
2
370
End-to-Endで考える信頼性 —LINEアプリにおけるクライアント開発×SRE連携の実践
maruloop
4
4k
アカウントが増えてからでは遅い? ~ マルチアカウント統制の勘所 ~
kenichinakamura
0
220
Road to SRE NEXTの今までとこれから
hiroyaonoe
0
290
知らん間に、回ってる
ming_ayami
0
390
Compose 新機能総まとめ / What's New in Jetpack Compose
yanzm
0
160
Featured
See All Featured
Utilizing Notion as your number one productivity tool
mfonobong
4
360
Music & Morning Musume
bryan
47
7.3k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
410
Facilitating Awesome Meetings
lara
57
7k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
WCS-LA-2024
lcolladotor
0
680
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.3k
The untapped power of vector embeddings
frankvandijk
2
1.8k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
800
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
260
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
͋Γ͕ͱ͏͍͟͝·ͨ͠