時を正しく扱うためのシステム設計

 時を正しく扱うためのシステム設計

builderscon tokyo 2019 の登壇資料です
The system design for exact time.
https://builderscon.io/builderscon/tokyo/2019/session/0746bee7-98a1-42ad-86e9-3634a20d2465

F62b70b58d2f54c3d421a8f19c1c8817?s=128

集約のエンティティ

August 31, 2019
Tweet

Transcript

  1. ࣌Λਖ਼͘͠ѻ͏ͨΊͷ !QJDUJOZ CVJMEFSTDPOUPLZP γεςϜઃܭ

  2. 2019.08.31 2

  3. 2019.08.31 3 ೥݄૑ۀ αϒεΫϦϓγϣϯϏδωεͷࠃ಺޲͚4BB4 ೥݄ΫϩʔζυЌ൛ϦϦʔε Ϗδωε໊ɺΤϯδχΞ໊ɺσβΠφ໊

  4. 2019.08.31 4 ςΫϊϩδʔͷྗͰ اۀͷܦࡁ׆ಈΛ ࢧ͑ɺ֦ு͢Δɻ

  5. 2019.08.31 5 ʮαϒεΫϦϓγϣϯϏδωεʹ͓͚Δ
 શۀ຿ΛҰؾ௨؏ͰΧόʔʯ
 ɾϓϥΠγϯά ɾ঎඼؅ཧ
 ɾސ٬؅ཧ ɾܖ໿؅ཧ ɾ੥ٻॻͷൃߦˍૹ෇
 ɾΫϨδοτΧʔυܾࡁ


    ɾ֤छσʔλ෼ੳ ɾ࢓༁ొ࿥ɺձܭॲཧ ɹɹɹɹɹɹɹɹɹɹɹetc…
  6. 2019.08.31 6 ɹɹɹɹɹɹɹɹͷٕज़ελοΫ ϑϩϯτΤϯυ αʔόαΠυ σʔλϕʔε Πϯϑϥ ͦͷଞ 3FBDUKT 4DBMB

    .Z42- "NB[PO"VSPSB "84 "NB[PO&,4 1SPUPDPM#V⒎FST %%%
  7. 2019.08.31 7 ɹɹɹɹɹɹͷυϝΠϯ ސ٬ ঎඼ ྉۚઃఆ ੥ٻ ܾࡁ ձܭ FUD

  8. 2019.08.31 8

  9. 2019.08.31 9 ࣌ؒ

  10. ࣌ ؒ ͱ ͸ ࣌ ؒ ͱ σ ʔ λ

    ܗ ࣜ ࣌ ؒ ͱ α ϒ ε Ϋ Ϧ ϓ γ ϣ ϯ ࣌ ؒ ͱ γ ε ς Ϝ · ͱ Ί
  11. ࣌ ؒ ͱ ͸ ࣌ ؒ ͱ σ ʔ λ

    ܗ ࣜ ࣌ ؒ ͱ α ϒ ε Ϋ Ϧ ϓ γ ϣ ϯ ࣌ ؒ ͱ γ ε ς Ϝ · ͱ Ί
  12. 2019.08.31 12 ࣌ͷ࿩

  13. 2019.08.31 13 ࣌ؒͱ͸

  14. 2019.08.31 14 ࣌ؒͱ͸ʜ

  15. 2019.08.31 15

  16. 2019.08.31 16

  17. 2019.08.31 17

  18. 2019.08.31 18 ͋·Γʹ΋఩ֶత͗͢Δ໰͍

  19. 2019.01.26 19 ந৅౓͕ߴ͗͢Δ

  20. 2019.08.31 20 ൃද࣌ؒ͸෼

  21. 2019.08.31 21

  22. 2019.08.31 22 ࣌ؒͱ͸ ग़དྷࣄ΍มԽΛೝࣝ͢ΔͨΊͷجૅతͳ֓೦ γεςϜ͕มԽΛ༗͢ΔੈքΛऔΓѻ͏ͱ͖
 γεςϜ͸࣌ؒΛѻΘͳ͚Ε͹ͳΒͳ͍ ࣌ؒ࣠Λ࣋ͭมԽ͢Δঢ়ଶΛ࣋ͭ

  23. 2019.08.31 23 ࣌ࠁͱ͸ ࣌ؒͷྲྀΕʹ͓͚Δ͋ΔҰ఺
 ࿈ଓ͢Δ࣌ؒͷதͷ͋Δॠؒ ҰൠతͳγεςϜʹ͓͚Δ
 ࠷খ୯Ґ͸<ඵ> ΋͘͠͸<ϛϦඵ> 
 ::::..%%))..44

  24. ࣌ ؒ ͱ ͸ ࣌ ؒ ͱ σ ʔ λ

    ܗ ࣜ ࣌ ؒ ͱ α ϒ ε Ϋ Ϧ ϓ γ ϣ ϯ ࣌ ؒ ͱ γ ε ς Ϝ · ͱ Ί
  25. 2019.08.31 25 γεςϜʹ͓͚Δ࣌ؒͷ໰୊ λΠϜκʔϯ αϚʔλΠϜ ͏Δ͏೥ ͏Δ͏ඵ վݩ

  26. 2019.08.31 26 αϚʔλΠϜ Ն࣌ؒ ඪ४࣌Λ࣌ؒਐΊΔ੍౓ɺ·ͨ͸ͦͷਐΊΒΕͨ࣌ࠁͷ͜ͱ
 ࠃʹΑͬͯ෼ࠩͰ͋ΔͳͲҰ཯Ͱ͸ͳ͍ ͋Δ࣌ࠁ͕ඈ͹͞ΕͨΓɺճʹ૿͑ͨΓ͢Δ ࣌ؒϦηοτܥͷೳྗऀ͔ʁʁʁ

  27. 2019.08.31 27

  28. 2019.08.31 28 ೥݄૑ۀ αϒεΫϦϓγϣϯϏδωεͷࠃ಺޲͚4BB4 ೥݄ΫϩʔζυЌ൛ϦϦʔε Ϗδωε໊ɺΤϯδχΞ໊ɺσβΠφ໊

  29. 2019.08.31 29 ೥݄૑ۀ αϒεΫϦϓγϣϯϏδωεͷࠃ಺޲͚4BB4 ೥݄ΫϩʔζυЌ൛ϦϦʔε Ϗδωε໊ɺΤϯδχΞ໊ɺσβΠφ໊

  30. 2019.08.31 30 αʔϏεͷର৅ࠃ ର৅ࠃ͕૿͑Δͱߟ͑Δ͜ͱ͕૿͑Δ ࣌ࠩɺ๏੍౓ɺձܭɺ੫ۚɺFUD ೔ຊࠃ಺Ͱల։͢ΔͳΒαϚʔλΠϜ͸ߟ͑ͳͯ͘΋Α͍
 ࠓ͸·ͩʜʜʜ

  31. 2019.08.31 31

  32. 2019.08.31 32 ಥવͷྲྀΕ੕ʂ

  33. 2019.08.31 33 ೔ຊʹαϚʔλΠϜ͕ಋೖ͞Ε·ͤΜΑ͏ʹ ೔ຊʹαϚʔλΠϜ͕ಋೖ͞Ε·ͤΜΑ͏ʹ ೔ຊʹαϚʔλΠϜ͕ಋೖ͞Ε·ͤΜΑ͏ʹ

  34. ࣌ ؒ ͱ ͸ ࣌ ؒ ͱ σ ʔ λ

    ܗ ࣜ ࣌ ؒ ͱ α ϒ ε Ϋ Ϧ ϓ γ ϣ ϯ ࣌ ؒ ͱ γ ε ς Ϝ · ͱ Ί
  35. 2019.08.31 35 8FCΞϓϦέʔγϣϯͷσʔλܗࣜ ϑϩϯτΤϯυɾαʔόαΠυؒͷ௨৴Ͱͷܗࣜ ΞϓϦέʔγϣϯ಺ͷܗࣜ %#ʹอଘ͢Δܗࣜ

  36. None
  37. None
  38. 2019.08.31 38 ࣌ؒ͸શ෦ 6/*95*.&ͰΑ͘ͳ͍ʁ

  39. 2019.08.31 39 ࣌ࠁͱ೔෇͸ҧ͏

  40. 2019.08.31 40 ೔෇ͱ͸ ೥ɾ݄ɾ೔Λه͢͜ͱ
 ର৅ͷ೥݄೔ ࠷খ୯Ґ͸<೔>
 ::::..%%

  41. 2019.08.31 41 6/*95*.&ͷ͕͜͜εΰΠ JOUܕͰදݱͰ͖Δ ඪ४Ͱαϙʔτ͞Ε͍ͯΔ λΠϜκʔϯ͸͋ͱ͔Βߟ͑Ε͹Α͍ ௒γϯϓϧʂ࠷ߴʂʂ

  42. 2019.08.31 42 6/*95*.&͸࣌ࠁͷϑΥʔϚοτ ::::..%%))..44 ೔෇ʹඞཁͳͷ͸::::..%%͚ͩ ೔෇Λ6/*95*.&Ͱѻ͏ͱᐆດʹͳΔ

  43. 2019.08.31 43 ೔෇ͱ6/*95*.& ࠷খ୯Ґ͕ඵ ͱ͕ಉ͡೔෇ ))..44ʹؔ৺͕ͳ͚Ε͹೔෇ܕͰѻ͏΂͖

  44. 2019.08.31 44 ೔෇ܕ .Z42-ͷ%"5& 4DBMBͰ͸KBWBUJNF-PDBM%BUF 1SPUPDPM#V⒎FSTͷ 

  45. 2019.08.31 45 1SPUPDPM#V⒎FST (31$Ͱར༻͞ΕΔγϦΞϥΠθʔγϣϯπʔϧ 4DBMFCBTFͰ͸εΩʔϚͱͯ͠࠾༻ 
 ৄ͘͠͸
 ʮ8FC"1*ʹடংΛ༩͑Δ1SPUPDPM#V⒎FST׆༻๏ʯ
 ʮ1SPUPDPM#V⒎FSTͷεΩʔϚΛར༻ͨ͠։ൃʯ

  46. 2019.08.31 46 1SPUPDPM#V⒎FSTͷ೔෇ܕ αϙʔτ͍ͯ͠ͳ͍ͷͰಠࣗͰఆٛͨ͠ message Date { int32 year =

    1; // ೥ MonthOfYear month = 2; // ݄ DayOfMonth day = 3; // ೔ }
  47. 2019.08.31 47 ݄ܕͱ೔ܕ enum MonthOfYear { NONE = 0; MONTH1

    = 1; // Jan MONTH2 = 2; // Feb … MONTH12 = 12; // Dec } enum DayOfMonth { NONE = 0; DAY1 = 1; DAY2 = 2; … DAY31 = 31; }
  48. 2019.08.31 48 ೔෇ܕͱλΠϜκʔϯ ݫີʹ͸೔෇ʹ΋λΠϜκʔϯ͕ඞཁ KBWBUJNF-PDBM%BUF͸λΠϜκʔϯΛؚΉ͕
 .Z42-ͷ%"5&͸λΠϜκʔϯΛ࣋ͨͳ͍ ೔ຊͷࠓ೔͸ɺϋϫΠͷ໌೔͔΋͠Εͳ͍

  49. 2019.08.31 49 ೥݄૑ۀ αϒεΫϦϓγϣϯϏδωεͷࠃ಺޲͚4BB4 ೥݄ΫϩʔζυЌ൛ϦϦʔε Ϗδωε໊ɺΤϯδχΞ໊ɺσβΠφ໊

  50. 2019.08.31 50 ೥݄૑ۀ αϒεΫϦϓγϣϯϏδωεͷࠃ಺޲͚4BB4 ೥݄ΫϩʔζυЌ൛ϦϦʔε Ϗδωε໊ɺΤϯδχΞ໊ɺσβΠφ໊

  51. 2019.08.31 51 λΠϜκʔϯ͕ඞཁʹͳͬͨΒ ྫάϩʔόϧల։͢Δ৔߹ .Z42-ʹ5JNF;POFΧϥϜΛ௥Ճ͢Δ طଘσʔλ͸શͯ+45ͱ্ͯ͠ॻ͖͢Δ ϑϩϯτΤϯυʹ΋5JNF;POFΛ౉͢

  52. ࣌ ؒ ͱ ͸ ࣌ ؒ ͱ σ ʔ λ

    ܗ ࣜ ࣌ ؒ ͱ α ϒ ε Ϋ Ϧ ϓ γ ϣ ϯ ࣌ ؒ ͱ γ ε ς Ϝ · ͱ Ί
  53. 2019.08.31 53 αϒεΫϦϓγϣϯͱ͸ ސ٬΁ܧଓతͳՁ஋Λఏڙ͢ΔαʔϏεશൠͷ͜ͱ ఆظߪಡܕͰɺܧଓ՝ۚͰ͋ΔαʔϏε͕Ұൠత
 ɹFH"EPCF$$ %SPQCPY /FUqJY γεςϜ͸ఆظతͳ՝ۚΛ؅ཧ͠ͳ͚Ε͹ͳΒͳ͍

  54. 2019.08.31 54 αϒεΫϦϓγϣϯʹ͓͚Δ࣌ؒͷ՝୊ ଠཅྐྵͷ֤݄೔਺ ͏Δ͏೥

  55. 2019.08.31 55 ࣌ؒͷ୯Ґ ඵ ෼ඵ ࣌ؒ෼ ೔࣌ؒ िؒ೔ ϲ݄

  56. 2019.08.31 56 αϒεΫϦϓγϣϯͰ͸ ϲ݄ຖ͕ओྲྀ

  57. 2019.08.31 57 ΋͠ϲ݄ͷ೔਺͕ඞͣ೔ͩͬͨΒ ݄຤͸ৗʹ೔ ೔ͷϲ݄ޙ͸ৗʹ೔ ೔ׂΓͨ͠Βৗʹ౳෼ ೔෇ʹର͢Δ݄୯Ґͷૢ࡞͕؆୯ɺ࠷ߴͷੈք

  58. 2019.08.31 58 ࢲ͸ڐͦ͏

  59. 2019.08.31 59 ͕ͩݱ࣮͕ڐ͔͢ͳʂ

  60. 2019.08.31 60 ྐྵʢ͜ΑΈʣ ஍ٿ͕ଠཅΛҰप͢Δ͕࣌ؒɺ͓Αͦ೔
 ݄ͷຬ͚ͪܽʹ͔͔Δ͕࣌ؒɺ͓Αͦ೔ ʸ͋·Γ ଠཅͱ݄ͷपظΛ͍͍ײ͡ʹͨ͠΋ͷ͕ࠓͷଠཅྐྵ

  61. 2019.08.31 61 ੢ྐྵ ΩϦετ͕ੜ·Εͨͱ͞ΕΔ೥Λج४ͱͨ͠ل೥๏ ΠϯΫϦϝϯλϧͰάϩʔόϧελϯμʔυ ೥ޙ͸੢ྐྵ೥

  62. 2019.08.31 62 ࿨ྐྵ ݩ߸ͱ೥਺Ͱ೥Λදݱ͢Δ೔ຊಠࣗͷل೥๏ σʔλͱͯ͠อଘ͠ͳ͍ํ͕͍͍λΠϓͷܗࣜ ೥ޙ͸Կͷݩ߸ͰԿ೥͔Θ͔Βͳ͍
 ϲ݄લʹΘ͔Βͳ͍͜ͱ΋͋Δ

  63. 2019.08.31 63 ΫΠζ ϲ݄ޙ͸Կ೔Ͱ͠ΐ͏

  64. 2019.08.31 64 ໰ ᶃ ᶄ

  65. 2019.08.31 65 ໰ ᶃ ᶄ

  66. 2019.08.31 66 ໰ ᶃ ᶄ

  67. 2019.08.31 67 ໰ ᶃ ᶄ

  68. 2019.08.31 68 ໰ ᶃ ᶄ

  69. 2019.08.31 69 ໰ ᶃ ᶄ ͸݄຤ͳͷͰ
 ݄ͷ݄຤͸

  70. 2019.08.31 70 ໰ ᶃ ᶄ

  71. 2019.08.31 71 ໰ ᶃ ᶄ

  72. 2019.08.31 72 ໰ ᶃ ᶄ

  73. 2019.08.31 73 ໰ ᶃ ᶄ ᶅ

  74. 2019.08.31 74 ໰ ᶃ ᶄ ᶅ

  75. 2019.08.31 75 ໰ ᶃ ᶄ ᶅ ͏Δ͏೥ͷ݄͸೔·Ͱ
 ͸݄຤Ͱ͸ͳ͍
 ͸݄຤ͳͷͰϲ݄ޙ͸

  76. 2019.08.31 76 αϒεΫϦϓγϣϯͱ݄຤ ݄୯ҐͷपظϩδοΫ͸݄຤Λҙࣝ͢Δඞཁ͕͋Δ ଠཅྐྵͷ݄຤͸ҰఆͰ͸ͳ͍ ͏Δ͏೥ʹΑͬͯ΋݄຤͸มԽ͢Δ ຊ౰ʹΊΜͲ͍͘͞

  77. ࣌ ؒ ͱ ͸ ࣌ ؒ ͱ σ ʔ λ

    ܗ ࣜ ࣌ ؒ ͱ α ϒ ε Ϋ Ϧ ϓ γ ϣ ϯ ࣌ ؒ ͱ γ ε ς Ϝ · ͱ Ί
  78. 2019.08.31 78 ࣌Λਖ਼͘͠ѻ͏ͨΊʹ͸ αʔϏεͷର৅ࠃ͕૿͑ͨΒ֮ޛΛ͠Α͏ ྐྵʹ͍ͭͯཧղ͠Α͏
 ͦͯ͠ఘΊΑ͏  ೔෇͸೔෇ͱͯ͠ѻ͓͏ ݄୯ҐͷपظతͳϩδοΫ͸݄຤Λҙࣝ͠Α͏

  79. 2019.08.31 79 ʮαϒεΫϦϓγϣϯϏδωεʹ͓͚Δ
 શۀ຿ΛҰؾ௨؏ͰΧόʔʯ
 ɾϓϥΠγϯά ɾ঎඼؅ཧ
 ɾސ٬؅ཧ ɾܖ໿؅ཧ ɾ੥ٻॻͷൃߦˍૹ෇
 ɾΫϨδοτΧʔυܾࡁ


    ɾ֤छσʔλ෼ੳ ɾ࢓༁ొ࿥ɺձܭॲཧ ɹɹɹɹɹɹɹɹɹɹɹetc…
  80. 2019.08.31 80 ΤϯδχΞΛ࠾༻த αϒεΫϦϓγϣϯͷۀ຿ϩδοΫ͸ͱͯ΋ෳࡶ ෳࡶͳυϝΠϯ͔ͩΒͦ͜υϝΠϯۦಈઃܭ

  81. 2019.08.31 81