Slide 1

Slide 1 text

ΞϓϦέʔγϣϯΛ࡞Δͱ͖ʹ ߟ͑Δͷ͜ͱ 3BJMT%FWFMPQFST.FFUVQ େ஥ೳ࢙BLBJEPOL

Slide 2

Slide 2 text

ࣗݾ঺հ w େ஥ೳ࢙BLBJEPOL w ͸ͯͳ ژ౎ ͔Βདྷ·ͨ͠ w ڈ೥ͷ݄·Ͱ3VCZΛॻ͍͍ͯ·ͨ͠ɻ 3VCZྺ೥͙Β͍ w ڈ೥ͷ݄͔Β1FSMΛॻ͍͍ͯ·͢ɻ 1FSMྺ೥ऑ

Slide 3

Slide 3 text

աڈͷൃද w 3BJMT%FWFMPQFST.FFUVQ w ;ͭ͏ͷ3BJMTΞϓϦέʔγϣϯ։ൃ w 3BJMT%FWFMPQFST.FFUVQ -5  w 34QFD͙͠͞ w 3BJMT%FWFMPQFST.FFUVQ w ʮࣾ಺πʔϧ࡞੒αʔΫϧʯ׆ಈه࿥ ࢿྉฆࣦ😢

Slide 4

Slide 4 text

ࠓ೔ͷτʔΫͷഎܠ

Slide 5

Slide 5 text

͸ͯͳͱ3VCZ w 1FSMͷձࣾͩͱੈؒʹࢥΘΕ͍ͯΔؾ͕͢Δ w ࣄ࣮ͱͯ͠͸ׂ͙Β͍ʁ XFCϑϩϯτεϚϗ΋͋ΔͷͰ  w 4DBMB (P 1ZUIPO౳ʑ΋ΨοπϦ࢖͍ͬͯΔ w ྫ͑͹.BDLFSFM΍ɺ͸ͯϒͷόοΫΤϯυ͸4DBMBͩ͠ɺ.BDLFSFM BHFOU౳ʑͰ(P͕͋Γ·͢ w ͍͔ʹͯ͠զʑ͸೥΋ͷͷ1FSMϓϩμΫτΛ4DBMBͰϦϓϨʔε͔ͨ͠ 4DBMB.BUTVSJ એ఻  w ΫϥΠΞϯτ͸4XJGU ,PUMJO 5ZQF4DSJQU 3FBDU/BUJWF

Slide 6

Slide 6 text

͸ͯͳͱ3VCZ w ΦʔέετϨʔγϣϯํ໘Ͱ͸DIFG DBQJTUSBOP͕࢖ΘΕ͍ͯΔ w Ұ෦ͷϥϘαʔϏεͰ࢖ΘΕ͍ͯΔ w େঝೝɺ2VZP౳

Slide 7

Slide 7 text

๻͸3VCZ 3BJMT Ͱ ΞϓϦέʔγϣϯΛ ॻ͖͍ͨʂʂ

Slide 8

Slide 8 text

ʮΤΰͩΑɺͦΕ͸ʂʯ w ࣮ࡍʹࣾ಺πʔϧΛ3BJMTͰ࡞Γग़ͨ͠Β͜͏ݴΘΕͨ

Slide 9

Slide 9 text

Ͳ͏ͳΕ͹ڐ༰͞ΕΔ͔ w ͳͥ3BJMTͰ࡞Δͷ͔ʹೲಘײ͕͋Δ w ෆ҆ʹدΓఴ͏ w ෆ҆Λղফ͢Δ w ઃܭࢦ਑ͱ͔ɺߟ͑Δ͜ͱɺ͋Γ͕ͪͳ᠘͕·ͱ·͍ͬͯΔঢ়ଶ

Slide 10

Slide 10 text

ࣾ಺ΞυϕϯτΧϨϯμʔΛॻ͍ͨ ˞్தͰຖ೔ߋ৽ʹ͸ࣦഊͯ͠·ͩ೔׬਱͸͍ͯ͠ͳ͍

Slide 11

Slide 11 text

ࠓ೔ͷൃද w ॻ͍ͨهࣄ܈ΛΪϡοͱ·ͱΊͯ෼Ͱ͓ૹΓ͠·͢ w ͭ·Γهࣄ෼ʂʁ w ͸ɺઈରແཧͳͷͰݸ΄ͲબΜͰ͖·ͨ͠ w ଓ͖͸ೖࣾͨ͠ΒಡΊΔΑʂʂ w ೥͔Βͷશͯͷࣾ಺هࣄ͕ಡΊΔ෱རްੜ

Slide 12

Slide 12 text

೔໨ٕज़બ୒ͷํ਑

Slide 13

Slide 13 text

αʔϏεΛ࡞Δͱ͖ͷ࣠ w αʔϏεΛ࡞Δͱ͖͸ҎԼͷ࣠Ͱߟ͑Δ͜ͱ͕ଟ͍ɻ ಧ͚Δ଎౓ͱɺϢʔβʹՁ஋͕͋Δ͔Ͳ͏͔

Slide 14

Slide 14 text

αʔϏεΛ࡞Δͱ͖ͷ࣠ w ୈ৅ݶ͸ʮ΍Δʯ w ୈ৅ݶ͸ʮ΍Βͳ͍ʯ w ୈ৅ݶ͸ʮ༠࿭ʯ w ͙͢Ͱ͖Δ͚ͲɺͦΜͳʹՁ஋͸ͳ͍ w ଞͷ༏ઌ՝୊͕͋Δ͔΋͠Εͳ͍ w ᆵʹੴˠ࠭ˠਫΛ٧ΊΔͬͯίϐϖ͕͋ΔΑͶʁ

Slide 15

Slide 15 text

αʔϏεΛ࡞Δͱ͖ͷ࣠ w ୈ৅ݶΛҰ൪ߟ͑ͳ͖Ό͍͚ͳͯ͘ɺ Ձ஋͕͋Δ͔Βͥͻ࡞Γ͍ͨɻ͚Ͳ࡞Δͷ ͕೉͍͠ػೳ w ͜ΕΛ࣮ݱ͢Δͷ͕ϓϩάϥϚͱͯ͠ͷ࿹ͷ ݟͤॴʹͳΔ

Slide 16

Slide 16 text

αʔϏεΛ࡞Δͱ͖ͷ࣠ w ϑϨʔϜϫʔΫ͸ʮՁ஋͕͋Δ͜ͱΛ͙͢࡞ ΕΔΑ͏ʹ͢Δʯͷ͕໾໨ w ୈ৅ݶΛୈ৅ݶʹม͑Δ w ΋͘͠͸ୈ৅ݶΛັྗత඼࣭·ͰߴΊΔ ͜ͱͰୈ৅ݶʹม͑Δ w ͦ͜ʹد༩͠ͳ͍ͳΒෆཁ

Slide 17

Slide 17 text

ػೳͱHFN w Ϛϧνςφϯτ BQBSUNFOU  w Ϣʔβೝূ PNOJBVUI EFWJTF  w ϑΝΠϧΞοϓϩʔυ BDUJWF@TUPSBHF  w ه๏ʴ4ZOUBY)JHIMJHIU SFEDBSQFU SPVHF  w ฤूཤྺ QBQFS@USBJM EJ ff Z  w ϖʔδωʔτ LBNJOBSJ  w λά BDUTBTUBHHBCMFPO  w ݕࡧ SBOTBDL

Slide 18

Slide 18 text

ػೳͱHFN w ลΓΛ૊Έ߹ΘͤΔͱɺ͸ͯͳάϧʔϓͬΆ͍΋ͷ͕γϡοͱͰ͖Δ w Կ΋ߟ͑ͳ͍ϓϩτλΠϓͳΒ HFNΛ࢖͍׳Ε͍ͯΕ͹ ೔Ͱ w 3BJMT͸೥୅ͷલ൒ఔ౓ͷ8FCΞϓϦέʔγϣϯΛ࡞Δͷʹಛ Խͨ͠ϑϨʔϜϫʔΫͳͷͰɺ͜ͷล͸ຊྖൃشͬͯײ͡Ͱ͢Ͷɻ೉͠ ΊͷػೳΛʮ͙͢࡞ΕΔʯʹد͖͍ͤͯͯ·͢ɻ

Slide 19

Slide 19 text

Ձ஋͕͋Δ͕೉͍͠ w 3BJMTΛ࢖͍ͬͯΔͱ೉͘͠ͳΔػೳ͸౰વ ͋ͬͯɺಛʹऑ͍ͷ͸8FCϑϩϯτΤϯυɻ w ಈతʹάϦάϦಈ͘ෳࡶͳGPSN ͸ͯͳϒϩά ͷ౤ߘϑΥʔϜͱ͔ ͸ͱͯ΋ۤखͳ෦ྨɻ w Ձ஋͕͋Δ͕೉͍͠ɺୈ৅ݶʹஔ͔ΕΔɻ

Slide 20

Slide 20 text

Ձ஋͕͋Δ͕೉͍͠ w ͢Δͱࠓ͸΋ͪΖΜʮ3FBDU࢖͑ʯͱݴ͏࿩ʹͳΓ·͢ΑͶ w "1*ʹಛԽͨ͠όοΫΤϯυͱɺ8FCϑϩϯτΤϯυΛ෼ׂ͠ ࣮ͯ૷͠Α͏ɺ(SBQI2- "QPMMP 3FBDUͰ΍͍ͬͯ͘Μͩʂ όοΫΤϯυ͸"1*ಛԽͩ͠HPMBOHͰߦͧ͘ʂ w ͢Δͱࠓ౓͸ྫ͑͹Ϣʔβೝূ΍؅ཧը໘ͷ࡞੒͕೉͘͠ͳΔɻ ϩάΠϯ࣌ʹ+85ฦͯ͠MPDBMTUPSBHFʹอଘ͢ΔΑ͏ͳ DPPLJFͷ࠶࣮૷ͱ͔ɺ؅ཧը໘༻͸FOUSZQPJOUΛ෼͚ͨϏϧυ Λ͠ͳ͚Ε͹ͳΒͳ͍ͱ͔ɺ୯ʹ%#ͷςʔϒϧͷσʔλΛදࣔ ͍͚ͨͩ͠ͳͷʹԿͰ͜Μͳ໘౗ͳ͜ͱ΍ͬͯΔͷΈ͍ͨͳɻ

Slide 21

Slide 21 text

ϑϨʔϜϫʔΫ͸໰୊Λղܾ͢Δ w "1*ಛԽͷαʔόͰ೉͍͜͠ͱ͸ɺ͍͍ͩͨී௨ͷ3BJMTͩͱ؆ ୯ʹͰ͖Δ͜ͱ w Ͳͷػೳ͕Ͳͷ৅ݶʹஔ͔ΕΔͷ͔ɺ࣮૷࣌ͷνʔϜߏ੒ɺಛʹ Ϣʔβʹఏڙ͍ͨ͠ମݧ౳Λߟ͑ͯɺϑϨʔϜϫʔΫΛબ΅͏ w ղܾ͍ͨ͠໰୊͕Կ͔ɺͱ͍͏ڞ௨ೝࣝΛ·ͣ࡞Ζ͏

Slide 22

Slide 22 text

'SPNେࡕ3VCZձٞ w ͱ͍͏࿩͕!ZVLJͷൃදͰ͋ͬͯɺ·͞ʹࠓ఻͑Δ΂͖಺༰ ͳͷͰ೔໨ʹॻ͖·ͨ͠ w ࡞ۀ͢Δͷ͕๻ͳͷͰɺ๻͕Ұ൪଎౓ͷग़Δ಺༰Ͱ΍Γ·͢ w  ·ͩ ͋·ΓϑϩϯτΤϯυʹڽΒͳ͍ܗͰ·ͣ࡞ΔͷͰɺϑ ϧελοΫϑϨʔϜϫʔΫͰߏΘͳ͍

Slide 23

Slide 23 text

೔໨3BJMTͷجૅ

Slide 24

Slide 24 text

ϦΫΤετͷྲྀΕ 3FRVFTU 3PVUFT $POUSPMMFS "DUJPO .PEFM .PEFM .PEFM 7JFX 3FTQPOTF %JTQBUDI "TTJHO 3FOEFS

Slide 25

Slide 25 text

֓ཁ঺հ w (FOFSBUPS w $POTPMF w .JHSBUJPO w 34QFD w ͜Ε͚ͩ෼͔Ε͹%#͔Β)5.-ฦ͢࡞ۀ͸Ͱ͖Δͱࢥ͏

Slide 26

Slide 26 text

೔໨7JFX5FNQMBUF

Slide 27

Slide 27 text

4MJN w ΦϑαΠυϧʔϧ࠷ߴʂʂʂʂʂ w ด͡λάͷ੔߹ੑ͕ઈରʹ่Εͳ͍ w λΠϓ਺ܹݮ w ॻ͘ͱ͖ʹخ͍͚ͩ͠Ͱͳ͘ಡΉͱ͖ʹ΋خ͍͠ w &NNFUͱͷେ͖ͳҧ͍ w ߦ਺΋ܻ਺΋গͳ͘ͳΔͷͰେਖ਼ٛ

Slide 28

Slide 28 text

4MJN w 1FSMͷ55ͩͱԋࢉ݁ՌΛඳը͢Δ͔Ͳ͏͔͕෼͔ΓͮΒ͍ w 3BJMT͸AA͕͋Δͱ͖͚ͩඳը͢Δྑ͍ϧʔϧ ੲ͸ҧͬͨ  w ࣾ಺ʹ)5.-4MJNཱ͓͍ͯͯͨΑ w 2ʮ֮͑Δͷ೉͘͠ͳ͍ʁʯ w લ৬ͩͱि͔͔ؒΒͣʹΈΜͳ׳ΕͯͨΑ w ཌिͷ;Γ͔͑ΓͰʮ4MJN࠷ߴʯͬͯ,FFQ͕ग़ͯ͘Δײ͡

Slide 29

Slide 29 text

&3#͕ݟ௚͞Εͭͭ͋Δ w 3FBDUͷོ੝Ͱ4MJN)BNM+49ͷॻ͖׵͕͑සൟʹൃੜ w ʮͦ΋ͦ΋)5.- FSC Ͱॻ͍͍ͯΕ͹͜Μͳۤ࿑͸ʜʜʯ w ೔໨ʹ࿩ͨ͠<ٕज़બ୒ͷํ਑>Λࢥ͍ग़ͯ͠ʂ w ೉͍͠ʮਖ਼͍͠)5.-Λ؆୯ʹॻ͍ͯฦ͢͜ͱʯʹ஫ྗد༩͠ ͍ͯΔͷ͕4MJN)BNM w +49͸%0.πϦʔ͕յΕ͍ͯͨΒΤϥʔʹͳΔͷͰɺਖ਼͍͠ )5.-Λॻ͘͜ͱ΋؆୯ʹ͍ͯ͠Δ -JOUཁΒͣ

Slide 30

Slide 30 text

ङ໺Ϟσϧ w Ϣʔβ͕ߟ͍͑ͯΔʮ౰ͨΓલ඼࣭ʯ Λຬ͍ͨͯ͠ͳ͍ͱʮෆຬ଍ʯʹͳΔ w େن໛8FCΞϓϦέʔγϣϯ͕ Ϣʔβͷͦ͹ʹภࡏ͢ΔΑ͏ʹͳͬͨ w 41"͸΋͸΍ʮҰൠతͳ8FCΞϓ Ϧέʔγϣϯʯͱͳ͍ͬͯΔ w ୯ͳΔ)5.-Ͱʮ౰ͨΓલ඼࣭ʯ͕ ຬ͍ͨͤͯΔ͔͸ߟ͑ͳ͍ͱ͍͚ͳ͍

Slide 31

Slide 31 text

೔໨1BHJOBUF

Slide 32

Slide 32 text

LBNJOBSJ୒ʁ w DVSTPSܕͷํ͕ෛՙରࡦతʹ͸ཧ૝Ͱ͸͋ΔΜ͚ͩͲɺ͸ͯͳάϧ ʔϓͷϢʔβ૚Λߟ͑Δͱʮద౰ʹQBHFΛ૿΍ͯ͠ೋ෼୳ࡧʯͱ ͍͏ಈ͖Λ͢Δਓ͕ଟͦ͏ͳͷͰɺ69͸ී௨ͷϖʔδωʔγϣϯ ͷํ্͕ͩͱࢥ͏ w ϖʔδҎ্͸ᎢͶΔΈ͍ͨͳ๷ޚॲஔ͸ඞཁ w ΞυΧϨهࣄΛॻ͜͏ͱࢥͬͯௐ΂ͯͨΒQBHZHFNΛݟ͚ͭͨͷ ͰΞ΢τϓοτ͸େࣄ

Slide 33

Slide 33 text

QBHZ w "33FMBUJPOΛҾ਺ʹͱͬͯɺϖʔδωʔτ༻ͷΦϒδΣΫτͱɺMJNJU  P ff TFU͕ޮ͍ͨ"33FMBUJPOΛฦ͠·͢ w ϖʔδωʔτ͸ϓϨθϯςʔγϣϯϩδοΫͳͷͰ w Λ࡞ΔͨΊ͚ͩʹϞσϧʹϝιουΛ଍͢ͷ͸͓͔͍͠ɻϖʔδωʔτઐ ༻ͷΦϒδΣΫτΛ࡞Ε͹े෼ɺͱ͍͏ߟ͑ํɻ࣮૷΋ͱͯ΋γϯϓϧɻ @pagy, @records = pagy(Product.some_scope) « First ‹ Prev ... 2 3 4 5 6 7 8 9 10 ... Next › Last »

Slide 34

Slide 34 text

LBNJOBSJͷXJUIPVU@DPVOU w QBHFϝιουΛݺͿͱɺMJNJU P ff TFUΛ෇͚ͨ"33FMBUJPOΛฦ͠ ͯ͘ΔଞʹɺFYUFOEJOHͰ໭Γ஋ͷ"33FMBUJPOΛ֦ு͢Δ w ͜ͷ֦ு͕UPUBM@QBHFͱ͔QFSͱ͔ͷϝιουΛ͍࣋ͬͯΔ w XJUIPVU@DPVOU͸ɺߋʹ֦ுΛॏͶͯɺQBHFͰੜ͑ͨϝιουΛ্ ॻ͖͢Δ w -*.*5 Ͱ౤͛ɺOFYU@QBHF͸݁Ռ͕QFS@QBHF ͔݅͋ͬͨ w "33FMBUJPOͱ͍͏஗ԆൃՐΦϒδΣΫτ͕͋Δͱ࢖͍΍͍͢

Slide 35

Slide 35 text

೔໨ը૾Ξοϓϩʔυ

Slide 36

Slide 36 text

ߟ͑Δ͜ͱ͕͍ͬͺ͍ w Ϣʔβʔ͕Ξοϓϩʔυͨ͠ϑΝΠϧ໊Λͦͷ··࢖༻͍ͨ͠৔߹ʹɺ σΟϨΫτϦτϥόʔαϧ͕ੜ·Ε΍͍͢ w fi MFUZQFΛِ૷ͯ͘͠Δͱ͔ɺ*NBHF.BHJDLͷ੬ऑੑΛಥ͔ΕΔͱ͔ w ֬ೝը໘ΛڬΉͱ͖ʹɺ·ͩ֬ೝதͳͷʹը૾͕QVCMJDʹͳͬͯͯࠔΔ w ϑΝΠϧαΠζ͕େ͖͗͢ΔͱࠔΔ w μΠϨΫτΞοϓϩʔυͨ͘͠ͳ͍ʁ w αϜωΠϧ͸͍ͭ࡞Δͷ

Slide 37

Slide 37 text

ఆ൪ͷHFN w BDUJWF@TUPSBHF w DBSSJFSXBWF w QBQFSDMJQ w TISJOF w SF fi MF w ESBHPO fl Z

Slide 38

Slide 38 text

ਓʹ஫໨͢Δͱ໘ന͍ w DBSSJFSXBWFΛ࡞ͬͨ!KOJDLMBT͕SF fi MFΛ࡞ͬͨ ͨͿΜ  w 3VCZ fi MFVQMPBET UBLF w SF fi MFʹ݁ߏίϯτϦϏϡʔτ͍ͯ͠Δ!KBOLP͸TISJOFͷ࡞ऀ ͩ͠JNBHF@QSPDFTTJOHͷ࡞ऀͰ΋͋Δ

Slide 39

Slide 39 text

͜ͷลΛݟ͓ͯ͘ͱϤαι΢ w 3FKFDU,BJHJͰϑΝΠϧΞοϓϩʔυʹ͍ͭͯൃද͓ͨ͠΋ ͠ΖXFCαʔϏε։ൃ೔ه w SNBHJDL͕େม ϝϞϦ৯͍΍͍͢ͱ͔Πϯετʔϧ͕େมͱ͔  ͰNJOJ@NBHJDL͕࢖ΘΕΔΑ͏ʹͳͬͨɺͱ͍͏ྺ࢙͕͋Δ w NJOJ@NBHJDL͸QPTJYTQBXOͰADPOWFSUA౳Λݺͼग़͚ͩ͢ w ࠷ۙ͸WJQT͕ਓؾ w JNBHF@QSPDFTTJOHHFN͕"DUJWF4UPSBHFσϑΥϧτ ʁ

Slide 40

Slide 40 text

%FQFOEFOUTΛړΔ w ࠷ۙग़͖ͯͨHFN͕͋Δͬͯ͜ͱ͸ɺ%FQFOEFOUTΛݟ͓ͯ͘ ͱɺ৽͍͠΋ͷʹײ౓͕ߴ͍ਓ͕ચ͍ग़ͤΔͱ͍͏͜ͱ w IUUQTHJUIVCDPNKBOLPJNBHF@QSPDFTTJOHOFUXPSL EFQFOEFOUT w "VUP1BHFSJ[F͢ΔΑ͏ʹ͢Δˍ4UBS਺Ҏ্ͰߜΓࠐΉɺΈ ͍ͨͳ6TFS4DSJQUΛ༻ҙ͓ͯ͘͠ͱɺ໘ന͍ϦϙδτϦʹग़ձ͍ ΍͍͢

Slide 41

Slide 41 text

೔໨Ϛϧνςφϯτ

Slide 42

Slide 42 text

"DUJWF4VQQPSU$VSSFOU"UUSJCVUFT w BQBSUNFOUHFNΛ࢖͏ͷ͕ఆ൪͕ͩɺCVJMEFSTDPOUPLZP Ͱ4NBSU)3͞ΜͷࣄྫΛฉ͍ͨ͹͔Γͩ͠ɺશςʔϒϧʹ PSHBOJ[BUJPO@JEΛ෇༩͢ΔखஈΛ࢖ͬͯΈ͍ͨ w αϒυϝΠϯΛݟͯ$VSSFOUPSHBOJ[BUJPOʹ٧Ίͯɺ EFGBVMU@TDPQFͰߜΔͱྑ͍ͷͰ͸ʁ class Article < AR::Base default_scope { Current.organization && where(organization: Current.organization) } end

Slide 43

Slide 43 text

"DUJWF4VQQPSU$VSSFOU"UUSJCVUFT w 3BJMTͷ৽ػೳɻ͍ΘΏΔϦΫΤετϩʔΧϧͳม਺Λఏڙ͢Δ w ࢖ͬͯྑ͍ͷ͔ͪΐͬͱ೰Ή͠ɺଞʹ$VSSFOU"UUSJCVUFTͷྑ͍࢖͍ํ ͕͋Δ͔Ͳ͏͔΋஌Γ͍ͨͷͰɺ(JU)VCͰશ෦ݕࡧͨ͠ w IUUQTHJUIVCDPNTFBSDI M3VCZR"DUJWF4VQQPSU""$VSSFOU"UUSJCVUFTUZQF$PEF w ϖʔδ·Ͱ͔͠ḷΕͳ͍ͷͰ͔݅͠ݟͯͳ͍ w "DUJWF4VQQPSUHFNΛಉࠝͯ͠QVTIͯ͠ΔϠπࡴ͢

Slide 44

Slide 44 text

"DUJWF4VQQPSU$VSSFOU"UUSJCVUFT w ෼͔ͬͯ͸͍͚ͨͲɺ$VSSFOUVTFS͸࢖͍ಓͱͯ͠ࠅ͍ײͩͬ͡ ͨ

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

EFGBVMU@TDPQFʁ w BDUJWFSFDPSENVMUJUFOBOUHFN΍SBJMT@NVMUJUFOBOUHFNΛ࢖ ͏ͱEFGBVMU@TDPQFͷ᠘ʹϋϚΔ͜ͱ͕͋Γͦ͏ w ࡞Δͷ೉͘͠ͳ͍͠ɺҰൠతͳϚϧνςφϯτͱ͸ݴ͍ͮΒ͍ ς φϯτΛ·͍ͨͩػೳׂ͕ͱ͋Δ ͷͰɺ͜͜͸Ұൃࣗ࡞ͨ͠ํ͕ Ϥαι΢ɺͱ͍͏൑அΛͨ͠

Slide 47

Slide 47 text

υΩϡϝϯτʹ8IZΛॻ͘ w ͭͷબ୒ࢶ BQBSUNFOU BDUJWFSFDPSENVMUJUFOBOU  SBJMT@NVMUJUFOBOU ࣗ࡞ ͕͋ͬͯɺͦΕͧΕͲΜͳಛ௃͕͋Δͷ ͔ɺͳͥࣗ࡞ΛબΜͩͷ͔ɺͱ͍͏ͷΛهࣄʹॻ͍ͨ w ʮԿނ͜ͷख๏ʹͨ͠ͷ͔ʯ͕͍͍ͩͨޙ͔Βٙ໰ʹࢥ͏ͱ͜Ζͳ ͷͰɺ෼͔ΔݶΓͰॻ͍͍͖͍ͯͨ

Slide 48

Slide 48 text

೔໨࿦ཧ࡟আ

Slide 49

Slide 49 text

࡟আϑϥά w ͍ΘΏΔʮͱΓ͋͑ͣ࡟আϑϥάʯ w EFMFUFE@BU EBUFUJNF Ͱදݱ͢Δ͜ͱ͕ଟ͍ w (FN͸༗໊Ͳ͜Ζ͕ͭ w BDUT@BT@QBSBOPJE QBSBOPJB EJTDBSE

Slide 50

Slide 50 text

࡟আϑϥά w BDUT@BT@QBSBOPJEͱQBSBOPJB͸΄΅ಉ͡ w BDUT@BT@QBSBOPJE͕Ұ࣌ظϝϯς͞Ε͍ͯͳ͍ࠒ͕͋ͬͯɺͦͷࠒʹ ·ͬͨ͘ಉ͡ίϯηϓτͰQBSBOPJB͕ग़͖ͯͨɻ w EFGBVMU@TDPQFͰEFMFUFE@BU*4/6--Λ෇͚ͯ͘ΕΔ w EFGBVMU@TDPQFͳͷͰ࣌ʑࠔΔ w ࢠ͔Β਌ΛḷΔͱ͖ʹɺ਌ͷEFMFUFE@BUΛ֎ͤͳ͍ w EFQFOEFOUEFTUSPZ࣌ʹ࿦ཧ࡟আࡁΈͷࢠ͕෺ཧ࡟আ͞Εͳ͍

Slide 51

Slide 51 text

࡟আϑϥά w ͦ͜ͰEJTDBSE w EFGBVMU@TDPQF͸ೖΕͣɺͨͩTDPQFΛఏڙ͢Δ͚ͩ w ͜Ε͸࿙Ε·͘ΔͷͰ͸ʜʜʁ ໊ਪཧ  ʮEFGBVMU@TDPQFΛ࢖͏ͳʯ͕ఆઆʹͳ͍ͬͨͤͰੈք͕࿪ΜͰΔ User.first # SELECT `users`.* FROM `users` ORDER BY `users`.`id` ASC LIMIT 1 User.kept.first # SELECT `users`.* FROM `users` WHERE `users`.`discarded_at` IS NULL
 ORDER BY `users`.`id` ASC LIMIT 1

Slide 52

Slide 52 text

࡟আςʔϒϧ w ࡟আͨ͠ΒผςʔϒϧʹJOTFSU͠ɺ΋ͱͷςʔϒϧ͔Β͸෺ཧ࡟আ ͢Δ w ࡟আςʔϒϧଆͷEFMFUFE@BUͰύʔςΟγϣϯΛ੾͓ͬͯ͘ͱɺ ʮ൒೥ܦͬͨΒ࡟আςʔϒϧ͔Β΋ফ͢ʯͱ͍͏ΦϖϨʔγϣϯ͕ ؆୯ʹͳΔ w BDUT@BT@BSDIJWFͱ͍͏HFN͕͚͋ͬͨͲɺ"DUJWF3FDPSEͷ଎ ͞ʹ෇͍ͯ͜ΒΕͳ͔ͬͨͷ͔ࢮΜͰ͠·ΘΕͨ w QBQFS@USBJM౳ͷ؂ࠪ༻HFNͰ୅ସ͢Δ͜ͱ͕ՄೳͰ͸͋Δ

Slide 53

Slide 53 text

࡟আϩά w 3%#͔Β͸෺ཧ࡟আ͠ɺ&MBTUJDTFBSDIʹಥͬࠐΉख๏ w ͜Ε͕ඞཁʹͳΔͷ͸ήʔϜ͔ͩͬͨΒɺͱ͍͏ͷ͸େ͖͍ͱࢥ ͏ɻ͕࡟আࡁΈϨίʔυʹͳΔͱ͍͏ཁ݅ͩͬͨ w ໰͍߹Θ͕ͤ͋ͬͨͱ͖Ҏ֎ʹࢀর͢Δ͜ͱ͸ઈରʹແ͍ɻ΄ͱ ΜͲ࢖Θͳ͍΋ͷʹوॏͳόοϑΝϓʔϧΛ࢖͍ͨ͘ͳ͍ͷͰɺ 3%#͔Β௥͍ग़͢ͱ͍͏൑அͰ͢

Slide 54

Slide 54 text

࡟আϩά w ΞϓϦέʔγϣϯ͕γϯϓϧʹͳΔ w ෺ཧ࡟আ͍ͯ͠ΔͷͰؾʹ͢Δ͜ͱ͕ͳ͍ w 6/*26&੍໿Ͱ΋֎෦Ωʔ੍໿Ͱ΋ͲΜͱདྷ͍ w 3%#ͷ༰ྔΛؾʹ͢Δ͜ͱ͕ݮΔ w ࡟আτϥϯβΫγϣϯΛදݱ͠΍͍͢ w ϩάΛసૹͯ͠Α͏΍͘ݕࡧՄೳʹͳΔͷͰɺऔΓग़ͦ͏ͱࢥ͏ͱ࡟আޙ ਺෼଴ͨͳ͍ͱ͍͚ͳ͍ͷ͕σϝϦοτ

Slide 55

Slide 55 text

ͦΕҎ֎ w ʮ࡟আࡁΈϢʔβʯͱ͍͏ϢʔβΛ༻ҙͯ͠෇͚ସ͑Δͱ͔ɺୀձ ࣌ʹ͸ݸਓ৘ใ͚ͩফͯ͠ಗ໊Ϣʔβͱ͍͏͜ͱʹ͢Δͱ͔ɺͦ͏ ͍͏ରԠํ๏΋͋Δͱࢥ͍·͢ɻ w ཁ݅࣍ୈͳͷͰɺ·ͣཁ݅Λ٧ΊΑ͏ɻΦεεϝ͸࡟আϩάͰ͢ɻ

Slide 56

Slide 56 text

೔໨ϥϯΩϯά

Slide 57

Slide 57 text

SFEJTͷTPSUFETFUΛ࢖͍͍ͨ w ೔࣍ͷΞΫηεϥϯΩϯάΛTPSUFETFUͰ࡞Δ w ·͞ʹTPSUFETFUͷ࢖͍Ͳ͜Ζɻ؆୯ʹ࡞Εͯ଎͍ w ि࣍ͷΞΫηεϥϯΩϯάΛTPSUFETFUͷ;6/*0/4503&Ͱ࡞ Δ w 3FEJTͰΞΫηεϥϯΩϯάΛ࣮૷c4JHVOJBOHT#MPH w 6/*0/Ͱ࣮ݱ͢ΔͷɺΊͬͪΌΧοίΠΠ࣮૷ͳͷͰ࢖ͬͯΈ͍ͨ

Slide 58

Slide 58 text

HFNΛ୳͢ w [VOJPOTUPSF3VCZͰ(JU)VCݕࡧ w IUUQTHJUIVCDPNTFBSDI M3VCZR[VOJPOTUPSFUZQF$PEF w શ෦ݟͨ ͙݅Β͍ͩͬͨͷͰ࿙Ε͸͋Δ  w CP ffi OHFN͕Ϥαι΢ʂʂ w IUUQTHJUIVCDPNIFZDBSTUFOCP ff i O w 4UBS ౰࣌ ɺ࠷ऴίϛοτ೥લ͚ͩͲ࡞Γ͕៉ྷͰಡΈ΍͍͢

Slide 59

Slide 59 text

(JU)VCݕࡧͯ͠શ෦ݟΔ w ʮ͋Μ·Γॻ͍ͯΔਓډͳ͍ͩΖ͏ͳ͊ʯͱਪଌͰ͖Δ΋ͷͰ͸ͱ ͯ΋ศར w ΋ͬͱྑ͍ॻ͖ํ͕ݟ͔ͭͬͨΓɺ࢖͍΍ͦ͢͏ͳHFN͕ݟͭ ͔ͬͨΓ͢Δ w WFOEPSҎԼΛίϛοτͯ͠ΔਓʹΩϨͦ͏ʹͳΔͷͰ͋·ΓΦε εϝ͸͠ͳ͍ɻࣗಈԽͯ͠আ֎͢Δͱ৺Ժ΍͔ʹͳΕͦ͏ɻ w TUBS਺ͱ͔ͰϦϙδτϦΛߜΕΔͱ΋ͬͱḿΔΜ͚ͩͲʜʜɻ

Slide 60

Slide 60 text

ϥϯΩϯάΑΓਪનʹৼΓ͍ͨ w ϥϯΩϯά͕ػೳ͢Δͷ͸਺ສϢʔβ͙Β͍·Ͱ w ੈքͱઓ͏΄Ͳʹ͸ਓؒ͸ڧ͘ͳ͍ w ༑ୡ಺ϥϯΩϯάͰੈքΛӅ͢ͱ͍͏ͷ΋ҰͭͷखͰ͸͋Δ͕ w 'BDFCPPL΍5XJUUFS΋5-͸ਪનͰίϯςϯπΛఏڙ͍ͯ͠Δ w ฏ੒ͷऴΘΓʹग़͢ਪનͷͳ͍αʔϏεɺ<౰ͨΓલ඼࣭>Λຬͨͯ͠Δʁ w 'SPNେࡕͷ͓͹ͪΌΜ5PՉ໧ͳϚελʔʛਂ௡و೭ fl BEEJDU ʛOPUF

Slide 61

Slide 61 text

೔໨.BSLEPXO

Slide 62

Slide 62 text

$PNNPO.BSL w .BSLEPXO͸ํݴͷଟ͍ݴޠͰɺྫ͑͹ϦϯΫҰͭͱͬͯ΋ w ͷΑ͏ͳύλʔϯ͕͋Γ·͢ɻ w ͦ΋ͦ΋ʮϓϨʔϯςΩετͰ΋ಡΈ΍͍͢ʯ͔Β࢝·ͬͯΔ͔Βɺ๻͸Ͱྑ͍ ͱࢥ͏ΜͩΑͶʔɻͰ΋ͭ໨ͷʮϦϯΫʹͨ͘͠ͳ͍ͱ͖ʹ੍ޚ͍ͨ͠ʯͱ͍͏ ؾ࣋ͪ΋෼͔Δ w ͱ͍֤ͬͨํݴͷཚཱ͕πϥ͗͢ΔͷͰɺڞ௨Խ͠Α͏ͱ͍͏ͷ͕$PNNPO.BSL 1. [http://example.com/](http://example.com/) 2. http://example.com/ 3.

Slide 63

Slide 63 text

$PNNPO.BSL w .BSLEPXO͸΋͸΍ख͕෇͚ΒΕͳ͍ͷͰɺ$PNNPO.BSLͱ͍͏໊ લͱஂମͰ࢓༷ΛݻΊ͍ͯ͜͏ͱ͍͏ϠπͰ͢ɻ w ࠷ॳ͸4UBOEBSE.BSLEPXOͱ͍͏໊લͰඪ४Խ͍ͯ͜͠͏ͱ͍͏ಈ͖ ʹͳ͍ͬͯͨΜ͚ͩͲɺʮ.BSLEPXOͷ໊લΛ࢖͏ͳʯతͳΞϨίϨ͕ ग़͖ͯͯ$PNNPO.BSLͱ͍͏໊લʹͳͬͨɺΈ͍ͨͳ࿩͕ͱ͍͏࿩ ͕8&# %#13&447PMʹॻ͍ͯ͋ͬͨɺͱࢥ͏ w ํݴΛ֬ೝ͢ΔͨΊʹCBCFMNBSLͱ͍͏΋ͷ͕͋ͬͯɺલϖʔδͷྫ ΋͜Μͳײ͡ʹ͕ࠩ͋ΔͷͰ໘ന͍Ͱ͢Ͷ

Slide 64

Slide 64 text

No content

Slide 65

Slide 65 text

ఆ൪ͷHFN w SFEDBSQFUͱLSBNEPXOͷڧͳΜ͚ͩͲɺ࠷ۙ ͜͜೥͙Β͍  DPNNPONBSLFSͱ͍͏ͷ͕ڧ͘ͳ͖ͬͯͨ w ໊લͷ௨Γɺ͜Ε͸$PNNPO.BSLʹରԠ͍ͯ͠Δ w DNBSL $PNNPO.BSL༻ͷ$ϥΠϒϥϦ ͷGPSLͰ͋ΔDNBSL HGNͷXSBQQFSɺͭ·Γ(JU)VC'MBWPSFE.BSLEPXOʹରԠ w ͱ͜ΖͰLSBNEPXO +FLZMMͷதͰ࢖ΘΕ͍ͯΔ ͸"UUSJCVUF-JTU %F fi OJUJPOT͕ؾ࣋ͪѱͯ͘޷͖ͳͷͰɺ͜Ε͸͜ΕͰྲྀߦͬͯཉ͠ ͍͚Ͳɺࠓ͔Β࡞ΔͳΒDPNNPONBSLFSʹ͓ͯ͘͠ͷ͕Ϥαι΢

Slide 66

Slide 66 text

)5.-1JQFMJOF w  Λ👍ʹஔ͖׵͍͑ͨͱ͔ɺJEPOL΍!POLΛϢʔβ΁ͷϦϯ Ϋʹ͍ͨ͠Έ͍ͨͳཁ݅͸౰વग़ͯ͘Δ w ʮ໰୊ʹͿ͔ͭΔͱzਖ਼نදݱΛ࢖͑͹͍͍zͱߟ͑Δਓ͕͍Δɻͦ ͯ͠໰୊Λ๊ͭ͑Δ͜ͱʹͳΔʯ w .BSLEPXOΛ֦ுͯ͠ಠࣗه๏Λͭ͘Δ2JJUBʹશ෦ॻ͍ͯ͋Δ ͚ͲɺͪΌΜͱπϦʔΛḷΔύʔαʔΛ࢖͍·͠ΐ͏

Slide 67

Slide 67 text

)5.-1JQFMJOF w ʮ5SFF͕Ͳ͏͍͏OPEFͩͬͨΒ fi MUFSΛ࣮ߦ͢Δ͔ʯͱ͍͏৚݅ Ͱม׵ର৅ΛߜΔ͜ͱ͕Ͱ͖Δ w )5.-5SFF͔Β)5.-5SFF΁ͷม׵ͳͷͰɺద༻ॱͰ)5.-͕ յΕΔ͜ͱ͕ແ͍ w ద༻લޙ͕ͦΕͧΕ)5.-5SFFͳͷͰςετ͕ॻ͖΍͍͢ w ͱྑ͍͜ͱͣ͘Ί͚ͩͲɺͦ΋ͦ΋೉͍͜͠ͱΛ͍ͯ͠ΔͷͰɺಠ ࣗه๏Λ૿΍͢ͱ͖͸֮ޛͯ͠ྟΈ·͠ΐ͏

Slide 68

Slide 68 text

ͱ͜ΖͰ w ֤.BSLEPXOΛ࢖͑Δ8FCΞϓϦέʔγϣϯͷڍಈΛ #BCFMNBSLͷΑ͏ͳ6*Ͱ֬ೝͰ͖Δͱخͦ͠͏͡Όͳ͍Ͱ͔͢ʁ w ʮGPPϢʔβ͕ډΔʯʮͱ͍͏هࣄ͕͋ΔʯΈ͍ͨͳલఏͷ΋ ͱͰϨϯμϦϯάͯ͠ฦͯ͘͠ΕΔ"1*͕͋Δͱ࣮ݱͰ͖ͦ͏ w 2JJUB͞ΜɺFTB͞Μɺ%PD#BTF͞Μɺ,JCFMB͞Μͱ͔Ͳ͏Ͱ͢ ͔ɻ΋ͪΖΜ͸ͯͳϒϩά΋৐͔ͬΓ͍ͨ ϒϩάνʔϜͷਓؒ͡Ό ͳ͍͚Ͳউखʹݴͬͯ·͢

Slide 69

Slide 69 text

೔໨ฤूཤྺ

Slide 70

Slide 70 text

ฤूཤྺ͸BVEJUMPH w ʮ؂ࠪϩάʯͱ͔ʮূ੻ϩάʯͱ͔Ͱݕࡧ͢Δͱྑ͍Ͱ͢ w ؂ࠪϩά w ͍ͭɺͲ͜Ͱɺ୭͕ɺԿΛɺͲͷΑ͏ʹมߋ͔ͨ͠ͷϩά w ʮͳͥʯ͸ίϛοτϝοηʔδతͳػೳ͕ແ͍ͱແཧͰ͢Ͷ w ʮԿΛʯΛϒϩάຊจ͚ͩʹߜΓɺʮͲͷΑ͏ʹʯΛEJ ff ͱͯ͠ݟ ͤΔͱฤूཤྺʹͳΔ

Slide 71

Slide 71 text

؂ࠪϩάͷ࡞Γํ w ๻Β͸"DUJWF3FDPSEܦ༝ͰมߋΛอଘ͢ΔͷͰɺ "DUJWF.PEFM%JSUZͱ͍͏ػೳΛ࢖͏ w ʮมߋલʯʮมߋޙʯ͕औಘͰ͖Δ w CFGPSF@TBWFͱ͔BGUFS@DPNNJUͱ͔ͷDBMMCBDLͰҾ͔͚ͬͯɺ ؂ࠪϩάετΞʹอଘ͢Δɺͱ͍͏ͷ͕؂ࠪϩάͷجຊɻ

Slide 72

Slide 72 text

"DUJWF.PEFM%JSUZ # ੜ੒ (or औಘ) ௚ޙ͸ changed? ͸ false u = User.create(name: "Taro") u.changed? #=> false # มߋ͢Δͱ มߋͨ͠಺༰͕෼͔Δ u.name = "Jiro" u.changed? #=> true u.changes #=> {"name"=>["Taro", "Jiro"]} # อଘ͢Δͱมߋ಺༰͸ΫϦΞ͞ΕΔ u.save! u.changed? #=> false u.changes #=> {}

Slide 73

Slide 73 text

؂ࠪϩάͷ࡞Γํ w ϦΫΤετݩͷ*1ΞυϨε΍ɺ6TFS"HFOUɺϩάΠϯதͷ VTFS@JE౳͕ඞཁʹͳΔɻ͜ΕΛTBWF࣌ʹอଘ͢Δͱ͍͏͜ͱ ͸ɺ.PEFMͷதͰ3FRVFTUʹΞΫηε͍ͨͬͯ͜͠ͱͰ͢ΑͶɻ w Ҿ਺ͱͯ͠.PEFM·ͰҾ͖ճ͢ɺͳΜͯઈର΍Γͨ͘ͳ͍ͷͰɺά ϩʔόϧม਺ʹೖΕΔ͜ͱʹͳΓ·͢ɻεϨουϩʔΧϧม਺Λ࢖ ͏ͷ͕ఆ൪Ͱ͢͠ɺ3BDLNJEEMFXBSFʹ͢Δͱ؆୯Ͱ͢ɻ

Slide 74

Slide 74 text

؂ࠪϩάͷ࡞Γํ class RequestStore def initialize(app) @app = app end def call(env) before = Thread.current[:_rack_request] Thread.current[:_rack_request] = Rack::Request.new(env) @app.call(env) ensure Thread.current[:_rack_request] = before end end

Slide 75

Slide 75 text

؂ࠪϩάͷ࡞Γํ class User < ApplicationRecord before_save :store_changes def store_changes # Thread.current[:_rack_request] ͰࢀরͰ͖Δɻ # গ͠ߟ͑ͳ͍ͱ console ΍ job ౳ɺrack Λ࢖Θͳ͍อଘ࣌ʹࠔΔͷͰ஫ҙ end end

Slide 76

Slide 76 text

؂ࠪϩάͷ࡞Γํ w ͜ͷύλʔϯ͕͋·Γʹ΋සग़͢ΔͷͰ "DUJWF4VQQPSU$VSSFOU"UUSJCVUFTͱ͍͏΋ͷ͕͋ΔΑɺͱ͍͏ ࿩ΛϚϧνςφϯτͷ࿩Ͱ΋ॻ͍ͨͷͰɺίϨΛ࢖͏ͱྑͦ͞͏ɻ w ؂ࠪϩάͷจ຺Ͱ࿩͖ͯ͠·͕ͨ͠ɺ#JH2VFSZʹஷΊ͍ͨߦಈϩ άͷऔಘ΋ಉ͡Α͏ʹ.PEFM͔ΒεϨουϩʔΧϧม਺ʹΞΫη ε͢Δߟ͑ํͰ΍͍͖ͬͯ·͢ɻ

Slide 77

Slide 77 text

ఆ൪ͷHFN w QBQFS@USBJM w BVEJUFE w ͖ͬ͞ߟ͑ͯͨ͜ͱΛ͍͍ͩͨ΍ͬͯ͘Ε͍ͯΔ

Slide 78

Slide 78 text

ࠩ෼දࣔ w EJ ff FSHFN w NBSLEJ ff HFN w .BSLEPXOΛม׵ͨ͠)5.-ಉ࢜ͷࠩ෼Λੜ੒͢Δ2JJUB w Ͱ2JJUBͷฤूཤྺΛ·Δͬͱ࠶ݱՄೳͰ͢ w ฤूཤྺ͕ݟ΍͘͢ͳΓ·ͨ͠2JJUB#MPH

Slide 79

Slide 79 text

·ͱΊ

Slide 80

Slide 80 text

·ͱΊ w ৽͍͠΋ͷΛಋೖ͢Δͱ͖ʹͲ͏ᑹΛଧ͔ͭ w ٕज़બ୒ͷํ਑ɺࠓٻΊΒΕ͍ͯΔʮ౰ͨΓલ඼࣭ʯ w ྑ͛͞ͳHFNͷ୳͠ํ w ଓ͖͸ೖࣾͨ͠ΒಡΊΔΑʂ XFBSFIJSJOH