Upgrade to Pro — share decks privately, control downloads, hide ads and more …

はてなブログチームでの働き方

3742ae4f74e584aed4f41c405232c3bb?s=47 YaaMaa
December 23, 2020

 はてなブログチームでの働き方

3742ae4f74e584aed4f41c405232c3bb?s=128

YaaMaa

December 23, 2020
Tweet

Transcript

  1. ͸ͯͳϒϩάνʔϜͰͷ ಇ͖ํ )BUFOB&OHJOFFS4FNJOBS  JE:BB.BB

  2. ࣗݾ঺հ JE:BB.BB ৽ଔ ͸ͯͳϒϩάνʔϜ ओʹݸਓϢʔβʔ޲͚ͷ։ൃΛ͍ͯ͠·͢

  3. ࢓ࣄͰ࢖͏΋ͷ 1FSM ϒϩάຊମͷαʔόʔαΠυ (P ϒϩάपลαʔϏεʢ͸ͯͳϒϩάλάͳͲʣͷαʔόʔαΠυ +BWB4DSJQU 5ZQF4DSJQU  ओʹϑϩϯτΤϯυ

  4. ࿩͢͜ͱ ೖࣾͯ͠΍ͬͨதͰҰ൪େมͩͬͨλεΫʹ͍ͭͯ ɾͲ͏΍ͬͯਐΊ͍͔ͯͬͨ ɾͲ͏͍͏೉͕͔͋ͬͨ͠͞ ɾࣦഊͨ͜͠ͱͳͲ

  5. λεΫͷ಺༰ ϒϩάهࣄʹషΓ෇͚ΒΕͨը૾ͷதͰɺ (PPHMFϑΥτ͔ΒషΓ෇͚ΒΕͨը૾͕ ӾཡͰ͖ͳ͘ͳͬͯ͠·ͬͨͷͰɺ ͦΕΒΛ͸ͯͳϑΥτϥΠϑʹҠߦ͢Δ (PPHMFϑΥτ(PPHMFͷը૾ϗεςΟϯάαʔϏε ͸ͯͳϑΥτϥΠϑ͸ͯͳ͕։ൃ͍ͯ͠Δը૾ϗεςΟϯάαʔϏε

  6. λεΫͷ಺༰ <p>ཱྀߦʹߦͬͨͱ͖ͷࣸਅͰ͢ɻ</p> <img src=“https://hosted-image/0000.jpg”> ϑΥτϥΠϑ 63-಺ͷ ϑΝΠϧ໊Λ खֻ͔Γʹ ը૾Λ୳͢ ϑΥτϥΠϑͷ

    63-ʹॻ͖׵͑ (PPHMFϑΥτ औಘͨ͠ը૾σʔλΛ Ξοϓϩʔυ
  7. ܭը

  8. ܭը  Ҡߦͷඞཁ͕͋Δը૾63-Λચ͍ग़͢  ը૾σʔλΛ63-͔ΒऔಘͰ͖Δ΋ͷͱ Ͱ͖ͳ͍΋ͷʹબผ औಘͰ͖Δ Ͱ͖ͳ͍ Ϣʔβʔʹ(PPHMFೝূͯ͠΋Βͬͯɺ (PPHMFϑΥτͷ"1*Λ࢖ͬͯ

    ը૾Λ୳ͯ͠औಘ
  9. ܭը औಘͨ͠ը૾σʔλΛ ϢʔβʔͷϑΥτϥΠϑʹΞοϓϩʔυ هࣄ಺ͷը૾63-Λ ϑΥτϥΠϑͰͷ63-ʹஔ͖׵͍͑ͯ͘

  10. ܭը ը૾ͷ৘ใΛೖΕΔ%#ςʔϒϧ܈ͷઃܭ id original_url ⋯ status xxxxxx https://… ⋯ initial

    id image_id entry_id exists xxxxxx xxxxxx xxxxxx TRUE id image_id s3_url xxxxxx xxxxxx https://… ը૾ هࣄͱը૾ͷ Ϛοϐϯά (PPHMFϑΥτͷ "1*͔Βऔಘͨ͠ը૾
  11. ܭը ܭըΛཱͯͨΒҰ୴ϨϏϡʔͯ͠΋Β͏ ɾσΟϨΫλʔ ϢʔβʔʹͲΕ͘Β͍ͷखؒΛ͔͚ͤͯ͞͠·͏͔ͳͲ૬ஊ ɾϝϯλʔΤϯδχΞ ٕज़తͳ෦෼ͷيಓमਖ਼ ے͕ѱ͍͜ͱɾඇޮ཰ͳ͜ͱΛ͠Α͏ͱ͍ͯ͠ͳ͍͔

  12. ଞ৬छͱͷ࿈ܞ Ϣʔβʔೝূ΁ͷҊ಺ը໘ σβΠφʔͱ૬ஊ͠ͳ͕ΒڞಉͰը໘Λ࡞͍ͬͯ͘ɻ Ͳ͜ʹ௨஌Λஔ͔͘ͱ͔΋࿩͠߹͏ɻ ࠂ஌ɾϔϧϓϖʔδ ࢓༷΍ૢ࡞ํ๏Λ·ͱΊ͔ͯΒɺฤूͷํʹݪߘΛ͓ئ͍͢Δɻ ٬؍తͳࢹ఺ͰΘ͔ΓͮΒ͍ͱ͜ΖΛิ଍ͯ͠΋Β͏ɻ

  13. ՝୊ͱରॲ

  14. ϑϩʔ͕ෳࡶ ॳظঢ়ଶ 63-͔Β ը૾औಘ੒ޭ 63-͔Β ը૾औಘࣦഊ Ϣʔβʔͷ (PPHMFೝূ "1*Ͱ ը૾Λ୳͠த

    ը૾Λ୳͢ͷʹ ࣦഊ ީิ͕ू·ͬͨ ީิ͔Β ߜΓࠐΊͳ͍ ީิ͔Β ҰͭʹಛఆͰ͖ͨ ϑΥτϥΠϑʹ Ξοϓϩʔυத Ξοϓϩʔυ ࣦഊ Ξοϓϩʔυ ׬ྃ هࣄͷॻ͖׵͑ ׬ྃ هࣄͷॻ͖׵͑ ࣦഊ ঢ়ଶΛચ͍ग़͢ͷ͕େม
  15. ϑϩʔ͕ෳࡶ ͦΕͰ΋ߟྀෆ଍ͩͬͨ ɾҠߦ͍ͯ͠Δ్தʹϢʔβʔ͕ୀձͯ͠͠·ͬͨΒʁ ɾҠߦ͍ͯ͠Δ్தʹϢʔβʔ͕ࣗ෼ͰҠߦର৅ͷը૾Λॻ͖׵͑ͨΒʁ ɾϢʔβʔ͕ೝূ͢Δ(PPHMFΞΧ΢ϯτΛؒҧ͍͑ͯͯɺ ผͷΞΧ΢ϯτͰೝূ͠௚͔ͨͬͨ͠Βʁ

  16. ϑϩʔͷߟྀෆ଍΁ͷରԠ Ϣʔβʔͷ (PPHMFೝূ "1*Ͱ ը૾Λ୳͠த ը૾Λ୳͢ͷʹ ࣦഊ ީิ͕ू·ͬͨ ީิ͔Β ߜΓࠐΊͳ͍

    ෳ਺ճϢʔβʔೝূ Ͱ͖ΔΑ͏ʹ ީิ͔Β ҰͭʹಛఆͰ͖ͨ ϑϩʔΛ௥Ճ هࣄฤूͷλΠϛϯάͰɺ (PPHMFϑΥτ͔ΒషΓ෇͚ΒΕͨը૾͕࢒͍ͬͯΔ͔ΛνΣοΫ͢Δ ॲཧΛ௥Ճ
  17. ίʔυϨϏϡʔͯ͠΋Β͏ͷ͕େม ͳΔ΂͘ϨϏϡʔ͠΍͍͢Α͏ʹ13Λখ෼͚ʹ͢Δ͚Ͳɺ ͦ͏͢Δͱݸʑͷ13ͷ໨త΍Ґஔ෇͚͕Θ͔ΓͮΒ͍ ࡉ੾Εͷ13ͷ༷ࢠ

  18. ίʔυϨϏϡʔͯ͠΋Β͏ͷ͕େม ϨϏϡϫʔ͸ϥ΢ϯυϩϏϯͰܾ·ΔͷͰɺ 13ͷܦҢ΍จ຺͸஌Βͳ͍

  19. ίʔυϨϏϡʔͯ͠΋Β͏ͷ͕େม ɾը૾͸Ͳ͏͍͏ঢ়ଶΛͱΓ͏Δͷ͔ ɾ͜ͷ13Ͱ͸Ͳͷঢ়ଶͷը૾ΛͲͷঢ়ଶʹ͍͖͍࣋ͬͯͨͷ͔ ɾͦΕ͸શମͷ޻ఔͷͲͷ͋ͨΓʹҐஔ͢Δͷ͔ Λຖճઆ໌

  20. ྔ͕ଟ͍ ը૾ͷ਺͕ͻͨ͢Βଟͯ͘ɺ શͯͷॲཧʹ͕͔͔࣌ؒΔ

  21. ྔ͕ଟ͍ ϒϩάຊମͷδϣϒΩϡʔ΍ϫʔΧʔ΁ͷ ෛ୲Λߟ͑ͣʹɺಠཱͯ͠Ұؾʹ࣮ߦͰ͖Δ ॳظঢ়ଶ 63-͔Β ը૾औಘ੒ޭ 63-͔Β ը૾औಘࣦഊ Ϣʔβʔͷ (PPHMFೝূ

    "1*Ͱ ը૾Λ୳͠த ը૾Λ୳͢ͷʹ ࣦഊ ީิ͕ू·ͬͨ ީิ͔Β ߜΓࠐΊͳ͍ ީิ͔Β ҰͭʹಛఆͰ͖ͨ ϑΥτϥΠϑʹ Ξοϓϩʔυத Ξοϓϩʔυ ࣦഊ Ξοϓϩʔυ ׬ྃ هࣄͷॻ͖׵͑ ׬ྃ هࣄͷॻ͖׵͑ ࣦഊ ϢʔβʔೝূҎલͷॲཧ͸ Ұؾʹ΍ͬͯ͠·͑Δ &$4ͰཱͯͨίϯςφΛ࢖ͬͯߦͬͨ
  22. ྔ͕ଟ͍ (PPHMFϑΥτͷ"1*Λݺͼग़͢ճ਺͕ଟ͘ͳΔ ը૾σʔλΛ୳ͨ͢Ίͷ"1*ίʔϧ΋ Ϣʔβʔͷ਺ʹൺྫͯ͠ଟ͘ͳΔͷͰɺ ೔ͷ੍ݶճ਺ʹ͙͢౰ͨͬͯ͠·͏ɻ ॳظঢ়ଶ 63-͔Β ը૾औಘ੒ޭ 63-͔Β ը૾औಘࣦഊ

    Ϣʔβʔͷ (PPHMFೝূ "1*Ͱ ը૾Λ୳͠த ը૾Λ୳͢ͷʹ ࣦഊ ީิ͕ू·ͬͨ ީิ͔Β ߜΓࠐΊͳ͍ ީิ͔Β ҰͭʹಛఆͰ͖ͨ ϑΥτϥΠϑʹ Ξοϓϩʔυத Ξοϓϩʔυ ࣦഊ Ξοϓϩʔυ ׬ྃ هࣄͷॻ͖׵͑ ׬ྃ هࣄͷॻ͖׵͑ ࣦഊ ͜͜
  23. ྔ͕ଟ͍ ɾ"1*ݺͼग़͠ճ਺੍ݶͷ؇࿨Λਃ੥ ɾຖ೔্ݶʹ౰ͨΔ·Ͱݺͼग़ͯ͠ɺ ্ݶʹ౰ͨͬͨΒ࢒Γ͸࣍ͷ೔Ҏ߱ʹճ͢

  24. ਐḿ֬ೝ ์ஔ͍ͯͨ͠Βগͣͭ͠ॲཧ͕ਐΜͰ͍͘λΠϓͷ λεΫͳͷͰɺਐḿ֬ೝ͕େม SELECT COUNT(*) FROM image WHERE status =

    ‘…’; ͋ΔظؒͰͷਪҠΛάϥϑͰݟ͍ͨ .BDLFSFMͷग़൪ ͦΕͧΕͷঢ়ଶͷը૾͕ͲΕ͘Β͍͋Δͷ͔֬ೝ͍͚ͨ͠Ͳɺ ຖճ͜Μͳ͜ͱˣͨ͘͠ͳ͍
  25. ͸ͯͳͷαʔόʔ؂ࢹαʔϏε ه࿥͍ͨ͠஋ΛαʔϏεϝτϦοΫ ͱͯ͠ఆظతʹ.BDLFSFMʹ ϙετ͢Δ ࠓճͳΒɺͦΕͧΕͷঢ়ଶͷ ը૾ͷຕ਺ উखʹάϥϑԽͯ͘͠ΕΔ ਐḿ֬ೝ

  26. .BDLFSFMͰμογϡϘʔυΛ࡞ͬͯຬ଍͍͚ͯͨ͠ΕͲʜ ผͷλεΫΛ΍͍ͬͯͨΒͪ͜Βͷॲཧ͕ ࢭ·ͬͯ͠·͍ͬͯͨ ࢭ·͍ͬͯΔͷʹ ؾ͚ͮΔ࢓૊Έ͕ඞཁ ਐḿ֬ೝ

  27. .BDLFSFMͷʮࣜʹΑΔ؂ࢹʯ͕࢖͑Δ UJNF4IJGU EJ⒎ ͳͲͷؔ਺Λ࢖ͬͯ ҰఆظؒͰͲΕ͘Β͍ਐΜ͔ͩΛ਺஋Խ ͦΕ͕ҰఆҎԼʹͳͬͨΒΞϥʔτΛग़͢ ਐḿ֬ೝ diff( timeShift( ◦◦,

    7d ), ◦◦ ) ࣜ؂ࢹͷྫ
  28. ࣦഊͨ͜͠ͱ

  29. ࣦഊͨ͜͠ͱ ݟੵ΋Γ (PPHMFϑΥτͷ"1*ʹ͸೔͝ͱʹճ਺੍ݶ͕͋Δ ͦΕΛ؁͘ݟ͍ͯͨͷͰݟੵ΋Γ͸ݟ౰ҧ͍ʹͳͬͯ͠·ͬͨ

  30. ࣦഊͨ͜͠ͱ δϣϒ౤ೖ͗͢͠ δϣϒΩϡʔ DSPOδϣϒ ϒϩάͷ ΞϓϦέʔγϣϯ ϫʔΧʔ ϫʔΧʔ ϫʔΧʔ ͍Ζ͍Ζͳछྨͷ

    δϣϒ͕ू·Δ ͜͜
  31. ࣦഊͨ͜͠ͱ δϣϒ౤ೖ͗͢͠ δϣϒΩϡʔ͕ͲΕ͘Β͍Ͱࡹ͚Δ͔͋·ΓΘ͔ͬͯͳͯ͘ δϣϒΛೖΕ͗͢Δ ϒϩάͷଞͷδϣϒʹӨڹ ɾ༧໿౤ߘ ɾهࣄ౤ߘޙͷॲཧɹɹͳͲ

  32. ࣦഊͨ͜͠ͱ use constant { JOB_COUNT = 20 }; σϓϩΠ͠ͳ͍ͱมߋͰ͖ͳ͍ ؅ཧը໘ͱ͔Ͱαοͱ

    มߋͰ͖ΔΑ͏ʹ͢Δ ճʹೖΕΔδϣϒͷ਺  ద༻ ࡹ͚۩߹ʹΑͬͯௐ੔Ͱ͖Δ
  33. ֶΜͩ͜ͱ

  34. ෳࡶͳλεΫ͔ͩΒͦ͜આ໌͸ஸೡʹ ϨϏϡϫʔʹ13ͷ໨త΍Ґஔ͚͕ͮͪΌΜͱ఻ΘΔͱɺ ߟྀ࿙ΕͷࢦఠɺΑΓΑ͍ํ๏ͷఏҊ Λͯ͠΋Β͑Δ͜ͱ͕͋Δ

  35. ͸ͯͳϒϩάͰѻ͏σʔλͷେ͖͞Λ࣮ײ ԿΛ͢Δʹͯ͠΋͕͔͔࣌ؒΔͷͰɺ ಠཱͯ͠ฒߦॲཧͰ͖Δ෦෼͸޻෉͢Δͷ͕େࣄ

  36. طଘͷهࣄΛकΔ͜ͱ͕େ੾ Ϣʔβʔͷࢿ࢈Ͱ͋ΔهࣄΛյ͞ͳ͍Α͏ʹ͢Δͷ͕ ࠷༏ઌ

  37. Ҏ্Ͱ͢