Slide 1

Slide 1 text

͖͋ खܰʹ࡞ΕΔి୎Λ࡞ͬͯ Πϕϯτιʔγϯάʹ਌͠΋͏ $234 &4ΧϯϑΝϨϯεDRST@FT@DPO

Slide 2

Slide 2 text

୍઒ ܒلʢ27ࡀʣ ͖͋ X: @aki_artisan גࣜձࣾϥϯϓʢژ౎ʣ PHPer εΫϥϜϚελʔ ઃܭʹڵຯ͕͋Δ ը૾ɿPHPerKaigi

Slide 3

Slide 3 text

͓͜ͱΘΓ w ࢲ͸ɺۀ຿Ͱ͸·ͩ$234 &4Λ࣮ફ͍ͯ͠·ͤΜ w ৭ʑߥ͍෦෼͕͋Δ͔΋͠Ε·ͤΜ͕ɺҰॹʹֶΜͰ͍͘ͱ͍͏ελϯεͰ ͓ئ͍Ͱ͖Ε͹ͱࢥ͍·͢ w ޕޙͷֶͼͷϞνϕʔγϣϯ্͕͕ΔτʔΫΛ໨ࢦ͠·͢ w ޕޙΠνͱ͍͏͜ͱͰʮલ࠲ʯతʹָ͓͠Έ͍͚ͨͩΕ͹ͱࢥ͍·͢

Slide 4

Slide 4 text

એ఻ w DRSTFTFYBNQMFͷ1)1൛Λ࣮૷͠·ͨ͠ʢ͔ͱ͡ΎΜ͞ΜγϦʔζʣ w IUUQTHJUIVCDPNBLJOPSJBLBUTVLBDRSTFTFYBNQMFQIQ w %ZOBNPʹΠϕϯτετΞΛ࡞Γɺ$%$ͰϦʔυϞσϧΛߋ৽͢Δ w ποίϛ͓଴͍ͪͯ͠·͢🙇

Slide 5

Slide 5 text

τʔΫͷಈػ w ΄΅Ұ೥લɺ$234 &4ΧϯϑΝϨϯεͰॳΊͯΠϕϯτιʔγϯάΛ஌ͬ ͨ w Πϕϯτιʔγϯά͸ཧղ͢ΔͨΊʹඞཁͳ஌͕ࣝଟ͍ w ू໿υϝΠϯΠϕϯτϥΠτϞσϧͱϦʔυϞσϧ w ϦʔυϞσϧΞοϓσʔλΠϕϯτετΞϦϓϨΠ w ΞΫλʔϞσϧΞΫλʔγεςϜ w $234

Slide 6

Slide 6 text

τʔΫͷಈػ w ϝϦοτΛ࣮ײ͢Δલʹ࠳ંͯ͠͠·͏ͷ͸໪ମແ͍ w Πϕϯτ͕࢒͍ͬͯΔϝϦοτΛ࣮ײ͢Δ͚ͩͰ΋ֶͼͷ͖͔͚ͬʹͳΔͷ Ͱ͸ͳ͍͔ w ϖϥΠνͷి୎ͳΒ࠷௿ݶͷߏ੒ͰϝϦοτ͚ͩ఻ΘΔͷͰ͸

Slide 7

Slide 7 text

࡞ͬͨ΋ͷ w ి୎ w ϘλϯΛԡͯ͠਺ࣜΛ࡞͍͖ͬͯʮʯΛԡ͢ͱܭࢉ͞ΕΔ w ԡͨ͠Ϙλϯͷه࿥͕࢒Δ w ϩάΛషΓ෇͚Δ͜ͱͰଞͷλϒͰܭࢉ͠௚͢͜ͱ͕Ͱ͖Δ w )5.-ͱ+4Λ߹Θͤͯߦ͘Β͍Ͱ࣮ݱʢ$44͸ผʣ IUUQTBLJOPSJBLBUTVLBHJUIVCJPFTEFOUBLV

Slide 8

Slide 8 text

ΠϕϯτιʔγϯάͬͯԿ w ΤϯςΟςΟͷঢ়ଶΛ௚઀อଘ͢ΔͷͰ͸ͳ͘ɺঢ়ଶͷมԽΛΠϕϯτͱͯ͠ ه࿥͠ɺͦΕΒͷΠϕϯτΛ࠶ੜ͢Δ͜ͱͰݱࡏͷঢ়ଶΛ࠶ߏங͢ΔΞϓϩ ʔν w ΠϕϯτΛιʔεʢݯʣʹ͢Δͱ͍͏ҙ w ↔︎ εςʔτιʔγϯά w యܕతͳ$36%

Slide 9

Slide 9 text

%&.0

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

΍͍ͬͯΔ͜ͱ w ి୎͕ѻ͏ʮܭࢉʯΛΤϯςΟςΟʹݟཱ͍ͯͯ·͢ w ʮܭࢉʯʹର֤ͯ͠छΠϕϯτ͕࣮ߦ͞Ε·͢ w ਺ࣜ΁ͷ௥ه w ܭࢉ w ΫϦΞ w 6OEP3FEP

Slide 16

Slide 16 text

ॲཧͷྲྀΕ  Ϙλϯ͕ԡ͞ΕΔ  ܭࢉʹର͢ΔΠϕϯτΛΠϕϯτετΞʹه࿥͢Δ  ΠϕϯτετΞʹه࿥͞Ε͍ͯΔΠϕϯτྻ͔Βɺి୎ͷ૭ʹ৐ͤΔจࣈΛ ࠶ܭࢉ

Slide 17

Slide 17 text

$BMDVMBUJPO class Calculation { constructor() { this.expression = ""; // ݱࡏͷࣜ this.undoStack = []; // undo༻ελοΫʢաڈͷঢ়ଶΛอ࣋ʣ this.redoStack = []; // redo༻ελοΫ } // ུ... }

Slide 18

Slide 18 text

௥هΠϕϯτ w FYQSͷจࣈྻͷӈ୺ʹจࣈΛ௥Ճ͢Δ case "append": this.redoStack.length = 0; this.undoStack.push(this.expression); this.expression = this.expression + event.value; break;

Slide 19

Slide 19 text

ܭࢉΠϕϯτ w NBUIFWBMVBUFͰܭࢉ͢Δ͚ͩ const result = math.evaluate(this.expression).toString(); this.expression = result;

Slide 20

Slide 20 text

6OEP3FEPΠϕϯτ w ௚લͷ6OEPҎ֎ͷΠϕϯτΛऔΓফ͢ w 3FEP͸6OEPͷऔΓফ͠ w 6OEPΛ࢖͏ͱɺܭࢉޙ͔Βܭࢉલʹ໭͢͜ͱ͕Ͱ͖Δ w ྫ͑͹ͱ͍͏ܭࢉ݁Ռ͕ɺºͷ݁Ռͳͷ͔ɺ ͷ݁Ռͳͷ͔Λ γεςϜ͕೺Ѳ͍ͯ͠ΔͷͰ࣮ݱͰ͖͍ͯΔ

Slide 21

Slide 21 text

஫໨͍ͨ͠ϙΠϯτ w શͯͷΠϕϯτ͕࢒͍ͬͯΔ w ೚ҙͷλΠϛϯάͷFYQSͷঢ়ଶΛ஌Δ͜ͱ͕Ͱ͖Δ w 6OEP3FEP͕ߦ͑Δ w 6OEP3FEP΋Πϕϯτͱ࣮ͯ͠૷

Slide 22

Slide 22 text

ϝϦοτ w ʮू໿ʯͷมભ͕௥͑Δ w ࠓճͷྫͰ͸ຊདྷͷҙຯͷू໿͸ͳ͍ w ू໿΍ӬଓԽͷࡍͷ੔߹ੑΛ୲อ͍ͨ͠ൣғ w ࠓճ͸ӬଓԽ͸͠ͳ͍͕ɺ਺ࣜදݱFYQSͷมભ͕௥͑Δ

Slide 23

Slide 23 text

ϝϦοτ w ࣮ࡍʹ͸ू໿ͷมભ͕௥͑Δͱӡ༻΍σʔλ׆༻ʹ໾ཱͭ w ٯʹɺ6QEBUF͸σʔλΛഁյͯ͠͠·͍ɺաڈͷঢ়ଶ͕ࣦΘΕͯ͠·͏ w աڈͷঢ়ଶ͕Θ͔Βͳ͍ͱɺσʔλʹ੹೚Λ࣋ͯͳ͍ w Կ͔͋ͬͨͱ͖ʹɺʮΘ͔Γ·ͤΜʯͱճ౴ͨ͘͠ͳ͍Ͱ͢ΑͶ w σʔλ׆༻ͷোนʹͳΔ

Slide 24

Slide 24 text

ΠϕϯτιʔγϯάΛ્Ή΋ͷ w ૢ࡞͕ۀ຿ͷݴ༿ʹͳ͍ͬͯͳ͍ w ࡟আ͢Δʁߋ৽͢Δʁ w ૢ࡞Λۀ຿ͷݴ༿Ͱදݱ͍ͯ͠Ε͹ه࿥͢΂͖Πϕϯτ͸໌֬ʹͳΔ͸ͣ w ۀ຿ʹ໨Λ޲͚Α͏

Slide 25

Slide 25 text

͓ΘΓʹ w ཧղ͢Δʹ͸ҰےೄͰ͸͍͖·ͤΜ w ࢲ͸1)1αϯϓϧΛ࡞Δͷʹ೥͘Β͍͔͔Γ·ͨ͠ w ཧղ͠ͳ͍ͱࣗ৴Λ࣮࣋ͬͯફͰ͖·ͤΜ w ݁ہɺैདྷͷ$36%ʹཤྺΛ෇͚଍͚ͩ͢ʹͳͬͯ͠·͏ w ࠓ೔͸৭ʑͳ࣮ફͷ࿩Λฉֶ͍ͯͼ·͠ΐ͏

Slide 26

Slide 26 text

5IBOLZPV