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

2021/02/03 OSS LT会 「自作したOSSに対し厳しいFeedbackがあった話」

Ee398a67f5017cc2ad5c02d67d10e516?s=47 doyaaaaaken
February 02, 2021

2021/02/03 OSS LT会 「自作したOSSに対し厳しいFeedbackがあった話」

Ee398a67f5017cc2ad5c02d67d10e516?s=128

doyaaaaaken

February 02, 2021
Tweet

Transcript

  1. ࣗ࡞ͨ͠OSSʹର͠ ݫ͍͠Feedback͕͋ͬͨ࿩ 2021/02/03 খࢁ݈ଠ(Kenta Koyama) @doyaaaaaaken

  2. ࣗݾ঺հ • SaaS৽نࣄۀͷϓϩμΫτ։ൃാͷਓؒͰ͢ • ݱࡏ͸גࣜձࣾsmartroundͷCTO • ʰελʔτΞοϓɾ౤ࢿՈؒͷσʔλϓϥοτϑΥʔϜʱΛ໨ࢦ͍ͯ͠Δ • ελʔτΞοϓ޲͚ʹגओ૯ձɾࢿຊ੓ࡦɾגओ݄࣍ใࠂ౳ͷSaaS •

    ౤ࢿՈ޲͚ʹ౤ࢿઌ؅ཧɾ౤ࢿҊ݅؅ཧͷSaaS • OSS׆ಈ͸Kotlinܥ͕ϝΠϯ • KtorɾExposed΁ͷίϯτϦϏϡʔτ • kotlin-csvΛࣗ࡞
  3. kotlin-csvͷ঺հ • ७ਮʹkotlinͷΈͰॻ͔ΕͨCSV Reader/Writer ʢϦϦʔε͔Β໿1೥൒ͷ2020/01࣌఺ͰStar਺220ఔ⭐ʣ Github Link: https://github.com/doyaaaaaken/kotlin-csv

  4. ࠓճ࿩͢Τϐιʔυ • ৭ʑ࿩͍ͨ͠Τϐιʔυ͸͋Γ·͕͢… • ʰॳظͷ։ൃΛͲ͏͍͏;͏ʹ͔ͨ͠ʱ • ʰͲ͏͍͏τϥϒϧ͕͔͋ͬͨʱ • ʰͲ͏΍ͬͯStar਺͕૿͑ͨͷ͔ʱ •

    ʰϞνϕʔγϣϯ͕ંΕͦ͏ʹͳΓɺ͔ͦ͜Βճ෮ͨ͠ͱ͖ͷ࿩ʱ ࠓճͷ࿩͸ίϨ
  5. kotlin-csvΛ࡞ͬͨഎܠ • എܠ • Kotlin੡CSVϥΠϒϥϦ͕ແ͔ͬͨ • Java੡CSVϥΠϒϥϦ͸৴པͰ͖Δ͕υΩϡϝϯτ͕೉ղͰؾָ͕͞ͳ͔ͬͨ • ߟ͑ͨ͜ͱ •

    Scalaʹ΋scala-csvͱ͍͏ϥΠϒϥϦ͕͋ΓɺେखاۀͰ΋࢖ΘΕ͍ͯͨͷͰɺ ͦͷݴޠݻ༗ͷϥΠϒϥϦʹχʔζ͸͋Γͦ͏ • kotlin͸multiplatformػೳ͕͋Δ͠ʢ=Ϗϧυ੒Ռ෺͕JVM༻Ҏ֎ʹ΋Android/iOS/૊Έ ࠐΈ/JS౳ɺ༷ʑͳϓϥοτϑΥʔϜͰಈ͔ͤΔܗࣜʹରԠ͢Δػೳʣɺ७ਮͳkotlinͰॻ ͔ΕͨCSVϥΠϒϥϦ͕͋ͬͨ΄͏͕ྑͦ͞͏
  6. ϦϦʔε & ࠂ஌ • ໿1೥൒લͷ2019/08/23ʹβ൛ͱͯ͠ϦϦʔε globalͷKotlin SlackίϛϡχςΟʹͯࠂ஌

  7. ωΨςΟϒͳ੠͕͋ͬͨɾɾɾ • CSVʹΊͪΌͪ͘Όৄͦ͠͏ͳਓ͔Β 3400จࣈ௒ʢA4༻ࢴ3ຕ෼ʣͷਏ᫤ͳίϝϯτ͕ଈ͍ͭͨ طଘͷ5SJFEBOE5SVF੒ख़ͨ͠$47ϥΠϒϥϦͷ্ʹ࢖͍΍͍͢%4-ΛॏͶͨ͜ͱʹ ?ɻ $47͸ඍົͰ͢ ඍົͳͷ͸࢓༷ͷܽ೗ͱʮݱ৔ʯͰͷಛఆԽ΁ͷద߹ੑͷܽ೗ͳͷͰҾ༻͠·͢ ɻࢲ͸ɺ$47ʹڞ௨͢Δʮݱ࣮ੈքʯͰͷࠔ೉ͷൣғΛաখධՁͤͣɺ͜ΕΒͷݱ࣮໰୊Λѻ͏ͨΊʹ੒ ௕ͨ͠ϥΠϒϥϦΛʮϢʔβʔʹߴػೳͳϥΠϒϥϦ͸ඞཁͳ͍ʯͱҰׅΓʹ͠ͳ͍͜ͱΛ͓קΊ͠·͢ɻ

    ໰୊͸݁߹͞ΕΔ܏޲͕͋Γ·͕͢ɺԿ͕ʮ೿ख͚ͩͲෆཁͳʯػೳͳͷ͔͕໌Β͔Ͱ͸ͳ͍ͷʹରͯ͠ɺʮ?͋ͳͨ͸ຊ౰ʹͳͥ͜Μͳ͜ͱΛ͠ͳ͚Ε͹ͳΒͳ͔ͬͨͷ͔஌Γͨ͘ͳ͍Ͱ͠ΐ͏Ͱ΋ࢲΛ৴ͯ͡ɺ ͋ͳͨ͸ͦΕΛඞཁͱ͍ͯ͠Δʯͱ͍͏Α͏ͳ໰୊Ͱ͢ɻ ࢲ͸ɺ͋ͳͨͷϥΠϒϥϦ͕ެ։͍ͯ͠Δ෇ՃՁ஋ʢʮγϯϓϧ%4-Ϣʔεέʔεʯʣʹয఺Λ౰ͯΔ͜ͱΛ͓קΊ͠·͕͢ɺ੒ख़ͨ͠ʢϓϥάΠϯՄೳͳʣ$47ϥΠϒϥϦʢෳ਺Մʣͷ্ʹͦΕΛϥοϓ͢Δ͜ͱ Λ͓קΊ͠·͢ɻ ͳͥϓϥΨϒϧͳͷ͔ʁωΠςΟϒʯͳσΟεϏδϣϯ͸ؔ࿈ੑ͕͋Γ·͕͢ɺ+7.্Ͱ΋ɺϓϩάϥϜ͕ՄೳͳݶΓσʔλͷγϦΞϥΠζύʔεσʔλϚοϐϯάͷͭͷʮϑΝϛϦʔʯʹݻࣥ͢Δཧ༝͕͋ Γ·͢ɻ ྫ͑͹ɺΧϥϜϔομͷσʔλϑΟʔϧυϓϩύςΟ໊΁ͷҰ؏ͨ͠Ϛοϐϯά΍ɺͦΕΒ͕૬ޓӡ༻Ͱ͖ΔΑ͏ʹ෺ࣄΛઃఆ͢ΔҰ؏ͨ͠ํ๏ͳͲͰ͢ɻ ྫ͑͹ɺ֎෦ఆٛͷ$47ϑΝΠϧΛಡΈॻ͖͠ͳ͚Ε͹ͳΒͳ͍ΞϓϦʹऔΓ૊ΜͰ͍·͢ɻ ࣮ࡍʹ͸547  ·ͨɺ͜ΕΒΛ,PUMJOΫϥεʹσʔλϚοϐϯάͯ͠ɺ಺෦ͷϏδωεϩδοΫ΍αʔυύʔςΟͷ πʔϧʢ(6*΍%#ͳͲʣʹެ։͢Δඞཁ͕͋Γ·͢ɻ Ϩίʔυ൪߸ʯͷΑ͏ͳίϥϜͷݟग़͠ͷΑ͏ͳʮ୯७ͳʯ΋ͷΛ࠷ޙ·ͰҰ؏࣏ͨ͠ྍΛड͚Δͷ͸ɺ৴͡ΒΕͳ͍΄Ͳͷۤ௧Ͱ͢ɻ ΋ͬͱඍົͳ໰୊547ϑΝΠϧ λϒDTW ͸Ҿ༻ූͰғ·Εͨ஋ΛؚΉ͔ɺؚ·ͳ͍͔ ϔομͷॱ൪͸໌Β͔ʹͳΔͷ͔ ಡΈࠐΈ࣌ʹॱ൪͕ڰ͍ͬͯΔ͜ͱΛݕग़Ͱ͖Δͷ͔ ॻ͖ࠐΈ࣌ʹ͸Ͳ͏͔ ಡ ΈऔΓͱॻ͖ࠐΈ͸ಉ͡಺༰Λੜ੒͠ͳ͚Ε͹ͳΒͳ͍ͷ͔ɺͦΕͱ΋୯ʹ࿦ཧతʹಉ౳ͷ಺༰Λੜ੒͠ͳ͚Ε͹ͳΒͳ͍ͷ͔ʁεΩʔϚ͸σʔλͷݕূʹ࢖༻Ͱ͖Δ͔ DTWTDIFNBͷΑ͏ʹ ɺΧϥϜ໊Ͱσʔλ ΛݕࡧͰ͖Δ͔ ௥Ճ΍ܽམͨ͠ΧϥϜ͸͋Γ·͔͢ʁۭͷ஋͸ψϧ·ͨ͸Ͱ͔͢ʁ஋͸ೖྗ͞Ε͍ͯ·͔͢  ແޮͳ਺஋͸ڋ൱͞ΕΔ͔౉͞ΕΔ͔ ɺΤεέʔϓ͸࢖༻͞Ε͍ͯ·͔͢ ࢖༻͞Ε͍ͯΔ৔߹ɺ ͲͷΑ͏ͳελΠϧͰ͔͢ ຒΊࠐ·Εͨվߦ͸ଘࡏ͢Δ͔ʁ ͜ΕΒ͸໰୊ͷҰ෦ʹա͗·ͤΜɻओཁͳ$47ϥΠϒϥϦͷνΣοΫΠϯཤྺΛݟΕ͹ɺগͣͭ͠ղܾ͞Ε͖ͯͨ໰୊ͷྺ࢙ΛݟΔ͜ͱ͕Ͱ͖·͢ɻ ϥΠϒϥϦ࡞੒ऀͷࢹ఺Ͱ͸൚༻తͳέʔεͰ͸ɺಠࣗͷύʔαΛॻ͔ͳ͍͜ͱΛڧ͓͘קΊ͠·͢ɻ ϥΠϒϥϦͷফඅऀͷ؍఺͔Β͸ɺݹ͍੒ख़ͨ͠ڞಉσʔλϕʔεʹج͍͍ͮͯͳ͍$47ϥΠϒϥϦʹ͸͔ۙͮͳ͍Α͏ʹ͍ͨ͠ͱࢥ͍·͢෇ՃՁ஋͕Ͳ͏Ͱ͋ΕϦεΫΛෛ͏Ձ஋͸͋Γ·ͤΜɻ աڈ ೥ͷؒʹɺʮ͜ΕͰे෼ͩΑʯͱ͍͏༮ஓͳࢼΈ͕Կ౓΋ߦΘΕ͖ͯ·ͨ͠  ࢲ͸ଟ͘ͷ$47ϥΠϒϥϦ͕σʔλϚοϐϯάϥΠϒϥϦʹ΋ؔ࿈͍ͯ͠Δ͜ͱΛൃݟ͠·ͨ͠ɻࢲ͸ɺDTWͷಡΈࠐΈ͕σʔλϕʔεΞΫηε΍υΩϡϝϯτͷղੳʹ࢖༻͞ΕΔͷͱಉ͡Α͏ͳ࢖༻ྫ͕͋Δͱߟ ͍͑ͯ·͢DTWͷڞ௨ͷʮίΠϯͷཪଆʯͰ͢ɻͦͷ݁Ռɺྫ͑͹+BDLTPOσʔλόΠϯσΟϯά ΦϒδΣΫτϚούʔ  +BDLTPO$47Ϟδϡʔϧɺ·ͨ͸4JNQMF'MBU.BQQFSKECDDTW͢΂ͯͷؔ࿈͢Δ Ϛοϐϯά΍ڞ௨ͷσʔλϚοϐϯάϥΠϒϥϦ KECDϕʔεͷϚούʔͷΑ͏ͳ ʹ౷߹͞Εͨ΋ͷʹͳΓ·͢ɻ ϓϥάΠϯՄೳͳ$47ϥΠϒϥϦΛ࢖༻͍ͯ͠Δ৔߹ɺϓϥάΠϯՄೳͳΦϒδΣΫτσʔλϚούʔͱʮϖΞϦϯάʯͰ͖ΔΑ͏ʹ͍ͨ͠ͱࢥ͏͔΋͠Εͳ͍ͷͰɺ͜ͷ఺ʹ஫ҙ͍ͯͩ͘͠͞ɻ͜ΕʹΑΓɺෳ ਺ͷγϦΞϥΠθʔγϣϯͰಈ࡞͢Δڞ௨ͷΫϥεఆٛͱΞϊςʔγϣϯηοτΛ࢖༻͢Δ͜ͱ͕Ͱ͖·͢ɻ ʢ˞%FFQ-ແྉ൛༁ʣ ※ ҰݴͰ͍͏ͱʮCSVͱ͍͏՝୊ΛաখධՁ͗͢͠ɻ੒ख़͍ͯ͠ͳ͍ϥΠϒϥϦ͸࢖͍ͨ͘ͳ͍ɻʯͱ͍͏ҙݟ
  8. ։ൃఀࢭɾެ։ఀࢭ͢΂͖͔ͷ໎͍ • ໎͍1: ࢦఠ಺༰͸Ұݸਓͷҙݟͱͯ͠͸׬શʹਖ਼͍͠ • ʮ੒ख़ͨ͠ϥΠϒϥϦΛ࢖͏ʯͱ͍͏ҙݟ͸ਅͬ౰ͳҙݟ • ໎͍2: ࢲࣗ਎͸CSVʹ͍ͭͯৄ͍͠ਓͰ͸ͳ͍ •

    RFC͸ಡΜ͕ͩɺ࣮ଶͷ໰୊ʹ͍ͭͯ͸ૉਓ • ࢦఠͨ͠ਓ͸ઐ໳ੑ͕ߴͦ͏ 㱺 ͜ͷ··։ൃɾެ։ΛਐΊͯେৎ෉ͳͷ͔ʹ໎͍͕ग़ͯ ɹ Ϟνϕʔγϣϯ͕ંΕ͔͚ͨ
  9. ։͖௚Γ • ։͖௚ΕΔ͚ͩͷࠜڌ͕ʢͨ·ͨ·ʣ͋ͬͨ • scala-csvͷ࣮૷ϩδοΫΛࢀߟʹͨͨ͠ΊࣗલϩδοΫͰ͸ͳ͘ ͋Δఔ౓ͷ҆৺ײ͸͋ͬͨ • scala-csvʹ͋ͬͨCSVςετσʔλʹ͍ͭͯɺͦΕΒʹؔ͢Δςετ͕શͯ kotlin-csvͷςετͰ΋ύε͢ΔΑ͏ʹ͍ͯͨ͠ •

    ݁࿦ • ެ։ࣗମ͸ଓ͚Α͏ • ։ൃ΋ͱΓ͋͑ͣ͸ଓ͚Α͏ • ΋͠ϥΠϒϥϦར༻ऀʹτϥϒϧ͕සൃ͢ΔΑ͏ͳΒɺެ։ɾ։ൃΛ΍ΊΑ͏
  10. ͦͷޙͷճ෮ • ಛஈએ఻ແ͠ͰStar਺͕গͣͭࣗ͠વ૿Ճ͍ͯͬͨ͠ • mavenϦϙδτϦ͔ΒݟΕΔμ΢ϯϩʔυ਺΋ࣗવ૿Ճ͍ͯͬͨ͠ • Issue΍Pull Request΋ఆظతʹཱͭΑ͏ʹͳͬͨ 㱺 ΍ͬͺΓχʔζ͸͋ΔͷͰ͸ʁͱࣗ৴ճ෮ͨ͠

  11. ࠷ޙʹ 1.ϑΟʔυόοΫ͸େࣄ͕ͩɺࣗ෼ͳΓͷߟ͕͑ͦ͜Ұ൪େࣄ • ϑΟʔυόοΫʹͦͷ··ै͏ͷͰ͸ͳ͘ɺϑΟʔυόοΫΛࣗ෼ͷߟ͑΁ͱ൓өͤ͞Δ • ݖҖͷ͋Γͦ͏ͳਓ͔ΒͷҙݟʢϚαΧϦʣ͕͋ͬͨͱͯ͠΋Ҥॖ͠ͳ͍ • શੈքʹެ։͢ΔݶΓɺͲΜͳOSSͰ΋ࣗ෼ͷΑΓ΋ͦͷ໰୊ྖҬʹৄ͍͠ਓ͕ඞͣͨ͘͞Μ͍Δ 2.օ͞Μ΋OSS࡞ͬͯωΨςΟϒͳҙݟΛड͚ͨͱ͖ʹɺ ͜ͷLTΛࢥ͍ฦͯ͠ݩؾΛग़͍͚ͯͨͩ͠Ε͹ͱࢥ͍·͢

  12. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ @doyaaaaaken