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
210
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
940
hey Talk Product Manager#2 LT
katsumataryo
3
1.1k
mobprograming with onboarding
katsumataryo
3
4k
成長に期待しない目的志向実践のススメ
katsumataryo
8
8.4k
railsdm_katsumata.pdf
katsumataryo
9
7.9k
Other Decks in Technology
See All in Technology
メタプログラミングRuby問題集の活用
willnet
2
770
仕様は“書く”より“語る” - 分断を超えたチーム開発の実践 / 20251115 Naoki Takahashi
shift_evolve
PRO
1
400
Redux → Recoil → Zustand → useSyncExternalStore: 状態管理の10年とReact本来の姿
zozotech
PRO
6
3.3k
Introducing RFC9111 / YAPC::Fukuoka 2025
k1low
1
210
AWS 環境で GitLab Self-managed を試してみた/aws-gitlab-self-managed
emiki
0
360
手を動かしながら学ぶデータモデリング - 論理設計から物理設計まで / Data modeling
soudai
PRO
18
4.1k
Quarkusで作るInteractive Stream Application
joker1007
0
110
AIエージェントは「使う」だけじゃなくて「作る」時代! 〜最新フレームワークで楽しく開発入門しよう〜
minorun365
11
1.6k
Flutterコントリビューションのススメ
d_r_1009
1
350
開発者から見たLLMの進化 202511
ny7760
1
170
エンタープライズ企業における開発効率化のためのコンテキスト設計とその活用
sergicalsix
1
340
ZOZOTOWNカート決済リプレイス ── モジュラモノリスという過渡期戦略
zozotech
PRO
0
110
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
38
2.9k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
320
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
Writing Fast Ruby
sferik
630
62k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
11
920
Making the Leap to Tech Lead
cromwellryan
135
9.6k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8k
Agile that works and the tools we love
rasmusluckow
331
21k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Optimizing for Happiness
mojombo
379
70k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
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
͋Γ͕ͱ͏͍͟͝·ͨ͠