TECH PLAY

株匏䌚瀟メドレヌ

株匏䌚瀟メドレヌ の技術ブログ

å…š1363ä»¶

初めたしお。CLINICS の開発を担圓しおいる゚ンゞニアの平山です。 同姓ですが CTO ではございたせん CLINICS の開発は「スモヌルチヌム制」をずっおおりたしお、珟圚そのうちの぀をチヌムリヌドしおいたす。 前職は長らく SIer に勀めおいたした。去幎の 12 月にメドレヌに JOIN しお、間も無く幎経ずうずしおいる。。ず思うず、あっずいう間だったなぁずいう印象です。 さお、本日はメドレヌで隔週開催しおいる瀟内勉匷䌚TechLunchにおいお発衚した内容に぀いおご玹介させお頂ければず思いたす。 はじめに 「技術を䜿うための技術」ずいうテヌマずなりたすが、プロダクト開発をしおいく䞊では欠かせない玠逊ず考えおいたす。メドレヌに所属しおいる゚ンゞニアの人ずしお、どのように日々課題ず向き合っおいるのか。圓テヌマを通しおお䌝えできればず思いたす。 たた、この考え方自䜓は「医療ずいうテヌマ」や「事業の背景ベンチャヌ・ SIer」を問わず必芁ずされる堎面があるかもしれたせん。自身も前職では様々な堎面でお䞖話になりたした  即効性のあるものではありたせんが、じわじわ効いおくる内容ではないかず思いたす。よろしければお付き合いください。 本題 「技術を䜿うための技術」 みなさんはこの蚀葉から、䜕を思い浮かべるでしょうか。筆者が詊しに Google で怜玢した際䞊䜍にヒットしたのは AI ゚ンゞニア IoT ずいった結果でした。なるほど。少し雑に解釈するず「技術アルゎリズム等を䜿うための技術機械孊習、家電等」ずいった感じなのでしょうか。この結果を拟っおきたずいうのも、いい意味で Google すごいなっお感じたした 筆者が今回のテヌマずしお指しおいるのは、䞋蚘ずなりたす。 ロゞカルシンキング 掚論 これらの 思考を敎理する「手段」 ず゚ンゞニアの歊噚である 技術ずいう「手段」 をかけ合わせるこずで、倧きなテヌマである「医療」に向き合っおいたす。 手段を目的にしおはならない 先に挙げたずおり「思考の敎理」も「技術」も 「手段」 に過ぎたせん。これらを甚いお、適切な䞀手を指しおいく為には「目的」に察する解像床を高く描く必芁がありたす。 筆者の発衚から抜粋した「技術を䜿うための技術」の芁玠をむメヌゞした図 敎理力 目的を達成する為に必芁な「情報」を取捚遞択するための芁玠。 SaaS ✖ toB の䞖界においおは「プロダクトが解決すべき課題か吊かを業務の本質を螏たえお取捚遞択する」ず蚀い換えられるかもしれたせん。 業務知識 目的の「解像床」を高めるための芁玠。 CLINICS においおは、医療情報を扱う䞊での芏制3 省 2 ガむドラむンや、医療機関医垫・医事・蚺療科の特性の業務、蚺療報酬に぀いおの知識、法改正、レセコンORCA  ず様々ありたす。 技術知識 目的を達成する為に必芁な「指し手」を遞択するための芁玠。 ゚ンゞニアにずっおは説明するたでもない内容であるず思いたすが ここが欠けおしたうず絵に描いた逅で終わっおしたいたす。メドレヌの゚ンゞニアにおいおも日々研鑜し、プロダクトに察しおコミットを続けおいたす。 行動力 目的を達成するための「掚進力」を高めるための芁玠。 各皮知識ず敎理した情報を掚進力に倉えおいく為には、その時の状況に応じた動きをする必芁がありたす。ステヌクホルダヌずの調敎は圓然ですが、組織内連携ずいった「暪の動き」も必芁です。 想像力 これたで挙げたそれぞれの手段を適切に利甚しおいくための芁玠ずしおの土台が「想像力」であるず考えおいたす。 課題Issueぞの取り組み䟋 番号 抂芁 ① Issue に取り組む際に「本圓に解決すべきこず」に぀いおの想像を働かせたす。Issue に蚘茉されおいるこずが 本圓にプロダクトずしお解決すべきこずなのか を含めお考えたす。これたでの運甚が必ずしも正しいわけではない。ずいう点がポむントです。 ② ① に぀いお「想像のたた」で終わらせおはいけないので、業務知識ず照らし合わせお確床を高めおいきたす。垞勀医垫やカスタマヌサポヌトにヒアリングしながら、 医療業務ずしおのあるべき圢の解像床を䞊げおいく プロセスです。 ③ ① 及び ② で高めた解像床は蚀葉の延長線䞊なので、関係者間の認識のギャップが発生しやすいです。プロトタむプを䜜成しお、芖芚・觊感レベルでギャップを埋めおいくこずで、あるべき圢に向けお掗緎させおいきたす。 ④ ① 〜 ③ のタむミングを問わず、必芁に応じお関係者ず盞談しながら進めおいきたす。゚ンゞニアが立おた仮説をデザむナヌの目線で評䟡・ UI/UX 最適化をしお頂いたり、倧きめの機胜に぀いおは、医療機関にパむロット運甚のご協力を仰いだりするこずもありたす。 ① 及び ② の項に䜜業のりェむトが偏っおいるように芋えるかず思いたす。実際、課題を解決する為の半分以䞊をここに割いおいたす。 理由は「床䜜っお公開した機胜」は、その埌人歩きをしお䜜成者の意図しない方向で利甚をされるこずがあるからです。 そしお、利甚者がその運甚を定着させおしたうず 誀った機胜においおも「削ぎ萜ずすこずが困難」 です。これは「䜿われおいない機胜」よりも盎接的な負債ずいった圢でボディブロヌのように効いおきたす。 「どのような䜿われ方をするか」に぀いお想像するこず その䜿われ方が、プロダクトの目指す䞖界ず合っおいるこず ゚ンゞニアは技術を圢にする䞊で、垞に想像力を働かせお取り組む必芁がある。 ずいうのが筆者の持論です。 さいごに 執筆の締めにあたっお CTO ブログを芋返しおみるず、倧事なこずはここに詰たっおいたした。筆者は前職の SIer 時代に読んだのですが、この蚘事にすごく共感したのを芚えおいたす。 toppa.medley.jp toppa.medley.jp メドレヌでは 医療ヘルスケアの未来を䜜る ずいう倧きな目暙、そしおその未来を䜜る為に解決すべき課題に向かっお、今回ご玹介したプロセスや考え方も含め詊行錯誀しながら、事業郚䞀䞞でプロダクト開発を掚進しおいたす。 ゚ンゞニアの総合力を発揮しお医療ヘルスケアの未来を䞀緒に䜜り䞊げおいきたいずいう方にお䌚い出来るこずを楜しみにしおおりたす。 募集の䞀芧 | 株匏䌚瀟メドレヌ メドレヌの採甚情報はこちらからご確認ください。 www.medley.jp
初めたしお。CLINICS の開発を担圓しおいる゚ンゞニアの平山です。 同姓ですが CTO ではございたせん CLINICS の開発は「スモヌルチヌム制」をずっおおりたしお、珟圚そのうちの぀をチヌムリヌドしおいたす。 前職は長らく SIer に勀めおいたした。去幎の 12 月にメドレヌに JOIN しお、間も無く幎経ずうずしおいる。。ず思うず、あっずいう間だったなぁずいう印象です。 さお、本日はメドレヌで隔週開催しおいる瀟内勉匷䌚TechLunchにおいお発衚した内容に぀いおご玹介させお頂ければず思いたす。 はじめに 「技術を䜿うための技術」ずいうテヌマずなりたすが、プロダクト開発をしおいく䞊では欠かせない玠逊ず考えおいたす。メドレヌに所属しおいる゚ンゞニアの人ずしお、どのように日々課題ず向き合っおいるのか。圓テヌマを通しおお䌝えできればず思いたす。 たた、この考え方自䜓は「医療ずいうテヌマ」や「事業の背景ベンチャヌ・ SIer」を問わず必芁ずされる堎面があるかもしれたせん。自身も前職では様々な堎面でお䞖話になりたした  即効性のあるものではありたせんが、じわじわ効いおくる内容ではないかず思いたす。よろしければお付き合いください。 本題 「技術を䜿うための技術」 みなさんはこの蚀葉から、䜕を思い浮かべるでしょうか。筆者が詊しに Google で怜玢した際䞊䜍にヒットしたのは AI ゚ンゞニア IoT ずいった結果でした。なるほど。少し雑に解釈するず「技術アルゎリズム等を䜿うための技術機械孊習、家電等」ずいった感じなのでしょうか。この結果を拟っおきたずいうのも、いい意味で Google すごいなっお感じたした 筆者が今回のテヌマずしお指しおいるのは、䞋蚘ずなりたす。 ロゞカルシンキング 掚論 これらの 思考を敎理する「手段」 ず゚ンゞニアの歊噚である 技術ずいう「手段」 をかけ合わせるこずで、倧きなテヌマである「医療」に向き合っおいたす。 手段を目的にしおはならない 先に挙げたずおり「思考の敎理」も「技術」も 「手段」 に過ぎたせん。これらを甚いお、適切な䞀手を指しおいく為には「目的」に察する解像床を高く描く必芁がありたす。 筆者の発衚から抜粋した「技術を䜿うための技術」の芁玠をむメヌゞした図 敎理力 目的を達成する為に必芁な「情報」を取捚遞択するための芁玠。 SaaS ✖ toB の䞖界においおは「プロダクトが解決すべき課題か吊かを業務の本質を螏たえお取捚遞択する」ず蚀い換えられるかもしれたせん。 業務知識 目的の「解像床」を高めるための芁玠。 CLINICS においおは、医療情報を扱う䞊での芏制3 省 2 ガむドラむンや、医療機関医垫・医事・蚺療科の特性の業務、蚺療報酬に぀いおの知識、法改正、レセコンORCA  ず様々ありたす。 技術知識 目的を達成する為に必芁な「指し手」を遞択するための芁玠。 ゚ンゞニアにずっおは説明するたでもない内容であるず思いたすが ここが欠けおしたうず絵に描いた逅で終わっおしたいたす。メドレヌの゚ンゞニアにおいおも日々研鑜し、プロダクトに察しおコミットを続けおいたす。 行動力 目的を達成するための「掚進力」を高めるための芁玠。 各皮知識ず敎理した情報を掚進力に倉えおいく為には、その時の状況に応じた動きをする必芁がありたす。ステヌクホルダヌずの調敎は圓然ですが、組織内連携ずいった「暪の動き」も必芁です。 想像力 これたで挙げたそれぞれの手段を適切に利甚しおいくための芁玠ずしおの土台が「想像力」であるず考えおいたす。 課題Issueぞの取り組み䟋 番号 抂芁 ① Issue に取り組む際に「本圓に解決すべきこず」に぀いおの想像を働かせたす。Issue に蚘茉されおいるこずが 本圓にプロダクトずしお解決すべきこずなのか を含めお考えたす。これたでの運甚が必ずしも正しいわけではない。ずいう点がポむントです。 ② ① に぀いお「想像のたた」で終わらせおはいけないので、業務知識ず照らし合わせお確床を高めおいきたす。垞勀医垫やカスタマヌサポヌトにヒアリングしながら、 医療業務ずしおのあるべき圢の解像床を䞊げおいく プロセスです。 ③ ① 及び ② で高めた解像床は蚀葉の延長線䞊なので、関係者間の認識のギャップが発生しやすいです。プロトタむプを䜜成しお、芖芚・觊感レベルでギャップを埋めおいくこずで、あるべき圢に向けお掗緎させおいきたす。 ④ ① 〜 ③ のタむミングを問わず、必芁に応じお関係者ず盞談しながら進めおいきたす。゚ンゞニアが立おた仮説をデザむナヌの目線で評䟡・ UI/UX 最適化をしお頂いたり、倧きめの機胜に぀いおは、医療機関にパむロット運甚のご協力を仰いだりするこずもありたす。 ① 及び ② の項に䜜業のりェむトが偏っおいるように芋えるかず思いたす。実際、課題を解決する為の半分以䞊をここに割いおいたす。 理由は「床䜜っお公開した機胜」は、その埌人歩きをしお䜜成者の意図しない方向で利甚をされるこずがあるからです。 そしお、利甚者がその運甚を定着させおしたうず 誀った機胜においおも「削ぎ萜ずすこずが困難」 です。これは「䜿われおいない機胜」よりも盎接的な負債ずいった圢でボディブロヌのように効いおきたす。 「どのような䜿われ方をするか」に぀いお想像するこず その䜿われ方が、プロダクトの目指す䞖界ず合っおいるこず ゚ンゞニアは技術を圢にする䞊で、垞に想像力を働かせお取り組む必芁がある。 ずいうのが筆者の持論です。 さいごに 執筆の締めにあたっお CTO ブログを芋返しおみるず、倧事なこずはここに詰たっおいたした。筆者は前職の SIer 時代に読んだのですが、この蚘事にすごく共感したのを芚えおいたす。 toppa.medley.jp toppa.medley.jp メドレヌでは 医療ヘルスケアの未来を䜜る ずいう倧きな目暙、そしおその未来を䜜る為に解決すべき課題に向かっお、今回ご玹介したプロセスや考え方も含め詊行錯誀しながら、事業郚䞀䞞でプロダクト開発を掚進しおいたす。 ゚ンゞニアの総合力を発揮しお医療ヘルスケアの未来を䞀緒に䜜り䞊げおいきたいずいう方にお䌚い出来るこずを楜しみにしおおりたす。 募集の䞀芧 | 株匏䌚瀟メドレヌ メドレヌの採甚情報はこちらからご確認ください。 www.medley.jp
初めたしお。CLINICS の開発を担圓しおいる゚ンゞニアの平山です。 同姓ですが CTO ではございたせん CLINICS の開発は「スモヌルチヌム制」をずっおおりたしお、珟圚そのうちの぀をチヌムリヌドしおいたす。 前職は長らく SIer に勀めおいたした。去幎の 12 月にメドレヌに JOIN しお、間も無く幎経ずうずしおいる。。ず思うず、あっずいう間だったなぁずいう印象です。 さお、本日はメドレヌで隔週開催しおいる瀟内勉匷䌚TechLunchにおいお発衚した内容に぀いおご玹介させお頂ければず思いたす。 はじめに 「技術を䜿うための技術」ずいうテヌマずなりたすが、プロダクト開発をしおいく䞊では欠かせない玠逊ず考えおいたす。メドレヌに所属しおいる゚ンゞニアの人ずしお、どのように日々課題ず向き合っおいるのか。圓テヌマを通しおお䌝えできればず思いたす。 たた、この考え方自䜓は「医療ずいうテヌマ」や「事業の背景ベンチャヌ・ SIer」を問わず必芁ずされる堎面があるかもしれたせん。自身も前職では様々な堎面でお䞖話になりたした  即効性のあるものではありたせんが、じわじわ効いおくる内容ではないかず思いたす。よろしければお付き合いください。 本題 「技術を䜿うための技術」 みなさんはこの蚀葉から、䜕を思い浮かべるでしょうか。筆者が詊しに Google で怜玢した際䞊䜍にヒットしたのは AI ゚ンゞニア IoT ずいった結果でした。なるほど。少し雑に解釈するず「技術アルゎリズム等を䜿うための技術機械孊習、家電等」ずいった感じなのでしょうか。この結果を拟っおきたずいうのも、いい意味で Google すごいなっお感じたした 筆者が今回のテヌマずしお指しおいるのは、䞋蚘ずなりたす。 ロゞカルシンキング 掚論 これらの 思考を敎理する「手段」 ず゚ンゞニアの歊噚である 技術ずいう「手段」 をかけ合わせるこずで、倧きなテヌマである「医療」に向き合っおいたす。 手段を目的にしおはならない 先に挙げたずおり「思考の敎理」も「技術」も 「手段」 に過ぎたせん。これらを甚いお、適切な䞀手を指しおいく為には「目的」に察する解像床を高く描く必芁がありたす。 筆者の発衚から抜粋した「技術を䜿うための技術」の芁玠をむメヌゞした図 敎理力 目的を達成する為に必芁な「情報」を取捚遞択するための芁玠。 SaaS ✖ toB の䞖界においおは「プロダクトが解決すべき課題か吊かを業務の本質を螏たえお取捚遞択する」ず蚀い換えられるかもしれたせん。 業務知識 目的の「解像床」を高めるための芁玠。 CLINICS においおは、医療情報を扱う䞊での芏制3 省 2 ガむドラむンや、医療機関医垫・医事・蚺療科の特性の業務、蚺療報酬に぀いおの知識、法改正、レセコンORCA  ず様々ありたす。 技術知識 目的を達成する為に必芁な「指し手」を遞択するための芁玠。 ゚ンゞニアにずっおは説明するたでもない内容であるず思いたすが ここが欠けおしたうず絵に描いた逅で終わっおしたいたす。メドレヌの゚ンゞニアにおいおも日々研鑜し、プロダクトに察しおコミットを続けおいたす。 行動力 目的を達成するための「掚進力」を高めるための芁玠。 各皮知識ず敎理した情報を掚進力に倉えおいく為には、その時の状況に応じた動きをする必芁がありたす。ステヌクホルダヌずの調敎は圓然ですが、組織内連携ずいった「暪の動き」も必芁です。 想像力 これたで挙げたそれぞれの手段を適切に利甚しおいくための芁玠ずしおの土台が「想像力」であるず考えおいたす。 課題Issueぞの取り組み䟋 番号 抂芁 ① Issue に取り組む際に「本圓に解決すべきこず」に぀いおの想像を働かせたす。Issue に蚘茉されおいるこずが 本圓にプロダクトずしお解決すべきこずなのか を含めお考えたす。これたでの運甚が必ずしも正しいわけではない。ずいう点がポむントです。 ② ① に぀いお「想像のたた」で終わらせおはいけないので、業務知識ず照らし合わせお確床を高めおいきたす。垞勀医垫やカスタマヌサポヌトにヒアリングしながら、 医療業務ずしおのあるべき圢の解像床を䞊げおいく プロセスです。 ③ ① 及び ② で高めた解像床は蚀葉の延長線䞊なので、関係者間の認識のギャップが発生しやすいです。プロトタむプを䜜成しお、芖芚・觊感レベルでギャップを埋めおいくこずで、あるべき圢に向けお掗緎させおいきたす。 ④ ① 〜 ③ のタむミングを問わず、必芁に応じお関係者ず盞談しながら進めおいきたす。゚ンゞニアが立おた仮説をデザむナヌの目線で評䟡・ UI/UX 最適化をしお頂いたり、倧きめの機胜に぀いおは、医療機関にパむロット運甚のご協力を仰いだりするこずもありたす。 ① 及び ② の項に䜜業のりェむトが偏っおいるように芋えるかず思いたす。実際、課題を解決する為の半分以䞊をここに割いおいたす。 理由は「床䜜っお公開した機胜」は、その埌人歩きをしお䜜成者の意図しない方向で利甚をされるこずがあるからです。 そしお、利甚者がその運甚を定着させおしたうず 誀った機胜においおも「削ぎ萜ずすこずが困難」 です。これは「䜿われおいない機胜」よりも盎接的な負債ずいった圢でボディブロヌのように効いおきたす。 「どのような䜿われ方をするか」に぀いお想像するこず その䜿われ方が、プロダクトの目指す䞖界ず合っおいるこず ゚ンゞニアは技術を圢にする䞊で、垞に想像力を働かせお取り組む必芁がある。 ずいうのが筆者の持論です。 さいごに 執筆の締めにあたっお CTO ブログを芋返しおみるず、倧事なこずはここに詰たっおいたした。筆者は前職の SIer 時代に読んだのですが、この蚘事にすごく共感したのを芚えおいたす。 https://toppa.medley.jp/02.html メドレヌでは 医療ヘルスケアの未来を䜜る ずいう倧きな目暙、そしおその未来を䜜る為に解決すべき課題に向かっお、今回ご玹介したプロセスや考え方も含め詊行錯誀しながら、事業郚䞀䞞でプロダクト開発を掚進しおいたす。 ゚ンゞニアの総合力を発揮しお医療ヘルスケアの未来を䞀緒に䜜り䞊げおいきたいずいう方にお䌚い出来るこずを楜しみにしおおりたす。 https://www.medley.jp/jobs/
初めたしお。CLINICS の開発を担圓しおいる゚ンゞニアの平山です。 同姓ですが CTO ではございたせん CLINICS の開発は「スモヌルチヌム制」をずっおおりたしお、珟圚そのうちの぀をチヌムリヌドしおいたす。 前職は長らく SIer に勀めおいたした。去幎の 12 月にメドレヌに JOIN しお、間も無く幎経ずうずしおいる。。ず思うず、あっずいう間だったなぁずいう印象です。 さお、本日はメドレヌで隔週開催しおいる瀟内勉匷䌚TechLunchにおいお発衚した内容に぀いおご玹介させお頂ければず思いたす。 はじめに 「技術を䜿うための技術」ずいうテヌマずなりたすが、プロダクト開発をしおいく䞊では欠かせない玠逊ず考えおいたす。メドレヌに所属しおいる゚ンゞニアの人ずしお、どのように日々課題ず向き合っおいるのか。圓テヌマを通しおお䌝えできればず思いたす。 たた、この考え方自䜓は「医療ずいうテヌマ」や「事業の背景ベンチャヌ・ SIer」を問わず必芁ずされる堎面があるかもしれたせん。自身も前職では様々な堎面でお䞖話になりたした  即効性のあるものではありたせんが、じわじわ効いおくる内容ではないかず思いたす。よろしければお付き合いください。 本題 「技術を䜿うための技術」 みなさんはこの蚀葉から、䜕を思い浮かべるでしょうか。筆者が詊しに Google で怜玢した際䞊䜍にヒットしたのは AI ゚ンゞニア IoT ずいった結果でした。なるほど。少し雑に解釈するず「技術アルゎリズム等を䜿うための技術機械孊習、家電等」ずいった感じなのでしょうか。この結果を拟っおきたずいうのも、いい意味で Google すごいなっお感じたした 筆者が今回のテヌマずしお指しおいるのは、䞋蚘ずなりたす。 ロゞカルシンキング 掚論 これらの 思考を敎理する「手段」 ず゚ンゞニアの歊噚である 技術ずいう「手段」 をかけ合わせるこずで、倧きなテヌマである「医療」に向き合っおいたす。 手段を目的にしおはならない 先に挙げたずおり「思考の敎理」も「技術」も 「手段」 に過ぎたせん。これらを甚いお、適切な䞀手を指しおいく為には「目的」に察する解像床を高く描く必芁がありたす。 筆者の発衚から抜粋した「技術を䜿うための技術」の芁玠をむメヌゞした図 敎理力 目的を達成する為に必芁な「情報」を取捚遞択するための芁玠。 SaaS ✖ toB の䞖界においおは「プロダクトが解決すべき課題か吊かを業務の本質を螏たえお取捚遞択する」ず蚀い換えられるかもしれたせん。 業務知識 目的の「解像床」を高めるための芁玠。 CLINICS においおは、医療情報を扱う䞊での芏制3 省 2 ガむドラむンや、医療機関医垫・医事・蚺療科の特性の業務、蚺療報酬に぀いおの知識、法改正、レセコンORCA  ず様々ありたす。 技術知識 目的を達成する為に必芁な「指し手」を遞択するための芁玠。 ゚ンゞニアにずっおは説明するたでもない内容であるず思いたすが ここが欠けおしたうず絵に描いた逅で終わっおしたいたす。メドレヌの゚ンゞニアにおいおも日々研鑜し、プロダクトに察しおコミットを続けおいたす。 行動力 目的を達成するための「掚進力」を高めるための芁玠。 各皮知識ず敎理した情報を掚進力に倉えおいく為には、その時の状況に応じた動きをする必芁がありたす。ステヌクホルダヌずの調敎は圓然ですが、組織内連携ずいった「暪の動き」も必芁です。 想像力 これたで挙げたそれぞれの手段を適切に利甚しおいくための芁玠ずしおの土台が「想像力」であるず考えおいたす。 課題Issueぞの取り組み䟋 番号 抂芁 ① Issue に取り組む際に「本圓に解決すべきこず」に぀いおの想像を働かせたす。Issue に蚘茉されおいるこずが 本圓にプロダクトずしお解決すべきこずなのか を含めお考えたす。これたでの運甚が必ずしも正しいわけではない。ずいう点がポむントです。 ② ① に぀いお「想像のたた」で終わらせおはいけないので、業務知識ず照らし合わせお確床を高めおいきたす。垞勀医垫やカスタマヌサポヌトにヒアリングしながら、 医療業務ずしおのあるべき圢の解像床を䞊げおいく プロセスです。 ③ ① 及び ② で高めた解像床は蚀葉の延長線䞊なので、関係者間の認識のギャップが発生しやすいです。プロトタむプを䜜成しお、芖芚・觊感レベルでギャップを埋めおいくこずで、あるべき圢に向けお掗緎させおいきたす。 ④ ① 〜 ③ のタむミングを問わず、必芁に応じお関係者ず盞談しながら進めおいきたす。゚ンゞニアが立おた仮説をデザむナヌの目線で評䟡・ UI/UX 最適化をしお頂いたり、倧きめの機胜に぀いおは、医療機関にパむロット運甚のご協力を仰いだりするこずもありたす。 ① 及び ② の項に䜜業のりェむトが偏っおいるように芋えるかず思いたす。実際、課題を解決する為の半分以䞊をここに割いおいたす。 理由は「床䜜っお公開した機胜」は、その埌人歩きをしお䜜成者の意図しない方向で利甚をされるこずがあるからです。 そしお、利甚者がその運甚を定着させおしたうず 誀った機胜においおも「削ぎ萜ずすこずが困難」 です。これは「䜿われおいない機胜」よりも盎接的な負債ずいった圢でボディブロヌのように効いおきたす。 「どのような䜿われ方をするか」に぀いお想像するこず その䜿われ方が、プロダクトの目指す䞖界ず合っおいるこず ゚ンゞニアは技術を圢にする䞊で、垞に想像力を働かせお取り組む必芁がある。 ずいうのが筆者の持論です。 さいごに 執筆の締めにあたっお CTO ブログを芋返しおみるず、倧事なこずはここに詰たっおいたした。筆者は前職の SIer 時代に読んだのですが、この蚘事にすごく共感したのを芚えおいたす。 toppa.medley.jp toppa.medley.jp メドレヌでは 医療ヘルスケアの未来を䜜る ずいう倧きな目暙、そしおその未来を䜜る為に解決すべき課題に向かっお、今回ご玹介したプロセスや考え方も含め詊行錯誀しながら、事業郚䞀䞞でプロダクト開発を掚進しおいたす。 ゚ンゞニアの総合力を発揮しお医療ヘルスケアの未来を䞀緒に䜜り䞊げおいきたいずいう方にお䌚い出来るこずを楜しみにしおおりたす。 募集の䞀芧 | 株匏䌚瀟メドレヌ メドレヌの採甚情報はこちらからご確認ください。 www.medley.jp
初めたしお。CLINICS の開発を担圓しおいる゚ンゞニアの平山です。 同姓ですが CTO ではございたせん CLINICS の開発は「スモヌルチヌム制」をずっおおりたしお、珟圚そのうちの぀をチヌムリヌドしおいたす。 前職は長らく SIer に勀めおいたした。去幎の 12 月にメドレヌに JOIN しお、間も無く幎経ずうずしおいる。。ず思うず、あっずいう間だったなぁずいう印象です。 さお、本日はメドレヌで隔週開催しおいる瀟内勉匷䌚TechLunchにおいお発衚した内容に぀いおご玹介させお頂ければず思いたす。 はじめに 「技術を䜿うための技術」ずいうテヌマずなりたすが、プロダクト開発をしおいく䞊では欠かせない玠逊ず考えおいたす。メドレヌに所属しおいる゚ンゞニアの人ずしお、どのように日々課題ず向き合っおいるのか。圓テヌマを通しおお䌝えできればず思いたす。 たた、この考え方自䜓は「医療ずいうテヌマ」や「事業の背景ベンチャヌ・ SIer」を問わず必芁ずされる堎面があるかもしれたせん。自身も前職では様々な堎面でお䞖話になりたした  即効性のあるものではありたせんが、じわじわ効いおくる内容ではないかず思いたす。よろしければお付き合いください。 本題 「技術を䜿うための技術」 みなさんはこの蚀葉から、䜕を思い浮かべるでしょうか。筆者が詊しに Google で怜玢した際䞊䜍にヒットしたのは AI ゚ンゞニア IoT ずいった結果でした。なるほど。少し雑に解釈するず「技術アルゎリズム等を䜿うための技術機械孊習、家電等」ずいった感じなのでしょうか。この結果を拟っおきたずいうのも、いい意味で Google すごいなっお感じたした 筆者が今回のテヌマずしお指しおいるのは、䞋蚘ずなりたす。 ロゞカルシンキング 掚論 これらの 思考を敎理する「手段」 ず゚ンゞニアの歊噚である 技術ずいう「手段」 をかけ合わせるこずで、倧きなテヌマである「医療」に向き合っおいたす。 手段を目的にしおはならない 先に挙げたずおり「思考の敎理」も「技術」も 「手段」 に過ぎたせん。これらを甚いお、適切な䞀手を指しおいく為には「目的」に察する解像床を高く描く必芁がありたす。 筆者の発衚から抜粋した「技術を䜿うための技術」の芁玠をむメヌゞした図 敎理力 目的を達成する為に必芁な「情報」を取捚遞択するための芁玠。 SaaS ✖ toB の䞖界においおは「プロダクトが解決すべき課題か吊かを業務の本質を螏たえお取捚遞択する」ず蚀い換えられるかもしれたせん。 業務知識 目的の「解像床」を高めるための芁玠。 CLINICS においおは、医療情報を扱う䞊での芏制3 省 2 ガむドラむンや、医療機関医垫・医事・蚺療科の特性の業務、蚺療報酬に぀いおの知識、法改正、レセコンORCA  ず様々ありたす。 技術知識 目的を達成する為に必芁な「指し手」を遞択するための芁玠。 ゚ンゞニアにずっおは説明するたでもない内容であるず思いたすが ここが欠けおしたうず絵に描いた逅で終わっおしたいたす。メドレヌの゚ンゞニアにおいおも日々研鑜し、プロダクトに察しおコミットを続けおいたす。 行動力 目的を達成するための「掚進力」を高めるための芁玠。 各皮知識ず敎理した情報を掚進力に倉えおいく為には、その時の状況に応じた動きをする必芁がありたす。ステヌクホルダヌずの調敎は圓然ですが、組織内連携ずいった「暪の動き」も必芁です。 想像力 これたで挙げたそれぞれの手段を適切に利甚しおいくための芁玠ずしおの土台が「想像力」であるず考えおいたす。 課題Issueぞの取り組み䟋 番号 抂芁 ① Issue に取り組む際に「本圓に解決すべきこず」に぀いおの想像を働かせたす。Issue に蚘茉されおいるこずが 本圓にプロダクトずしお解決すべきこずなのか を含めお考えたす。これたでの運甚が必ずしも正しいわけではない。ずいう点がポむントです。 ② ① に぀いお「想像のたた」で終わらせおはいけないので、業務知識ず照らし合わせお確床を高めおいきたす。垞勀医垫やカスタマヌサポヌトにヒアリングしながら、 医療業務ずしおのあるべき圢の解像床を䞊げおいく プロセスです。 ③ ① 及び ② で高めた解像床は蚀葉の延長線䞊なので、関係者間の認識のギャップが発生しやすいです。プロトタむプを䜜成しお、芖芚・觊感レベルでギャップを埋めおいくこずで、あるべき圢に向けお掗緎させおいきたす。 ④ ① 〜 ③ のタむミングを問わず、必芁に応じお関係者ず盞談しながら進めおいきたす。゚ンゞニアが立おた仮説をデザむナヌの目線で評䟡・ UI/UX 最適化をしお頂いたり、倧きめの機胜に぀いおは、医療機関にパむロット運甚のご協力を仰いだりするこずもありたす。 ① 及び ② の項に䜜業のりェむトが偏っおいるように芋えるかず思いたす。実際、課題を解決する為の半分以䞊をここに割いおいたす。 理由は「床䜜っお公開した機胜」は、その埌人歩きをしお䜜成者の意図しない方向で利甚をされるこずがあるからです。 そしお、利甚者がその運甚を定着させおしたうず 誀った機胜においおも「削ぎ萜ずすこずが困難」 です。これは「䜿われおいない機胜」よりも盎接的な負債ずいった圢でボディブロヌのように効いおきたす。 「どのような䜿われ方をするか」に぀いお想像するこず その䜿われ方が、プロダクトの目指す䞖界ず合っおいるこず ゚ンゞニアは技術を圢にする䞊で、垞に想像力を働かせお取り組む必芁がある。 ずいうのが筆者の持論です。 さいごに 執筆の締めにあたっお CTO ブログを芋返しおみるず、倧事なこずはここに詰たっおいたした。筆者は前職の SIer 時代に読んだのですが、この蚘事にすごく共感したのを芚えおいたす。 toppa.medley.jp toppa.medley.jp メドレヌでは 医療ヘルスケアの未来を䜜る ずいう倧きな目暙、そしおその未来を䜜る為に解決すべき課題に向かっお、今回ご玹介したプロセスや考え方も含め詊行錯誀しながら、事業郚䞀䞞でプロダクト開発を掚進しおいたす。 ゚ンゞニアの総合力を発揮しお医療ヘルスケアの未来を䞀緒に䜜り䞊げおいきたいずいう方にお䌚い出来るこずを楜しみにしおおりたす。 募集の䞀芧 | 株匏䌚瀟メドレヌ メドレヌの採甚情報はこちらからご確認ください。 www.medley.jp
こんにちは、第二開発グルヌプ゚ンゞニアの西村です。䞻に CLINICS の開発を担圓しおいたす。 はじめに CLINICS は電子カルテ、オンラむン蚺療、予玄システム、患者アプリなどを含む統合アプリです。CLINICS がロヌンチしおから珟圚に至るたで垞に新機胜開発ず定垞改善が行われおおり、開発環境のメンテナンスは埌手になりがちでした。今回はそういった状況を改善すべく、開発環境のメンテナンス、リファクタリングを行った過皋から埗られたプラクティスに぀いお玹介しおいこうず思いたす。 モチベヌション プロダクトの新芏開発時に行われる技術遞定は非垞に難しく、業務芁件やチヌム状況など総合的に考慮しおその時点でのベストな遞択をする必芁がありたす。 しかし、遞択した技術で長期運甚をしおいくうちに、メンテナンスが行き届かなくなったコヌドやラむブラリが出おしたいたす。 CLINICS ロヌンチ圓初はオンラむン蚺療のみを提䟛しおいたした。SPA で構成されおいたしたが、぀の package.json で効率的に開発できおいたした。他に、珟圚ほど TypeScript が䞻流ではなかったので JavaScript のコヌドがメむンで実装されおたした。 新たなアプリケヌション電子カルテや予玄システムなどを導入するタむミング、すなわちプロダクトが小芏暡から䞭芏暡に倉遷するタむミングや、フロント゚ンドの時流によっお、開発環境を改善できた郚分もありたすが、しきれおいない郚分も出おきたした。 その改善しきれおいない郚分を残す状態が続くず Developer Experience(DX)の䜎䞋に繋がっおしたいたす。ですので、私たちは改善しきれおいない郚分を取り陀いおいき、よりモダンずされる開発環境ぞリファクタリングをしおいこうず考えたした。 DX を向䞊しおいくこずで技術的なノむズに時間を取られないようになりたす。そしお提䟛する機胜そのものに぀いお考える時間が増え、結果的に CLINICS をより良いプロダクトぞ進化させおいくのが圓リファクタリングの目的です。 課題敎理 改善しおいくためには、珟状敎理、課題敎理を行わないこずには䜕も始たりたせん。フロント゚ンド開発環境をメンテナンスするタスクは、プロダクトの機胜ナヌザに提䟛される機胜に盎接プラスの圱響があるわけではありたせん。自ずず通垞の機胜開発や定垞改善に比べ優先床は萜ちるため、スキマ時間で改善をしおいくこずになりたす。こうしたスキマ時間を有効掻甚するためには、タスクの難易床の理解、タスクを適圓に分割、フェヌゞングの蚈画を行うこずが極めお倧事です。 そのように考慮した課題の䞭で、本蚘事で蚘茉するのは以䞋の぀です。 ラむブラリを定期的にアップデヌトする運甚が固たっおない 運甚方匏が固たっおいないこずで、攟眮されおしたいがちです。率先しおアップデヌトするメンバヌがいたずしおも、属人化の課題が残っおしたいたす 攟眮されおしたったこずにより、最新版ずの差分が倧きくなりアップデヌトするコストも倧きくなっおしたいたす 結果的に、ラむブラリのセキュリティフィックス察応や新しく提䟛された機胜をすぐに適応できない環境になっおしたいたす 耇数の SPA の䟝存を぀の package.json で管理しおいる 電子カルテ・オンラむン蚺療、瀟内管理 Web アプリ、患者 Web アプリはそれぞれ別の SPA ずしお䜜られおいたす それらを぀の package.json で管理しおいるためそれぞれの SPA が同じ䟝存パッケヌゞを䜿わなくおはなりたせん。小芏暡のずきはこのような構成で十分でしたが、芏暡が倧きくなるに぀れお柔軟性が倱われるず共に、ラむブラリのアップデヌトがもたらす圱響範囲が広がっおしたうため、容易にアップデヌトできなくなっおしたいたす 本蚘事では蚘茉したせんが「Redux の曞き方が混圚しおいる」「フロント゚ンドのテストが少ない」「網矅的に TypeScript 化できおいなく JavaScript がただ残っおいる」などの課題も挙げられたした。 こういう課題は、どのプロダクトにも存圚するず思いたす。それはロヌンチ圓時の技術流行であったり、プロダクトの期埅芏暡、少数メンバに適した蚭蚈など芁因は様々あり、プログラムのリファクタリングず同様に プロダクトの成長に䌎っおリファクタリングしおいくこずが正 だず信じおいたす。 モチベヌションにお蚘茉した通り、これら耇数の課題は開発環境のノむズであり、陀去するこずによっお、より良い DX が埗られるず考えおいたす。他にこのようなリファクタリングを行うこずによっお、プロダクトをより堅牢にできるずいう偎面もありたす。 䞊蚘の぀の課題に察しおそれぞれ「ラむブラリを定期的にアップデヌトする運甚手段を蚭けた」「package.json を SPA 単䜍に分割した」話をこれからしおいきたす。 フロント゚ンド開発環境のリファクタリング ラむブラリの定期的なアップデヌトをする運甚手順を蚭けた 手動アップデヌト ラむブラリをアップデヌトするにはコマンドを叩くだけだず考えおいたしたが、䟝存しおいる別のラむブラリに圱響が本圓にないかなど調査する必芁があるず知り、ラむブラリのアップデヌト方法を暡玢するずころから開始したした。 ラむブラリではないですが、Node.js のアップデヌトをしようずするず、node-sass や Firebase が圱響しおいたりしお、芋づる匏で根っこにあるラむブラリのアップデヌトをする必芁が出おきたりするので、䞀぀䞀぀問題がないか調査するのが倧倉でした。 䜕より、アップデヌト察象ラむブラリのリリヌスノヌトに Breaking Changes が曞かれおいなかったり、semver が守られおいるかわからなかったりず、プロダクトに圱響がないか調べる必芁があり、問題の切り分け方が難しかったのです。 ここで埗られたラむブラリアップデヌトの安党性担保のプラクティスずしお webpack によるビルド結果が倉わらないケヌス ず、 QA テストによっお担保するケヌス があるこずがわかりたした。前者は webpack による成果物が倉わらないのであれば今回のアップデヌトが安党であるずいえ、埌者ぱンゞニアず QA ゚ンゞニアによっおラむブラリの圱響範囲にハレヌションがないこずを確かめお安党であるずいえるずいうものです。 renovate の運甚開始 数カ月間は䞊蚘のようにラむブラリのアップデヌトを手動で行っおいたしたが、確認工数が増えおしたい、他のタスクの時間を圧迫しおしたうほどでした。 そこで、アップデヌトを自動化する renovate  ず dependabot を芖野に入れたした。renovate は、dependabot に比べお高機胜でか぀、無料であるずいう理由で遞定したした。 運甚圓初、renovate が Pull Request を䜜成しおくれたり、diff によりラむブラリの倉曎点が芋やすかったりず、恩恵を感じおいたした。しかし、埐々に「アップデヌト察象が倚く、それぞれがどういうラむブラリで、圱響範囲がどこなのか」ずいうこずの調査に時間が取られるようになっおしたいたした。 ここで埗られた調査時間を短瞮するプラクティスずしお**「本番圱響のあるもの」「開発向け」「ビルド呚り」ず renovate から来る Pull Request を敎理する**こずです。このような敎理を行うこずで、本番圱響のあるものに泚力しおレビュヌできるようになり、苊にならずにアップデヌトをできるようになりたした。 結果 ラむブラリアップデヌトの運甚手順を蚭けるこずによっお、今たで以䞊に堅牢な環境になりたした。それから、renovate によっお自動的に重芁な本番圱響のあるラむブラリのみに集䞭しおレビュヌを行うこずによっお、少ない工数でアップデヌトしおいけるようになりたした。 package.json を SPA 単䜍に分割 課題敎理で蚘茉した通り、電子カルテ・オンラむン蚺療、瀟内管理 Web アプリ、患者 Web アプリはそれぞれ別の SPA ずしお䜜られおいたすが、぀の package.json で管理しおいたす。ですのでそれぞれの SPA が同じ䟝存パッケヌゞを䜿わなければなりたせん。 匊害ずしお package.json に察しお぀の倉曎があったずきにすべおの SPA に圱響が出おしたいたす。ですので、この肥倧化した package.json をそれぞれの SPA に分割しようずしたした。 package.json を SPA 単䜍に分割するこずは 責務分離 ずいう偎面もあり、ラむブラリだけでなく、共通しおいた定数、ロゞック、コンポヌネント、webpack.config.js、babel.config.js ず tsconfig.json などすべおをそれぞれの SPA に䟝存のない圢に閉じるようにしたした。これらの分割する䜜業は非垞に泥臭いもので、本蚘事に蚘茉するほどのものではありたせんが、埗られた結果に぀いお蚘茉しおいこうず思いたす。 結果 たず、責務分離ができたので、぀の SPA に察する倉曎があったずきに、他の党おの SPA に察する圱響が出なくなりたした。よっお、぀の SPA に察しお新たな Web フレヌムワヌクやラむブラリを詊すこずが容易になりたした。他にも、぀の webpack ですべおの SPA をシヌケンシャルにビルドしおいたのに察しお、珟圚はパラレルでビルドできるようになりビルド時間が短瞮されたため、今たで以䞊にコミットからデプロむたでのむテレヌションが小さくなりたした。 これらの結果からフロント開発環境の改善および DX 向䞊が果されたした。 今埌の課題 持続的なリファクタリングをする仕組み䜜り 「ラむブラリの定期的なアップデヌトをする運甚手順を蚭けた」はたさに持続的にラむブラリをアップデヌトするための手段です。「package.json を SPA 単䜍に分割する」もそれぞれの SPA をメンテナンスしやすい環境䜜りずしおは欠かせない䜜業でした。 しかし、このたたリファクタリングを䞭断すれば、プロダクトの芏暡が倧きくなるずきやフロント゚ンドの時流によっお再びメンテナンスしづらい環境になっおしたいたす。 なので、持続的なリファクタリングをするためには仕組み䜜りが欠かせないず考えおいたす。そのためには、属人化によらない仕組みづくり、メンテナンスしやすい環境改善、゚ンゞニアそれぞれのフロント゚ンド開発環境に察するリテラシを高める取り組みを行っおいく必芁がありたす。そのため、珟圚 暪軞勉匷䌚 などで CLINICS フロント゚ンドの実装背景や、リファクタリングしやすい曞き方などのナレッゞを共有しおいたす。 たずめ フロント゚ンド開発環境のメンテナンス・リファクタリング自䜓はあくたでもナヌザに新しい機胜を提䟛しおいるわけではなく、粛々ず行っおいくものです。しかし、課題を掗い出し、向き合っお、解決しおいったこずによっお埗られたプラクティスは倚くあり、フロント゚ンドの゚コシステムに察する理解も倚く埗られたした。 これらのリファクタリングを行うこずによっお DX が向䞊しおいき、技術的なノむズに悩む時間が枛り、゚ンゞニアはよりプロダクトの機胜開発に専念できるようになっおいるず信じおいたす。 今回私たちが課題を解決したこずによっお、持続的にリファクタリングをしやすい土台䜜りをしたずいう偎面もあるず思いたす。今埌の課題ずしお、この土台を基にそれぞれの゚ンゞニアが意識を持っおメンテナンスできるような仕組みづくりも行っおいきたいず思いたす。 最埌たで読んでいただきありがずうございたした。 www.medley.jp
こんにちは、第二開発グルヌプ゚ンゞニアの西村です。䞻に CLINICS の開発を担圓しおいたす。 はじめに CLINICS は電子カルテ、オンラむン蚺療、予玄システム、患者アプリなどを含む統合アプリです。CLINICS がロヌンチしおから珟圚に至るたで垞に新機胜開発ず定垞改善が行われおおり、開発環境のメンテナンスは埌手になりがちでした。今回はそういった状況を改善すべく、開発環境のメンテナンス、リファクタリングを行った過皋から埗られたプラクティスに぀いお玹介しおいこうず思いたす。 モチベヌション プロダクトの新芏開発時に行われる技術遞定は非垞に難しく、業務芁件やチヌム状況など総合的に考慮しおその時点でのベストな遞択をする必芁がありたす。 しかし、遞択した技術で長期運甚をしおいくうちに、メンテナンスが行き届かなくなったコヌドやラむブラリが出おしたいたす。 CLINICS ロヌンチ圓初はオンラむン蚺療のみを提䟛しおいたした。SPA で構成されおいたしたが、぀の package.json で効率的に開発できおいたした。他に、珟圚ほど TypeScript が䞻流ではなかったので JavaScript のコヌドがメむンで実装されおたした。 新たなアプリケヌション電子カルテや予玄システムなどを導入するタむミング、すなわちプロダクトが小芏暡から䞭芏暡に倉遷するタむミングや、フロント゚ンドの時流によっお、開発環境を改善できた郚分もありたすが、しきれおいない郚分も出おきたした。 その改善しきれおいない郚分を残す状態が続くず Developer Experience(DX)の䜎䞋に繋がっおしたいたす。ですので、私たちは改善しきれおいない郚分を取り陀いおいき、よりモダンずされる開発環境ぞリファクタリングをしおいこうず考えたした。 DX を向䞊しおいくこずで技術的なノむズに時間を取られないようになりたす。そしお提䟛する機胜そのものに぀いお考える時間が増え、結果的に CLINICS をより良いプロダクトぞ進化させおいくのが圓リファクタリングの目的です。 課題敎理 改善しおいくためには、珟状敎理、課題敎理を行わないこずには䜕も始たりたせん。フロント゚ンド開発環境をメンテナンスするタスクは、プロダクトの機胜ナヌザに提䟛される機胜に盎接プラスの圱響があるわけではありたせん。自ずず通垞の機胜開発や定垞改善に比べ優先床は萜ちるため、スキマ時間で改善をしおいくこずになりたす。こうしたスキマ時間を有効掻甚するためには、タスクの難易床の理解、タスクを適圓に分割、フェヌゞングの蚈画を行うこずが極めお倧事です。 そのように考慮した課題の䞭で、本蚘事で蚘茉するのは以䞋の぀です。 ラむブラリを定期的にアップデヌトする運甚が固たっおない 運甚方匏が固たっおいないこずで、攟眮されおしたいがちです。率先しおアップデヌトするメンバヌがいたずしおも、属人化の課題が残っおしたいたす 攟眮されおしたったこずにより、最新版ずの差分が倧きくなりアップデヌトするコストも倧きくなっおしたいたす 結果的に、ラむブラリのセキュリティフィックス察応や新しく提䟛された機胜をすぐに適応できない環境になっおしたいたす 耇数の SPA の䟝存を぀の package.json で管理しおいる 電子カルテ・オンラむン蚺療、瀟内管理 Web アプリ、患者 Web アプリはそれぞれ別の SPA ずしお䜜られおいたす それらを぀の package.json で管理しおいるためそれぞれの SPA が同じ䟝存パッケヌゞを䜿わなくおはなりたせん。小芏暡のずきはこのような構成で十分でしたが、芏暡が倧きくなるに぀れお柔軟性が倱われるず共に、ラむブラリのアップデヌトがもたらす圱響範囲が広がっおしたうため、容易にアップデヌトできなくなっおしたいたす 本蚘事では蚘茉したせんが「Redux の曞き方が混圚しおいる」「フロント゚ンドのテストが少ない」「網矅的に TypeScript 化できおいなく JavaScript がただ残っおいる」などの課題も挙げられたした。 こういう課題は、どのプロダクトにも存圚するず思いたす。それはロヌンチ圓時の技術流行であったり、プロダクトの期埅芏暡、少数メンバに適した蚭蚈など芁因は様々あり、プログラムのリファクタリングず同様に プロダクトの成長に䌎っおリファクタリングしおいくこずが正 だず信じおいたす。 モチベヌションにお蚘茉した通り、これら耇数の課題は開発環境のノむズであり、陀去するこずによっお、より良い DX が埗られるず考えおいたす。他にこのようなリファクタリングを行うこずによっお、プロダクトをより堅牢にできるずいう偎面もありたす。 䞊蚘の぀の課題に察しおそれぞれ「ラむブラリを定期的にアップデヌトする運甚手段を蚭けた」「package.json を SPA 単䜍に分割した」話をこれからしおいきたす。 フロント゚ンド開発環境のリファクタリング ラむブラリの定期的なアップデヌトをする運甚手順を蚭けた 手動アップデヌト ラむブラリをアップデヌトするにはコマンドを叩くだけだず考えおいたしたが、䟝存しおいる別のラむブラリに圱響が本圓にないかなど調査する必芁があるず知り、ラむブラリのアップデヌト方法を暡玢するずころから開始したした。 ラむブラリではないですが、Node.js のアップデヌトをしようずするず、node-sass や Firebase が圱響しおいたりしお、芋づる匏で根っこにあるラむブラリのアップデヌトをする必芁が出おきたりするので、䞀぀䞀぀問題がないか調査するのが倧倉でした。 䜕より、アップデヌト察象ラむブラリのリリヌスノヌトに Breaking Changes が曞かれおいなかったり、semver が守られおいるかわからなかったりず、プロダクトに圱響がないか調べる必芁があり、問題の切り分け方が難しかったのです。 ここで埗られたラむブラリアップデヌトの安党性担保のプラクティスずしお webpack によるビルド結果が倉わらないケヌス ず、 QA テストによっお担保するケヌス があるこずがわかりたした。前者は webpack による成果物が倉わらないのであれば今回のアップデヌトが安党であるずいえ、埌者ぱンゞニアず QA ゚ンゞニアによっおラむブラリの圱響範囲にハレヌションがないこずを確かめお安党であるずいえるずいうものです。 renovate の運甚開始 数カ月間は䞊蚘のようにラむブラリのアップデヌトを手動で行っおいたしたが、確認工数が増えおしたい、他のタスクの時間を圧迫しおしたうほどでした。 そこで、アップデヌトを自動化する renovate  ず dependabot を芖野に入れたした。renovate は、dependabot に比べお高機胜でか぀、無料であるずいう理由で遞定したした。 運甚圓初、renovate が Pull Request を䜜成しおくれたり、diff によりラむブラリの倉曎点が芋やすかったりず、恩恵を感じおいたした。しかし、埐々に「アップデヌト察象が倚く、それぞれがどういうラむブラリで、圱響範囲がどこなのか」ずいうこずの調査に時間が取られるようになっおしたいたした。 ここで埗られた調査時間を短瞮するプラクティスずしお**「本番圱響のあるもの」「開発向け」「ビルド呚り」ず renovate から来る Pull Request を敎理する**こずです。このような敎理を行うこずで、本番圱響のあるものに泚力しおレビュヌできるようになり、苊にならずにアップデヌトをできるようになりたした。 結果 ラむブラリアップデヌトの運甚手順を蚭けるこずによっお、今たで以䞊に堅牢な環境になりたした。それから、renovate によっお自動的に重芁な本番圱響のあるラむブラリのみに集䞭しおレビュヌを行うこずによっお、少ない工数でアップデヌトしおいけるようになりたした。 package.json を SPA 単䜍に分割 課題敎理で蚘茉した通り、電子カルテ・オンラむン蚺療、瀟内管理 Web アプリ、患者 Web アプリはそれぞれ別の SPA ずしお䜜られおいたすが、぀の package.json で管理しおいたす。ですのでそれぞれの SPA が同じ䟝存パッケヌゞを䜿わなければなりたせん。 匊害ずしお package.json に察しお぀の倉曎があったずきにすべおの SPA に圱響が出おしたいたす。ですので、この肥倧化した package.json をそれぞれの SPA に分割しようずしたした。 package.json を SPA 単䜍に分割するこずは 責務分離 ずいう偎面もあり、ラむブラリだけでなく、共通しおいた定数、ロゞック、コンポヌネント、webpack.config.js、babel.config.js ず tsconfig.json などすべおをそれぞれの SPA に䟝存のない圢に閉じるようにしたした。これらの分割する䜜業は非垞に泥臭いもので、本蚘事に蚘茉するほどのものではありたせんが、埗られた結果に぀いお蚘茉しおいこうず思いたす。 結果 たず、責務分離ができたので、぀の SPA に察する倉曎があったずきに、他の党おの SPA に察する圱響が出なくなりたした。よっお、぀の SPA に察しお新たな Web フレヌムワヌクやラむブラリを詊すこずが容易になりたした。他にも、぀の webpack ですべおの SPA をシヌケンシャルにビルドしおいたのに察しお、珟圚はパラレルでビルドできるようになりビルド時間が短瞮されたため、今たで以䞊にコミットからデプロむたでのむテレヌションが小さくなりたした。 これらの結果からフロント開発環境の改善および DX 向䞊が果されたした。 今埌の課題 持続的なリファクタリングをする仕組み䜜り 「ラむブラリの定期的なアップデヌトをする運甚手順を蚭けた」はたさに持続的にラむブラリをアップデヌトするための手段です。「package.json を SPA 単䜍に分割する」もそれぞれの SPA をメンテナンスしやすい環境䜜りずしおは欠かせない䜜業でした。 しかし、このたたリファクタリングを䞭断すれば、プロダクトの芏暡が倧きくなるずきやフロント゚ンドの時流によっお再びメンテナンスしづらい環境になっおしたいたす。 なので、持続的なリファクタリングをするためには仕組み䜜りが欠かせないず考えおいたす。そのためには、属人化によらない仕組みづくり、メンテナンスしやすい環境改善、゚ンゞニアそれぞれのフロント゚ンド開発環境に察するリテラシを高める取り組みを行っおいく必芁がありたす。そのため、珟圚 暪軞勉匷䌚 などで CLINICS フロント゚ンドの実装背景や、リファクタリングしやすい曞き方などのナレッゞを共有しおいたす。 たずめ フロント゚ンド開発環境のメンテナンス・リファクタリング自䜓はあくたでもナヌザに新しい機胜を提䟛しおいるわけではなく、粛々ず行っおいくものです。しかし、課題を掗い出し、向き合っお、解決しおいったこずによっお埗られたプラクティスは倚くあり、フロント゚ンドの゚コシステムに察する理解も倚く埗られたした。 これらのリファクタリングを行うこずによっお DX が向䞊しおいき、技術的なノむズに悩む時間が枛り、゚ンゞニアはよりプロダクトの機胜開発に専念できるようになっおいるず信じおいたす。 今回私たちが課題を解決したこずによっお、持続的にリファクタリングをしやすい土台䜜りをしたずいう偎面もあるず思いたす。今埌の課題ずしお、この土台を基にそれぞれの゚ンゞニアが意識を持っおメンテナンスできるような仕組みづくりも行っおいきたいず思いたす。 最埌たで読んでいただきありがずうございたした。 www.medley.jp
こんにちは、第二開発グルヌプ゚ンゞニアの西村です。䞻に CLINICS の開発を担圓しおいたす。 はじめに CLINICS は電子カルテ、オンラむン蚺療、予玄システム、患者アプリなどを含む統合アプリです。CLINICS がロヌンチしおから珟圚に至るたで垞に新機胜開発ず定垞改善が行われおおり、開発環境のメンテナンスは埌手になりがちでした。今回はそういった状況を改善すべく、開発環境のメンテナンス、リファクタリングを行った過皋から埗られたプラクティスに぀いお玹介しおいこうず思いたす。 モチベヌション プロダクトの新芏開発時に行われる技術遞定は非垞に難しく、業務芁件やチヌム状況など総合的に考慮しおその時点でのベストな遞択をする必芁がありたす。 しかし、遞択した技術で長期運甚をしおいくうちに、メンテナンスが行き届かなくなったコヌドやラむブラリが出おしたいたす。 CLINICS ロヌンチ圓初はオンラむン蚺療のみを提䟛しおいたした。SPA で構成されおいたしたが、぀の package.json で効率的に開発できおいたした。他に、珟圚ほど TypeScript が䞻流ではなかったので JavaScript のコヌドがメむンで実装されおたした。 新たなアプリケヌション電子カルテや予玄システムなどを導入するタむミング、すなわちプロダクトが小芏暡から䞭芏暡に倉遷するタむミングや、フロント゚ンドの時流によっお、開発環境を改善できた郚分もありたすが、しきれおいない郚分も出おきたした。 その改善しきれおいない郚分を残す状態が続くず Developer Experience(DX)の䜎䞋に繋がっおしたいたす。ですので、私たちは改善しきれおいない郚分を取り陀いおいき、よりモダンずされる開発環境ぞリファクタリングをしおいこうず考えたした。 DX を向䞊しおいくこずで技術的なノむズに時間を取られないようになりたす。そしお提䟛する機胜そのものに぀いお考える時間が増え、結果的に CLINICS をより良いプロダクトぞ進化させおいくのが圓リファクタリングの目的です。 課題敎理 改善しおいくためには、珟状敎理、課題敎理を行わないこずには䜕も始たりたせん。フロント゚ンド開発環境をメンテナンスするタスクは、プロダクトの機胜ナヌザに提䟛される機胜に盎接プラスの圱響があるわけではありたせん。自ずず通垞の機胜開発や定垞改善に比べ優先床は萜ちるため、スキマ時間で改善をしおいくこずになりたす。こうしたスキマ時間を有効掻甚するためには、タスクの難易床の理解、タスクを適圓に分割、フェヌゞングの蚈画を行うこずが極めお倧事です。 そのように考慮した課題の䞭で、本蚘事で蚘茉するのは以䞋の぀です。 ラむブラリを定期的にアップデヌトする運甚が固たっおない 運甚方匏が固たっおいないこずで、攟眮されおしたいがちです。率先しおアップデヌトするメンバヌがいたずしおも、属人化の課題が残っおしたいたす 攟眮されおしたったこずにより、最新版ずの差分が倧きくなりアップデヌトするコストも倧きくなっおしたいたす 結果的に、ラむブラリのセキュリティフィックス察応や新しく提䟛された機胜をすぐに適応できない環境になっおしたいたす 耇数の SPA の䟝存を぀の package.json で管理しおいる 電子カルテ・オンラむン蚺療、瀟内管理 Web アプリ、患者 Web アプリはそれぞれ別の SPA ずしお䜜られおいたす それらを぀の package.json で管理しおいるためそれぞれの SPA が同じ䟝存パッケヌゞを䜿わなくおはなりたせん。小芏暡のずきはこのような構成で十分でしたが、芏暡が倧きくなるに぀れお柔軟性が倱われるず共に、ラむブラリのアップデヌトがもたらす圱響範囲が広がっおしたうため、容易にアップデヌトできなくなっおしたいたす 本蚘事では蚘茉したせんが「Redux の曞き方が混圚しおいる」「フロント゚ンドのテストが少ない」「網矅的に TypeScript 化できおいなく JavaScript がただ残っおいる」などの課題も挙げられたした。 こういう課題は、どのプロダクトにも存圚するず思いたす。それはロヌンチ圓時の技術流行であったり、プロダクトの期埅芏暡、少数メンバに適した蚭蚈など芁因は様々あり、プログラムのリファクタリングず同様に プロダクトの成長に䌎っおリファクタリングしおいくこずが正 だず信じおいたす。 モチベヌションにお蚘茉した通り、これら耇数の課題は開発環境のノむズであり、陀去するこずによっお、より良い DX が埗られるず考えおいたす。他にこのようなリファクタリングを行うこずによっお、プロダクトをより堅牢にできるずいう偎面もありたす。 䞊蚘の぀の課題に察しおそれぞれ「ラむブラリを定期的にアップデヌトする運甚手段を蚭けた」「package.json を SPA 単䜍に分割した」話をこれからしおいきたす。 フロント゚ンド開発環境のリファクタリング ラむブラリの定期的なアップデヌトをする運甚手順を蚭けた 手動アップデヌト ラむブラリをアップデヌトするにはコマンドを叩くだけだず考えおいたしたが、䟝存しおいる別のラむブラリに圱響が本圓にないかなど調査する必芁があるず知り、ラむブラリのアップデヌト方法を暡玢するずころから開始したした。 ラむブラリではないですが、Node.js のアップデヌトをしようずするず、node-sass や Firebase が圱響しおいたりしお、芋づる匏で根っこにあるラむブラリのアップデヌトをする必芁が出おきたりするので、䞀぀䞀぀問題がないか調査するのが倧倉でした。 䜕より、アップデヌト察象ラむブラリのリリヌスノヌトに Breaking Changes が曞かれおいなかったり、semver が守られおいるかわからなかったりず、プロダクトに圱響がないか調べる必芁があり、問題の切り分け方が難しかったのです。 ここで埗られたラむブラリアップデヌトの安党性担保のプラクティスずしお webpack によるビルド結果が倉わらないケヌス ず、 QA テストによっお担保するケヌス があるこずがわかりたした。前者は webpack による成果物が倉わらないのであれば今回のアップデヌトが安党であるずいえ、埌者ぱンゞニアず QA ゚ンゞニアによっおラむブラリの圱響範囲にハレヌションがないこずを確かめお安党であるずいえるずいうものです。 renovate の運甚開始 数カ月間は䞊蚘のようにラむブラリのアップデヌトを手動で行っおいたしたが、確認工数が増えおしたい、他のタスクの時間を圧迫しおしたうほどでした。 そこで、アップデヌトを自動化する renovate  ず dependabot を芖野に入れたした。renovate は、dependabot に比べお高機胜でか぀、無料であるずいう理由で遞定したした。 運甚圓初、renovate が Pull Request を䜜成しおくれたり、diff によりラむブラリの倉曎点が芋やすかったりず、恩恵を感じおいたした。しかし、埐々に「アップデヌト察象が倚く、それぞれがどういうラむブラリで、圱響範囲がどこなのか」ずいうこずの調査に時間が取られるようになっおしたいたした。 ここで埗られた調査時間を短瞮するプラクティスずしお**「本番圱響のあるもの」「開発向け」「ビルド呚り」ず renovate から来る Pull Request を敎理する**こずです。このような敎理を行うこずで、本番圱響のあるものに泚力しおレビュヌできるようになり、苊にならずにアップデヌトをできるようになりたした。 結果 ラむブラリアップデヌトの運甚手順を蚭けるこずによっお、今たで以䞊に堅牢な環境になりたした。それから、renovate によっお自動的に重芁な本番圱響のあるラむブラリのみに集䞭しおレビュヌを行うこずによっお、少ない工数でアップデヌトしおいけるようになりたした。 package.json を SPA 単䜍に分割 課題敎理で蚘茉した通り、電子カルテ・オンラむン蚺療、瀟内管理 Web アプリ、患者 Web アプリはそれぞれ別の SPA ずしお䜜られおいたすが、぀の package.json で管理しおいたす。ですのでそれぞれの SPA が同じ䟝存パッケヌゞを䜿わなければなりたせん。 匊害ずしお package.json に察しお぀の倉曎があったずきにすべおの SPA に圱響が出おしたいたす。ですので、この肥倧化した package.json をそれぞれの SPA に分割しようずしたした。 package.json を SPA 単䜍に分割するこずは 責務分離 ずいう偎面もあり、ラむブラリだけでなく、共通しおいた定数、ロゞック、コンポヌネント、webpack.config.js、babel.config.js ず tsconfig.json などすべおをそれぞれの SPA に䟝存のない圢に閉じるようにしたした。これらの分割する䜜業は非垞に泥臭いもので、本蚘事に蚘茉するほどのものではありたせんが、埗られた結果に぀いお蚘茉しおいこうず思いたす。 結果 たず、責務分離ができたので、぀の SPA に察する倉曎があったずきに、他の党おの SPA に察する圱響が出なくなりたした。よっお、぀の SPA に察しお新たな Web フレヌムワヌクやラむブラリを詊すこずが容易になりたした。他にも、぀の webpack ですべおの SPA をシヌケンシャルにビルドしおいたのに察しお、珟圚はパラレルでビルドできるようになりビルド時間が短瞮されたため、今たで以䞊にコミットからデプロむたでのむテレヌションが小さくなりたした。 これらの結果からフロント開発環境の改善および DX 向䞊が果されたした。 今埌の課題 持続的なリファクタリングをする仕組み䜜り 「ラむブラリの定期的なアップデヌトをする運甚手順を蚭けた」はたさに持続的にラむブラリをアップデヌトするための手段です。「package.json を SPA 単䜍に分割する」もそれぞれの SPA をメンテナンスしやすい環境䜜りずしおは欠かせない䜜業でした。 しかし、このたたリファクタリングを䞭断すれば、プロダクトの芏暡が倧きくなるずきやフロント゚ンドの時流によっお再びメンテナンスしづらい環境になっおしたいたす。 なので、持続的なリファクタリングをするためには仕組み䜜りが欠かせないず考えおいたす。そのためには、属人化によらない仕組みづくり、メンテナンスしやすい環境改善、゚ンゞニアそれぞれのフロント゚ンド開発環境に察するリテラシを高める取り組みを行っおいく必芁がありたす。そのため、珟圚 暪軞勉匷䌚 などで CLINICS フロント゚ンドの実装背景や、リファクタリングしやすい曞き方などのナレッゞを共有しおいたす。 たずめ フロント゚ンド開発環境のメンテナンス・リファクタリング自䜓はあくたでもナヌザに新しい機胜を提䟛しおいるわけではなく、粛々ず行っおいくものです。しかし、課題を掗い出し、向き合っお、解決しおいったこずによっお埗られたプラクティスは倚くあり、フロント゚ンドの゚コシステムに察する理解も倚く埗られたした。 これらのリファクタリングを行うこずによっお DX が向䞊しおいき、技術的なノむズに悩む時間が枛り、゚ンゞニアはよりプロダクトの機胜開発に専念できるようになっおいるず信じおいたす。 今回私たちが課題を解決したこずによっお、持続的にリファクタリングをしやすい土台䜜りをしたずいう偎面もあるず思いたす。今埌の課題ずしお、この土台を基にそれぞれの゚ンゞニアが意識を持っおメンテナンスできるような仕組みづくりも行っおいきたいず思いたす。 最埌たで読んでいただきありがずうございたした。 www.medley.jp
こんにちは、第二開発グルヌプ゚ンゞニアの西村です。䞻に CLINICS の開発を担圓しおいたす。 はじめに CLINICS は電子カルテ、オンラむン蚺療、予玄システム、患者アプリなどを含む統合アプリです。CLINICS がロヌンチしおから珟圚に至るたで垞に新機胜開発ず定垞改善が行われおおり、開発環境のメンテナンスは埌手になりがちでした。今回はそういった状況を改善すべく、開発環境のメンテナンス、リファクタリングを行った過皋から埗られたプラクティスに぀いお玹介しおいこうず思いたす。 モチベヌション プロダクトの新芏開発時に行われる技術遞定は非垞に難しく、業務芁件やチヌム状況など総合的に考慮しおその時点でのベストな遞択をする必芁がありたす。 しかし、遞択した技術で長期運甚をしおいくうちに、メンテナンスが行き届かなくなったコヌドやラむブラリが出おしたいたす。 CLINICS ロヌンチ圓初はオンラむン蚺療のみを提䟛しおいたした。SPA で構成されおいたしたが、぀の package.json で効率的に開発できおいたした。他に、珟圚ほど TypeScript が䞻流ではなかったので JavaScript のコヌドがメむンで実装されおたした。 新たなアプリケヌション電子カルテや予玄システムなどを導入するタむミング、すなわちプロダクトが小芏暡から䞭芏暡に倉遷するタむミングや、フロント゚ンドの時流によっお、開発環境を改善できた郚分もありたすが、しきれおいない郚分も出おきたした。 その改善しきれおいない郚分を残す状態が続くず Developer Experience(DX)の䜎䞋に繋がっおしたいたす。ですので、私たちは改善しきれおいない郚分を取り陀いおいき、よりモダンずされる開発環境ぞリファクタリングをしおいこうず考えたした。 DX を向䞊しおいくこずで技術的なノむズに時間を取られないようになりたす。そしお提䟛する機胜そのものに぀いお考える時間が増え、結果的に CLINICS をより良いプロダクトぞ進化させおいくのが圓リファクタリングの目的です。 課題敎理 改善しおいくためには、珟状敎理、課題敎理を行わないこずには䜕も始たりたせん。フロント゚ンド開発環境をメンテナンスするタスクは、プロダクトの機胜ナヌザに提䟛される機胜に盎接プラスの圱響があるわけではありたせん。自ずず通垞の機胜開発や定垞改善に比べ優先床は萜ちるため、スキマ時間で改善をしおいくこずになりたす。こうしたスキマ時間を有効掻甚するためには、タスクの難易床の理解、タスクを適圓に分割、フェヌゞングの蚈画を行うこずが極めお倧事です。 そのように考慮した課題の䞭で、本蚘事で蚘茉するのは以䞋の぀です。 ラむブラリを定期的にアップデヌトする運甚が固たっおない 運甚方匏が固たっおいないこずで、攟眮されおしたいがちです。率先しおアップデヌトするメンバヌがいたずしおも、属人化の課題が残っおしたいたす 攟眮されおしたったこずにより、最新版ずの差分が倧きくなりアップデヌトするコストも倧きくなっおしたいたす 結果的に、ラむブラリのセキュリティフィックス察応や新しく提䟛された機胜をすぐに適応できない環境になっおしたいたす 耇数の SPA の䟝存を぀の package.json で管理しおいる 電子カルテ・オンラむン蚺療、瀟内管理 Web アプリ、患者 Web アプリはそれぞれ別の SPA ずしお䜜られおいたす それらを぀の package.json で管理しおいるためそれぞれの SPA が同じ䟝存パッケヌゞを䜿わなくおはなりたせん。小芏暡のずきはこのような構成で十分でしたが、芏暡が倧きくなるに぀れお柔軟性が倱われるず共に、ラむブラリのアップデヌトがもたらす圱響範囲が広がっおしたうため、容易にアップデヌトできなくなっおしたいたす 本蚘事では蚘茉したせんが「Redux の曞き方が混圚しおいる」「フロント゚ンドのテストが少ない」「網矅的に TypeScript 化できおいなく JavaScript がただ残っおいる」などの課題も挙げられたした。 こういう課題は、どのプロダクトにも存圚するず思いたす。それはロヌンチ圓時の技術流行であったり、プロダクトの期埅芏暡、少数メンバに適した蚭蚈など芁因は様々あり、プログラムのリファクタリングず同様に プロダクトの成長に䌎っおリファクタリングしおいくこずが正 だず信じおいたす。 モチベヌションにお蚘茉した通り、これら耇数の課題は開発環境のノむズであり、陀去するこずによっお、より良い DX が埗られるず考えおいたす。他にこのようなリファクタリングを行うこずによっお、プロダクトをより堅牢にできるずいう偎面もありたす。 䞊蚘の぀の課題に察しおそれぞれ「ラむブラリを定期的にアップデヌトする運甚手段を蚭けた」「package.json を SPA 単䜍に分割した」話をこれからしおいきたす。 フロント゚ンド開発環境のリファクタリング ラむブラリの定期的なアップデヌトをする運甚手順を蚭けた 手動アップデヌト ラむブラリをアップデヌトするにはコマンドを叩くだけだず考えおいたしたが、䟝存しおいる別のラむブラリに圱響が本圓にないかなど調査する必芁があるず知り、ラむブラリのアップデヌト方法を暡玢するずころから開始したした。 ラむブラリではないですが、Node.js のアップデヌトをしようずするず、node-sass や Firebase が圱響しおいたりしお、芋づる匏で根っこにあるラむブラリのアップデヌトをする必芁が出おきたりするので、䞀぀䞀぀問題がないか調査するのが倧倉でした。 䜕より、アップデヌト察象ラむブラリのリリヌスノヌトに Breaking Changes が曞かれおいなかったり、semver が守られおいるかわからなかったりず、プロダクトに圱響がないか調べる必芁があり、問題の切り分け方が難しかったのです。 ここで埗られたラむブラリアップデヌトの安党性担保のプラクティスずしお webpack によるビルド結果が倉わらないケヌス ず、 QA テストによっお担保するケヌス があるこずがわかりたした。前者は webpack による成果物が倉わらないのであれば今回のアップデヌトが安党であるずいえ、埌者ぱンゞニアず QA ゚ンゞニアによっおラむブラリの圱響範囲にハレヌションがないこずを確かめお安党であるずいえるずいうものです。 renovate の運甚開始 数カ月間は䞊蚘のようにラむブラリのアップデヌトを手動で行っおいたしたが、確認工数が増えおしたい、他のタスクの時間を圧迫しおしたうほどでした。 そこで、アップデヌトを自動化する renovate  ず dependabot を芖野に入れたした。renovate は、dependabot に比べお高機胜でか぀、無料であるずいう理由で遞定したした。 運甚圓初、renovate が Pull Request を䜜成しおくれたり、diff によりラむブラリの倉曎点が芋やすかったりず、恩恵を感じおいたした。しかし、埐々に「アップデヌト察象が倚く、それぞれがどういうラむブラリで、圱響範囲がどこなのか」ずいうこずの調査に時間が取られるようになっおしたいたした。 ここで埗られた調査時間を短瞮するプラクティスずしお**「本番圱響のあるもの」「開発向け」「ビルド呚り」ず renovate から来る Pull Request を敎理する**こずです。このような敎理を行うこずで、本番圱響のあるものに泚力しおレビュヌできるようになり、苊にならずにアップデヌトをできるようになりたした。 結果 ラむブラリアップデヌトの運甚手順を蚭けるこずによっお、今たで以䞊に堅牢な環境になりたした。それから、renovate によっお自動的に重芁な本番圱響のあるラむブラリのみに集䞭しおレビュヌを行うこずによっお、少ない工数でアップデヌトしおいけるようになりたした。 package.json を SPA 単䜍に分割 課題敎理で蚘茉した通り、電子カルテ・オンラむン蚺療、瀟内管理 Web アプリ、患者 Web アプリはそれぞれ別の SPA ずしお䜜られおいたすが、぀の package.json で管理しおいたす。ですのでそれぞれの SPA が同じ䟝存パッケヌゞを䜿わなければなりたせん。 匊害ずしお package.json に察しお぀の倉曎があったずきにすべおの SPA に圱響が出おしたいたす。ですので、この肥倧化した package.json をそれぞれの SPA に分割しようずしたした。 package.json を SPA 単䜍に分割するこずは 責務分離 ずいう偎面もあり、ラむブラリだけでなく、共通しおいた定数、ロゞック、コンポヌネント、webpack.config.js、babel.config.js ず tsconfig.json などすべおをそれぞれの SPA に䟝存のない圢に閉じるようにしたした。これらの分割する䜜業は非垞に泥臭いもので、本蚘事に蚘茉するほどのものではありたせんが、埗られた結果に぀いお蚘茉しおいこうず思いたす。 結果 たず、責務分離ができたので、぀の SPA に察する倉曎があったずきに、他の党おの SPA に察する圱響が出なくなりたした。よっお、぀の SPA に察しお新たな Web フレヌムワヌクやラむブラリを詊すこずが容易になりたした。他にも、぀の webpack ですべおの SPA をシヌケンシャルにビルドしおいたのに察しお、珟圚はパラレルでビルドできるようになりビルド時間が短瞮されたため、今たで以䞊にコミットからデプロむたでのむテレヌションが小さくなりたした。 これらの結果からフロント開発環境の改善および DX 向䞊が果されたした。 今埌の課題 持続的なリファクタリングをする仕組み䜜り 「ラむブラリの定期的なアップデヌトをする運甚手順を蚭けた」はたさに持続的にラむブラリをアップデヌトするための手段です。「package.json を SPA 単䜍に分割する」もそれぞれの SPA をメンテナンスしやすい環境䜜りずしおは欠かせない䜜業でした。 しかし、このたたリファクタリングを䞭断すれば、プロダクトの芏暡が倧きくなるずきやフロント゚ンドの時流によっお再びメンテナンスしづらい環境になっおしたいたす。 なので、持続的なリファクタリングをするためには仕組み䜜りが欠かせないず考えおいたす。そのためには、属人化によらない仕組みづくり、メンテナンスしやすい環境改善、゚ンゞニアそれぞれのフロント゚ンド開発環境に察するリテラシを高める取り組みを行っおいく必芁がありたす。そのため、珟圚 暪軞勉匷䌚 などで CLINICS フロント゚ンドの実装背景や、リファクタリングしやすい曞き方などのナレッゞを共有しおいたす。 たずめ フロント゚ンド開発環境のメンテナンス・リファクタリング自䜓はあくたでもナヌザに新しい機胜を提䟛しおいるわけではなく、粛々ず行っおいくものです。しかし、課題を掗い出し、向き合っお、解決しおいったこずによっお埗られたプラクティスは倚くあり、フロント゚ンドの゚コシステムに察する理解も倚く埗られたした。 これらのリファクタリングを行うこずによっお DX が向䞊しおいき、技術的なノむズに悩む時間が枛り、゚ンゞニアはよりプロダクトの機胜開発に専念できるようになっおいるず信じおいたす。 今回私たちが課題を解決したこずによっお、持続的にリファクタリングをしやすい土台䜜りをしたずいう偎面もあるず思いたす。今埌の課題ずしお、この土台を基にそれぞれの゚ンゞニアが意識を持っおメンテナンスできるような仕組みづくりも行っおいきたいず思いたす。 最埌たで読んでいただきありがずうございたした。 www.medley.jp
こんにちは、第二開発グルヌプ゚ンゞニアの西村です。䞻に CLINICS の開発を担圓しおいたす。 はじめに CLINICS は電子カルテ、オンラむン蚺療、予玄システム、患者アプリなどを含む統合アプリです。CLINICS がロヌンチしおから珟圚に至るたで垞に新機胜開発ず定垞改善が行われおおり、開発環境のメンテナンスは埌手になりがちでした。今回はそういった状況を改善すべく、開発環境のメンテナンス、リファクタリングを行った過皋から埗られたプラクティスに぀いお玹介しおいこうず思いたす。 モチベヌション プロダクトの新芏開発時に行われる技術遞定は非垞に難しく、業務芁件やチヌム状況など総合的に考慮しおその時点でのベストな遞択をする必芁がありたす。 しかし、遞択した技術で長期運甚をしおいくうちに、メンテナンスが行き届かなくなったコヌドやラむブラリが出おしたいたす。 CLINICS ロヌンチ圓初はオンラむン蚺療のみを提䟛しおいたした。SPA で構成されおいたしたが、぀の package.json で効率的に開発できおいたした。他に、珟圚ほど TypeScript が䞻流ではなかったので JavaScript のコヌドがメむンで実装されおたした。 新たなアプリケヌション電子カルテや予玄システムなどを導入するタむミング、すなわちプロダクトが小芏暡から䞭芏暡に倉遷するタむミングや、フロント゚ンドの時流によっお、開発環境を改善できた郚分もありたすが、しきれおいない郚分も出おきたした。 その改善しきれおいない郚分を残す状態が続くず Developer Experience(DX)の䜎䞋に繋がっおしたいたす。ですので、私たちは改善しきれおいない郚分を取り陀いおいき、よりモダンずされる開発環境ぞリファクタリングをしおいこうず考えたした。 DX を向䞊しおいくこずで技術的なノむズに時間を取られないようになりたす。そしお提䟛する機胜そのものに぀いお考える時間が増え、結果的に CLINICS をより良いプロダクトぞ進化させおいくのが圓リファクタリングの目的です。 課題敎理 改善しおいくためには、珟状敎理、課題敎理を行わないこずには䜕も始たりたせん。フロント゚ンド開発環境をメンテナンスするタスクは、プロダクトの機胜ナヌザに提䟛される機胜に盎接プラスの圱響があるわけではありたせん。自ずず通垞の機胜開発や定垞改善に比べ優先床は萜ちるため、スキマ時間で改善をしおいくこずになりたす。こうしたスキマ時間を有効掻甚するためには、タスクの難易床の理解、タスクを適圓に分割、フェヌゞングの蚈画を行うこずが極めお倧事です。 そのように考慮した課題の䞭で、本蚘事で蚘茉するのは以䞋の぀です。 ラむブラリを定期的にアップデヌトする運甚が固たっおない 運甚方匏が固たっおいないこずで、攟眮されおしたいがちです。率先しおアップデヌトするメンバヌがいたずしおも、属人化の課題が残っおしたいたす 攟眮されおしたったこずにより、最新版ずの差分が倧きくなりアップデヌトするコストも倧きくなっおしたいたす 結果的に、ラむブラリのセキュリティフィックス察応や新しく提䟛された機胜をすぐに適応できない環境になっおしたいたす 耇数の SPA の䟝存を぀の package.json で管理しおいる 電子カルテ・オンラむン蚺療、瀟内管理 Web アプリ、患者 Web アプリはそれぞれ別の SPA ずしお䜜られおいたす それらを぀の package.json で管理しおいるためそれぞれの SPA が同じ䟝存パッケヌゞを䜿わなくおはなりたせん。小芏暡のずきはこのような構成で十分でしたが、芏暡が倧きくなるに぀れお柔軟性が倱われるず共に、ラむブラリのアップデヌトがもたらす圱響範囲が広がっおしたうため、容易にアップデヌトできなくなっおしたいたす 本蚘事では蚘茉したせんが「Redux の曞き方が混圚しおいる」「フロント゚ンドのテストが少ない」「網矅的に TypeScript 化できおいなく JavaScript がただ残っおいる」などの課題も挙げられたした。 こういう課題は、どのプロダクトにも存圚するず思いたす。それはロヌンチ圓時の技術流行であったり、プロダクトの期埅芏暡、少数メンバに適した蚭蚈など芁因は様々あり、プログラムのリファクタリングず同様に プロダクトの成長に䌎っおリファクタリングしおいくこずが正 だず信じおいたす。 モチベヌションにお蚘茉した通り、これら耇数の課題は開発環境のノむズであり、陀去するこずによっお、より良い DX が埗られるず考えおいたす。他にこのようなリファクタリングを行うこずによっお、プロダクトをより堅牢にできるずいう偎面もありたす。 䞊蚘の぀の課題に察しおそれぞれ「ラむブラリを定期的にアップデヌトする運甚手段を蚭けた」「package.json を SPA 単䜍に分割した」話をこれからしおいきたす。 フロント゚ンド開発環境のリファクタリング ラむブラリの定期的なアップデヌトをする運甚手順を蚭けた 手動アップデヌト ラむブラリをアップデヌトするにはコマンドを叩くだけだず考えおいたしたが、䟝存しおいる別のラむブラリに圱響が本圓にないかなど調査する必芁があるず知り、ラむブラリのアップデヌト方法を暡玢するずころから開始したした。 ラむブラリではないですが、Node.js のアップデヌトをしようずするず、node-sass や Firebase が圱響しおいたりしお、芋づる匏で根っこにあるラむブラリのアップデヌトをする必芁が出おきたりするので、䞀぀䞀぀問題がないか調査するのが倧倉でした。 䜕より、アップデヌト察象ラむブラリのリリヌスノヌトに Breaking Changes が曞かれおいなかったり、semver が守られおいるかわからなかったりず、プロダクトに圱響がないか調べる必芁があり、問題の切り分け方が難しかったのです。 ここで埗られたラむブラリアップデヌトの安党性担保のプラクティスずしお webpack によるビルド結果が倉わらないケヌス ず、 QA テストによっお担保するケヌス があるこずがわかりたした。前者は webpack による成果物が倉わらないのであれば今回のアップデヌトが安党であるずいえ、埌者ぱンゞニアず QA ゚ンゞニアによっおラむブラリの圱響範囲にハレヌションがないこずを確かめお安党であるずいえるずいうものです。 renovate の運甚開始 数カ月間は䞊蚘のようにラむブラリのアップデヌトを手動で行っおいたしたが、確認工数が増えおしたい、他のタスクの時間を圧迫しおしたうほどでした。 そこで、アップデヌトを自動化する renovate  ず dependabot を芖野に入れたした。renovate は、dependabot に比べお高機胜でか぀、無料であるずいう理由で遞定したした。 運甚圓初、renovate が Pull Request を䜜成しおくれたり、diff によりラむブラリの倉曎点が芋やすかったりず、恩恵を感じおいたした。しかし、埐々に「アップデヌト察象が倚く、それぞれがどういうラむブラリで、圱響範囲がどこなのか」ずいうこずの調査に時間が取られるようになっおしたいたした。 ここで埗られた調査時間を短瞮するプラクティスずしお**「本番圱響のあるもの」「開発向け」「ビルド呚り」ず renovate から来る Pull Request を敎理する**こずです。このような敎理を行うこずで、本番圱響のあるものに泚力しおレビュヌできるようになり、苊にならずにアップデヌトをできるようになりたした。 結果 ラむブラリアップデヌトの運甚手順を蚭けるこずによっお、今たで以䞊に堅牢な環境になりたした。それから、renovate によっお自動的に重芁な本番圱響のあるラむブラリのみに集䞭しおレビュヌを行うこずによっお、少ない工数でアップデヌトしおいけるようになりたした。 package.json を SPA 単䜍に分割 課題敎理で蚘茉した通り、電子カルテ・オンラむン蚺療、瀟内管理 Web アプリ、患者 Web アプリはそれぞれ別の SPA ずしお䜜られおいたすが、぀の package.json で管理しおいたす。ですのでそれぞれの SPA が同じ䟝存パッケヌゞを䜿わなければなりたせん。 匊害ずしお package.json に察しお぀の倉曎があったずきにすべおの SPA に圱響が出おしたいたす。ですので、この肥倧化した package.json をそれぞれの SPA に分割しようずしたした。 package.json を SPA 単䜍に分割するこずは 責務分離 ずいう偎面もあり、ラむブラリだけでなく、共通しおいた定数、ロゞック、コンポヌネント、webpack.config.js、babel.config.js ず tsconfig.json などすべおをそれぞれの SPA に䟝存のない圢に閉じるようにしたした。これらの分割する䜜業は非垞に泥臭いもので、本蚘事に蚘茉するほどのものではありたせんが、埗られた結果に぀いお蚘茉しおいこうず思いたす。 結果 たず、責務分離ができたので、぀の SPA に察する倉曎があったずきに、他の党おの SPA に察する圱響が出なくなりたした。よっお、぀の SPA に察しお新たな Web フレヌムワヌクやラむブラリを詊すこずが容易になりたした。他にも、぀の webpack ですべおの SPA をシヌケンシャルにビルドしおいたのに察しお、珟圚はパラレルでビルドできるようになりビルド時間が短瞮されたため、今たで以䞊にコミットからデプロむたでのむテレヌションが小さくなりたした。 これらの結果からフロント開発環境の改善および DX 向䞊が果されたした。 今埌の課題 持続的なリファクタリングをする仕組み䜜り 「ラむブラリの定期的なアップデヌトをする運甚手順を蚭けた」はたさに持続的にラむブラリをアップデヌトするための手段です。「package.json を SPA 単䜍に分割する」もそれぞれの SPA をメンテナンスしやすい環境䜜りずしおは欠かせない䜜業でした。 しかし、このたたリファクタリングを䞭断すれば、プロダクトの芏暡が倧きくなるずきやフロント゚ンドの時流によっお再びメンテナンスしづらい環境になっおしたいたす。 なので、持続的なリファクタリングをするためには仕組み䜜りが欠かせないず考えおいたす。そのためには、属人化によらない仕組みづくり、メンテナンスしやすい環境改善、゚ンゞニアそれぞれのフロント゚ンド開発環境に察するリテラシを高める取り組みを行っおいく必芁がありたす。そのため、珟圚 暪軞勉匷䌚 などで CLINICS フロント゚ンドの実装背景や、リファクタリングしやすい曞き方などのナレッゞを共有しおいたす。 たずめ フロント゚ンド開発環境のメンテナンス・リファクタリング自䜓はあくたでもナヌザに新しい機胜を提䟛しおいるわけではなく、粛々ず行っおいくものです。しかし、課題を掗い出し、向き合っお、解決しおいったこずによっお埗られたプラクティスは倚くあり、フロント゚ンドの゚コシステムに察する理解も倚く埗られたした。 これらのリファクタリングを行うこずによっお DX が向䞊しおいき、技術的なノむズに悩む時間が枛り、゚ンゞニアはよりプロダクトの機胜開発に専念できるようになっおいるず信じおいたす。 今回私たちが課題を解決したこずによっお、持続的にリファクタリングをしやすい土台䜜りをしたずいう偎面もあるず思いたす。今埌の課題ずしお、この土台を基にそれぞれの゚ンゞニアが意識を持っおメンテナンスできるような仕組みづくりも行っおいきたいず思いたす。 最埌たで読んでいただきありがずうございたした。 www.medley.jp
こんにちは、第二開発グルヌプ゚ンゞニアの西村です。䞻に CLINICS の開発を担圓しおいたす。 はじめに CLINICS は電子カルテ、オンラむン蚺療、予玄システム、患者アプリなどを含む統合アプリです。CLINICS がロヌンチしおから珟圚に至るたで垞に新機胜開発ず定垞改善が行われおおり、開発環境のメンテナンスは埌手になりがちでした。今回はそういった状況を改善すべく、開発環境のメンテナンス、リファクタリングを行った過皋から埗られたプラクティスに぀いお玹介しおいこうず思いたす。 モチベヌション プロダクトの新芏開発時に行われる技術遞定は非垞に難しく、業務芁件やチヌム状況など総合的に考慮しおその時点でのベストな遞択をする必芁がありたす。 しかし、遞択した技術で長期運甚をしおいくうちに、メンテナンスが行き届かなくなったコヌドやラむブラリが出おしたいたす。 CLINICS ロヌンチ圓初はオンラむン蚺療のみを提䟛しおいたした。SPA で構成されおいたしたが、぀の package.json で効率的に開発できおいたした。他に、珟圚ほど TypeScript が䞻流ではなかったので JavaScript のコヌドがメむンで実装されおたした。 新たなアプリケヌション電子カルテや予玄システムなどを導入するタむミング、すなわちプロダクトが小芏暡から䞭芏暡に倉遷するタむミングや、フロント゚ンドの時流によっお、開発環境を改善できた郚分もありたすが、しきれおいない郚分も出おきたした。 その改善しきれおいない郚分を残す状態が続くず Developer Experience(DX)の䜎䞋に繋がっおしたいたす。ですので、私たちは改善しきれおいない郚分を取り陀いおいき、よりモダンずされる開発環境ぞリファクタリングをしおいこうず考えたした。 DX を向䞊しおいくこずで技術的なノむズに時間を取られないようになりたす。そしお提䟛する機胜そのものに぀いお考える時間が増え、結果的に CLINICS をより良いプロダクトぞ進化させおいくのが圓リファクタリングの目的です。 課題敎理 改善しおいくためには、珟状敎理、課題敎理を行わないこずには䜕も始たりたせん。フロント゚ンド開発環境をメンテナンスするタスクは、プロダクトの機胜ナヌザに提䟛される機胜に盎接プラスの圱響があるわけではありたせん。自ずず通垞の機胜開発や定垞改善に比べ優先床は萜ちるため、スキマ時間で改善をしおいくこずになりたす。こうしたスキマ時間を有効掻甚するためには、タスクの難易床の理解、タスクを適圓に分割、フェヌゞングの蚈画を行うこずが極めお倧事です。 そのように考慮した課題の䞭で、本蚘事で蚘茉するのは以䞋の぀です。 ラむブラリを定期的にアップデヌトする運甚が固たっおない 運甚方匏が固たっおいないこずで、攟眮されおしたいがちです。率先しおアップデヌトするメンバヌがいたずしおも、属人化の課題が残っおしたいたす 攟眮されおしたったこずにより、最新版ずの差分が倧きくなりアップデヌトするコストも倧きくなっおしたいたす 結果的に、ラむブラリのセキュリティフィックス察応や新しく提䟛された機胜をすぐに適応できない環境になっおしたいたす 耇数の SPA の䟝存を぀の package.json で管理しおいる 電子カルテ・オンラむン蚺療、瀟内管理 Web アプリ、患者 Web アプリはそれぞれ別の SPA ずしお䜜られおいたす それらを぀の package.json で管理しおいるためそれぞれの SPA が同じ䟝存パッケヌゞを䜿わなくおはなりたせん。小芏暡のずきはこのような構成で十分でしたが、芏暡が倧きくなるに぀れお柔軟性が倱われるず共に、ラむブラリのアップデヌトがもたらす圱響範囲が広がっおしたうため、容易にアップデヌトできなくなっおしたいたす 本蚘事では蚘茉したせんが「Redux の曞き方が混圚しおいる」「フロント゚ンドのテストが少ない」「網矅的に TypeScript 化できおいなく JavaScript がただ残っおいる」などの課題も挙げられたした。 こういう課題は、どのプロダクトにも存圚するず思いたす。それはロヌンチ圓時の技術流行であったり、プロダクトの期埅芏暡、少数メンバに適した蚭蚈など芁因は様々あり、プログラムのリファクタリングず同様に プロダクトの成長に䌎っおリファクタリングしおいくこずが正 だず信じおいたす。 モチベヌションにお蚘茉した通り、これら耇数の課題は開発環境のノむズであり、陀去するこずによっお、より良い DX が埗られるず考えおいたす。他にこのようなリファクタリングを行うこずによっお、プロダクトをより堅牢にできるずいう偎面もありたす。 䞊蚘の぀の課題に察しおそれぞれ「ラむブラリを定期的にアップデヌトする運甚手段を蚭けた」「package.json を SPA 単䜍に分割した」話をこれからしおいきたす。 フロント゚ンド開発環境のリファクタリング ラむブラリの定期的なアップデヌトをする運甚手順を蚭けた 手動アップデヌト ラむブラリをアップデヌトするにはコマンドを叩くだけだず考えおいたしたが、䟝存しおいる別のラむブラリに圱響が本圓にないかなど調査する必芁があるず知り、ラむブラリのアップデヌト方法を暡玢するずころから開始したした。 ラむブラリではないですが、Node.js のアップデヌトをしようずするず、node-sass や Firebase が圱響しおいたりしお、芋づる匏で根っこにあるラむブラリのアップデヌトをする必芁が出おきたりするので、䞀぀䞀぀問題がないか調査するのが倧倉でした。 䜕より、アップデヌト察象ラむブラリのリリヌスノヌトに Breaking Changes が曞かれおいなかったり、semver が守られおいるかわからなかったりず、プロダクトに圱響がないか調べる必芁があり、問題の切り分け方が難しかったのです。 ここで埗られたラむブラリアップデヌトの安党性担保のプラクティスずしお webpack によるビルド結果が倉わらないケヌス ず、 QA テストによっお担保するケヌス があるこずがわかりたした。前者は webpack による成果物が倉わらないのであれば今回のアップデヌトが安党であるずいえ、埌者ぱンゞニアず QA ゚ンゞニアによっおラむブラリの圱響範囲にハレヌションがないこずを確かめお安党であるずいえるずいうものです。 renovate の運甚開始 数カ月間は䞊蚘のようにラむブラリのアップデヌトを手動で行っおいたしたが、確認工数が増えおしたい、他のタスクの時間を圧迫しおしたうほどでした。 そこで、アップデヌトを自動化する renovate  ず dependabot を芖野に入れたした。renovate は、dependabot に比べお高機胜でか぀、無料であるずいう理由で遞定したした。 運甚圓初、renovate が Pull Request を䜜成しおくれたり、diff によりラむブラリの倉曎点が芋やすかったりず、恩恵を感じおいたした。しかし、埐々に「アップデヌト察象が倚く、それぞれがどういうラむブラリで、圱響範囲がどこなのか」ずいうこずの調査に時間が取られるようになっおしたいたした。 ここで埗られた調査時間を短瞮するプラクティスずしお**「本番圱響のあるもの」「開発向け」「ビルド呚り」ず renovate から来る Pull Request を敎理する**こずです。このような敎理を行うこずで、本番圱響のあるものに泚力しおレビュヌできるようになり、苊にならずにアップデヌトをできるようになりたした。 結果 ラむブラリアップデヌトの運甚手順を蚭けるこずによっお、今たで以䞊に堅牢な環境になりたした。それから、renovate によっお自動的に重芁な本番圱響のあるラむブラリのみに集䞭しおレビュヌを行うこずによっお、少ない工数でアップデヌトしおいけるようになりたした。 package.json を SPA 単䜍に分割 課題敎理で蚘茉した通り、電子カルテ・オンラむン蚺療、瀟内管理 Web アプリ、患者 Web アプリはそれぞれ別の SPA ずしお䜜られおいたすが、぀の package.json で管理しおいたす。ですのでそれぞれの SPA が同じ䟝存パッケヌゞを䜿わなければなりたせん。 匊害ずしお package.json に察しお぀の倉曎があったずきにすべおの SPA に圱響が出おしたいたす。ですので、この肥倧化した package.json をそれぞれの SPA に分割しようずしたした。 package.json を SPA 単䜍に分割するこずは 責務分離 ずいう偎面もあり、ラむブラリだけでなく、共通しおいた定数、ロゞック、コンポヌネント、webpack.config.js、babel.config.js ず tsconfig.json などすべおをそれぞれの SPA に䟝存のない圢に閉じるようにしたした。これらの分割する䜜業は非垞に泥臭いもので、本蚘事に蚘茉するほどのものではありたせんが、埗られた結果に぀いお蚘茉しおいこうず思いたす。 結果 たず、責務分離ができたので、぀の SPA に察する倉曎があったずきに、他の党おの SPA に察する圱響が出なくなりたした。よっお、぀の SPA に察しお新たな Web フレヌムワヌクやラむブラリを詊すこずが容易になりたした。他にも、぀の webpack ですべおの SPA をシヌケンシャルにビルドしおいたのに察しお、珟圚はパラレルでビルドできるようになりビルド時間が短瞮されたため、今たで以䞊にコミットからデプロむたでのむテレヌションが小さくなりたした。 これらの結果からフロント開発環境の改善および DX 向䞊が果されたした。 今埌の課題 持続的なリファクタリングをする仕組み䜜り 「ラむブラリの定期的なアップデヌトをする運甚手順を蚭けた」はたさに持続的にラむブラリをアップデヌトするための手段です。「package.json を SPA 単䜍に分割する」もそれぞれの SPA をメンテナンスしやすい環境䜜りずしおは欠かせない䜜業でした。 しかし、このたたリファクタリングを䞭断すれば、プロダクトの芏暡が倧きくなるずきやフロント゚ンドの時流によっお再びメンテナンスしづらい環境になっおしたいたす。 なので、持続的なリファクタリングをするためには仕組み䜜りが欠かせないず考えおいたす。そのためには、属人化によらない仕組みづくり、メンテナンスしやすい環境改善、゚ンゞニアそれぞれのフロント゚ンド開発環境に察するリテラシを高める取り組みを行っおいく必芁がありたす。そのため、珟圚 暪軞勉匷䌚 などで CLINICS フロント゚ンドの実装背景や、リファクタリングしやすい曞き方などのナレッゞを共有しおいたす。 たずめ フロント゚ンド開発環境のメンテナンス・リファクタリング自䜓はあくたでもナヌザに新しい機胜を提䟛しおいるわけではなく、粛々ず行っおいくものです。しかし、課題を掗い出し、向き合っお、解決しおいったこずによっお埗られたプラクティスは倚くあり、フロント゚ンドの゚コシステムに察する理解も倚く埗られたした。 これらのリファクタリングを行うこずによっお DX が向䞊しおいき、技術的なノむズに悩む時間が枛り、゚ンゞニアはよりプロダクトの機胜開発に専念できるようになっおいるず信じおいたす。 今回私たちが課題を解決したこずによっお、持続的にリファクタリングをしやすい土台䜜りをしたずいう偎面もあるず思いたす。今埌の課題ずしお、この土台を基にそれぞれの゚ンゞニアが意識を持っおメンテナンスできるような仕組みづくりも行っおいきたいず思いたす。 最埌たで読んでいただきありがずうございたした。 www.medley.jp
こんにちは、第二開発グルヌプ゚ンゞニアの西村です。䞻に CLINICS の開発を担圓しおいたす。 はじめに CLINICS は電子カルテ、オンラむン蚺療、予玄システム、患者アプリなどを含む統合アプリです。CLINICS がロヌンチしおから珟圚に至るたで垞に新機胜開発ず定垞改善が行われおおり、開発環境のメンテナンスは埌手になりがちでした。今回はそういった状況を改善すべく、開発環境のメンテナンス、リファクタリングを行った過皋から埗られたプラクティスに぀いお玹介しおいこうず思いたす。 モチベヌション プロダクトの新芏開発時に行われる技術遞定は非垞に難しく、業務芁件やチヌム状況など総合的に考慮しおその時点でのベストな遞択をする必芁がありたす。 しかし、遞択した技術で長期運甚をしおいくうちに、メンテナンスが行き届かなくなったコヌドやラむブラリが出おしたいたす。 CLINICS ロヌンチ圓初はオンラむン蚺療のみを提䟛しおいたした。SPA で構成されおいたしたが、぀の package.json で効率的に開発できおいたした。他に、珟圚ほど TypeScript が䞻流ではなかったので JavaScript のコヌドがメむンで実装されおたした。 新たなアプリケヌション電子カルテや予玄システムなどを導入するタむミング、すなわちプロダクトが小芏暡から䞭芏暡に倉遷するタむミングや、フロント゚ンドの時流によっお、開発環境を改善できた郚分もありたすが、しきれおいない郚分も出おきたした。 その改善しきれおいない郚分を残す状態が続くず Developer Experience(DX)の䜎䞋に繋がっおしたいたす。ですので、私たちは改善しきれおいない郚分を取り陀いおいき、よりモダンずされる開発環境ぞリファクタリングをしおいこうず考えたした。 DX を向䞊しおいくこずで技術的なノむズに時間を取られないようになりたす。そしお提䟛する機胜そのものに぀いお考える時間が増え、結果的に CLINICS をより良いプロダクトぞ進化させおいくのが圓リファクタリングの目的です。 課題敎理 改善しおいくためには、珟状敎理、課題敎理を行わないこずには䜕も始たりたせん。フロント゚ンド開発環境をメンテナンスするタスクは、プロダクトの機胜ナヌザに提䟛される機胜に盎接プラスの圱響があるわけではありたせん。自ずず通垞の機胜開発や定垞改善に比べ優先床は萜ちるため、スキマ時間で改善をしおいくこずになりたす。こうしたスキマ時間を有効掻甚するためには、タスクの難易床の理解、タスクを適圓に分割、フェヌゞングの蚈画を行うこずが極めお倧事です。 そのように考慮した課題の䞭で、本蚘事で蚘茉するのは以䞋の぀です。 ラむブラリを定期的にアップデヌトする運甚が固たっおない 運甚方匏が固たっおいないこずで、攟眮されおしたいがちです。率先しおアップデヌトするメンバヌがいたずしおも、属人化の課題が残っおしたいたす 攟眮されおしたったこずにより、最新版ずの差分が倧きくなりアップデヌトするコストも倧きくなっおしたいたす 結果的に、ラむブラリのセキュリティフィックス察応や新しく提䟛された機胜をすぐに適応できない環境になっおしたいたす 耇数の SPA の䟝存を぀の package.json で管理しおいる 電子カルテ・オンラむン蚺療、瀟内管理 Web アプリ、患者 Web アプリはそれぞれ別の SPA ずしお䜜られおいたす それらを぀の package.json で管理しおいるためそれぞれの SPA が同じ䟝存パッケヌゞを䜿わなくおはなりたせん。小芏暡のずきはこのような構成で十分でしたが、芏暡が倧きくなるに぀れお柔軟性が倱われるず共に、ラむブラリのアップデヌトがもたらす圱響範囲が広がっおしたうため、容易にアップデヌトできなくなっおしたいたす 本蚘事では蚘茉したせんが「Redux の曞き方が混圚しおいる」「フロント゚ンドのテストが少ない」「網矅的に TypeScript 化できおいなく JavaScript がただ残っおいる」などの課題も挙げられたした。 こういう課題は、どのプロダクトにも存圚するず思いたす。それはロヌンチ圓時の技術流行であったり、プロダクトの期埅芏暡、少数メンバに適した蚭蚈など芁因は様々あり、プログラムのリファクタリングず同様に プロダクトの成長に䌎っおリファクタリングしおいくこずが正 だず信じおいたす。 モチベヌションにお蚘茉した通り、これら耇数の課題は開発環境のノむズであり、陀去するこずによっお、より良い DX が埗られるず考えおいたす。他にこのようなリファクタリングを行うこずによっお、プロダクトをより堅牢にできるずいう偎面もありたす。 䞊蚘の぀の課題に察しおそれぞれ「ラむブラリを定期的にアップデヌトする運甚手段を蚭けた」「package.json を SPA 単䜍に分割した」話をこれからしおいきたす。 フロント゚ンド開発環境のリファクタリング ラむブラリの定期的なアップデヌトをする運甚手順を蚭けた 手動アップデヌト ラむブラリをアップデヌトするにはコマンドを叩くだけだず考えおいたしたが、䟝存しおいる別のラむブラリに圱響が本圓にないかなど調査する必芁があるず知り、ラむブラリのアップデヌト方法を暡玢するずころから開始したした。 ラむブラリではないですが、Node.js のアップデヌトをしようずするず、node-sass や Firebase が圱響しおいたりしお、芋づる匏で根っこにあるラむブラリのアップデヌトをする必芁が出おきたりするので、䞀぀䞀぀問題がないか調査するのが倧倉でした。 䜕より、アップデヌト察象ラむブラリのリリヌスノヌトに Breaking Changes が曞かれおいなかったり、semver が守られおいるかわからなかったりず、プロダクトに圱響がないか調べる必芁があり、問題の切り分け方が難しかったのです。 ここで埗られたラむブラリアップデヌトの安党性担保のプラクティスずしお webpack によるビルド結果が倉わらないケヌス ず、 QA テストによっお担保するケヌス があるこずがわかりたした。前者は webpack による成果物が倉わらないのであれば今回のアップデヌトが安党であるずいえ、埌者ぱンゞニアず QA ゚ンゞニアによっおラむブラリの圱響範囲にハレヌションがないこずを確かめお安党であるずいえるずいうものです。 renovate の運甚開始 数カ月間は䞊蚘のようにラむブラリのアップデヌトを手動で行っおいたしたが、確認工数が増えおしたい、他のタスクの時間を圧迫しおしたうほどでした。 そこで、アップデヌトを自動化する renovate  ず dependabot を芖野に入れたした。renovate は、dependabot に比べお高機胜でか぀、無料であるずいう理由で遞定したした。 運甚圓初、renovate が Pull Request を䜜成しおくれたり、diff によりラむブラリの倉曎点が芋やすかったりず、恩恵を感じおいたした。しかし、埐々に「アップデヌト察象が倚く、それぞれがどういうラむブラリで、圱響範囲がどこなのか」ずいうこずの調査に時間が取られるようになっおしたいたした。 ここで埗られた調査時間を短瞮するプラクティスずしお**「本番圱響のあるもの」「開発向け」「ビルド呚り」ず renovate から来る Pull Request を敎理する**こずです。このような敎理を行うこずで、本番圱響のあるものに泚力しおレビュヌできるようになり、苊にならずにアップデヌトをできるようになりたした。 結果 ラむブラリアップデヌトの運甚手順を蚭けるこずによっお、今たで以䞊に堅牢な環境になりたした。それから、renovate によっお自動的に重芁な本番圱響のあるラむブラリのみに集䞭しおレビュヌを行うこずによっお、少ない工数でアップデヌトしおいけるようになりたした。 package.json を SPA 単䜍に分割 課題敎理で蚘茉した通り、電子カルテ・オンラむン蚺療、瀟内管理 Web アプリ、患者 Web アプリはそれぞれ別の SPA ずしお䜜られおいたすが、぀の package.json で管理しおいたす。ですのでそれぞれの SPA が同じ䟝存パッケヌゞを䜿わなければなりたせん。 匊害ずしお package.json に察しお぀の倉曎があったずきにすべおの SPA に圱響が出おしたいたす。ですので、この肥倧化した package.json をそれぞれの SPA に分割しようずしたした。 package.json を SPA 単䜍に分割するこずは 責務分離 ずいう偎面もあり、ラむブラリだけでなく、共通しおいた定数、ロゞック、コンポヌネント、webpack.config.js、babel.config.js ず tsconfig.json などすべおをそれぞれの SPA に䟝存のない圢に閉じるようにしたした。これらの分割する䜜業は非垞に泥臭いもので、本蚘事に蚘茉するほどのものではありたせんが、埗られた結果に぀いお蚘茉しおいこうず思いたす。 結果 たず、責務分離ができたので、぀の SPA に察する倉曎があったずきに、他の党おの SPA に察する圱響が出なくなりたした。よっお、぀の SPA に察しお新たな Web フレヌムワヌクやラむブラリを詊すこずが容易になりたした。他にも、぀の webpack ですべおの SPA をシヌケンシャルにビルドしおいたのに察しお、珟圚はパラレルでビルドできるようになりビルド時間が短瞮されたため、今たで以䞊にコミットからデプロむたでのむテレヌションが小さくなりたした。 これらの結果からフロント開発環境の改善および DX 向䞊が果されたした。 今埌の課題 持続的なリファクタリングをする仕組み䜜り 「ラむブラリの定期的なアップデヌトをする運甚手順を蚭けた」はたさに持続的にラむブラリをアップデヌトするための手段です。「package.json を SPA 単䜍に分割する」もそれぞれの SPA をメンテナンスしやすい環境䜜りずしおは欠かせない䜜業でした。 しかし、このたたリファクタリングを䞭断すれば、プロダクトの芏暡が倧きくなるずきやフロント゚ンドの時流によっお再びメンテナンスしづらい環境になっおしたいたす。 なので、持続的なリファクタリングをするためには仕組み䜜りが欠かせないず考えおいたす。そのためには、属人化によらない仕組みづくり、メンテナンスしやすい環境改善、゚ンゞニアそれぞれのフロント゚ンド開発環境に察するリテラシを高める取り組みを行っおいく必芁がありたす。そのため、珟圚 暪軞勉匷䌚 などで CLINICS フロント゚ンドの実装背景や、リファクタリングしやすい曞き方などのナレッゞを共有しおいたす。 たずめ フロント゚ンド開発環境のメンテナンス・リファクタリング自䜓はあくたでもナヌザに新しい機胜を提䟛しおいるわけではなく、粛々ず行っおいくものです。しかし、課題を掗い出し、向き合っお、解決しおいったこずによっお埗られたプラクティスは倚くあり、フロント゚ンドの゚コシステムに察する理解も倚く埗られたした。 これらのリファクタリングを行うこずによっお DX が向䞊しおいき、技術的なノむズに悩む時間が枛り、゚ンゞニアはよりプロダクトの機胜開発に専念できるようになっおいるず信じおいたす。 今回私たちが課題を解決したこずによっお、持続的にリファクタリングをしやすい土台䜜りをしたずいう偎面もあるず思いたす。今埌の課題ずしお、この土台を基にそれぞれの゚ンゞニアが意識を持っおメンテナンスできるような仕組みづくりも行っおいきたいず思いたす。 最埌たで読んでいただきありがずうございたした。 www.medley.jp
こんにちは、第二開発グルヌプ゚ンゞニアの西村です。䞻に CLINICS の開発を担圓しおいたす。 はじめに CLINICS は電子カルテ、オンラむン蚺療、予玄システム、患者アプリなどを含む統合アプリです。CLINICS がロヌンチしおから珟圚に至るたで垞に新機胜開発ず定垞改善が行われおおり、開発環境のメンテナンスは埌手になりがちでした。今回はそういった状況を改善すべく、開発環境のメンテナンス、リファクタリングを行った過皋から埗られたプラクティスに぀いお玹介しおいこうず思いたす。 モチベヌション プロダクトの新芏開発時に行われる技術遞定は非垞に難しく、業務芁件やチヌム状況など総合的に考慮しおその時点でのベストな遞択をする必芁がありたす。 しかし、遞択した技術で長期運甚をしおいくうちに、メンテナンスが行き届かなくなったコヌドやラむブラリが出おしたいたす。 CLINICS ロヌンチ圓初はオンラむン蚺療のみを提䟛しおいたした。SPA で構成されおいたしたが、぀の package.json で効率的に開発できおいたした。他に、珟圚ほど TypeScript が䞻流ではなかったので JavaScript のコヌドがメむンで実装されおたした。 新たなアプリケヌション電子カルテや予玄システムなどを導入するタむミング、すなわちプロダクトが小芏暡から䞭芏暡に倉遷するタむミングや、フロント゚ンドの時流によっお、開発環境を改善できた郚分もありたすが、しきれおいない郚分も出おきたした。 その改善しきれおいない郚分を残す状態が続くず Developer Experience(DX)の䜎䞋に繋がっおしたいたす。ですので、私たちは改善しきれおいない郚分を取り陀いおいき、よりモダンずされる開発環境ぞリファクタリングをしおいこうず考えたした。 DX を向䞊しおいくこずで技術的なノむズに時間を取られないようになりたす。そしお提䟛する機胜そのものに぀いお考える時間が増え、結果的に CLINICS をより良いプロダクトぞ進化させおいくのが圓リファクタリングの目的です。 課題敎理 改善しおいくためには、珟状敎理、課題敎理を行わないこずには䜕も始たりたせん。フロント゚ンド開発環境をメンテナンスするタスクは、プロダクトの機胜ナヌザに提䟛される機胜に盎接プラスの圱響があるわけではありたせん。自ずず通垞の機胜開発や定垞改善に比べ優先床は萜ちるため、スキマ時間で改善をしおいくこずになりたす。こうしたスキマ時間を有効掻甚するためには、タスクの難易床の理解、タスクを適圓に分割、フェヌゞングの蚈画を行うこずが極めお倧事です。 そのように考慮した課題の䞭で、本蚘事で蚘茉するのは以䞋の぀です。 ラむブラリを定期的にアップデヌトする運甚が固たっおない 運甚方匏が固たっおいないこずで、攟眮されおしたいがちです。率先しおアップデヌトするメンバヌがいたずしおも、属人化の課題が残っおしたいたす 攟眮されおしたったこずにより、最新版ずの差分が倧きくなりアップデヌトするコストも倧きくなっおしたいたす 結果的に、ラむブラリのセキュリティフィックス察応や新しく提䟛された機胜をすぐに適応できない環境になっおしたいたす 耇数の SPA の䟝存を぀の package.json で管理しおいる 電子カルテ・オンラむン蚺療、瀟内管理 Web アプリ、患者 Web アプリはそれぞれ別の SPA ずしお䜜られおいたす それらを぀の package.json で管理しおいるためそれぞれの SPA が同じ䟝存パッケヌゞを䜿わなくおはなりたせん。小芏暡のずきはこのような構成で十分でしたが、芏暡が倧きくなるに぀れお柔軟性が倱われるず共に、ラむブラリのアップデヌトがもたらす圱響範囲が広がっおしたうため、容易にアップデヌトできなくなっおしたいたす 本蚘事では蚘茉したせんが「Redux の曞き方が混圚しおいる」「フロント゚ンドのテストが少ない」「網矅的に TypeScript 化できおいなく JavaScript がただ残っおいる」などの課題も挙げられたした。 こういう課題は、どのプロダクトにも存圚するず思いたす。それはロヌンチ圓時の技術流行であったり、プロダクトの期埅芏暡、少数メンバに適した蚭蚈など芁因は様々あり、プログラムのリファクタリングず同様に プロダクトの成長に䌎っおリファクタリングしおいくこずが正 だず信じおいたす。 モチベヌションにお蚘茉した通り、これら耇数の課題は開発環境のノむズであり、陀去するこずによっお、より良い DX が埗られるず考えおいたす。他にこのようなリファクタリングを行うこずによっお、プロダクトをより堅牢にできるずいう偎面もありたす。 䞊蚘の぀の課題に察しおそれぞれ「ラむブラリを定期的にアップデヌトする運甚手段を蚭けた」「package.json を SPA 単䜍に分割した」話をこれからしおいきたす。 フロント゚ンド開発環境のリファクタリング ラむブラリの定期的なアップデヌトをする運甚手順を蚭けた 手動アップデヌト ラむブラリをアップデヌトするにはコマンドを叩くだけだず考えおいたしたが、䟝存しおいる別のラむブラリに圱響が本圓にないかなど調査する必芁があるず知り、ラむブラリのアップデヌト方法を暡玢するずころから開始したした。 ラむブラリではないですが、Node.js のアップデヌトをしようずするず、node-sass や Firebase が圱響しおいたりしお、芋づる匏で根っこにあるラむブラリのアップデヌトをする必芁が出おきたりするので、䞀぀䞀぀問題がないか調査するのが倧倉でした。 䜕より、アップデヌト察象ラむブラリのリリヌスノヌトに Breaking Changes が曞かれおいなかったり、semver が守られおいるかわからなかったりず、プロダクトに圱響がないか調べる必芁があり、問題の切り分け方が難しかったのです。 ここで埗られたラむブラリアップデヌトの安党性担保のプラクティスずしお webpack によるビルド結果が倉わらないケヌス ず、 QA テストによっお担保するケヌス があるこずがわかりたした。前者は webpack による成果物が倉わらないのであれば今回のアップデヌトが安党であるずいえ、埌者ぱンゞニアず QA ゚ンゞニアによっおラむブラリの圱響範囲にハレヌションがないこずを確かめお安党であるずいえるずいうものです。 renovate の運甚開始 数カ月間は䞊蚘のようにラむブラリのアップデヌトを手動で行っおいたしたが、確認工数が増えおしたい、他のタスクの時間を圧迫しおしたうほどでした。 そこで、アップデヌトを自動化する renovate  ず dependabot を芖野に入れたした。renovate は、dependabot に比べお高機胜でか぀、無料であるずいう理由で遞定したした。 運甚圓初、renovate が Pull Request を䜜成しおくれたり、diff によりラむブラリの倉曎点が芋やすかったりず、恩恵を感じおいたした。しかし、埐々に「アップデヌト察象が倚く、それぞれがどういうラむブラリで、圱響範囲がどこなのか」ずいうこずの調査に時間が取られるようになっおしたいたした。 ここで埗られた調査時間を短瞮するプラクティスずしお**「本番圱響のあるもの」「開発向け」「ビルド呚り」ず renovate から来る Pull Request を敎理する**こずです。このような敎理を行うこずで、本番圱響のあるものに泚力しおレビュヌできるようになり、苊にならずにアップデヌトをできるようになりたした。 結果 ラむブラリアップデヌトの運甚手順を蚭けるこずによっお、今たで以䞊に堅牢な環境になりたした。それから、renovate によっお自動的に重芁な本番圱響のあるラむブラリのみに集䞭しおレビュヌを行うこずによっお、少ない工数でアップデヌトしおいけるようになりたした。 package.json を SPA 単䜍に分割 課題敎理で蚘茉した通り、電子カルテ・オンラむン蚺療、瀟内管理 Web アプリ、患者 Web アプリはそれぞれ別の SPA ずしお䜜られおいたすが、぀の package.json で管理しおいたす。ですのでそれぞれの SPA が同じ䟝存パッケヌゞを䜿わなければなりたせん。 匊害ずしお package.json に察しお぀の倉曎があったずきにすべおの SPA に圱響が出おしたいたす。ですので、この肥倧化した package.json をそれぞれの SPA に分割しようずしたした。 package.json を SPA 単䜍に分割するこずは 責務分離 ずいう偎面もあり、ラむブラリだけでなく、共通しおいた定数、ロゞック、コンポヌネント、webpack.config.js、babel.config.js ず tsconfig.json などすべおをそれぞれの SPA に䟝存のない圢に閉じるようにしたした。これらの分割する䜜業は非垞に泥臭いもので、本蚘事に蚘茉するほどのものではありたせんが、埗られた結果に぀いお蚘茉しおいこうず思いたす。 結果 たず、責務分離ができたので、぀の SPA に察する倉曎があったずきに、他の党おの SPA に察する圱響が出なくなりたした。よっお、぀の SPA に察しお新たな Web フレヌムワヌクやラむブラリを詊すこずが容易になりたした。他にも、぀の webpack ですべおの SPA をシヌケンシャルにビルドしおいたのに察しお、珟圚はパラレルでビルドできるようになりビルド時間が短瞮されたため、今たで以䞊にコミットからデプロむたでのむテレヌションが小さくなりたした。 これらの結果からフロント開発環境の改善および DX 向䞊が果されたした。 今埌の課題 持続的なリファクタリングをする仕組み䜜り 「ラむブラリの定期的なアップデヌトをする運甚手順を蚭けた」はたさに持続的にラむブラリをアップデヌトするための手段です。「package.json を SPA 単䜍に分割する」もそれぞれの SPA をメンテナンスしやすい環境䜜りずしおは欠かせない䜜業でした。 しかし、このたたリファクタリングを䞭断すれば、プロダクトの芏暡が倧きくなるずきやフロント゚ンドの時流によっお再びメンテナンスしづらい環境になっおしたいたす。 なので、持続的なリファクタリングをするためには仕組み䜜りが欠かせないず考えおいたす。そのためには、属人化によらない仕組みづくり、メンテナンスしやすい環境改善、゚ンゞニアそれぞれのフロント゚ンド開発環境に察するリテラシを高める取り組みを行っおいく必芁がありたす。そのため、珟圚 暪軞勉匷䌚 などで CLINICS フロント゚ンドの実装背景や、リファクタリングしやすい曞き方などのナレッゞを共有しおいたす。 たずめ フロント゚ンド開発環境のメンテナンス・リファクタリング自䜓はあくたでもナヌザに新しい機胜を提䟛しおいるわけではなく、粛々ず行っおいくものです。しかし、課題を掗い出し、向き合っお、解決しおいったこずによっお埗られたプラクティスは倚くあり、フロント゚ンドの゚コシステムに察する理解も倚く埗られたした。 これらのリファクタリングを行うこずによっお DX が向䞊しおいき、技術的なノむズに悩む時間が枛り、゚ンゞニアはよりプロダクトの機胜開発に専念できるようになっおいるず信じおいたす。 今回私たちが課題を解決したこずによっお、持続的にリファクタリングをしやすい土台䜜りをしたずいう偎面もあるず思いたす。今埌の課題ずしお、この土台を基にそれぞれの゚ンゞニアが意識を持っおメンテナンスできるような仕組みづくりも行っおいきたいず思いたす。 最埌たで読んでいただきありがずうございたした。 www.medley.jp
皆様こんにちは。むンキュベヌション本郚゚ンゞニアの濱䞭です。 9/19〜21 に iOSDC Japan 2020 以䞋 iOSDCが開催されたした。 先日の蚘事 の通り、メドレヌは 2017 幎より iOSDC に 協賛 しおおりたす。 メドレヌでは、Swift を利甚しおオンラむン蚺療服薬指導アプリ「CLINICS」iOS 版の開発をしおいたす。 CLINICS(クリニクス) オンラむン蚺療・服薬指導アプリ 5 回目ずなる今回は、初のオンラむン開催ずなり、䞻にニコニコ生攟送、Discord 䞊で発衚・コミュニケヌションが行われたした。私が iOS 版 CLINICS の開発に携わっおいる瞁で、今回スポンサヌ枠ずしお iOSDC に参加させおいただきたしたので玹介させおいただきたす。 むベント党䜓に぀いお オンラむン開催ずなったため、䌚堎の様子や䌁業ブヌスなど、雰囲気の䌝わる写真をお届けできないのが残念ですが、発衚の䞻䌚堎ずなったニコニコ生攟送では、終始穏やかな雰囲気であり぀぀も掻発にコメントがなされ、倧いに盛り䞊がっおいたした。 前回同様、初日は day 0 ずしお倕方から、2 日目以降は朝〜倕方たで、最倧 5 ぀のチャンネルで䞊行しお発衚が行われたした。セッションに぀いおは事前に録画したものを攟送し、LT のみリモヌトにおリアルタむム発衚ずいう圢匏ずなっおいたした。 質疑応答に぀いおは、各発衚の終了盎埌に Discord チャンネルに発衚者が埅機しお察応しおいたした。初のオンラむン開催ずいうこずで、むントロダクション動画をはじめずし、各所で積極的なフィヌドバック・コミュニケヌションが奚励されおいたように思いたすなお、むントロダクション・スポンサヌ玹介の各動画はナレヌションが声優の緒方恵矎さん・䞉石琎乃さんず、ずおも豪華でした。生攟送䞭のコメントや、 18 幎の匊瀟ブログ を芋る限りは毎幎恒䟋のようですね。すごいです。 セッションに぀いお 昚幎 iOS13 ずずもに発衚された SwiftUI ぞの移行や、コヌド移行・モゞュヌル分割等、プロゞェクトの最適化に぀いおのトピックが倚かったように思いたす。 SwiftUI は、埓来 Storyboard で蚭蚈しおいた UI をコヌドベヌスで蚘述できる画期的なフレヌムワヌクですが、SwiftUI を䜿ったアプリは iOS13 未満の端末では利甚できなくなっおしたうこずもあり、アプリの公開察象を広めにもっおおきたい堎合はなかなか乗り換えづらい印象でした。2020 幎 6 月珟圚で iOS13 のシェアが 9 割以䞊ずなったこずで、ちょうど iOSDC での発衚トピックを決めるころに導入䜜業を行ったか぀苊劎したずいうケヌスが倚かったのかな、ず思いたす。 以䞋、芖聎したセッションのうち気になったものをいく぀かご玹介いたしたす。 オヌプン゜ヌスの AltSwiftUI の発衚 fortee.jp 楜倩の゚ンゞニアの方による、SwiftUI の提䟛するネむティブコンポヌネントに察応し぀぀、iOS11 以䞊で利甚可胜なオヌプン゜ヌスのフレヌムワヌク AltSwiftUI  公匏 Doc の開発に぀いおのセッションでした。 iOS12 以䞋の察応を切らずに SwiftUI ぞの乗り換えを進められるか぀本家ず違っおオヌプン゜ヌスである䟿利さもそうですが、別途フレヌムワヌクが出来䞊がっおしたうあたりに、SwiftUI ぞの移行察応ぞの苊劎がしのばれる内容でもありたしたストアにある楜倩提䟛の iOS アプリの数を考えるず乗り換えコストが倧倉そう 。 「それ、自動化できたすよ」: note を支えるワヌクフロヌ倧党 speakerdeck.com 改修芁望が䞊がっおから、実際に改修を行っおアプリをリリヌスするたでの䜜業をできる限り自動化した、ずいうセッションです。CLINICS でも、「蚌明曞の有効期限確認、プッシュからのテスト、マヌゞからのリリヌス準備」は Bitrise のトリガを利甚しお自動化しおいたす。 䞊蚘のような、GitHub 䞊でのアクションプッシュ、マヌゞなどをトリガずする自動化はよく聞く話ではあるのですが、Slack のポストに特定のスタンプ぀けるず Issue 化、はちょっず目新しくお面癜いなず思いたした気を぀けないず衚蚘揺れで同じような Issue が乱立しそうですが。 Issue もきちんず管理しおおかないずトラブルの起きやすい郚分ですよね。起祚者ず実装者の間でボヌルが浮いおしたったり、プロゞェクトに玐づいおいなかったために察応から掩れおしたったり 。 たた、このスラむドですが終始手曞きの挿絵がかわいくお、そういった意味でもコメント欄が盛り䞊がっおいたのが印象的でした。 100 人でアプリをリファクタリングしお芋えおきた、最匷の iOS アプリ蚭蚈に求められるこず fortee.jp アプリを長期に運甚しおいくずほが必須ずなる課題でありながら、人ごずに基準が曖昧だったり、機胜開発におされお察応が埌手埌手になったり ず、䜕かず぀らい話をよく聞く゜ヌスコヌドのリファクタリングに関するセッションでした。 同じ状態の゜ヌスコヌドを倚数の゚ンゞニアがリファクタした結果を比范するこずで、「良いリファクタリングのための考え方」ずは䜕かを暡玢した内容です。 ビュヌずロゞックの分割をしっかり行う、ずいうのは PR レビュヌで゚ンゞニアが口を酞っぱくしおよく蚀われるこずではありたすが、「ロゞックの䞭でも、アプリの仕様に䟝存するものずそうでない普遍的なものは分離すべき」ずいうアむデアは個人的には県から鱗が萜ちるものでした。 たた、これを説明するリバヌシの具䜓䟋「察戊盞手が人間か AI か」はアプリ仕様に䟝存するロゞック、「そこに石を眮けるか」は普遍的なロゞックリバヌシのルヌルそのものも非垞にわかりやすかったです。 そのほか、React / Redux でフロント゚ンド開発を行っおいる人にはお銎染みの Action / Reducer を䜿った単䞀方向のデヌタフロヌの導入なども玹介されおいたす。 新芏機胜開発からモゞュヌル分割を始めおみる speakerdeck.com 䞀぀のアプリが長期間運甚されおいくなかで、耇数の機胜が統合されたスヌパヌアプリになるこずがありたす。そうなった堎合、゜ヌスコヌドが肥倧化 → ビルド・テストも長倧化、ずなっおメンテナンス性が䜎䞋するため、察策ずしおコヌドを分割しおテストやビルドの単䜍を小さくする必芁がありたす。 いきなりアプリ党䜓をモゞュヌルに分割するのは時間がかかるため、本セッションではたず第䞀段階ずしお新芏に開発する機胜を別モゞュヌルずしお実装し、その時埗た知芋に぀いお觊れられおいたした。 「分割したモゞュヌル偎でのサヌドパヌティ補フレヌムワヌクのリンク方法※リンクを正しく行わないず、ビルドしお動䜜はするのにアヌカむブに倱敗しおリリヌスできなくなる」などは、今埌の開発にモゞュヌル分割を取り入れおいく際に参考になりそうです。 Swift で始める静的解析 speakerdeck.com Swift ゜ヌスコヌドからの構文朚の生成、解析を行うラむブラリ SwiftSyntax の玹介ず、それを甚いた゜ヌスコヌド重耇怜出機胜の実装に぀いおのセッションでした。 普段 Xcode を始めずした IDE で開発しおいるず、コヌド重耇、䞍芁なロヌカル倉数、型や Nullable の䞍䞀臎に倉数リファクタリング 等々の䟿利な機胜を気軜に䜿えおしたいたすが、その裏の動䜜を改めお䞀぀ず぀具䜓的に远っおいくず、そのありがたみが身に染みたす 。 静的解析そのものは Swift に限らず様々な蚀語の゜ヌスコヌドに察しお適甚できるトピックではあるのですが、普段䜕気なく䜿っおしたう IDE の機胜に぀いお考えるよい機䌚になったため、玹介させおいただきたした。 たずめ ちょうど業務でも iOS アプリ開発を担圓しおいるこずもあり、興味深い知芋が埗られ、よい経隓ずなりたした。たた、事前録画圢匏になったこずで発衚の構成がよく緎られ、結果ずしお聞きやすく皆様かなり気を぀けおゆっくり発声されおいたした、個性のある発衚が倚かったように思いたす。 今回、初のオンラむンでの開催ずいうこずで、運営委員䌚の皆様もいろいろず苊劎されおいらっしゃるようでした。ただ、その甲斐あっおか圓日の進行はスムヌズで、䌚堎はずおも盛り䞊がっおいたした。関係者の皆様、本圓にお疲れ様でした。 情勢を螏たえ、来幎床の開催可吊・圢匏は未定ずのこずでしたが、オンラむン・察面のそれぞれの良さを取り入れ぀぀、より倚くの人が参加できる圢態になっおいるずよいなず思いたす。 公匏 YouTube チャンネル で過去の発衚を芖聎できたすので、ご興味のある方はぜひどうぞ今幎の発衚分も䞀ヶ月ほどしたら公開されるずのこずでした。 たたメドレヌでは iOS / Android ネむティブアプリ開発゚ンゞニアを募集しおいたす。興味がある方、ぜひお気軜にお話したしょう! www.medley.jp
皆様こんにちは。むンキュベヌション本郚゚ンゞニアの濱䞭です。 9/19〜21 に iOSDC Japan 2020 以䞋 iOSDCが開催されたした。 先日の蚘事 の通り、メドレヌは 2017 幎より iOSDC に 協賛 しおおりたす。 メドレヌでは、Swift を利甚しおオンラむン蚺療服薬指導アプリ「CLINICS」iOS 版の開発をしおいたす。 CLINICS(クリニクス) オンラむン蚺療・服薬指導アプリ 5 回目ずなる今回は、初のオンラむン開催ずなり、䞻にニコニコ生攟送、Discord 䞊で発衚・コミュニケヌションが行われたした。私が iOS 版 CLINICS の開発に携わっおいる瞁で、今回スポンサヌ枠ずしお iOSDC に参加させおいただきたしたので玹介させおいただきたす。 むベント党䜓に぀いお オンラむン開催ずなったため、䌚堎の様子や䌁業ブヌスなど、雰囲気の䌝わる写真をお届けできないのが残念ですが、発衚の䞻䌚堎ずなったニコニコ生攟送では、終始穏やかな雰囲気であり぀぀も掻発にコメントがなされ、倧いに盛り䞊がっおいたした。 前回同様、初日は day 0 ずしお倕方から、2 日目以降は朝〜倕方たで、最倧 5 ぀のチャンネルで䞊行しお発衚が行われたした。セッションに぀いおは事前に録画したものを攟送し、LT のみリモヌトにおリアルタむム発衚ずいう圢匏ずなっおいたした。 質疑応答に぀いおは、各発衚の終了盎埌に Discord チャンネルに発衚者が埅機しお察応しおいたした。初のオンラむン開催ずいうこずで、むントロダクション動画をはじめずし、各所で積極的なフィヌドバック・コミュニケヌションが奚励されおいたように思いたすなお、むントロダクション・スポンサヌ玹介の各動画はナレヌションが声優の緒方恵矎さん・䞉石琎乃さんず、ずおも豪華でした。生攟送䞭のコメントや、 18 幎の匊瀟ブログ を芋る限りは毎幎恒䟋のようですね。すごいです。 セッションに぀いお 昚幎 iOS13 ずずもに発衚された SwiftUI ぞの移行や、コヌド移行・モゞュヌル分割等、プロゞェクトの最適化に぀いおのトピックが倚かったように思いたす。 SwiftUI は、埓来 Storyboard で蚭蚈しおいた UI をコヌドベヌスで蚘述できる画期的なフレヌムワヌクですが、SwiftUI を䜿ったアプリは iOS13 未満の端末では利甚できなくなっおしたうこずもあり、アプリの公開察象を広めにもっおおきたい堎合はなかなか乗り換えづらい印象でした。2020 幎 6 月珟圚で iOS13 のシェアが 9 割以䞊ずなったこずで、ちょうど iOSDC での発衚トピックを決めるころに導入䜜業を行ったか぀苊劎したずいうケヌスが倚かったのかな、ず思いたす。 以䞋、芖聎したセッションのうち気になったものをいく぀かご玹介いたしたす。 オヌプン゜ヌスの AltSwiftUI の発衚 fortee.jp 楜倩の゚ンゞニアの方による、SwiftUI の提䟛するネむティブコンポヌネントに察応し぀぀、iOS11 以䞊で利甚可胜なオヌプン゜ヌスのフレヌムワヌク AltSwiftUI  公匏 Doc の開発に぀いおのセッションでした。 iOS12 以䞋の察応を切らずに SwiftUI ぞの乗り換えを進められるか぀本家ず違っおオヌプン゜ヌスである䟿利さもそうですが、別途フレヌムワヌクが出来䞊がっおしたうあたりに、SwiftUI ぞの移行察応ぞの苊劎がしのばれる内容でもありたしたストアにある楜倩提䟛の iOS アプリの数を考えるず乗り換えコストが倧倉そう 。 「それ、自動化できたすよ」: note を支えるワヌクフロヌ倧党 speakerdeck.com 改修芁望が䞊がっおから、実際に改修を行っおアプリをリリヌスするたでの䜜業をできる限り自動化した、ずいうセッションです。CLINICS でも、「蚌明曞の有効期限確認、プッシュからのテスト、マヌゞからのリリヌス準備」は Bitrise のトリガを利甚しお自動化しおいたす。 䞊蚘のような、GitHub 䞊でのアクションプッシュ、マヌゞなどをトリガずする自動化はよく聞く話ではあるのですが、Slack のポストに特定のスタンプ぀けるず Issue 化、はちょっず目新しくお面癜いなず思いたした気を぀けないず衚蚘揺れで同じような Issue が乱立しそうですが。 Issue もきちんず管理しおおかないずトラブルの起きやすい郚分ですよね。起祚者ず実装者の間でボヌルが浮いおしたったり、プロゞェクトに玐づいおいなかったために察応から掩れおしたったり 。 たた、このスラむドですが終始手曞きの挿絵がかわいくお、そういった意味でもコメント欄が盛り䞊がっおいたのが印象的でした。 100 人でアプリをリファクタリングしお芋えおきた、最匷の iOS アプリ蚭蚈に求められるこず fortee.jp アプリを長期に運甚しおいくずほが必須ずなる課題でありながら、人ごずに基準が曖昧だったり、機胜開発におされお察応が埌手埌手になったり ず、䜕かず぀らい話をよく聞く゜ヌスコヌドのリファクタリングに関するセッションでした。 同じ状態の゜ヌスコヌドを倚数の゚ンゞニアがリファクタした結果を比范するこずで、「良いリファクタリングのための考え方」ずは䜕かを暡玢した内容です。 ビュヌずロゞックの分割をしっかり行う、ずいうのは PR レビュヌで゚ンゞニアが口を酞っぱくしおよく蚀われるこずではありたすが、「ロゞックの䞭でも、アプリの仕様に䟝存するものずそうでない普遍的なものは分離すべき」ずいうアむデアは個人的には県から鱗が萜ちるものでした。 たた、これを説明するリバヌシの具䜓䟋「察戊盞手が人間か AI か」はアプリ仕様に䟝存するロゞック、「そこに石を眮けるか」は普遍的なロゞックリバヌシのルヌルそのものも非垞にわかりやすかったです。 そのほか、React / Redux でフロント゚ンド開発を行っおいる人にはお銎染みの Action / Reducer を䜿った単䞀方向のデヌタフロヌの導入なども玹介されおいたす。 新芏機胜開発からモゞュヌル分割を始めおみる speakerdeck.com 䞀぀のアプリが長期間運甚されおいくなかで、耇数の機胜が統合されたスヌパヌアプリになるこずがありたす。そうなった堎合、゜ヌスコヌドが肥倧化 → ビルド・テストも長倧化、ずなっおメンテナンス性が䜎䞋するため、察策ずしおコヌドを分割しおテストやビルドの単䜍を小さくする必芁がありたす。 いきなりアプリ党䜓をモゞュヌルに分割するのは時間がかかるため、本セッションではたず第䞀段階ずしお新芏に開発する機胜を別モゞュヌルずしお実装し、その時埗た知芋に぀いお觊れられおいたした。 「分割したモゞュヌル偎でのサヌドパヌティ補フレヌムワヌクのリンク方法※リンクを正しく行わないず、ビルドしお動䜜はするのにアヌカむブに倱敗しおリリヌスできなくなる」などは、今埌の開発にモゞュヌル分割を取り入れおいく際に参考になりそうです。 Swift で始める静的解析 speakerdeck.com Swift ゜ヌスコヌドからの構文朚の生成、解析を行うラむブラリ SwiftSyntax の玹介ず、それを甚いた゜ヌスコヌド重耇怜出機胜の実装に぀いおのセッションでした。 普段 Xcode を始めずした IDE で開発しおいるず、コヌド重耇、䞍芁なロヌカル倉数、型や Nullable の䞍䞀臎に倉数リファクタリング 等々の䟿利な機胜を気軜に䜿えおしたいたすが、その裏の動䜜を改めお䞀぀ず぀具䜓的に远っおいくず、そのありがたみが身に染みたす 。 静的解析そのものは Swift に限らず様々な蚀語の゜ヌスコヌドに察しお適甚できるトピックではあるのですが、普段䜕気なく䜿っおしたう IDE の機胜に぀いお考えるよい機䌚になったため、玹介させおいただきたした。 たずめ ちょうど業務でも iOS アプリ開発を担圓しおいるこずもあり、興味深い知芋が埗られ、よい経隓ずなりたした。たた、事前録画圢匏になったこずで発衚の構成がよく緎られ、結果ずしお聞きやすく皆様かなり気を぀けおゆっくり発声されおいたした、個性のある発衚が倚かったように思いたす。 今回、初のオンラむンでの開催ずいうこずで、運営委員䌚の皆様もいろいろず苊劎されおいらっしゃるようでした。ただ、その甲斐あっおか圓日の進行はスムヌズで、䌚堎はずおも盛り䞊がっおいたした。関係者の皆様、本圓にお疲れ様でした。 情勢を螏たえ、来幎床の開催可吊・圢匏は未定ずのこずでしたが、オンラむン・察面のそれぞれの良さを取り入れ぀぀、より倚くの人が参加できる圢態になっおいるずよいなず思いたす。 公匏 YouTube チャンネル で過去の発衚を芖聎できたすので、ご興味のある方はぜひどうぞ今幎の発衚分も䞀ヶ月ほどしたら公開されるずのこずでした。 たたメドレヌでは iOS / Android ネむティブアプリ開発゚ンゞニアを募集しおいたす。興味がある方、ぜひお気軜にお話したしょう! www.medley.jp
皆様こんにちは。むンキュベヌション本郚゚ンゞニアの濱䞭です。 9/19〜21 に iOSDC Japan 2020 以䞋 iOSDCが開催されたした。 先日の蚘事 の通り、メドレヌは 2017 幎より iOSDC に 協賛 しおおりたす。 メドレヌでは、Swift を利甚しおオンラむン蚺療服薬指導アプリ「CLINICS」iOS 版の開発をしおいたす。 CLINICS(クリニクス) オンラむン蚺療・服薬指導アプリ 5 回目ずなる今回は、初のオンラむン開催ずなり、䞻にニコニコ生攟送、Discord 䞊で発衚・コミュニケヌションが行われたした。私が iOS 版 CLINICS の開発に携わっおいる瞁で、今回スポンサヌ枠ずしお iOSDC に参加させおいただきたしたので玹介させおいただきたす。 むベント党䜓に぀いお オンラむン開催ずなったため、䌚堎の様子や䌁業ブヌスなど、雰囲気の䌝わる写真をお届けできないのが残念ですが、発衚の䞻䌚堎ずなったニコニコ生攟送では、終始穏やかな雰囲気であり぀぀も掻発にコメントがなされ、倧いに盛り䞊がっおいたした。 前回同様、初日は day 0 ずしお倕方から、2 日目以降は朝〜倕方たで、最倧 5 ぀のチャンネルで䞊行しお発衚が行われたした。セッションに぀いおは事前に録画したものを攟送し、LT のみリモヌトにおリアルタむム発衚ずいう圢匏ずなっおいたした。 質疑応答に぀いおは、各発衚の終了盎埌に Discord チャンネルに発衚者が埅機しお察応しおいたした。初のオンラむン開催ずいうこずで、むントロダクション動画をはじめずし、各所で積極的なフィヌドバック・コミュニケヌションが奚励されおいたように思いたすなお、むントロダクション・スポンサヌ玹介の各動画はナレヌションが声優の緒方恵矎さん・䞉石琎乃さんず、ずおも豪華でした。生攟送䞭のコメントや、 18 幎の匊瀟ブログ を芋る限りは毎幎恒䟋のようですね。すごいです。 セッションに぀いお 昚幎 iOS13 ずずもに発衚された SwiftUI ぞの移行や、コヌド移行・モゞュヌル分割等、プロゞェクトの最適化に぀いおのトピックが倚かったように思いたす。 SwiftUI は、埓来 Storyboard で蚭蚈しおいた UI をコヌドベヌスで蚘述できる画期的なフレヌムワヌクですが、SwiftUI を䜿ったアプリは iOS13 未満の端末では利甚できなくなっおしたうこずもあり、アプリの公開察象を広めにもっおおきたい堎合はなかなか乗り換えづらい印象でした。2020 幎 6 月珟圚で iOS13 のシェアが 9 割以䞊ずなったこずで、ちょうど iOSDC での発衚トピックを決めるころに導入䜜業を行ったか぀苊劎したずいうケヌスが倚かったのかな、ず思いたす。 以䞋、芖聎したセッションのうち気になったものをいく぀かご玹介いたしたす。 オヌプン゜ヌスの AltSwiftUI の発衚 fortee.jp 楜倩の゚ンゞニアの方による、SwiftUI の提䟛するネむティブコンポヌネントに察応し぀぀、iOS11 以䞊で利甚可胜なオヌプン゜ヌスのフレヌムワヌク AltSwiftUI  公匏 Doc の開発に぀いおのセッションでした。 iOS12 以䞋の察応を切らずに SwiftUI ぞの乗り換えを進められるか぀本家ず違っおオヌプン゜ヌスである䟿利さもそうですが、別途フレヌムワヌクが出来䞊がっおしたうあたりに、SwiftUI ぞの移行察応ぞの苊劎がしのばれる内容でもありたしたストアにある楜倩提䟛の iOS アプリの数を考えるず乗り換えコストが倧倉そう 。 「それ、自動化できたすよ」: note を支えるワヌクフロヌ倧党 speakerdeck.com 改修芁望が䞊がっおから、実際に改修を行っおアプリをリリヌスするたでの䜜業をできる限り自動化した、ずいうセッションです。CLINICS でも、「蚌明曞の有効期限確認、プッシュからのテスト、マヌゞからのリリヌス準備」は Bitrise のトリガを利甚しお自動化しおいたす。 䞊蚘のような、GitHub 䞊でのアクションプッシュ、マヌゞなどをトリガずする自動化はよく聞く話ではあるのですが、Slack のポストに特定のスタンプ぀けるず Issue 化、はちょっず目新しくお面癜いなず思いたした気を぀けないず衚蚘揺れで同じような Issue が乱立しそうですが。 Issue もきちんず管理しおおかないずトラブルの起きやすい郚分ですよね。起祚者ず実装者の間でボヌルが浮いおしたったり、プロゞェクトに玐づいおいなかったために察応から掩れおしたったり 。 たた、このスラむドですが終始手曞きの挿絵がかわいくお、そういった意味でもコメント欄が盛り䞊がっおいたのが印象的でした。 100 人でアプリをリファクタリングしお芋えおきた、最匷の iOS アプリ蚭蚈に求められるこず fortee.jp アプリを長期に運甚しおいくずほが必須ずなる課題でありながら、人ごずに基準が曖昧だったり、機胜開発におされお察応が埌手埌手になったり ず、䜕かず぀らい話をよく聞く゜ヌスコヌドのリファクタリングに関するセッションでした。 同じ状態の゜ヌスコヌドを倚数の゚ンゞニアがリファクタした結果を比范するこずで、「良いリファクタリングのための考え方」ずは䜕かを暡玢した内容です。 ビュヌずロゞックの分割をしっかり行う、ずいうのは PR レビュヌで゚ンゞニアが口を酞っぱくしおよく蚀われるこずではありたすが、「ロゞックの䞭でも、アプリの仕様に䟝存するものずそうでない普遍的なものは分離すべき」ずいうアむデアは個人的には県から鱗が萜ちるものでした。 たた、これを説明するリバヌシの具䜓䟋「察戊盞手が人間か AI か」はアプリ仕様に䟝存するロゞック、「そこに石を眮けるか」は普遍的なロゞックリバヌシのルヌルそのものも非垞にわかりやすかったです。 そのほか、React / Redux でフロント゚ンド開発を行っおいる人にはお銎染みの Action / Reducer を䜿った単䞀方向のデヌタフロヌの導入なども玹介されおいたす。 新芏機胜開発からモゞュヌル分割を始めおみる speakerdeck.com 䞀぀のアプリが長期間運甚されおいくなかで、耇数の機胜が統合されたスヌパヌアプリになるこずがありたす。そうなった堎合、゜ヌスコヌドが肥倧化 → ビルド・テストも長倧化、ずなっおメンテナンス性が䜎䞋するため、察策ずしおコヌドを分割しおテストやビルドの単䜍を小さくする必芁がありたす。 いきなりアプリ党䜓をモゞュヌルに分割するのは時間がかかるため、本セッションではたず第䞀段階ずしお新芏に開発する機胜を別モゞュヌルずしお実装し、その時埗た知芋に぀いお觊れられおいたした。 「分割したモゞュヌル偎でのサヌドパヌティ補フレヌムワヌクのリンク方法※リンクを正しく行わないず、ビルドしお動䜜はするのにアヌカむブに倱敗しおリリヌスできなくなる」などは、今埌の開発にモゞュヌル分割を取り入れおいく際に参考になりそうです。 Swift で始める静的解析 speakerdeck.com Swift ゜ヌスコヌドからの構文朚の生成、解析を行うラむブラリ SwiftSyntax の玹介ず、それを甚いた゜ヌスコヌド重耇怜出機胜の実装に぀いおのセッションでした。 普段 Xcode を始めずした IDE で開発しおいるず、コヌド重耇、䞍芁なロヌカル倉数、型や Nullable の䞍䞀臎に倉数リファクタリング 等々の䟿利な機胜を気軜に䜿えおしたいたすが、その裏の動䜜を改めお䞀぀ず぀具䜓的に远っおいくず、そのありがたみが身に染みたす 。 静的解析そのものは Swift に限らず様々な蚀語の゜ヌスコヌドに察しお適甚できるトピックではあるのですが、普段䜕気なく䜿っおしたう IDE の機胜に぀いお考えるよい機䌚になったため、玹介させおいただきたした。 たずめ ちょうど業務でも iOS アプリ開発を担圓しおいるこずもあり、興味深い知芋が埗られ、よい経隓ずなりたした。たた、事前録画圢匏になったこずで発衚の構成がよく緎られ、結果ずしお聞きやすく皆様かなり気を぀けおゆっくり発声されおいたした、個性のある発衚が倚かったように思いたす。 今回、初のオンラむンでの開催ずいうこずで、運営委員䌚の皆様もいろいろず苊劎されおいらっしゃるようでした。ただ、その甲斐あっおか圓日の進行はスムヌズで、䌚堎はずおも盛り䞊がっおいたした。関係者の皆様、本圓にお疲れ様でした。 情勢を螏たえ、来幎床の開催可吊・圢匏は未定ずのこずでしたが、オンラむン・察面のそれぞれの良さを取り入れ぀぀、より倚くの人が参加できる圢態になっおいるずよいなず思いたす。 公匏 YouTube チャンネル で過去の発衚を芖聎できたすので、ご興味のある方はぜひどうぞ今幎の発衚分も䞀ヶ月ほどしたら公開されるずのこずでした。 たたメドレヌでは iOS / Android ネむティブアプリ開発゚ンゞニアを募集しおいたす。興味がある方、ぜひお気軜にお話したしょう! www.medley.jp
皆様こんにちは。むンキュベヌション本郚゚ンゞニアの濱䞭です。 9/19〜21 に iOSDC Japan 2020 以䞋 iOSDCが開催されたした。 先日の蚘事 の通り、メドレヌは 2017 幎より iOSDC に 協賛 しおおりたす。 メドレヌでは、Swift を利甚しおオンラむン蚺療服薬指導アプリ「CLINICS」iOS 版の開発をしおいたす。 CLINICS(クリニクス) オンラむン蚺療・服薬指導アプリ 5 回目ずなる今回は、初のオンラむン開催ずなり、䞻にニコニコ生攟送、Discord 䞊で発衚・コミュニケヌションが行われたした。私が iOS 版 CLINICS の開発に携わっおいる瞁で、今回スポンサヌ枠ずしお iOSDC に参加させおいただきたしたので玹介させおいただきたす。 むベント党䜓に぀いお オンラむン開催ずなったため、䌚堎の様子や䌁業ブヌスなど、雰囲気の䌝わる写真をお届けできないのが残念ですが、発衚の䞻䌚堎ずなったニコニコ生攟送では、終始穏やかな雰囲気であり぀぀も掻発にコメントがなされ、倧いに盛り䞊がっおいたした。 前回同様、初日は day 0 ずしお倕方から、2 日目以降は朝〜倕方たで、最倧 5 ぀のチャンネルで䞊行しお発衚が行われたした。セッションに぀いおは事前に録画したものを攟送し、LT のみリモヌトにおリアルタむム発衚ずいう圢匏ずなっおいたした。 質疑応答に぀いおは、各発衚の終了盎埌に Discord チャンネルに発衚者が埅機しお察応しおいたした。初のオンラむン開催ずいうこずで、むントロダクション動画をはじめずし、各所で積極的なフィヌドバック・コミュニケヌションが奚励されおいたように思いたすなお、むントロダクション・スポンサヌ玹介の各動画はナレヌションが声優の緒方恵矎さん・䞉石琎乃さんず、ずおも豪華でした。生攟送䞭のコメントや、 18 幎の匊瀟ブログ を芋る限りは毎幎恒䟋のようですね。すごいです。 セッションに぀いお 昚幎 iOS13 ずずもに発衚された SwiftUI ぞの移行や、コヌド移行・モゞュヌル分割等、プロゞェクトの最適化に぀いおのトピックが倚かったように思いたす。 SwiftUI は、埓来 Storyboard で蚭蚈しおいた UI をコヌドベヌスで蚘述できる画期的なフレヌムワヌクですが、SwiftUI を䜿ったアプリは iOS13 未満の端末では利甚できなくなっおしたうこずもあり、アプリの公開察象を広めにもっおおきたい堎合はなかなか乗り換えづらい印象でした。2020 幎 6 月珟圚で iOS13 のシェアが 9 割以䞊ずなったこずで、ちょうど iOSDC での発衚トピックを決めるころに導入䜜業を行ったか぀苊劎したずいうケヌスが倚かったのかな、ず思いたす。 以䞋、芖聎したセッションのうち気になったものをいく぀かご玹介いたしたす。 オヌプン゜ヌスの AltSwiftUI の発衚 fortee.jp 楜倩の゚ンゞニアの方による、SwiftUI の提䟛するネむティブコンポヌネントに察応し぀぀、iOS11 以䞊で利甚可胜なオヌプン゜ヌスのフレヌムワヌク AltSwiftUI  公匏 Doc の開発に぀いおのセッションでした。 iOS12 以䞋の察応を切らずに SwiftUI ぞの乗り換えを進められるか぀本家ず違っおオヌプン゜ヌスである䟿利さもそうですが、別途フレヌムワヌクが出来䞊がっおしたうあたりに、SwiftUI ぞの移行察応ぞの苊劎がしのばれる内容でもありたしたストアにある楜倩提䟛の iOS アプリの数を考えるず乗り換えコストが倧倉そう 。 「それ、自動化できたすよ」: note を支えるワヌクフロヌ倧党 speakerdeck.com 改修芁望が䞊がっおから、実際に改修を行っおアプリをリリヌスするたでの䜜業をできる限り自動化した、ずいうセッションです。CLINICS でも、「蚌明曞の有効期限確認、プッシュからのテスト、マヌゞからのリリヌス準備」は Bitrise のトリガを利甚しお自動化しおいたす。 䞊蚘のような、GitHub 䞊でのアクションプッシュ、マヌゞなどをトリガずする自動化はよく聞く話ではあるのですが、Slack のポストに特定のスタンプ぀けるず Issue 化、はちょっず目新しくお面癜いなず思いたした気を぀けないず衚蚘揺れで同じような Issue が乱立しそうですが。 Issue もきちんず管理しおおかないずトラブルの起きやすい郚分ですよね。起祚者ず実装者の間でボヌルが浮いおしたったり、プロゞェクトに玐づいおいなかったために察応から掩れおしたったり 。 たた、このスラむドですが終始手曞きの挿絵がかわいくお、そういった意味でもコメント欄が盛り䞊がっおいたのが印象的でした。 100 人でアプリをリファクタリングしお芋えおきた、最匷の iOS アプリ蚭蚈に求められるこず fortee.jp アプリを長期に運甚しおいくずほが必須ずなる課題でありながら、人ごずに基準が曖昧だったり、機胜開発におされお察応が埌手埌手になったり ず、䜕かず぀らい話をよく聞く゜ヌスコヌドのリファクタリングに関するセッションでした。 同じ状態の゜ヌスコヌドを倚数の゚ンゞニアがリファクタした結果を比范するこずで、「良いリファクタリングのための考え方」ずは䜕かを暡玢した内容です。 ビュヌずロゞックの分割をしっかり行う、ずいうのは PR レビュヌで゚ンゞニアが口を酞っぱくしおよく蚀われるこずではありたすが、「ロゞックの䞭でも、アプリの仕様に䟝存するものずそうでない普遍的なものは分離すべき」ずいうアむデアは個人的には県から鱗が萜ちるものでした。 たた、これを説明するリバヌシの具䜓䟋「察戊盞手が人間か AI か」はアプリ仕様に䟝存するロゞック、「そこに石を眮けるか」は普遍的なロゞックリバヌシのルヌルそのものも非垞にわかりやすかったです。 そのほか、React / Redux でフロント゚ンド開発を行っおいる人にはお銎染みの Action / Reducer を䜿った単䞀方向のデヌタフロヌの導入なども玹介されおいたす。 新芏機胜開発からモゞュヌル分割を始めおみる speakerdeck.com 䞀぀のアプリが長期間運甚されおいくなかで、耇数の機胜が統合されたスヌパヌアプリになるこずがありたす。そうなった堎合、゜ヌスコヌドが肥倧化 → ビルド・テストも長倧化、ずなっおメンテナンス性が䜎䞋するため、察策ずしおコヌドを分割しおテストやビルドの単䜍を小さくする必芁がありたす。 いきなりアプリ党䜓をモゞュヌルに分割するのは時間がかかるため、本セッションではたず第䞀段階ずしお新芏に開発する機胜を別モゞュヌルずしお実装し、その時埗た知芋に぀いお觊れられおいたした。 「分割したモゞュヌル偎でのサヌドパヌティ補フレヌムワヌクのリンク方法※リンクを正しく行わないず、ビルドしお動䜜はするのにアヌカむブに倱敗しおリリヌスできなくなる」などは、今埌の開発にモゞュヌル分割を取り入れおいく際に参考になりそうです。 Swift で始める静的解析 speakerdeck.com Swift ゜ヌスコヌドからの構文朚の生成、解析を行うラむブラリ SwiftSyntax の玹介ず、それを甚いた゜ヌスコヌド重耇怜出機胜の実装に぀いおのセッションでした。 普段 Xcode を始めずした IDE で開発しおいるず、コヌド重耇、䞍芁なロヌカル倉数、型や Nullable の䞍䞀臎に倉数リファクタリング 等々の䟿利な機胜を気軜に䜿えおしたいたすが、その裏の動䜜を改めお䞀぀ず぀具䜓的に远っおいくず、そのありがたみが身に染みたす 。 静的解析そのものは Swift に限らず様々な蚀語の゜ヌスコヌドに察しお適甚できるトピックではあるのですが、普段䜕気なく䜿っおしたう IDE の機胜に぀いお考えるよい機䌚になったため、玹介させおいただきたした。 たずめ ちょうど業務でも iOS アプリ開発を担圓しおいるこずもあり、興味深い知芋が埗られ、よい経隓ずなりたした。たた、事前録画圢匏になったこずで発衚の構成がよく緎られ、結果ずしお聞きやすく皆様かなり気を぀けおゆっくり発声されおいたした、個性のある発衚が倚かったように思いたす。 今回、初のオンラむンでの開催ずいうこずで、運営委員䌚の皆様もいろいろず苊劎されおいらっしゃるようでした。ただ、その甲斐あっおか圓日の進行はスムヌズで、䌚堎はずおも盛り䞊がっおいたした。関係者の皆様、本圓にお疲れ様でした。 情勢を螏たえ、来幎床の開催可吊・圢匏は未定ずのこずでしたが、オンラむン・察面のそれぞれの良さを取り入れ぀぀、より倚くの人が参加できる圢態になっおいるずよいなず思いたす。 公匏 YouTube チャンネル で過去の発衚を芖聎できたすので、ご興味のある方はぜひどうぞ今幎の発衚分も䞀ヶ月ほどしたら公開されるずのこずでした。 たたメドレヌでは iOS / Android ネむティブアプリ開発゚ンゞニアを募集しおいたす。興味がある方、ぜひお気軜にお話したしょう! www.medley.jp
皆様こんにちは。むンキュベヌション本郚゚ンゞニアの濱䞭です。 9/19〜21 に iOSDC Japan 2020 以䞋 iOSDCが開催されたした。 先日の蚘事 の通り、メドレヌは 2017 幎より iOSDC に 協賛 しおおりたす。 メドレヌでは、Swift を利甚しおオンラむン蚺療服薬指導アプリ「CLINICS」iOS 版の開発をしおいたす。 CLINICS(クリニクス) オンラむン蚺療・服薬指導アプリ 5 回目ずなる今回は、初のオンラむン開催ずなり、䞻にニコニコ生攟送、Discord 䞊で発衚・コミュニケヌションが行われたした。私が iOS 版 CLINICS の開発に携わっおいる瞁で、今回スポンサヌ枠ずしお iOSDC に参加させおいただきたしたので玹介させおいただきたす。 むベント党䜓に぀いお オンラむン開催ずなったため、䌚堎の様子や䌁業ブヌスなど、雰囲気の䌝わる写真をお届けできないのが残念ですが、発衚の䞻䌚堎ずなったニコニコ生攟送では、終始穏やかな雰囲気であり぀぀も掻発にコメントがなされ、倧いに盛り䞊がっおいたした。 前回同様、初日は day 0 ずしお倕方から、2 日目以降は朝〜倕方たで、最倧 5 ぀のチャンネルで䞊行しお発衚が行われたした。セッションに぀いおは事前に録画したものを攟送し、LT のみリモヌトにおリアルタむム発衚ずいう圢匏ずなっおいたした。 質疑応答に぀いおは、各発衚の終了盎埌に Discord チャンネルに発衚者が埅機しお察応しおいたした。初のオンラむン開催ずいうこずで、むントロダクション動画をはじめずし、各所で積極的なフィヌドバック・コミュニケヌションが奚励されおいたように思いたすなお、むントロダクション・スポンサヌ玹介の各動画はナレヌションが声優の緒方恵矎さん・䞉石琎乃さんず、ずおも豪華でした。生攟送䞭のコメントや、 18 幎の匊瀟ブログ を芋る限りは毎幎恒䟋のようですね。すごいです。 セッションに぀いお 昚幎 iOS13 ずずもに発衚された SwiftUI ぞの移行や、コヌド移行・モゞュヌル分割等、プロゞェクトの最適化に぀いおのトピックが倚かったように思いたす。 SwiftUI は、埓来 Storyboard で蚭蚈しおいた UI をコヌドベヌスで蚘述できる画期的なフレヌムワヌクですが、SwiftUI を䜿ったアプリは iOS13 未満の端末では利甚できなくなっおしたうこずもあり、アプリの公開察象を広めにもっおおきたい堎合はなかなか乗り換えづらい印象でした。2020 幎 6 月珟圚で iOS13 のシェアが 9 割以䞊ずなったこずで、ちょうど iOSDC での発衚トピックを決めるころに導入䜜業を行ったか぀苊劎したずいうケヌスが倚かったのかな、ず思いたす。 以䞋、芖聎したセッションのうち気になったものをいく぀かご玹介いたしたす。 オヌプン゜ヌスの AltSwiftUI の発衚 fortee.jp 楜倩の゚ンゞニアの方による、SwiftUI の提䟛するネむティブコンポヌネントに察応し぀぀、iOS11 以䞊で利甚可胜なオヌプン゜ヌスのフレヌムワヌク AltSwiftUI  公匏 Doc の開発に぀いおのセッションでした。 iOS12 以䞋の察応を切らずに SwiftUI ぞの乗り換えを進められるか぀本家ず違っおオヌプン゜ヌスである䟿利さもそうですが、別途フレヌムワヌクが出来䞊がっおしたうあたりに、SwiftUI ぞの移行察応ぞの苊劎がしのばれる内容でもありたしたストアにある楜倩提䟛の iOS アプリの数を考えるず乗り換えコストが倧倉そう 。 「それ、自動化できたすよ」: note を支えるワヌクフロヌ倧党 speakerdeck.com 改修芁望が䞊がっおから、実際に改修を行っおアプリをリリヌスするたでの䜜業をできる限り自動化した、ずいうセッションです。CLINICS でも、「蚌明曞の有効期限確認、プッシュからのテスト、マヌゞからのリリヌス準備」は Bitrise のトリガを利甚しお自動化しおいたす。 䞊蚘のような、GitHub 䞊でのアクションプッシュ、マヌゞなどをトリガずする自動化はよく聞く話ではあるのですが、Slack のポストに特定のスタンプ぀けるず Issue 化、はちょっず目新しくお面癜いなず思いたした気を぀けないず衚蚘揺れで同じような Issue が乱立しそうですが。 Issue もきちんず管理しおおかないずトラブルの起きやすい郚分ですよね。起祚者ず実装者の間でボヌルが浮いおしたったり、プロゞェクトに玐づいおいなかったために察応から掩れおしたったり 。 たた、このスラむドですが終始手曞きの挿絵がかわいくお、そういった意味でもコメント欄が盛り䞊がっおいたのが印象的でした。 100 人でアプリをリファクタリングしお芋えおきた、最匷の iOS アプリ蚭蚈に求められるこず fortee.jp アプリを長期に運甚しおいくずほが必須ずなる課題でありながら、人ごずに基準が曖昧だったり、機胜開発におされお察応が埌手埌手になったり ず、䜕かず぀らい話をよく聞く゜ヌスコヌドのリファクタリングに関するセッションでした。 同じ状態の゜ヌスコヌドを倚数の゚ンゞニアがリファクタした結果を比范するこずで、「良いリファクタリングのための考え方」ずは䜕かを暡玢した内容です。 ビュヌずロゞックの分割をしっかり行う、ずいうのは PR レビュヌで゚ンゞニアが口を酞っぱくしおよく蚀われるこずではありたすが、「ロゞックの䞭でも、アプリの仕様に䟝存するものずそうでない普遍的なものは分離すべき」ずいうアむデアは個人的には県から鱗が萜ちるものでした。 たた、これを説明するリバヌシの具䜓䟋「察戊盞手が人間か AI か」はアプリ仕様に䟝存するロゞック、「そこに石を眮けるか」は普遍的なロゞックリバヌシのルヌルそのものも非垞にわかりやすかったです。 そのほか、React / Redux でフロント゚ンド開発を行っおいる人にはお銎染みの Action / Reducer を䜿った単䞀方向のデヌタフロヌの導入なども玹介されおいたす。 新芏機胜開発からモゞュヌル分割を始めおみる speakerdeck.com 䞀぀のアプリが長期間運甚されおいくなかで、耇数の機胜が統合されたスヌパヌアプリになるこずがありたす。そうなった堎合、゜ヌスコヌドが肥倧化 → ビルド・テストも長倧化、ずなっおメンテナンス性が䜎䞋するため、察策ずしおコヌドを分割しおテストやビルドの単䜍を小さくする必芁がありたす。 いきなりアプリ党䜓をモゞュヌルに分割するのは時間がかかるため、本セッションではたず第䞀段階ずしお新芏に開発する機胜を別モゞュヌルずしお実装し、その時埗た知芋に぀いお觊れられおいたした。 「分割したモゞュヌル偎でのサヌドパヌティ補フレヌムワヌクのリンク方法※リンクを正しく行わないず、ビルドしお動䜜はするのにアヌカむブに倱敗しおリリヌスできなくなる」などは、今埌の開発にモゞュヌル分割を取り入れおいく際に参考になりそうです。 Swift で始める静的解析 speakerdeck.com Swift ゜ヌスコヌドからの構文朚の生成、解析を行うラむブラリ SwiftSyntax の玹介ず、それを甚いた゜ヌスコヌド重耇怜出機胜の実装に぀いおのセッションでした。 普段 Xcode を始めずした IDE で開発しおいるず、コヌド重耇、䞍芁なロヌカル倉数、型や Nullable の䞍䞀臎に倉数リファクタリング 等々の䟿利な機胜を気軜に䜿えおしたいたすが、その裏の動䜜を改めお䞀぀ず぀具䜓的に远っおいくず、そのありがたみが身に染みたす 。 静的解析そのものは Swift に限らず様々な蚀語の゜ヌスコヌドに察しお適甚できるトピックではあるのですが、普段䜕気なく䜿っおしたう IDE の機胜に぀いお考えるよい機䌚になったため、玹介させおいただきたした。 たずめ ちょうど業務でも iOS アプリ開発を担圓しおいるこずもあり、興味深い知芋が埗られ、よい経隓ずなりたした。たた、事前録画圢匏になったこずで発衚の構成がよく緎られ、結果ずしお聞きやすく皆様かなり気を぀けおゆっくり発声されおいたした、個性のある発衚が倚かったように思いたす。 今回、初のオンラむンでの開催ずいうこずで、運営委員䌚の皆様もいろいろず苊劎されおいらっしゃるようでした。ただ、その甲斐あっおか圓日の進行はスムヌズで、䌚堎はずおも盛り䞊がっおいたした。関係者の皆様、本圓にお疲れ様でした。 情勢を螏たえ、来幎床の開催可吊・圢匏は未定ずのこずでしたが、オンラむン・察面のそれぞれの良さを取り入れ぀぀、より倚くの人が参加できる圢態になっおいるずよいなず思いたす。 公匏 YouTube チャンネル で過去の発衚を芖聎できたすので、ご興味のある方はぜひどうぞ今幎の発衚分も䞀ヶ月ほどしたら公開されるずのこずでした。 たたメドレヌでは iOS / Android ネむティブアプリ開発゚ンゞニアを募集しおいたす。興味がある方、ぜひお気軜にお話したしょう! www.medley.jp
皆様こんにちは。むンキュベヌション本郚゚ンゞニアの濱䞭です。 9/19〜21 に iOSDC Japan 2020 以䞋 iOSDCが開催されたした。 先日の蚘事 の通り、メドレヌは 2017 幎より iOSDC に 協賛 しおおりたす。 メドレヌでは、Swift を利甚しおオンラむン蚺療服薬指導アプリ「CLINICS」iOS 版の開発をしおいたす。 CLINICS(クリニクス) オンラむン蚺療・服薬指導アプリ 5 回目ずなる今回は、初のオンラむン開催ずなり、䞻にニコニコ生攟送、Discord 䞊で発衚・コミュニケヌションが行われたした。私が iOS 版 CLINICS の開発に携わっおいる瞁で、今回スポンサヌ枠ずしお iOSDC に参加させおいただきたしたので玹介させおいただきたす。 むベント党䜓に぀いお オンラむン開催ずなったため、䌚堎の様子や䌁業ブヌスなど、雰囲気の䌝わる写真をお届けできないのが残念ですが、発衚の䞻䌚堎ずなったニコニコ生攟送では、終始穏やかな雰囲気であり぀぀も掻発にコメントがなされ、倧いに盛り䞊がっおいたした。 前回同様、初日は day 0 ずしお倕方から、2 日目以降は朝〜倕方たで、最倧 5 ぀のチャンネルで䞊行しお発衚が行われたした。セッションに぀いおは事前に録画したものを攟送し、LT のみリモヌトにおリアルタむム発衚ずいう圢匏ずなっおいたした。 質疑応答に぀いおは、各発衚の終了盎埌に Discord チャンネルに発衚者が埅機しお察応しおいたした。初のオンラむン開催ずいうこずで、むントロダクション動画をはじめずし、各所で積極的なフィヌドバック・コミュニケヌションが奚励されおいたように思いたすなお、むントロダクション・スポンサヌ玹介の各動画はナレヌションが声優の緒方恵矎さん・䞉石琎乃さんず、ずおも豪華でした。生攟送䞭のコメントや、 18 幎の匊瀟ブログ を芋る限りは毎幎恒䟋のようですね。すごいです。 セッションに぀いお 昚幎 iOS13 ずずもに発衚された SwiftUI ぞの移行や、コヌド移行・モゞュヌル分割等、プロゞェクトの最適化に぀いおのトピックが倚かったように思いたす。 SwiftUI は、埓来 Storyboard で蚭蚈しおいた UI をコヌドベヌスで蚘述できる画期的なフレヌムワヌクですが、SwiftUI を䜿ったアプリは iOS13 未満の端末では利甚できなくなっおしたうこずもあり、アプリの公開察象を広めにもっおおきたい堎合はなかなか乗り換えづらい印象でした。2020 幎 6 月珟圚で iOS13 のシェアが 9 割以䞊ずなったこずで、ちょうど iOSDC での発衚トピックを決めるころに導入䜜業を行ったか぀苊劎したずいうケヌスが倚かったのかな、ず思いたす。 以䞋、芖聎したセッションのうち気になったものをいく぀かご玹介いたしたす。 オヌプン゜ヌスの AltSwiftUI の発衚 fortee.jp 楜倩の゚ンゞニアの方による、SwiftUI の提䟛するネむティブコンポヌネントに察応し぀぀、iOS11 以䞊で利甚可胜なオヌプン゜ヌスのフレヌムワヌク AltSwiftUI  公匏 Doc の開発に぀いおのセッションでした。 iOS12 以䞋の察応を切らずに SwiftUI ぞの乗り換えを進められるか぀本家ず違っおオヌプン゜ヌスである䟿利さもそうですが、別途フレヌムワヌクが出来䞊がっおしたうあたりに、SwiftUI ぞの移行察応ぞの苊劎がしのばれる内容でもありたしたストアにある楜倩提䟛の iOS アプリの数を考えるず乗り換えコストが倧倉そう 。 「それ、自動化できたすよ」: note を支えるワヌクフロヌ倧党 speakerdeck.com 改修芁望が䞊がっおから、実際に改修を行っおアプリをリリヌスするたでの䜜業をできる限り自動化した、ずいうセッションです。CLINICS でも、「蚌明曞の有効期限確認、プッシュからのテスト、マヌゞからのリリヌス準備」は Bitrise のトリガを利甚しお自動化しおいたす。 䞊蚘のような、GitHub 䞊でのアクションプッシュ、マヌゞなどをトリガずする自動化はよく聞く話ではあるのですが、Slack のポストに特定のスタンプ぀けるず Issue 化、はちょっず目新しくお面癜いなず思いたした気を぀けないず衚蚘揺れで同じような Issue が乱立しそうですが。 Issue もきちんず管理しおおかないずトラブルの起きやすい郚分ですよね。起祚者ず実装者の間でボヌルが浮いおしたったり、プロゞェクトに玐づいおいなかったために察応から掩れおしたったり 。 たた、このスラむドですが終始手曞きの挿絵がかわいくお、そういった意味でもコメント欄が盛り䞊がっおいたのが印象的でした。 100 人でアプリをリファクタリングしお芋えおきた、最匷の iOS アプリ蚭蚈に求められるこず fortee.jp アプリを長期に運甚しおいくずほが必須ずなる課題でありながら、人ごずに基準が曖昧だったり、機胜開発におされお察応が埌手埌手になったり ず、䜕かず぀らい話をよく聞く゜ヌスコヌドのリファクタリングに関するセッションでした。 同じ状態の゜ヌスコヌドを倚数の゚ンゞニアがリファクタした結果を比范するこずで、「良いリファクタリングのための考え方」ずは䜕かを暡玢した内容です。 ビュヌずロゞックの分割をしっかり行う、ずいうのは PR レビュヌで゚ンゞニアが口を酞っぱくしおよく蚀われるこずではありたすが、「ロゞックの䞭でも、アプリの仕様に䟝存するものずそうでない普遍的なものは分離すべき」ずいうアむデアは個人的には県から鱗が萜ちるものでした。 たた、これを説明するリバヌシの具䜓䟋「察戊盞手が人間か AI か」はアプリ仕様に䟝存するロゞック、「そこに石を眮けるか」は普遍的なロゞックリバヌシのルヌルそのものも非垞にわかりやすかったです。 そのほか、React / Redux でフロント゚ンド開発を行っおいる人にはお銎染みの Action / Reducer を䜿った単䞀方向のデヌタフロヌの導入なども玹介されおいたす。 新芏機胜開発からモゞュヌル分割を始めおみる speakerdeck.com 䞀぀のアプリが長期間運甚されおいくなかで、耇数の機胜が統合されたスヌパヌアプリになるこずがありたす。そうなった堎合、゜ヌスコヌドが肥倧化 → ビルド・テストも長倧化、ずなっおメンテナンス性が䜎䞋するため、察策ずしおコヌドを分割しおテストやビルドの単䜍を小さくする必芁がありたす。 いきなりアプリ党䜓をモゞュヌルに分割するのは時間がかかるため、本セッションではたず第䞀段階ずしお新芏に開発する機胜を別モゞュヌルずしお実装し、その時埗た知芋に぀いお觊れられおいたした。 「分割したモゞュヌル偎でのサヌドパヌティ補フレヌムワヌクのリンク方法※リンクを正しく行わないず、ビルドしお動䜜はするのにアヌカむブに倱敗しおリリヌスできなくなる」などは、今埌の開発にモゞュヌル分割を取り入れおいく際に参考になりそうです。 Swift で始める静的解析 speakerdeck.com Swift ゜ヌスコヌドからの構文朚の生成、解析を行うラむブラリ SwiftSyntax の玹介ず、それを甚いた゜ヌスコヌド重耇怜出機胜の実装に぀いおのセッションでした。 普段 Xcode を始めずした IDE で開発しおいるず、コヌド重耇、䞍芁なロヌカル倉数、型や Nullable の䞍䞀臎に倉数リファクタリング 等々の䟿利な機胜を気軜に䜿えおしたいたすが、その裏の動䜜を改めお䞀぀ず぀具䜓的に远っおいくず、そのありがたみが身に染みたす 。 静的解析そのものは Swift に限らず様々な蚀語の゜ヌスコヌドに察しお適甚できるトピックではあるのですが、普段䜕気なく䜿っおしたう IDE の機胜に぀いお考えるよい機䌚になったため、玹介させおいただきたした。 たずめ ちょうど業務でも iOS アプリ開発を担圓しおいるこずもあり、興味深い知芋が埗られ、よい経隓ずなりたした。たた、事前録画圢匏になったこずで発衚の構成がよく緎られ、結果ずしお聞きやすく皆様かなり気を぀けおゆっくり発声されおいたした、個性のある発衚が倚かったように思いたす。 今回、初のオンラむンでの開催ずいうこずで、運営委員䌚の皆様もいろいろず苊劎されおいらっしゃるようでした。ただ、その甲斐あっおか圓日の進行はスムヌズで、䌚堎はずおも盛り䞊がっおいたした。関係者の皆様、本圓にお疲れ様でした。 情勢を螏たえ、来幎床の開催可吊・圢匏は未定ずのこずでしたが、オンラむン・察面のそれぞれの良さを取り入れ぀぀、より倚くの人が参加できる圢態になっおいるずよいなず思いたす。 公匏 YouTube チャンネル で過去の発衚を芖聎できたすので、ご興味のある方はぜひどうぞ今幎の発衚分も䞀ヶ月ほどしたら公開されるずのこずでした。 たたメドレヌでは iOS / Android ネむティブアプリ開発゚ンゞニアを募集しおいたす。興味がある方、ぜひお気軜にお話したしょう! www.medley.jp
皆様こんにちは。むンキュベヌション本郚゚ンゞニアの濱䞭です。 9/19〜21 に iOSDC Japan 2020 以䞋 iOSDCが開催されたした。 先日の蚘事 の通り、メドレヌは 2017 幎より iOSDC に 協賛 しおおりたす。 メドレヌでは、Swift を利甚しおオンラむン蚺療服薬指導アプリ「CLINICS」iOS 版の開発をしおいたす。 CLINICS(クリニクス) オンラむン蚺療・服薬指導アプリ 5 回目ずなる今回は、初のオンラむン開催ずなり、䞻にニコニコ生攟送、Discord 䞊で発衚・コミュニケヌションが行われたした。私が iOS 版 CLINICS の開発に携わっおいる瞁で、今回スポンサヌ枠ずしお iOSDC に参加させおいただきたしたので玹介させおいただきたす。 むベント党䜓に぀いお オンラむン開催ずなったため、䌚堎の様子や䌁業ブヌスなど、雰囲気の䌝わる写真をお届けできないのが残念ですが、発衚の䞻䌚堎ずなったニコニコ生攟送では、終始穏やかな雰囲気であり぀぀も掻発にコメントがなされ、倧いに盛り䞊がっおいたした。 前回同様、初日は day 0 ずしお倕方から、2 日目以降は朝〜倕方たで、最倧 5 ぀のチャンネルで䞊行しお発衚が行われたした。セッションに぀いおは事前に録画したものを攟送し、LT のみリモヌトにおリアルタむム発衚ずいう圢匏ずなっおいたした。 質疑応答に぀いおは、各発衚の終了盎埌に Discord チャンネルに発衚者が埅機しお察応しおいたした。初のオンラむン開催ずいうこずで、むントロダクション動画をはじめずし、各所で積極的なフィヌドバック・コミュニケヌションが奚励されおいたように思いたすなお、むントロダクション・スポンサヌ玹介の各動画はナレヌションが声優の緒方恵矎さん・䞉石琎乃さんず、ずおも豪華でした。生攟送䞭のコメントや、 18 幎の匊瀟ブログ を芋る限りは毎幎恒䟋のようですね。すごいです。 セッションに぀いお 昚幎 iOS13 ずずもに発衚された SwiftUI ぞの移行や、コヌド移行・モゞュヌル分割等、プロゞェクトの最適化に぀いおのトピックが倚かったように思いたす。 SwiftUI は、埓来 Storyboard で蚭蚈しおいた UI をコヌドベヌスで蚘述できる画期的なフレヌムワヌクですが、SwiftUI を䜿ったアプリは iOS13 未満の端末では利甚できなくなっおしたうこずもあり、アプリの公開察象を広めにもっおおきたい堎合はなかなか乗り換えづらい印象でした。2020 幎 6 月珟圚で iOS13 のシェアが 9 割以䞊ずなったこずで、ちょうど iOSDC での発衚トピックを決めるころに導入䜜業を行ったか぀苊劎したずいうケヌスが倚かったのかな、ず思いたす。 以䞋、芖聎したセッションのうち気になったものをいく぀かご玹介いたしたす。 オヌプン゜ヌスの AltSwiftUI の発衚 fortee.jp 楜倩の゚ンゞニアの方による、SwiftUI の提䟛するネむティブコンポヌネントに察応し぀぀、iOS11 以䞊で利甚可胜なオヌプン゜ヌスのフレヌムワヌク AltSwiftUI  公匏 Doc の開発に぀いおのセッションでした。 iOS12 以䞋の察応を切らずに SwiftUI ぞの乗り換えを進められるか぀本家ず違っおオヌプン゜ヌスである䟿利さもそうですが、別途フレヌムワヌクが出来䞊がっおしたうあたりに、SwiftUI ぞの移行察応ぞの苊劎がしのばれる内容でもありたしたストアにある楜倩提䟛の iOS アプリの数を考えるず乗り換えコストが倧倉そう 。 「それ、自動化できたすよ」: note を支えるワヌクフロヌ倧党 speakerdeck.com 改修芁望が䞊がっおから、実際に改修を行っおアプリをリリヌスするたでの䜜業をできる限り自動化した、ずいうセッションです。CLINICS でも、「蚌明曞の有効期限確認、プッシュからのテスト、マヌゞからのリリヌス準備」は Bitrise のトリガを利甚しお自動化しおいたす。 䞊蚘のような、GitHub 䞊でのアクションプッシュ、マヌゞなどをトリガずする自動化はよく聞く話ではあるのですが、Slack のポストに特定のスタンプ぀けるず Issue 化、はちょっず目新しくお面癜いなず思いたした気を぀けないず衚蚘揺れで同じような Issue が乱立しそうですが。 Issue もきちんず管理しおおかないずトラブルの起きやすい郚分ですよね。起祚者ず実装者の間でボヌルが浮いおしたったり、プロゞェクトに玐づいおいなかったために察応から掩れおしたったり 。 たた、このスラむドですが終始手曞きの挿絵がかわいくお、そういった意味でもコメント欄が盛り䞊がっおいたのが印象的でした。 100 人でアプリをリファクタリングしお芋えおきた、最匷の iOS アプリ蚭蚈に求められるこず fortee.jp アプリを長期に運甚しおいくずほが必須ずなる課題でありながら、人ごずに基準が曖昧だったり、機胜開発におされお察応が埌手埌手になったり ず、䜕かず぀らい話をよく聞く゜ヌスコヌドのリファクタリングに関するセッションでした。 同じ状態の゜ヌスコヌドを倚数の゚ンゞニアがリファクタした結果を比范するこずで、「良いリファクタリングのための考え方」ずは䜕かを暡玢した内容です。 ビュヌずロゞックの分割をしっかり行う、ずいうのは PR レビュヌで゚ンゞニアが口を酞っぱくしおよく蚀われるこずではありたすが、「ロゞックの䞭でも、アプリの仕様に䟝存するものずそうでない普遍的なものは分離すべき」ずいうアむデアは個人的には県から鱗が萜ちるものでした。 たた、これを説明するリバヌシの具䜓䟋「察戊盞手が人間か AI か」はアプリ仕様に䟝存するロゞック、「そこに石を眮けるか」は普遍的なロゞックリバヌシのルヌルそのものも非垞にわかりやすかったです。 そのほか、React / Redux でフロント゚ンド開発を行っおいる人にはお銎染みの Action / Reducer を䜿った単䞀方向のデヌタフロヌの導入なども玹介されおいたす。 新芏機胜開発からモゞュヌル分割を始めおみる speakerdeck.com 䞀぀のアプリが長期間運甚されおいくなかで、耇数の機胜が統合されたスヌパヌアプリになるこずがありたす。そうなった堎合、゜ヌスコヌドが肥倧化 → ビルド・テストも長倧化、ずなっおメンテナンス性が䜎䞋するため、察策ずしおコヌドを分割しおテストやビルドの単䜍を小さくする必芁がありたす。 いきなりアプリ党䜓をモゞュヌルに分割するのは時間がかかるため、本セッションではたず第䞀段階ずしお新芏に開発する機胜を別モゞュヌルずしお実装し、その時埗た知芋に぀いお觊れられおいたした。 「分割したモゞュヌル偎でのサヌドパヌティ補フレヌムワヌクのリンク方法※リンクを正しく行わないず、ビルドしお動䜜はするのにアヌカむブに倱敗しおリリヌスできなくなる」などは、今埌の開発にモゞュヌル分割を取り入れおいく際に参考になりそうです。 Swift で始める静的解析 speakerdeck.com Swift ゜ヌスコヌドからの構文朚の生成、解析を行うラむブラリ SwiftSyntax の玹介ず、それを甚いた゜ヌスコヌド重耇怜出機胜の実装に぀いおのセッションでした。 普段 Xcode を始めずした IDE で開発しおいるず、コヌド重耇、䞍芁なロヌカル倉数、型や Nullable の䞍䞀臎に倉数リファクタリング 等々の䟿利な機胜を気軜に䜿えおしたいたすが、その裏の動䜜を改めお䞀぀ず぀具䜓的に远っおいくず、そのありがたみが身に染みたす 。 静的解析そのものは Swift に限らず様々な蚀語の゜ヌスコヌドに察しお適甚できるトピックではあるのですが、普段䜕気なく䜿っおしたう IDE の機胜に぀いお考えるよい機䌚になったため、玹介させおいただきたした。 たずめ ちょうど業務でも iOS アプリ開発を担圓しおいるこずもあり、興味深い知芋が埗られ、よい経隓ずなりたした。たた、事前録画圢匏になったこずで発衚の構成がよく緎られ、結果ずしお聞きやすく皆様かなり気を぀けおゆっくり発声されおいたした、個性のある発衚が倚かったように思いたす。 今回、初のオンラむンでの開催ずいうこずで、運営委員䌚の皆様もいろいろず苊劎されおいらっしゃるようでした。ただ、その甲斐あっおか圓日の進行はスムヌズで、䌚堎はずおも盛り䞊がっおいたした。関係者の皆様、本圓にお疲れ様でした。 情勢を螏たえ、来幎床の開催可吊・圢匏は未定ずのこずでしたが、オンラむン・察面のそれぞれの良さを取り入れ぀぀、より倚くの人が参加できる圢態になっおいるずよいなず思いたす。 公匏 YouTube チャンネル で過去の発衚を芖聎できたすので、ご興味のある方はぜひどうぞ今幎の発衚分も䞀ヶ月ほどしたら公開されるずのこずでした。 たたメドレヌでは iOS / Android ネむティブアプリ開発゚ンゞニアを募集しおいたす。興味がある方、ぜひお気軜にお話したしょう! www.medley.jp