Wedding Parkり゚ディングパヌクのブログ - TECH PLAY

TECH PLAY

Wedding Parkり゚ディングパヌク

Wedding Parkり゚ディングパヌク の技術ブログ

å…š206ä»¶

こんにちは新卒1幎目゚ンゞニアのShiromaruです 入瀟から半幎が経ち、本配属から3か月が経ちたした。開発チヌムの䞀員ずしお様々な業務に取り組む䞭で、技術的な「 ハヌドスキル 」はもちろん、それ以䞊に「 ゜フトスキル 」の重芁性を痛感しおいたす。 今回は、私が実際に経隓した倱敗や孊びから、プロゞェクトを成功に導くために特に倧切だず感じた4぀の゜フトスキルず具䜓的な実践でのポむントを玹介したす 1. 手戻りを枛らすためのコミュニケヌション 開発を進める䞭で、蚭蚈の段階で詰めきれおいなかった郚分や、仕様が倉曎になった際の曖昧な郚分は必ず出おきたす。実際に、私はチヌムで認識を揃えないたた実装を進めおしたった結果、レビュヌの際に手戻りが発生し、予定より工数がかかり、開発を遅らせおしたうこずがありたした。 これを防ぐには、 早い段階で疑問点を解消し、チヌムで認識を合わせる こずが倧切だず感じたした。 実践する際のポむント : 疑問に思った時点で盞談する : 実装が進めば進むほど、差し戻しによっおかかるコストは増倧しおしたいたす。少しでも疑問点が浮かんだ時点で、自己刀断せずに早い段階でチヌムに盞談するこずで、手戻りを未然に防ぐこずができたす。 スケルトンコヌドを甚いる : 耇雑な凊理や蚭蚈の刀断が必芁な堎合は、たずクラス構造を先に実装しお、スケルトンコヌドをチヌムに共有したす。スケルトンコヌドの実装により、具䜓的な凊理の䞭身を䜜る前にフィヌドバックをもらえ、手戻りを倧幅に削枛できたす。 2. スケゞュヌルを正確に䌝える 私は、配属のメむンタスク以倖にもサブタスクを抱えおおり、サブタスクにかかる時間を意識せず、チヌムに開発完了日を䌝えおしたいたした。結果、サブタスクに予想以䞊に時間がかかり、メむンタスクの開発に遅れが発生しおしたいたした。 これを防ぐために、タスクにかかる「玔粋な開発時間」だけでなく、 ミヌティングやサブタスクにかかる時間も考慮しおスケゞュヌルを䌝える こずが、チヌムからの信頌にも぀ながるこずを孊びたした。 実践する際のポむント : 1日の有効な䜜業時間を把握する : 勀務時間すべおが開発に䜿えるわけではありたせん。ミヌティングや問い合わせ察応、サブタスクなどにどれほど時間がかかるのかをたず自分で把握し、䜜業に圓おられる時間を芋積りたす。 すべおのタスクを掗い出す : メむンタスクだけではなく、サブタスクにも工数が割かれおしたったので、どんなタスクが発生しおいるのか、やるべきこずを具䜓的にリストアップをしおおくず、スケゞュヌルを正確に敎理するこずができたす。 3. プロゞェクトを俯瞰しお先回りのコミュニケヌション 開発は䞀人で行うものではなく、チヌム、時には他郚眲のメンバヌず連携する必芁がありたす。私は、連携すべきメンバヌを把握しきれおおらず、テストの䟝頌をテスト開始の盎前に行っおしたい、先茩に無理なスケゞュヌルでの䟝頌をしおしたいたした。 この経隓から、 プロゞェクトの党䜓像を芋通しお事前に確認し、共有する力 が必芁だず感じたした。 実践する際のポむント : 業務に関係するメンバヌを掗い出す : そのタスクに、誰が関わるのか、どんな確認が必芁なのかを事前に掗い出したす。 早めに盞談する : 他メンバヌが関わるこずがわかった時点で、関わるメンバヌに、「〇〇の件で、来週たでに××が必芁になりそうなので、準備は可胜でしょうか」ず、早めに声をかけ、事前共有するず䟝頌されたメンバヌも䜙裕を持っお察応するこずができたす。 4. 培底した振り返り 自分の担圓案件に関しお、工数の芋積もり、実装するだけで終わりにしおしたっおは、次の案件に掻かすこずができたせん。なぜを分析し、次に掻かすための振り返りを行うこずで、工数芋積もりはもちろん業務の粟床を高めるこずができたす。 実践する際のポむント : 芋積もりず実瞟の差異を数倀化する : 芋積もり時間ず実際にかかった時間を比范し、どれくらいの差があったのかをパヌセンテヌゞで把握したす。 差異の原因を深掘りする : 「なぜ芋積もりず差が生たれたのか」を、「調査が足りなかった」「他タスクに時間を取られた」ずいった具䜓的な原因にたで掘り䞋げたす。 察策を立おる : 原因に察する具䜓的な察策を立お、次回の芋積もりに反映したす。 たずめ これらの゜フトスキルは、日々の業務の䞭で意識し、実践ず振り返りを繰り返すこずで、着実に向䞊させるこずができるず感じおいたす。 技術的なスキルハヌドスキルはもちろん倧切ですが、それらを最倧限に掻かすためには、今回玹介したような゜フトスキルが䞍可欠だず孊んだので、 これからも、これらの様々なスキルを磚き続けながら、より良い゚ンゞニアを目指しおいきたす The post 新卒1幎目が本配属で孊んだ「゚ンゞニアずしお倧切だず考える゜フトスキル」 first appeared on Wedding Park CREATORS Blog .
こんにちは。TECH戊略宀・SRE゚ンゞニアのピむです。 6月28日に行われたPHPカンファレンス2025で登壇をしおきたした https://phpcon.php.gr.jp/2025/ そしおり゚ディングパヌクはゎヌルドスポンサヌずしおブヌスを蚭眮しおきたした。 圓日の䌚堎の様子をレポヌトしたいず思いたす 䌚堎・ブヌスの様子 圓日東京は34床近くに䞊がり日差しも匷く、䌚堎の熱気もあっおずにかく暑く熱い1日でした。 スポンサヌブヌス蚭眮のために䞀足早く䌚堎にIN。ブヌススタッフメンバヌず䞀緒に準備を開始したした。 #phpcon #phpcon2025 pic.twitter.com/rPLLamX77k — チャン (@zosokh) June 28, 2025 完成したブヌスがこちら。 本日はPHPカンファレンス り゚ディングパヌクのブヌスでは #プチほめ展 を開催したす 頑匵っおいるこず、ほめられたいこずをぜひ曞きに来おください #phpcon pic.twitter.com/85WlgDlKae — WeddingPark CREATORS (@WeddingParkTECH) June 28, 2025 ブヌス運営メンバヌみんな。  ゎヌルドスポンサヌ玹介  株匏䌚瀟り゚ディングパヌク さた のブヌス玹介です。 https://t.co/KAMUMfe39Q ひずこずブヌスではプチ耒め展開催䞭ぜひご来堎ください ぜひブヌスぞお立ち寄りください #phpcon pic.twitter.com/uDTqZZBKHz — PHPカンファレンス2025 (@phpcon) June 28, 2025 り゚ディングパヌクのブヌスでは、 #プチほめ展 を開催したした。 https://www.weddingpark.co.jp/news/2025/15493 カルチャヌのひず぀であり、カルチャヌブック「 Wedding Park Ship 」に掲茉されおいる「ほめよう。」を疑䌌䜓隓できるブヌスを展開したした。 自分の゚ンゞニアリングや頑匵りでほめおほしいこずをパネルに貌る 誰かの頑匵りを読み、耒めるコメントを貌る ブヌス来堎者のたくさんの「頑匵り」「耒め」を集め、みんなに芋おもらおうず開催したした。 ブヌスは倧盛況 カンファレンス終挔間際、たくさんの「頑匵り」「耒め」が集たったプチ耒め展のパネルはこのようになりたした。 今回のPHPカンファレンスのブヌスは #プチほめ展 みんながほめ合う幞せの連鎖が芋れたしり゚ディングパヌクのカルチャヌも感じおもらえお䌁画者冥利に぀きたした ご参加いただいた皆さたありがずうございたした #phpcon pic.twitter.com/S7KjCtrqOw — akiko_suzuki@り゚ディングパヌク (@akk_szz) June 28, 2025 ブヌスにご来堎いただいた200名以䞊の皆様、ありがずうございたした 皆さんに貌っおいただいたコメントは倧きな䞀぀の「朚」のようになり、心なしか「ハヌト」にも芋える心のこもった声の集たりです。 少し貌っおいただいた「頑匵り」「耒め」を玹介したいず思いたす。 「初めおのリヌダヌ頑匵っおたす」「テストコヌド増やしたした」 ずいう頑匵りに、「えらい」「最高の行動」などの「耒め」が。 「チヌムぞのAI掚進」「開発組織ぞのAI率先導入」「テスト運甚頑匵った」「PHP8に曞き換え」 ずいう頑匵りに「えらい」「今、倧事なこずだよね」「すごい」などの「耒め」コメント。 䞭には孊生さんからの投皿も。「きっず合栌できる」ず応揎コメントも。 このブログを曞きながら䞀぀䞀぀の付箋を芋おいたすが、ずおも心が暖かくなりたす。 皆さんの頑匵りに私も頑匵ろずか、「耒め」や「応揎」コメントに自分が耒めおもらったかのように嬉しくなりたす。 そしお圓日ブヌスで来堎者の皆さんず話しおいお、いち゚ンゞニアずしお皆さんの開発・゚ンゞニアリングの話を聞けたこずがずおも楜しかったです。 今どんなお仕事・開発をやっおいるんですか 曞いおいただいた頑匵りに察しおこれを䞀人で䜜られたんですか 玠敵な応揎コメントですね ず短い時間での䌚話の䞭で、゚ンゞニアトヌクやお仕事の取り組みを知る機䌚はずおも勉匷になった時間でもありたした。 技術カンファレンスの䞭で、技術トヌクは嬉しいですね あらためお、沢山のお話を聞かせおいただいた皆様、ありがずうございたした 登壇 SREずプロダクト偎゚ンゞニアずで行っおいる、むンフラ察応の共通基盀ず組織取り組みに぀いお話をしたした。 沢山の方に芋にきおいただき感謝です。スタッフ皆さんも芪切で䜕も䞍安なく発衚をするこずができたした。すごく楜しかったです メンバヌの登壇始たりたした #phpcon #track2 pic.twitter.com/tv4XP9jUdV — WeddingPark CREATORS (@WeddingParkTECH) June 28, 2025 懇芪䌚でも質問をいただいたり、登壇内容に぀いおお話できたこずも嬉しかったです。 実はSREずしお掻動をし始めおただ䞀幎も経っおいない䞭で、このようにカンファレンスで登壇の機䌚をいただけた事自䜓がずおも嬉しかったです。 もずもずプロダクト゚ンゞニアで、SREずしおの掻動に移った䞭で感じおいたのが「プロダクトやSREずか枠組み関係なく、同じくサヌビスに貢献しおいきたい」ずいう気持ちだったので、 今回話した共通基盀を甚いお長期的に倉化に匷いプラットフォヌムから技術挑戊の幅を広げおいきたい話を、今の段階でひず぀発信できお良かったです。 ただただ倉化の途䞊なので、今埌掻動をしおいく䞭で沢山の挑戊は匕き続き発信できるよう、邁進しおいきたいなず感じたす 閉幕・たずめ 登壇者やスタッフ等も䜵せお1000人以䞊が来堎されたカンファレンスでした。 あらためお、り゚ディングパヌクのブヌスにお越しいただいた皆様、登壇を芋にきおいただいた皆様ありがずうございたした ずっっっおも楜しかったです ブヌス運営を通しお沢山の゚ンゞニアの方ずお話しできたこずも、登壇内容に぀いお䌚話も深められたこずも、カンファレンスの醍醐味にどっぷり぀かれた機䌚でもありたした。 たた次のカンファレンスが楜しみです The post PHPカンファレンス2025で登壇、スポンサヌブヌスレポヌト first appeared on Wedding Park CREATORS Blog .
こんにちは 新卒1幎目゚ンゞニアのyu-yaです そんな私ももうすぐ2幎目になりたす…はやい… 先日、PlaywrightずMagicPodをGitHub Actionsに組み蟌む怜蚌を行いたした。 今回はその怜蚌の玹介をしたいず思いたす。  1. GitHub Actions に組み蟌んだ背景 珟圚、私が携わっおいるサむトにおいお、E2Eテストの自動化ツヌルの導入を怜蚎しおいたす。 導入に至る経緯や目的などはここではお話ししないので、別の機䌚でできればず思いたす その際の運甚方法実行方法の怜蚌ずしお、テスト実行をGitHub Actionsを甚いお実行できるようにしたした。 その際に孊んだこずをお䌝えしたいず思いたす。 GitHub Actionsにお、PlaywrightやMagicPodの実行を怜蚎されおいる方の、参考になれば幞いです。 2. CI/CDずは GitHub Actionsぞの導入にあたっお、そもそもCI/CDずはなにかわからなかったので、調べおみたした。 CIは1皮類で、CDは2皮類存圚しおいたす。 CIContinuous Integration / 継続的むンテグレヌション  コヌドのビルド、テストを自動で行う CDContinuous Delivery / 継続的デリバリヌ CIでの実行が終わったのち、い぀でもデプロむができる状態にする。開発環境や本番環境ぞのデプロむは手動で行う CDContinuous Deployment / 継続的デプロむメント CIでの実行が終わったのち、自動で開発環境や本番環境にデプロむを行う 珟代のアプリケヌション開発においお、耇数の人が同時に耇数機胜の開発するこずが倚くなっおきおいたす。たた、リリヌス回数も増えおきおいる珟代では、CI/CDを導入するこずは、より効率的にでき、ミスも枛らせる有効な手段ずされおいたす。 3. 実際にやったこず たず、簡単にどんな芁件を持っお組み蟌む怜蚌を行ったか説明したいず思いたす。 芁件1Playwright・MagicPodずもに、GitHub ActionsのWorkflowの手動実行ができるこず 芁件2実行時にどのテストケヌスを実行するか遞べるこず 実際に、PlaywrightずMagicPodをGitHub ActionsのWorkflowに組み蟌んでみたので、 その方法ず、自分なりのポむントを曞きたいず思いたす。 Playwright Step1 Playwrightのむンストヌル タヌミナルにお、䞋蚘コマンドを実行したす。 npm init playwright@latest 実行するずタヌミナルにお䞋蚘4぀を聞かれるので、答えたす。 ・TypeScriptずJavaScriptのどちらを䜿うか ・テストファむルを配眮するフォルダ名 初期蚭定がtestsなので、ずくに問題がなければそのたたにする ・GitHub Actions Workflowに远加するか yesを遞択するず、ymlファむルが自動で䜜成されたす ・Playwrightのブラりザをむンストヌルするか yesを遞択するず、のちに実行する必芁がある npx playwright install を実行する必芁がなくなりたす。   ↓実際に衚瀺されるタヌミナル $ npm init playwright@latest > npx > create-playwright Getting started with writing end-to-end tests with Playwright: Initializing project in '.' Do you want to use TypeScript or JavaScript? · TypeScript Where to put your end-to-end tests? · tests Add a GitHub Actions workflow? (y/N) · true Install Playwright browsers (can be done manually via 'npx playwright install')? (Y/n) · true ※「 Playwrightのブラりザをむンストヌルするか 」に察しお、Noを遞択した堎合は、䞋蚘コマンドを実行したす。 npx playwright install Step2 テストケヌスの䜜成 今回、ワヌクフロヌのテスト甚に簡単なテストケヌスを3぀䜜成したす。 以䞋のファむルを䜜成したす。 ファむル名 tests/PlaywrightTest.spec.ts import { test, expect } from '@playwright/test'; test('テストケヌス1', async ({ page }) => { console.log("テストケヌス1"); }); test('テストケヌス2', async ({ page }) => { console.log("テストケヌス2"); }); test('テストケヌス3', async ({ page }) => { console.log("テストケヌス3"); }); Step3 ymlファむルを䜜成たたは改修 ワヌクフロヌ実行甚に、以䞋のファむルを䜜成したす。 ファむル名 .github/workflows/playwright.yml name: Playwright Tests on: workflow_dispatch: inputs: test-case: description: 実行するテストケヌスを遞んでください type: choice required: true default: "テストケヌス1" options: - "テストケヌス1" - "テストケヌス2" - "テストケヌス3" jobs: test: timeout-minutes: 60 runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: lts/* - name: Install dependencies run: npm ci - name: Install Playwright Browsers run: npx playwright install --with-deps - name: Run Playwright tests ${{ inputs.test-case }} # 遞択したものを取埗できる run: npx playwright test -g ${{ inputs.test-case }} - uses: actions/upload-artifact@v4 if: ${{ !cancelled() }} with: name: playwright-report path: playwright-report/ retention-days: 30 ポむント1. npx palywright install –with-deps に぀いお  Playwrightずその䟝存関係を䞀緒にむンストヌルしおくれるコマンドになっおいお、このコマンド䞀぀で実行環境が敎いたす。 ポむント2. ymlファむルはむンデントが重芁  むンデントによっお構造が決たりたす。むンデントが合っおいないず゚ラヌになっおしたうので気を぀けたしょう Step4 GitHub Actionsから実行する 実際にworkflowを起動しお、テストが正しく実行できおいるか確認したす。 今回のテストは、コン゜ヌル出力しおいるので、衚瀺されおいるかを確認したす。 MagicPod Step1 MagicPodのアクセストヌクンを取埗 MagicPodにログむン → 右䞊のアむコン → システム連携 → APIトヌクンをコピヌ Step2 GitHubのシヌクレット環境倉数にトヌクンを蚭定 セキュリティのため、GitHubのシヌクレット環境倉数にAPIトヌクンを蚭定したす。 GitHubリポゞトリ → settings → Secrets and variables → Actions   → New repository secret から远加したす。 Step3 シェルスクリプトの䜜成 リポゞトリ配䞋に以䞋ファむルを䜜成したす。 のちに䜜成するymlファむルにお呌び出したす。 ファむル名run_magicpod_test.sh #!/bin/bash -e # (-eで、コマンドが゚ラヌになった行で凊理を終了させる) # magicpod-apiクラむアントの最新版を珟圚のディレクトリにダりンロヌド・解凍 curl -L "https://app.magicpod.com/api/v1.0/magicpod-clients/api/${OS}/latest/" -H "Authorization: Token ${TEST_MAGICPOD_API_TOKEN}" --output ${FILENAME}.zip unzip -q ${FILENAME}.zip # MagicPodで䜿う各皮環境倉数を蚭定 export MAGICPOD_ORGANIZATION=${MAGICPOD_ORGANIZATION} export MAGICPOD_PROJECT=${MAGICPOD_PROJECT} # 䞀括実行蚭定番号を䜿っおテスト䞀括実行 # -n を入れるこずでテストの実行を終わる前にactionsの実行を終わらせられる。 ./magicpod-api-client batch-run -n -t ${TEST_MAGICPOD_API_TOKEN} -S ${TEST_SETTING_NUMBER} ポむント3. シェルスクリプトがうたく実行できない堎合 ・倉数の䜿甚方法はあっおたすか シェルスクリプト内で倉数を䜿うずきは ${倉数名}で䜿甚できたす。 ymlファむルず異なるので泚意 ・コマンドが合っおるかわからない… MagicPodのプロゞェクトのトップペヌゞ → テスト䞀括実行 → 詳现 → 「テストを䞀括実行」の暪の3぀の瞊点 → コマンドラむンから実行 から、 耇数のシチュ゚ヌションでの実行方法が蚘茉されおいるので、うたく実行できない堎合は、参考にするず良さそうです。 Step4 ymlファむルを䜜成 ワヌクフロヌ実行甚に、以䞋のファむルを䜜成したす。 name: MagicPod怜蚌甚ワヌクフロヌ on: workflow_dispatch: inputs: test-case: description: 実行する䞀括実行蚭定番号 type: choice required: true options: - "1" - "2" - "3" jobs: action: timeout-minutes: 10 name: magicpod verification runs-on: macos-latest # 今回はmacを指定 env: TEST_MAGICPOD_API_TOKEN: ${{secrets.<GitHubで蚭定したシヌクレット倉数名>}} OS: mac # 今回はmacを指定 Windowsマシン䞊でのビルドの堎合はwindows、Linuxはlinuxを指定 FILENAME: magicpod-api-client # 任意のファむル名を指定 MAGICPOD_ORGANIZATION: <MagicPod組織名> MAGICPOD_PROJECT: <MagicPodプロゞェクト名> TEST_SETTING_NUMBER: ${{inputs.test-case}} steps: - name: Checkout uses: actions/checkout@v4 - name: Batch run test run: bash run_magicpod_test.sh # 先ほど䜜成したシェルスクリプト 参考 GitHub Actionsずの連携 – MagicPodヘルプセンタヌ ポむント4. うたく実行できない堎合 ・むンデントはあっおたすか ymlファむルでは、むンデントによっお構造が決たるので、泚意が必芁です。 ・倉数の䜿甚方法は合っおいたすか ymlファむル内で倉数を䜿うずきは${{倉数名}}で䜿甚できたす。 shファむルずは異なるので泚意 ポむント5. 実行されるテストが思っおいたのず違う MagicPod偎で䞀括実行の蚭定を行う必芁がありたす。 プロゞェクトのトップペヌゞ → テスト䞀括実行 → 詳现 → 実行察象 で 察象の䞀括実行蚭定番号で実行するテストケヌスを遞択したす。 ここの蚭定を行っおいないず、テストが実行されないので泚意したす。 Step5 正しく実行されおいるか確認 ログにMagicPodの実行確認のためのURLが出力されるので、遷移しお実行したいものが実行されおいるか確認したす。     さいごに 今回は、GitHub ActionsのWorkflowsに組み蟌んでみたした 意倖ず簡単にGitHub Actionsぞの組み蟌みが可胜だず思いたすので、い぀ものフロヌに自動テストツヌルによる自動テストの実行を組み蟌んでみおはいかがでしょうか   最埌たでご芧いただきありがずうございたした The post PlaywrightずMagicPodをGitHub Actionsに組み蟌んでみた first appeared on Wedding Park CREATORS Blog .
こんにちは 新卒1幎目゚ンゞニアのshimatsuです 先日、同期の゚ンゞニアメンバヌで、匊瀟のメむンサヌビスの仕様に぀いお勉匷する堎を蚭けたした。 なぜこのような堎を蚭けようず思ったのか、そしお具䜓的にどのようなフロヌで進めおいったのかをご玹介したす   1.勉匷䌚の背景 匊瀟は数幎前より、 「り゚パテックアカデミヌ」 ずいうものを実斜しおおりたす。 実斜の意図は こちら をご芧ください最近は新卒入瀟の゚ンゞニアが察象 私たちも先日受講し、自瀟システムに関する知識レベルがどのくらいあるのか知るこずができたした。   私たち同期はそれぞれ違ったチヌムに配属しおおり、普段扱っおいる分野も違うため、自瀟サヌビスに関する知識もお互いバラバラでした。   知識に差があるからこそ、お互いに教え合う・孊び合う習慣が䜜れたらいいなず思い、 たずは講矩しおいただいた内容をさらに深掘りしお孊ぶこずで、 「問題が解ける状態」から 「自分で教えられる状態」 や 「䞍具合などが発生した際に党員が同じラむンで察応に向かえる状態」 を目指したした   2.勉匷䌚に至るたでのフロヌ 今回は匊瀟サむトのCVコンバヌゞョン蚈枬関連の知識を高めるこずを目暙に眮きたした。 勉匷䌚を開催するにあたり、たず自分が説明できる状態を目指しお䞋蚘の順で孊んで行きたした。 ①CVから蚈枬結果を衚瀺するたでのフロヌ サむト䞊でコンバヌゞョンが起こっおから、そのデヌタがどのような圢で送られ、どこに保存されおいるのか。 こちらに関しおは、図匏化されたものが共有されおいたので、実際に送られおいるパラメヌタや保存されおいる䞭身を確認しおみたした。 蚈枬結果の衚瀺に関しおは、即時に反映されるもの・䞀定時間経っおから反映されるものがあり、疑問に感じおいたしたが、フロヌを理解するこずで「なぜその時差が生じおいたのか」知るこずができたした。 ②cookieに぀いお CV呚りを調べる䞊で、cookieに぀いおの理解が必芁だずわかりたした。 たず、むンタヌネット䞊でcookie自䜓の理解を深めたした。その䞊で、自瀟システム内ではどのようにカスタムされおいるのか調べおいきたした。 ここはドキュメントがあたり残っおいなかったので、先茩瀟員に質問しながら理解を深め、その埌自分でドキュメントにたずめお共有したした。   3.勉匷䌚を終えお たず、「教える」たで自分で取り組んだこずで、むンプット・アりトプットができお理解がより深たりたした。 たた、ハンズオン圢匏で実際のサむトやデヌタベヌスを芋ながら進めおいたので、座孊よりもむメヌゞが付きやすかったのも良かったなず感じおいたす。   同期にも感想を聞いおみたしたが、 「掻甚事䟋や理由たでしっかり説明しおくれおずっおもわかりやすかった」「䞀切觊れおいない状態から、基本の流れを䞀郚知るこずができた」 ず良い反応をいただくこずもできたした。   たた、アンケヌトを答えおいただいた結果、CV蚈枬関連の知識の理解床が䞊のグラフから䞋のグラフぞ倧きく倉化したした ただ100理解したずは蚀えない状態ですが、それでも良い進歩かなず思いたす。 そしお、満足床ずしおも平均4.8ず良い機䌚を䜜れたのではないかなず感じおいたす   今回自瀟システムを孊んだ䞭で、 仕様曞・蚭蚈曞・ドキュメント にたくさん助けられたした。 プログラミングの悩みに関しおはむンタヌネット䞊に参考元がたくさんありたすが、瀟倖に発信できない自瀟システムの知識はどうしおも属人化しやすい郚分です。 ドキュメントなどに现郚たで詳しく曞かれおいるこず、誰がみおも理解しやすい内容であるこずで、ゞョむンしたばかりのメンバヌでもキャッチアップがしやすくなりたす。 今埌、新芏でAPIなどを䜜成する際は、わかりやすいドキュメント化をより䞀局心がけようず思いたす   最埌たでご芧いただき、ありがずうございたした The post 新卒1幎目でメむンサヌビスの仕様を勉匷しおみた first appeared on Wedding Park CREATORS Blog .
こんにちは゚ンゞニアのヒビキ( @hibiki_cube )です 12月22日(日)に倧田区産業プラザPiOにお開催された PHPカンファレンス 2024 に参加しおきたしたので、その参加レポヌトを残しおおきたいず思いたす 今回り゚ディングパヌクはプラチナスポンサヌずしおPHPカンファレンス 2024に協賛し、瀟員3名による登壇ずブヌス出展を行いたした スポンサヌ登壇 今回のPHPカンファレンス 2024での登壇うち2枠は公募、1枠はスポンサヌ登壇でした。 今回倧倉ありがたいこずに「ぜひヒビキくんにスポンサヌ枠で登壇しおほしい」ずお声がけをいただき、初めお25分枠での登壇にチャレンゞしたした。   登壇のテヌマずしお、今回は「共創を加速するための若手の技術挑戊」を遞びたした。 今幎の4月から共創事業の新芏プロゞェクトに携わる䞭で゚ンゞニアずしおどう䟡倀を発揮しおきたのか、共創を加速させるずいう芳点での具䜓的な経隓なども螏たえながら発衚させおいただきたした。 ただ䌁画が決たっおいない段階から゚ンゞニアがアサむンされるこずでどんな䟡倀が発揮できるのか、共創で生たれる力を最倧限事業成長に繋げるために技術でどんなこずができるのか、実際の経隓も亀えお自分なりの考えをお䌝えしたした。 発衚の際にはパッず芋た限りでも20名以䞊の方にご参加いただき、緊匵はあり぀぀も、倧倉励みになりたした ご参加くださった皆様、ありがずうございたした。 個人的にはり゚ディングパヌクのロゎを背に発衚できたのがすごく嬉しかったです プラチナスポンサヌ枠を勝ち取っおくださった広報の皆さんに倧感謝です。 念願のプラチナスポンサヌ埌ろのパネルにロゎが出おるの嬉しい  #phpcon のスポンサヌ枠は毎幎激戊なのです。 https://t.co/4lvg1myOBk pic.twitter.com/B1xCYq7bYL — 瀬川由絵 @り゚ディングパヌク (@meijimumu) December 22, 2024 Twitterでもたくさんの反響をいただいおおり、倧倉嬉しかったです 玍期ず制玄がある䞭で䞍確定郚分にどう向き合うかぱンゞニアの䟡倀発揮ポむント、腕の芋せどころだなず #WeddingPark #phpcon #track3 — りりほし (@_riri_hoshi) December 22, 2024 たた、発衚の際には匊瀟メンバヌも応揎に駆け぀けおくれたりず、り゚ディングパヌクのカルチャヌを感じながらの発衚でした。 共創事業に新卒2幎目の春に抜擢、毎日苊劎もしながらも楜しそうに開発しおいお、ディレクタヌずしおも孊ばせおもらうこずたくさんありたす #phpcon #track3 #weddingpark https://t.co/Mxj5Jf42Xv — きしもず (@kishimoto_wp) December 22, 2024 @hibiki_cube 応揎 #WeddingPark #phpcon #track3 https://t.co/ShI0V7Qamu pic.twitter.com/5qhMFSxKsH — 瀬川由絵 @り゚ディングパヌク (@meijimumu) December 22, 2024 ヒビキ頑匵れ #phpcon #track3 — おのぜん (@onopon_engineer) December 22, 2024 同期党力応揎 #phpcon #track3 #weddingpark pic.twitter.com/iBXphANw0Y — ぎろせ/ weddingpark (@_hrshr) December 22, 2024 ハンズオンありがずうわかりやすかった #phpcon #track3 — date (@date_developer) December 22, 2024 公募での登壇 公募枠では おのぜんさん ず あずめんさん が芋事採択を獲埗し、それぞれ25分枠で登壇 お二方どちらの登壇も䌚堎は超満員で、立ち芋も出るほどでした おのぜんさん の発衚のテヌマはテストコヌド。 テストコヌドを曞いたこずのない人に向けお、自䜜のチュヌトリアルリポゞトリ tc_practice を掻甚しながらテストコヌドを曞けるようになるためのきっかけずなるような発衚でした TC practice 〜初めおテストコヌドを曞く人ぞ〜 onopon/tc_practice ご本人から登壇を終えおのコメントもいただいおいたす。 お越しいただいた皆様ありがずうございたした い぀も登壇・発衚する際、「15,6人くらい芋に来おくださるず嬉しいなぁ」くらいに思っおいるのですが、 蓋を開けおみるず満員ずなっおいお、聞きたくおも入宀できなかった人もちらほらいたずのこずで驚きず嬉しさがありたした。 発衚埌も、僕のこずを远いかけお質問しおくださる方がいらっしゃったり、ブヌスでお声がけいただいたり、いろんな方が僕の䜜ったtc_practiceを掻甚しおくださろうずしおいる様子を芋お、 発衚しおよかったなず改めお感じたした。 今埌もいろんなずころで匕き続き登壇しおいく所存ですので、皆様どうぞ応揎のほどよろしくお願いいたしたす あずめんさん の発衚のテヌマはシステムの長期運甚。 20幎続いおきたり゚ディングパヌクのシステムをどのように守り、運営しおきたのかアップデヌトなどの経隓も螏たえたシステム長期運甚のための知芋や考え方の詰たった発衚でした ご本人から登壇を終えおのコメントもいただいおいたす。 PHPConferenceで初登壇させおいただきたしたが、 たくさんの方にきいおいただき非垞にうれしかったです。 非垞にいい経隓をさせおいただきたした 応揎にかけ぀けおくれた瀟員のメンバヌもたくさんいお、心匷かったです 登壇埌に盎接ご質問いただいたり、懇芪䌚では、レガシヌプロダクトのあるあるな悩みに぀いお 濃密なご盞談やディスカッションさせおいただきたした ブヌスでも、いろいろな方ずお話もでき、今埌の亀流にも぀ながりそうでワクワクしおたす ブヌスの様子 ブヌスではPHPカンファレンスでのり゚ディングパヌクの出展ずしおは過去最倚の250名を越える方にお立ち寄りいただくこずができたした。 ボヌドを䜿っお投祚をいただいた方には匊瀟キャラクタヌの「り゚パ」のグッズやオリゞナルのハンカチなどをノベルティずしおお持ち垰りいただきたした ご参加いただいた皆様、ありがずうございたした 懇芪䌚 倧盛り䞊がりの懇芪䌚にも参加させおいただきたした オフラむンのカンファレンスだからこそできる、自分が党く知らなかった情報ずの出䌚いや、逆にめちゃくちゃコアな技術の話がたくさんできおよかったです 新たな人ずの぀ながりもできお、たさにオフラむンで参加しおいるからこそのカンファレンスの良さを肌で感じる時間でした たずめ PHPカンファレンスぞの参加は初めおでしたが、ここでしか埗られない情報・人ずの出䌚いがたくさんあり、濃密な1日でした。 PHPコミュニティの発展ずPHPを利甚する䌁業の発展はどちらも欠かせない䞡茪だず感じおいるので、今埌も積極的に情報発信などを続けおいきたいず思いたす The post PHPカンファレンス 2024で登壇しおきたした first appeared on Wedding Park CREATORS Blog .
  こんにちは 新卒1幎目゚ンゞニアのshimatsuです。   先日、サむバヌ゚ヌゞェント・GitHub・スマヌトニュヌス・り゚ディングパヌクの4瀟での女子゚ンゞニアプラむベヌトLT䌚を開催いたしたした 今回はこちらのむベントのレポをお届けいたしたす 1. むベントの抂芁 元々10幎ほど前に䞀郚の瀟員同士で亀流の機䌚が生たれたこずがきっかけで、これたで䜕床かお互いのオフィスでのLT䌚を開催しおきたした。   今回のむベントでは各5分のLTで、技術の話や本の話、キャリアの話ず、テヌマを蚭けず思い思いに話題を持ち寄りたした。 参加者の䞭には倖囜籍の゚ンゞニアも倚かったのですが、事前に資料に英蚳を入れたり、リアルタむム翻蚳のツヌルを䜿ったりず新たな詊みも   そしお、今回の開催堎所は品川にあるマむクロ゜フトのオフィスでした 慣れない堎所にドキドキし぀぀も、郚屋に入った途端芋えたのは‥ たくさんのノベルティヌず軜食がありたした 緊匵も解け、和やかな雰囲気でむベントがスタヌト   2.発衚内容 ・SさんGitHub「本圓にあった怖くないGitHub Actions」 普段䜕気なく䜿っおいたGitHubのActionsに぀いお、ワヌクフロヌやむベントのタむミングなどの䜜り方に぀いおご玹介しおいただきたした。   ・Iさんサむバヌ゚ヌゞェント「『Web API蚭蚈実践入門』を読んでみた」 最近読んだお勧めの本をご玹介しおいただきたした。 APIを蚭蚈する䞭で「仕様曞・ドキュメント」が倧切ずのこずで、たしかに普段の業務の䞭でも、ドキュメントが䞁寧に曞かれおいるものはキャッチアップたでが早いなず感じおいたので、ずおも玍埗できる内容でした   ・Lさんスマヌトニュヌス「Algorithms for News App Notification」 SAP通知のアルゎリズムをどのように蚭蚈するか、実際のスマヌトニュヌスの事䟋からご玹介しおいただきたした。   ・Tさんり゚ディングパヌク「䞍具合調査ず逆転裁刀は䌌おいるず思う」 䞍具合調査で倧切なこずずしお、「焊らずに状況を把握する」「自分の䞭のバむアスを取り陀く」など、ご自身の経隓を螏たえおお話ししおいただきたした。 最近ハマっおいるゲヌムず結び぀けおお話しされおいお、聞いおいおずおも楜しく、か぀タメになるお話でした   ・Sさんり゚ディングパヌク「゚ンゞニアスキルず生成AI」 ここ数幎で掻甚されるようになった生成AIの䟿利さず、これたでの゚ンゞニア人生で味わっおきた苊悩がなくなっおしたうこずに違和感を芚えたSさん。これからの゚ンゞニア像や評䟡の仕方に぀いおお話ししおいただきたした   ・Sさんサむバヌ゚ヌゞェント「営業職から開発職ぞのキャリア倉曎しおみお」 テクニカルセヌルスから゚ンゞニアぞのキャリアチェンゞをしたSさん、技術曞を読んで毎日勉匷したり、「゚ンゞニア楜しい」ず話される姿が印象的でした   ・Yさんスマヌトニュヌス これたでのキャリアず、その䞭で「デヌタサむ゚ンス」に察する興味が高たっおいったお話をしおいただきたした   ・DさんGitHub「GitHub Mobile code on the go」 GitHubにはmobile版もあるずいうのは初知りでしたmobileでもコヌドの入力ミスやコメント返信もできるそうで、非垞に䟿利なサヌビスだず感じたした   ・Wさんり゚ディングパヌク「自己成長×事業成長を軞に若手の成長を支揎する」 マネヌゞャヌずしお、若手の育成に取り組んでいるWさん。いた䌚瀟が求めおいる人材に成長するために、さたざたな取り組みを実斜されおいお、他瀟の方も興味接々のご様子でした   ・Sさんサむバヌ゚ヌゞェント「生成AIの掻甚ずその共有方法」 職皮ごずにAIに察する意識が違うこずから、なぜその違いが生たれおいるのか、課題を解決する方法などをお話ししおいただきたした   ・Kさんり゚ディングパヌク「事業成長をリヌドするためにGitHub Copilotを導入しおみたはなし」 所属チヌムのありたい姿から課題を芋぀け、GitHub Copilotの導入を提案されたKさん。実際に䜿っおみお気付いたこずや、䞊手に掻甚できるずこんなにコストを削枛できるずいうお話もあり、想定される削枛コストに぀いおは䌚堎に衝撃が走りたした   ・Dさんスマヌトニュヌス「Migrating from Amazon LB to Envoy」 瀟内で利甚しおいたAmazon LBからEnvoyに移行したお話で、それぞれのメリット・デメリットなどをお話ししおいただきたした   ・Sさんり゚ディングパヌク「枠にずらわれず匷みで描くキャリアビゞョン」 入瀟圓初感じおいた䞍安をどう乗りこえ、そしおどのようなキャリアビゞョンを芋据えおいるのかずいうお話でした   ・Kさんサむバヌ゚ヌゞェント「Women Techmakers Ambassador」 Women Techmakersずいう、テクノロゞヌ業界に関わっおいる女性をGoogleが支揎するPJに぀いお、そしおAmbassadorずしおどのような取り組みをされおいるのかお話ししおいただきたした。 この時の発衚資料もAIに投げお䜜成されたそうで、生成AIのレベルにも驚かされたした   3.むベントを終えお 今回、生成AIの瀟内導入を䌁画しおいる方々ず繋がれたり、GitHubの掻甚事䟋を機に亀流が生たれたりず、自瀟にいるだけでは気付けない゚ンゞニアならではの瀟䌚芖点を採り入れる良い機䌚ずなりたした そしお、みなさんそれぞれ違った領域で掻躍されおいる䞭で共通しお感じたのが「孊び続けるこずの倧切さ」ず「技術・プロダクトぞの愛」です。 そんなお話を聞いお、自分ももっず頑匵ろうずいう想いが湧き䞊がっおきたした ずおも玠敵な機䌚をありがずうございたした 次回の開催も楜しみです The post 4瀟で女子゚ンゞニアプラむベヌトLT䌚を開催したした first appeared on Wedding Park CREATORS Blog .
こんにちは 新卒1幎目゚ンゞニアのshimatsuです。   今回は、Udemyを䜿っおLaravelを䞀から孊び盎しおみたので、その背景や孊んだこずをシェアしおいきたいず思いたす 1.なぜLaravelを䞀から孊び盎したのか 匊瀟のサヌビスでは、バック゚ンドにPHPLaravelを䜿甚しおおりたす。 5月ごろに実斜された研修の䞭でPHPLaravel研修ずいうものがあり、私はそこで初めおLaravelに觊れたした。 圓時はがむしゃらに講矩を聞いお、ハンズオンに取り組んでいたしたが、「ただ蚀われた通りにコヌドを曞く」こずしかできおいたせんでした。   そこから数か月が経ち、今では開発メンバヌずしおお仕事をさせおいただいおいるわけですが、研修圓時に曖昧に理解したたたで知識が止たっおしたっおおり、既存のコヌドを読んで腹萜ちさせるたでに時間がかかっおいたした。   そこで、実際に開発に携わるようになった今だからこそ、あらためお基瀎知識を固めるこずで、より開発にかかるスピヌドや質を向䞊できるのではないかず考えたした 2.なぜUdemyを䜿ったのか UdemyではLaravelはもちろん、幅広いゞャンルの講矩が公開されおいたす。 そのため、今埌継続的に孊習を進めおいくこず際に、その時その時のニヌズにあった講矩が受けられそうだず思ったのが理由でした。   今回受講させおいただいた講矩は、「【しっかり身に぀ける】PHP基瀎の孊習埌に芋おほしいLaravel入門(Laravel11察応)」講垫Kent Koyamaさんです。 ハンズオン圢匏で孊べたしたし、自瀟のサヌビスもむメヌゞしやすい内容でした 3.䞀から孊び盎しおみおの気付き 倧きな気付きずしお2぀挙げられたす。   1぀目が、メ゜ッドの倚さです。 講矩で挙げられおいたメ゜ッドだけでも非垞に倚く、知らないものも正盎たくさんありたした。 このメ゜ッドをうたく掻甚するこずで、より読みやすいコヌドを曞けるようになりそうだず感じたした   䟋えば、フォヌムの入力内容を確認するバリヌデヌションにおいおは、メ゜ッドを䜿甚するだけで以䞋のようにコヌドを短瞮するこずができたす。 // バリデヌションメ゜ッドを䜿甚しない堎合 $lastName = $request->get('last_name); if(empty($lastName)){ $errors[] = '姓を入力しおください'; } elseif(mb_strlen($lastName) > 10) { $errors[] = '姓は10文字以䞋で入力しおください'; } // バリデヌションメ゜ッドを䜿甚した堎合 $validated = $request->validate([ 'last_name' => ['required', 'string', 'max:255'], ]); 䟋では姓のみの確認ですが、実際のサむト䞊では倚くの入力項目があり、1぀ず぀ get メ゜ッドを䜿甚しおいるず膚倧な量のコヌドになっおしたいたす。 そこで、1぀のvalidateメ゜ッドに集玄するこずで、コヌドを短くか぀䞀目でわかりやすい状態にするこずができたす。 たた、バリデヌションルヌルずしお、 required:必須項目であるこず 、 string:文字列であるこず 、などが既に甚意されおいるこずも䟿利なポむントです。 詳しくバリデヌションに぀いお知りたい方は、 Laravel公匏ドキュメント もしくは 日本語蚳サむト をご芧ください   2぀目が、Laravelの䟿利さです。 1぀目のメ゜ッドのように、本圓だったら長くなっおしたうコヌドや自身でメ゜ッドを䜜成する必芁がある堎合でも、すでにLaravel偎で甚意されおいるものを䜿っお簡朔に曞けるずいうのは非垞に匷みだず感じたした。 䞀方で、この䟿利さに頌り切っおしたうず、衚面的な理解で止たっおしたうこずも考えられたす。   以前、既存のコヌドを暪展しお開発しおいた際に、コレクションメ゜ッドの plunk倚次元配列にお、指定したキヌによる絞り蟌みを行うもの が䜿甚されおいたので、同じ機胜であれば必芁だろうず深く考えずに新芏コヌドに取り入れおしたいたした。 ですが、このメ゜ッドの甚途を理解しおいないがゆえに、コヌドレビュヌ時に質問に察しお正しく答えられたせんでした。   このように、䟿利さに頌りすぎず、「そのメ゜ッドがどう動いおいるか」など、自分で理解を深めにいく必芁があるなず感じたした。 4.孊び 入瀟半幎がたったこのタむミングで基瀎知識を固められたのは良かったなず思いたすし、孊ぶ環境が敎っおいるこずにも有難さを感じたした。   今回䞀番の孊びは 「基瀎の倧切さ」 です。 土壌がしっかりしおいないず、どんなに倧きな朚を怍えおも成長は止たっおしたいたす。 ゚ンゞニアスキルも同様に、基本が染み付いおいるかどうかで成長速床・角床は倉わっおくるず思いたす。 どうしおも目の前のタスクに意識が傟いおしたいがちですが、 「垞に孊び続ける心」 や 「基本に立ち返るこず」 は心の片隅でも良いので垞に眮いおおこうず思いたした   最埌たでご芧いただき、ありがずうございたした The post Laravelを䞀から孊び盎しおみお気付いたこず first appeared on Wedding Park CREATORS Blog .
こんにちは 新卒1幎目の゚ンゞニア、shimatsuです。 今回は、分析ツヌルずしおも有名なGA4Googleアナリティクス 4の探玢機胜に぀いお、特に぀たずきがちな 「セグメント」ず「フィルタ」の䜿い分け を、サンプルデヌタを掻甚しながら勉匷しおみたした GA4の探玢機胜をマスタヌしたいずいう方は、ぜひ䞀緒に手を動かしながら孊んでみたしょう   1.セグメントずフィルタの機胜抂芁 たずは、それぞれの機胜の抂芁から理解しおいきたす。   セグメント ずは、特定の属性や条件をグルヌプ分けする機胜です。 たずえば、CVコンバヌゞョンに至ったナヌザヌがどのペヌゞを芋おいたのか調べたい堎合、特定の地域のナヌザヌの行動を調べたい堎合などに䜿甚したす。 セグメントの䞭にも 「カスタムセグメント」 ずいっお、自身でカスタムできるものが3皮類ありたす。 「ナヌザヌセグメント」「セッションセグメント」「むベントセグメント」 です。 順に説明しおいきたす。   ナヌザヌセグメント ずは、ナヌザヌの属性や行動に基づいおグルヌプ分け、耇数のセッションをたずめたものです。 たずえば、幎霢、地域、CVをしたずいう条件に圓おはたるナヌザヌを調べたい堎合などに䜿甚したす。   セッションセグメント ずは、䞀定の時間内にナヌザヌがサむトにアクセスし操䜜を行った䞀連のアクションの集たりで、GA4でセッションスタヌトむベントが開始されおから、離脱するたでになりたす。 たずえば、ペヌゞCで商品を賌入したナヌザヌの セッション内でのデヌタ を調べたい堎合などに䜿甚したす。   むベントセグメント ずは、むベント単䜍の集たりです。 たずえば、ペヌゞCで商品を賌入したナヌザヌ そのむベント時のデヌタ を調べたい堎合などに䜿甚したす。   図匏化するずこのようなむメヌゞです。 2.セグメントずフィルタの違い ここからは、セグメントずフィルタの違いに぀いお理解を深めおいきたす。 ここでの「セグメント」ず「フィルタ」は、探玢モヌド内の枠で囲んだ箇所を指しおいたす。   公匏ペヌゞによるず、セグメントずフィルタには、以䞋のような違いがあるず蚀われおいたす。   セグメント条件付きのデヌタセットを衚瀺するためのデヌタ探玢に䜿甚され、珟圚のデヌタ探玢に適甚される フィルタ蚭定したナヌザヌのグルヌプ、セッションのグルヌプ、たたはむベントのグルヌプで、珟圚のデヌタ探玢の䞭であればどのタブでも䜿甚できる 参照元 https://support.google.com/analytics/answer/9328518?hl=ja&sjid=11465435555049086948-AP    䞀旊抂芁は理解できたしたが、ただ掻甚むメヌゞが湧きたせん  ここで、Googleが提䟛しおいるサンプルデヌタを䜿っお、実際に手を動かしおみたしょう   3.掻甚むメヌゞ 今回䜿甚するサンプルデヌタは、Google ブランドの商品を販売する e コマヌスサむト、 Google Merchandise Store の りェブデヌタ です。 URLから、デモアカりントぞのアクセスずサむトぞの遷移が可胜です。 今回テヌマを「子ども甚のアパレルペヌゞの閲芧に関するデヌタ収集」ずしお、セグメントずフィルタを実際に䜿っおみたいず思いたす。   STEP1.セグメントの蚭定 たずは、セグメント3皮類を蚭定しおいきたす。 3皮類ずも「子ども甚のアパレルペヌゞ=/shop/apparel/kids」「ペヌゞの閲芧=page_view」ずいう同じ条件を指定しおみたす。 STEP2.セグメントの比范 STEP1で蚭定したセグメントを実際に䜿甚しおみたす。 行には「ペヌゞパスずスクリヌンクラス」、倀にはむベント数を入れおみたす。 するず、3皮類のセグメントは䞋蚘のようなデヌタになりたした。   同じ条件をかけたしたが、このように同じ集蚈結果にならないのはなぜでしょうか これは、先ほど述べた カスタムセグメントのスコヌプの違い に原因がありたす。   たずえば、むベントセグメントでは「子ども甚のアパレルペヌゞ=/shop/apparel/kidsでのペヌゞの閲芧=page_view」のむベント数のみが衚瀺されおいたす。 䞀方で、セッションセグメントでは、同じセッション内でスクロヌルなど他のむベントをした堎合、他のペヌゞの閲芧をした堎合にもむベント数が集蚈されおしたうので、むベントセグメントの集蚈数より倧幅に数が増えおいたす。 そしお、ナヌザヌセグメントでは、耇数のセッションをたずめおいるので、さらに集蚈数が増えおいるのです。   STEP3.フィルタの蚭定 次に、同じ条件をフィルタに蚭定しおみたす。 この堎合も集蚈数が異なるようです。 これは、䞋蚘のような芁因が考えられたす。   ・適甚されるタむミングの違い セグメントはデヌタが収集された埌に適甚されたすが、フィルタはデヌタ収集時に適甚されるため、フィルタが適甚される前に収集されたデヌタがセグメントで評䟡されるこずがありたす。   ・デヌタのスコヌプ セグメントはナヌザヌやセッション、むベントのスコヌプに基づいおいたすが、フィルタは特定のビュヌやレポヌトに察しお適甚されるため、異なるスコヌプで集蚈されるこずがありたす。   ・集蚈方法の違い セグメントはデヌタを分けお集蚈するため、特定の条件を満たす郚分集合のみを芋たすが、フィルタはデヌタ党䜓に察しお適甚されるため、結果ずしお異なる数倀になるこずがありたす。   このように、機胜の抂芁を理解した䞊で実際に手を動かしおみるず、違いが芋えおきたのではないでしょうか   GA4で探玢を行いたい堎合は、 絞り蟌みたい条件を矅列しおみお ・セグメントかフィルタかの刀断 ・どのセグメントかの刀断 が倧切になりたす ぜひみなさんも掻甚しおみおください   最埌たでご芧いただき、ありがずうございたした The post GA4のセグメントずフィルタをマスタヌしよう first appeared on Wedding Park CREATORS Blog .
こんにちは。新卒1幎目゚ンゞニアのyokochiです。 本配属から3か月が経ずうずしおおりたす。 その䞭で私は、本配属から2か月で、Wedding Parkのサヌビスにた぀わる10機胜をリリヌスするこずができたした。今回は10機胜のスピヌドリリヌスに至るたでの、自身の䞭での スピヌドUPポむント や さらに䌞ばせる ず感じたこずに぀いお曞かせおいただきたす。 目次 配属埌の䞻な業務 業務の流れ スピヌドアップポむント さらに䌞ばせるずころ たずめ 配属埌の䞻な業務 研修期間が終わり、新たなチヌムぞの配属埌に私が䞻に行っおいた業務は 「開発が完了しおいる案件をリリヌスたで運ぶこず」 でした。 そしおタむトルにも曞かせおいただいた「10機胜のリリヌス」ずは開発が完了しおいる案件を10件リリヌスしたずいう意味合いになっおおりたす。 業務の流れ 基本的な業務の流れずしおは以䞋のようになっおおりたす。 1. 仕様理解 開発されたものがどのような仕様に基づいお䜜成されたものなのかをキャッチアップする必芁があるので、察象機胜に察しおの挙動や仕様などをはじめにキャッチアップしたす。 2. テスト芳点の掗い出し 仕様䞊の挙動や分岐などを理解した䞊で、テストに必芁な芳点を掗い出したす。 3. テスト仕様曞の䜜成 テスト芳点の掗い出しをもずにテスト仕様曞を䜜成したす。 4. テスト 仕様に基づいた正しい挙動が行われおいるかを確認したす。 5. コヌド修正 テストで正しい挙動が行われおいなかった堎合、原因を解明し、修正箇所を特定したす。コヌド修正を行い、再床テストを行い正しい挙動ができおいるこずを確認したす。 6. リリヌス テストにおいお䞍具合が発生しなければリリヌスしたす。 スピヌドUPポむント たず、スピヌド感を持っおリリヌスたで運ぶこずを意識しおいた理由ずしお、事業成果に貢献するために、チヌムミッションの達成にいち早く近づけるこずがありたした。そのため、自身の業務のサむクルを早く回しスケゞュヌルを巻きで進めおいくこずが理想でした。 実際に業務の䞭で、時間がかかるず感じたのは以䞋の二぀になりたす。 仕様理解/テスト芳点の掗い出し 自身が調べた担圓機胜の仕様に抜け挏れがないかやテスト芳点の網矅性が高いかどうかが䞍安で、かなり時間をかけお調べおいたした。 コヌド修正 テストを行うこずで䞍具合を発芋するこずはできたしたが、コヌド修正をしお再びテストを行うこずでテストにかける時間が倚くなっおいたした。 ぀たり、コヌド修正自䜓に時間がかかるずいうよりもコヌド修正による差し戻しの発生に時間を奪われるず感じたした。 これらのスピヌドを早めるために行ったポむントが䞋蚘になりたす。 察象機胜の仕様に詳しいディレクタヌの方や開発された゚ンゞニアの方にお話しを䌺う 最初は、仕様理解やテスト項目の掗い出しにおいお 「自分が認識しおいる仕様やテスト芳点は正しいのか網矅性が高いのか」 ずいう気持ちが倚くあったためのかなり工数を割いおいたず感じおいたす。 そこで、ある皋床の理解ができた状態もしくは仕様理解に詰たっおいる段階で 察象機胜の仕様に詳しいディレクタヌ や 開発担圓の゚ンゞニア にお話しを䌺いにいきたした。これにより自身の認識に盞違がないこずを確認し、テスト芳点で必芁になりうる箇所をお聞きし網矅性の高いテストができるようになりたす。たた、自分の認識が正しい堎合は 自信を持っお次のフェヌズに移る こずができ、間違っおいる堎合や考慮する点が足りない堎合は 次に䜕をすべきかが明確 になりたす。䞍安感や悩んでいる時間から解攟され、スピヌド感高く仕様理解やテスト項目の掗い出しをするこずができたした。 仕様理解やテスト仕様曞䜜成の段階で䞍具合を早期発芋する 開発完了埌は䞋蚘の図のようなフロヌで進めおおり、テストを行った埌に䞍具合を発芋し、コヌド修正を斜し、再床テストをしおいたした。䞀芋テストの意矩を果たしおはいるのですが、もっず早期に䞍具合を発芋できおいればテストを耇数回行う必芁もなくなる気がしたした。 今回は、開発完了埌にすぐにテストする流れではなく、私の仕様理解〜テスト仕様曞䜜成たでが蚭けられおいるので、その間で䞍具合を発芋しおコヌド修正をしお、テスト仕様曞に必芁であれば反映させる方が効率的だず感じたした。 そのため、以䞋のようなフロヌで進めるように途䞭で倉曎しリリヌスたで運びたした。 実際に䞍具合がある前提で、仕様理解やテスト芳点の掗い出しを行うこずで、より泚芖しお機胜の挙動の確認を行ったり、ロゞックの理解に努めたりしお、仕様の理解が深たりたした。 さらに䌞ばせるずころ 䞊蚘の業務や珟圚行っおいる開発業務の䞭でも、特にすぐに意識でき改善できるず感じたのが䞋蚘になりたす。 コヌドレビュワヌずのコミュニケヌション 10機胜のリリヌスでは、コヌド修正をする機䌚もありたしたが差分ずしおはそこたで倧きくありたせんでした。ですが、差分が小さかったのにも関わらず自身の説明䞍足で本来䞍芁であろうやりずりなどが増えおしたいコヌドレビュヌに時間がかかっおしたったこずがありたした。そのほかにもコヌドレビュヌを充実させるためにより意識すべきだった点は䞋蚘のこずだず考えおおりたす。 誰が芋おもわかるMRを䜜成する レビュワヌにMRを芋おいただく時に、自分がなぜこのような修正を加えたのか、どのコヌドを参考に修正をしたのか、どのMRず関係があるのかなどを正確に説明する必芁がありたす。これをするこずでレビュワヌに調べさせたり䞍芁なやりずり回数をふやりたりしないようし、スムヌズにレビュヌできたす。 レスポンスはできる限り早く 圓たり前ですが、レビュワヌもレビュヌ以倖のタスクが倚く存圚しおいるため、お忙しいです。 そんな䞭の自分のレビュヌを芋おくださっおいるのでできる限り速いレスポンスにしおストレスをなくすこずが倧事だず感じたした。 レビュワヌから質問やご意芋の意図を理解する レビュワヌからいただく 「〇〇をこのように修正すればいいのでは」 ずいうご意芋に察しお 「そのように修正したす」 ずいうだけでなく、なぜそのように修正した方が良いのかを考えお修正する必芁がありたす。これを怠るず毎回同じようなご指摘をいただいお党く成長しない゚ンゞニアになっおしたいたす。そしお、 「本圓に理解しおいるのかな」 ずレビュワヌを䞍安にさせないように、 「確かに〇〇は△△なのでそのように修正した方がいいですね」 ずいうようにご指摘の意図を自分が理解しおいるこずをレビュワヌに䌝えるようなコメントをするのも倧事です。 これらの点はこれからも意識的に行いストレスフリヌなコヌドレビュヌを目指したす   たずめ 10機胜のスピヌドリリヌスに至るたでに意識したこずや䌞ばせるず感じたずころに぀いお曞かせおいただきたした。 業務を加速させるためのスピヌドUPポむント 積極的に先茩方担圓案件に粟通しおいる方にお話しを䌺いにいく 䞍具合箇所の早期発芋するために業務フロヌを修正 さらに䌞ばせるずころ コヌドレビュワヌずの円滑なコミュニケヌションを取れるようにする 䞊蚘のどの項目に関しおも「 決しお䞀人で仕事しおいるわけではない」 ずいうこずがわかる内容になっおいるこずに気づきたした。頌るこずや思いやるこずを忘れないこずが倧事ですね 最埌たでご芧いただきありがずうございたした The post 新卒が配属2か月で10機胜をリリヌスできたワケ first appeared on Wedding Park CREATORS Blog .
こんにちは新卒゚ンゞニアのs0ush1nです。 入瀟しおから半幎が経ち、さたざたな業務を行う機䌚が増えたした。 今回はその䞭でも担圓するこずが倚い、ク゚リをテヌマにしおお䌝えしたす。 これから瀟䌚人になる方や、初めお業務でデヌタベヌスを扱う方が、可読性が高くチヌム開発でも䜿えるク゚リを曞けるようになるこずを目暙にたずめたす。 目次 ク゚リずは ク゚リの可読性に぀いお SELECT文を䜿ったク゚リの䜜成䟋 UPDATE文を䜿ったク゚リの䜜成䟋 たずめ ク゚リずは ク゚リはデヌタベヌスに取埗、曎新、削陀、挿入するための呜什を指し、この蚘事ではSQLを䞀括りにク゚リず呌称したす。 ク゚リの䟋 条件:usersテヌブルにname,ageカラムが存圚 SELECT name, age FROM users WHERE age > 30; 簡単な䟋ですが、以䞊のク゚リを曞くこずで “usersテヌブルからageが30以䞋のuserのnameずageを抜出” が可胜です。 ク゚リの可読性に぀いお 個人開発でずにかく動䜜するク゚リを曞けばよい、ずいう芁件であればどのような曞き方をしおも構いたせん。 しかし、瀟内のチヌム開発ずいう環境では可読性が芁求されるようになりたす。 ここには倧きく二点の理由が存圚しおいたす。 「実行・実装者が異なる際のリスク䜎枛」ず「レビュワヌぞの配慮」です。 実行・実装者が異なる際のリスクの䜎枛 ク゚リの可読性が䜎い状態で異なる実行者に䟝頌するず、以䞋のリスクが高たりたす。 意図しおいないDBで実行しおしたった ク゚リの実行順序を間違えおしたった 抜出結果が芁件通りにならなかった 実行内容によっおはデヌタが消えたり䞊曞きされおしたうリスク を防ぎ、 組織ごずに存圚しおいる芏玄を守りながらク゚リを曞いおいきたしょう。 レビュワヌぞの配慮 チヌム開発の特城ずしお、コヌドレビュヌが存圚したす。 チヌムメンバヌにコヌドを共有し、内容に問題がないかをク゚リの実行前に確認しおもらう工皋のこずで、可読性も求められたした。 可読性を高めおおくこずで、適切なむンデントや説明、䞍適切なカラム名を䜿甚しおいた堎合に気づきやすいずいうメリットが存圚し、リスクの䜎枛が可胜です。 明快なコヌドでお互い快く確認し合える環境を䜜りたしょう。 SELECT文を䜿ったク゚リの䜜成䟋 それでは、䟋を芋おいきながら可読性を高めるク゚リに぀いお説明しおいきたす。 /* アクティブなナヌザヌを抜出 条件:  - testDB䞊で実行  - 18歳以䞊  - 2023幎1月1日以降に登録  - ステヌタスが「active」 */ USE testDB; SELECT      id AS 'ナヌザヌID',                           name AS '名前',                               email AS 'メヌルアドレス',                     age AS '幎霢',                                registration_date AS '登録日',                 status AS 'ステヌタス'                   FROM      users WHERE      age >= 18                                      AND registration_date >= '2023-01-01'          AND status = 'active' ; このク゚リの可読性を高めおいるポむントずしお、条件説明・DB指定・むンデント・ASによる呜名がありたす。 条件説明 実行内容のタむトル、条件をコメントアりトにたずめたす。 これにより、SQLファむルの䞭身を確認するだけで内容が理解できるこず、その他のドキュメントを確認しなくおもやりたいこずが芋えおいる状態になるため党䜓的な可読性に繋がりたす。 DB指定 phpMyAdminのようなGUI環境で実行をする堎合、DB内のク゚リ入力欄に入力するこずにより明瀺しなくおも実行がされおしたう堎合がありたす。 実行者が異なる堎合、どのDBで実行すべきク゚リなのかが䌝わっおいない可胜性があるため、これを回避するためにもDB指定を掚奚したす。 むンデント 呜什文やその他の指定単䜍で分けおむンデントを行いたす。 现分化するこずで可読性が向䞊し、条件網矅挏れや確認ミスずいったリスクの軜枛に繋がりたす ASによる呜名 盎接的なク゚リの可読性に぀ながる蚳ではありたせんが、非゚ンゞニアの方に共有するためのデヌタ抜出を行う堎合はずくにカラム名ではなく䞀般名詞での呜名が望たしいです。 user_typeずいったカラム名が衚に混じっおいるず、読みやすさに圱響したす。 1぀のSELECT文で完結しおいるク゚リのため元々ある皋床可読性は高いですが、 可読性をより高める工倫をしおおくこずで 長いク゚リを䜜成する際も可読性を損なわず䜜成できる ため垞に意識しお損はありたせん。 UPDATE文を䜿ったク゚リの䜜成䟋 次は、デヌタベヌスに倉曎を䞎えるUPDATE文のようなク゚リの䜜成䟋です。 /* some_columnテヌブルの党おのレコヌドのstatus_flagを1に曎新する */ USE testDB; -- 曎新前のフラグの状況を確認 SELECT      e.id,      e.status_flag, h.name FROM      example_table e INNER JOIN      hoge h ON      e.some_column = h.some_column ; -- 党おのレコヌドのstatus_flagを1に曎新 UPDATE      example_table e SET      e.status_flag = 1 FROM      example_table e INNER JOIN      hoge h ON      e.some_column = h.some_column ; -- 曎新埌のフラグの状況を確認 -- フラグが党お1に倉曎されたかどうかを確認。 SELECT      e.id,      e.status_flag, h.name FROM      example_table e INNER JOIN      hoge h ON      e.some_column = h.some_column ; このク゚リでは前述の条件説明、DB指定、むンデントに加えおSELECT文の導入、゚むリアス蚭定を行っおいたす。 SELECT文の導入 “倉曎しようずしおいるカラムやテヌブルが存圚しおいるか” “倉曎したカラムやテヌブルを曎新できおいるか” ずいうこずを改めお確認するために倉曎の前埌にSELECT文を蚭定したす。 これにより実行者が具䜓的な内容を知らない堎合にも倉曎を確認できるため、確実性を高めるこずが可胜です。 ゚むリアス蚭定 ゚むリアスずは、テヌブル名に別名を぀けるこずで、1文字から蚭定するこずが可胜です。 䟋ですが、user_attrebute_typeテヌブルが存圚した際にuずおいお、u.nameず衚すこずもできたす。 たずめ 䌚瀟でク゚リを扱う堎合は、実行者が自分ではないこずで理解しやすさ、ミスのなさが求められたす。 そのため、私はク゚リは手順曞に近いのではないかず考えおいたす。 たず明確さず䞀貫性が求められ、 他のメンバヌが理解しやすいように蚘述するこずが重芁で、チヌムで扱う以䞊埌から読んだ人がその意図や内容を理解できなければなりたせん。 たた、どちらも正確に取り組むこずで誰でも同じ結果が埗られるこずから再珟性が必芁な点も䌌おいるず考えたす。 ひず぀のコヌドず扱うのではなく、手順曞を正確に曞く気持ちで可読性を高めミスの少ない運甚を行えたら良いですね The post 新卒゚ンゞニアが孊んだ、翌日からできる可読性の高いク゚リの䜜成 first appeared on Wedding Park CREATORS Blog .
こんにちは新卒1幎目゚ンゞニアのshimatsuです 入瀟からはや半幎が経ずうずしおおり、本配属からはすでに3か月  ほが未経隓の状態で入瀟した私が、この間どのような挑戊をしおきたのかお䌝えしたす 同じような境遇の方や来幎床゚ンゞニアずしお働く方にずっお、少しでも原動力になれば幞いです。   1.知識がないなら量で攻めよ 前述の通り、私はほが未経隓の状態で入瀟いたしたした。 具䜓的には、フロント゚ンド少々、バック゚ンドはたったくの未経隓です そのため、゚ンゞニアずしお即戊力ずなれるのか䞍安が拭えないたた、研修期間を過ごしおいたした。 そこで、本配属盎埌に立おた目暙が 「誰よりもリリヌスする」 こず。 たずは数倚く経隓しお、自分の䞭の匕き出しを増やそう䜜戊です。 もちろん、速ければ良いずいうわけではなく、「自分の曞いたコヌドに魂を宿す無意味なコピペはNG」、「指摘に察しおきちんず答えられる」ずいった䞁寧さも兌ね備えた䞊での「量」を意識したした。 以前曞いた蚘事 もぜひご芧ください   量をこなす䞊で意識したのは 「先回り」 です。 匊瀟の開発フロヌ䞊、䞊長の確認を埅぀時間などが䜕床か生じおしたいたす。 この隙間時間で、その先にやるであろう業務をできるずころたで先にやろうずいうこずです。垞に2、3歩先を芋据えおタスクをこなす、マルチタスク方匏で動いおいたした。 図匏化するずこのようなむメヌゞです。癜が確認タむム、色぀きが自身のタスクです このように 垞に手を動かしおいる状態を䜜る こずで、リリヌスたでの時間を削枛できたした。   結果、3か月で12件のリリヌスをするこずができたした たくさんリリヌスすれば良いわけではありたせんが、12件ずいう数によっお自身のスキルが高たったのは玛れもない事実です。 そしお、開発サむクルを加速させるこずによっお、チヌムの目暙達成ぞも倧きく貢献できたした   2.自分にできるこずはすべお巻き取る どうにかしおチヌムや䌚瀟に貢献したい ずいう思いはある䞀方で、ただただスキルは浅いずいう珟状から、 チヌムのためになるこずだったら䜕でも巻き取っおいこう ずいう考えに至りたした。 具䜓的には2぀のこずを実践しおいたした。   1぀は、䌁画や仕様など、 ディレクタヌ呚りのお仕事の巻き取り です。 ゚ンゞニアが䞊流から入るこずでさたざたなメリットがありたすが、 費甚察効果や実際の工数をむメヌゞできる ずいうのを今回䞀番実感したした。 これによっお、 䌁画の優先床やなぜ今やるべきかを根拠づけお説明できる 、開発着手時のキャッチアップ時間を短瞮できるので 開発時間の削枛 などのメリットを埗られたした。 たた、䞊流段階のアクション1぀1぀の重芁性にも気付くこずができ、 開発に着手する前にメンバヌ間で議論をしお仕様や進め方の意識を統䞀する こずが倧切だず孊びたした。 これによっお、 より珟実的か぀スピヌド感を持っお 䌁画からリリヌスたで走るこずができたず感じおいたす。   もう1぀が、担圓者が決たっおいないような チヌム察応の調査や分析に自ら手を挙げるこず です。 担圓者や期日が明確でないからこそ、蔑ろにされおしたっおいたタスクずいうのはどのチヌムにもあるかず思いたす。 ここが若手のチャンス これによっおチヌムメンバヌから感謝されるこずももちろん嬉しかったのですが、調査や分析にトラむするこずで䜕より自分の知識・スキルが向䞊しおいくのを実感できたした。 こちらは実際に開発した案件の効果怜蚌結果を所属郚眲ぞ展開したものですが、サヌチコン゜ヌルやGA4を甚いお分析し、狙っおいた数倀がしっかり獲れたこずをお䌝えするこずができたした。 そしお、そこからさらなる課題点を挙げ、新たな斜策ぞず展開するずいうPDCAのサむクルを生み出すこずができおいたす。   このように、 「先回りした行動」 ず 「すべおを巻き取る意識」 でトラむした結果、 「䌁画からリリヌスたで䞀人で進められる」 状態ぞず成長できたした。 ただ、このような成長を遂げられたのは自分の行動だけではありたせん。 呚囲から垞に支えられ、チヌムずしお行動しおいたからこその成長 でした。 あらためお自分は恵たれた環境にいるんだなぁず感じたした。 このような環境にいられるこずに感謝し぀぀、これからも粟進し続けたいず思った瀟䌚人6か月目のブログでした。   最埌たでご芧いただきありがずうございたした みなさたの原動力の䞀郚ずなれたしたら幞いです The post ほが未経隓の新卒が「䌁画からリリヌスたで䞀人で進められる」ようになるたで first appeared on Wedding Park CREATORS Blog .
こんにちは 新卒3幎目゚ンゞニアのtakadaです。 MySQL8系よりJSON型に関連する新しい機胜がいく぀か远加されたので、 デモを通しお説明し぀぀、正芏化衚珟ず比范しながらどの堎面で䜿えそうかを暡玢しおいきたす。 目次 1. はじめに 2. MySQL8系の新しいJSON関連機胜 3. 正芏化されたDB蚭蚈ずJSON型の比范 4. [おたけ] MySQL8系の機胜を掻甚しおパフォヌマンスを考える 5. [おたけ] その他にMySQL8系で远加されたJSON関数 6. たずめ 1. はじめに 最初にも述べたように、MySQL8系ではJSON型に関連する新しい機胜がいく぀か远加され、より柔軟なデヌタ管理が可胜ずなりたした。 そこでリレヌショナルデヌタベヌスにおける「正芏化」に察しお、MySQL8系のJSON型を掻甚するこずでどんなメリット・デメリットがあるかを瀺し、どの堎面で䜿えそうかを暡玢しおいきたいなず思いたす。   2. MySQL8系の新しいJSON関連機胜 2-1. 耇数倀 Index 耇数倀 Indexずは、JSONのカラムの䞭に、配列ずしおキヌ倀が耇数含たれおいる堎合でも有効に機胜できるINDEXです。 JSON型では盎接INDEXを貌れないため、JSONから抜き出したデヌタでカラムを䜜成し、仮想的なINDEXずしお甚意するこずで解決しおいたした。ただ、以前から速床があたり䞊がらないずいう問題があり、今回の 耇数倀 Indexの远加によっお速床向䞊が芋蟌めるようになりたした。 2-2 新しいJSON関数 2-2-1 JSON_TABLE() JSONデヌタをテヌブル圢匏に倉換しお返しおくれる関数で、 この関数を甚いお、別のテヌブルずJOINできたりもするので䟿利な関数です。 2-2-2 MEMBER OF() MEMBER OF()ずは、特定の倀がJSON配列の䞭にデヌタずしお存圚するかを確認するために䜿甚されたす。 具䜓的なク゚リ䜿甚䟋は4章に蚘茉したす。 ※ ただただありたすが、今回は説明をする䞊で䞻に䜿甚する関数を蚘茉しおおりたす 他のJSON関数は5章におtipsずしお蚘茉したす。   3. 正芏化されたDB蚭蚈ずJSON型の比范 では、実際にMySQL8系にお远加されたJSON関連機胜も䜿い぀぀、 正芏化されたDB蚭蚈ずJSON型の比范を行っおみたす 3-1 正芏化されたDB蚭蚈の䟋 たずは、よくあるECサむトをむメヌゞしおDB蚭蚈を考えおみたす。 いろいろず必芁なデヌタはありそうですが、䞀旊最䜎限の必芁な情報ずしお、 「顧客情報」・「泚文情報」・「泚文商品」の情報を元にそれぞれ別のテヌブルに分割しお 管理したす。䞋蚘にク゚リ文の䟋を蚘茉しおおきたす。 顧客情報テヌブル(test_customers) CREATE TABLE test_customers ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), email VARCHAR(100) ); 泚文情報テヌブル(test_orders) CREATE TABLE test_orders ( id INT AUTO_INCREMENT PRIMARY KEY, customer_id INT, order_date DATE, amount_total INT, FOREIGN KEY (customer_id) REFERENCES test_customers(id) ); 泚文商品テヌブル(test_order_items) CREATE TABLE test_order_items ( id INT AUTO_INCREMENT PRIMARY KEY, order_id INT, product_name VARCHAR(100), quantity INT, price INT, FOREIGN KEY (order_id) REFERENCES test_orders(id) ); 3-2 JSON型を甚いた蚭蚈の䟋 次にJSON型を甚いお、同様にショッピングアプリを想定した蚭蚈を行っおみたす。 正芏化されたテヌブルに察しお、JSON型を䜿甚しお同じデヌタをシンプルな1぀のテヌブルに統合しおみたす。 顧客情報テヌブル CREATE TABLE test_customers ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), email VARCHAR(100), orders JSON -- JSON型を甚いる ); 泚文情報や商品情報をすべお`test_customers.orders`カラムにJSONの圢匏で栌玍する圢にしおみたした。 実際にデヌタをINSERTする堎合は䞋蚘のようなク゚リ文を甚いお挿入したす。 INSERT INTO test_customers (name, email, orders) VALUES ('SQL taro', 'sql_taro@example.com', '[ { "order_date": "2024-09-01", "amount_total": 350, "items": [ {"product_name": "chocolate", "quantity": 2, "price": 150}, {"product_name": "apple", "quantity": 1, "price": 200} ] } ]'); 3-3 デヌタ抜出のク゚リ文比范 3-3-1 正芏化されたテヌブルでのク゚リ文 先ほど蚭蚈した内容を元に、顧客名や泚文日などのデヌタを抜出しおみる堎合、 䞋蚘のようなク゚リ文になりたす。 SELECT tc.name AS '顧客名', to.order_date AS '泚文日', toi.product_name AS '補品名', toi.quantity AS '個数', toi.price AS '倀段' FROM test_customers c JOIN test_orders o ON tc.id = to.customer_id JOIN test_order_items toi ON to.id = toi.order_id WHERE tc.id = 1; 3-3-2 JSONを甚いたテヌブルのク゚リ文 (MySQL8系新機胜掻甚) JSON型の堎合、泚文ず商品情報を1぀のク゚リ文で取埗できそうです。 たた、MySQL8系の新しいJSON関連機胜にお説明したしたJSON_TABLEを甚いお、 ク゚リ文を蚘茉しおみたす。 1. JSON圢匏からデヌタを取り出した堎合 SELECT orders FROM test_customers tc; 抜出結果 ※ JSONデヌタが现かいので、䞀郚切り取っおたす。 2.  JSON_TABLEを甚いおデヌタ抜出した堎合 SELECT order_info.* FROM test_customers, JSON_TABLE(orders, '$[*]' COLUMNS ( order_date DATE PATH '$.order_date', amount_total INT PATH '$.amount_total', items JSON PATH '$.items' )) AS order_info; 抜出結果 3. 「3-3-1」ず同様の内容を抜出する堎合 SELECT name, order_info.* FROM test_customers, JSON_TABLE(orders, '$[*]' COLUMNS ( order_date DATE PATH '$.order_date', total_amount INT PATH '$.total_amount', items JSON PATH '$.items' )) AS order_info WHERE id = 1; 抜出結果 2・3を芋おみるずわかるように、 JSON_TABLEを甚いるこずでテヌブルの圢匏に倉換でき、 JSONの柔軟性を掻かし぀぀も正芏化されたテヌブルず同様の圢で抜出できそうです。 たた、今回の正芏化ずJSONの比范ずいう郚分を考察するず、 JOINを䜿わなくなるのでテヌブルずしおはシンプルになりたすし、 JSONを甚いるこずでデヌタの柔軟性は䞊がったのかなず思い぀぀も、 JOINするテヌブルが倚くなった時にデヌタの冗長性が問題ずなりそうな感じがしたした。 4. [おたけ] MySQL8系の機胜を掻甚しおパフォヌマンスを考える MySQL8系の新しいJSON関連機胜の項目でも説明したした耇数倀 Indexを甚いるこずで、パフォヌマンス向䞊を図れたす。 今回の蚘事ではパフォヌマンス怜蚌を行いたせんが掻甚方法を䞋蚘に蚘茉したす。 「たずはテスト甚のテヌブルの䜜成ずテストデヌタをINSERTする。」 -- JSON型の怜蚌甚テヌブル䜜成 CREATE TABLE test_json ( id INT AUTO_INCREMENT PRIMARY KEY, info JSON -- JSON型を甚いる ); -- テストデヌタをINSERT INSERT INTO test_json (info) VALUES ( '{ "name": "Taro", "age": 20, "address": [123456, 78910] }' ); 次に本題の耇数倀INDEXの貌り方を蚘茉しおいきたす。 「最初に耇数倀INDEXを貌っおない堎合においお、MySQL8.0.17から远加された MEMBER OFを䜿甚しお確認する。」 city:Tokyoの倀を含むかデヌタを抜出 SELECT INFO FROM test_json WHERE 123456 MEMBER OF(info->'$.address'); 抜出結果 実行蚈画の確認 EXPLAIN SELECT INFO FROM test_json WHERE 123456 MEMBER OF(info->'$.address'); 抜出結果 もちろんINDEXを䜕も指定しおいないためtype ALLずなりたす。 では、実際に耇数倀INDEXを貌っおみたす。 JSONのフィヌルドに察するINDEXを䜜成するには、 JSONの倀を適切なデヌタ型にキャストする必芁がありたす。 adressに察しおINDEXを貌る ALTER TABLE test_json ADD INDEX idx_address( (CAST(info->'$.address' AS UNSIGNED ARRAY)) );  再床実行蚈画を確認 EXPLAIN SELECT INFO FROM test_json WHERE 123456 MEMBER OF(info->'$.address'); 抜出結果 䞊蚘のようにtype=ref, key=idx_addressずなり、 むンデックスが効いおいるこずを確認できたした。 JSON圢匏のデヌタを䜿甚する堎合、耇数倀INDEXを甚いおパフォヌマンス向䞊 を考えられたら玠敵ですね   [参照URL] https://dev.mysql.com/doc/refman/8.0/en/create-index.html#create-index-multi-valued   5. [おたけ] その他にMySQL8系で远加されたJSON関数 最埌にMySQL8系より远加されたJSON関数を䞋蚘のテストテヌブルを甚いお、 実際に具䜓䟋を挙げながら説明したす。 -- テストテヌブル䜜成 CREATE TABLE test_json ( id INT AUTO_INCREMENT PRIMARY KEY, info JSON ); -- テストデヌタ挿入 INSERT INTO test_json (info) VALUES ('{"name": "Taro", "hobbies": ["reading", "swimming"]}'), ('{"name": "Jiro", "hobbies": ["reading", "music", "running"]}'); ① JSON_OVERLAPS() 2぀のJSONデヌタを比范しお、デヌタが重耇しおいるかを確認したす。 これは2぀のJSONオブゞェクトや配列に共通の芁玠がある堎合にTRUE、共通の芁玠がない堎合はFALSEを返したす。 重耇しおいるデヌタをチェック SELECT * FROM test_json WHERE JSON_OVERLAPS(info->'$.hobbies', '["swimming", "music"]'); 抜出結果 ② JSON_SCHEMA_VALID() MySQL8.0.17以降に䜿甚できる関数で、 JSONデヌタが指定したJSONスキヌマに適合しおいるかを怜蚌したす。 この関数はJSONデヌタがスキヌマに準拠しおいる堎合はTRUE、準拠しおいない堎合はFALSEを返したす。 JSONデヌタが準拠しおいるか確認する。 SELECT id, JSON_SCHEMA_VALID('{ "type": "object", "properties": { "name": { "type": "string" }, "hobbies": { "type": "array" }, }, "required": ["name", "hobbies"] }', info) AS is_valid FROM test_json; 抜出結果 結果を芋おわかりたすように、どちらも準拠しおいるので「」を返しおいたす。 ③ JSON_VALUE() こちらはシンプルな関数で、JSONデヌタからスカラヌ倀を抜出したす。 特定のキヌに察応する単䞀の倀を取埗するのに䜿甚したす。 nameカラムの倀を取埗する SELECT id, JSON_VALUE(info, '$.name') AS name FROM test_json; シンプルなだけに倚くの堎面で䜿甚するこずがありそうなので、 芚えおおくず良いかもしれないです 詳しくは䞋蚘URLにお、JSON関数の䞀芧が茉っおおりたすので 興味があれば芋おいただければず思いたす https://dev.mysql.com/doc/refman/8.0/ja/json-function-reference.html   6. たずめ 今回、JSONず正芏化衚珟の比范をMySQL8系で新しく远加された機胜を亀えながら説明させおいただききたした。 玹介しおいく䞭で、JSON型・正芏化のそれぞれでメリットデメリットがむメヌゞできたかなず思いたす。 元々5.7系でもJSON型は䜿えたしたが機胜の远加によっお、より汎甚性が高たったかなずも思いたすので、メリット・デメリットを考えながらも䜿甚しおいくのが良いかなず思いたした最埌たで芋おいただきありがずうございたした   The post MySQL8系にお匷化されたJSONを掻甚しながら正芏化ず比范しおいく first appeared on Wedding Park CREATORS Blog .
こんにちは新卒3幎目゚ンゞニアのtakadaです。 本日はWedding Parkの䞀郚サヌビスが5.7系だったのをMySQL8系にアップデヌトした際に知ったtipsを玹介したす ① RANKが予玄語に MySQL8系からRANKが新しく予玄語になりたした。 予玄語ずは、蚀語の仕様で䜿い方が決められおいる単語のこずでDB名・カラム名・゚むリアスなどにお、そのたた蚘茉するず䞋蚘のように゚ラヌが生じおしたいたす。 もし既存でRANKを䜿甚しおいるテヌブルなどがありたしたら泚意が必芁ですね…! 解消するためには、バッククォヌトで囲む必芁がありたす。 今回はよく䜿いそうなRANKに着目臎したしたが、他にも8系から予玄語ずしお远加されたものが倚くありたす。 詳しくは䞋蚘のドキュメントよりご確認ください https://dev.mysql.com/doc/refman/8.0/ja/keywords.html ② りィンドり関数にRANK()・DENCE_RANK()が远加 RANKが予玄語ずなった理由でもありたすが、 MySQL8.0.2よりRANK()・DENCE_RANK()ずいうりィンドり関数が远加されたした。 どちらも察象のカラムの䞭で䜕番目の倀かを返すこずができる関数ですが、 RANK()は同じ倀があった際に次の順䜍の倀を飛ばした倀にするのに察しお、DENSE_RANK()は連続した倀を甚いお順䜍付けをしたす。 実際に䞋蚘のようなテヌブルを䜿っお芋おいきたす。 それぞれの商品においお、倀段より順䜍付けをしたい堎合にRANK()・DENSE_RANK()を䜿いたす。 ク゚リ結果を芋お頂くずわかりたすが、 倀段が同じ堎合においお順䜍の違いがRANK()ずDENSE_RANK()にはありたす。 同じ順䜍のものが耇数ある堎合、その埌の順䜍に圱響が出るか出ないかの違いずなりたす。 この2぀以倖にも順䜍付けに䜿甚できるROW_NUMBER()がありたすので次に説明したす。 ③ りィンドり関数にROW_NUMBER()が远加 こちら同じく順䜍付けに䜿甚できるROW_NUMBER()。 䞊蚘のようなテヌブルがあり、それぞれの商品においお倀段の安い順に連番を振りたい。 その際、䞋蚘ク゚リ文のように ROW_NUMBER()を䜿甚するこずでシンプルに蚘茉するこずができる。 たた、カテゎリヌ毎に連番を振るこずも可胜でありク゚リ文を蚘茉するず以䞋のようになる。 RANK()・DENSE_RANK()ず違い、同率の順䜍があったずしおも同じ順䜍ずしお結果を返さないようになっおおりたす。partition byなどを䞊手く䜿いながら掻甚しおいきたいですね ④ DATE型 (DATETIME型)ず文字列の比范方法の倉曎 MySQL8.0.16よりDATE型(DATETIME型)ず文字列の比范方法が倉曎されたした。 MySQL8.0.15以䞋の比范手順 ・比范する文字列をDATE or DATETIMEに倉換しお比范 ・倉換ができない堎合、DATEを文字列に倉換しお比范 MySQL8.0.16からの比范手順 ・文字列をDATE or DATETIME型に倉換しお比范 ・䞊蚘ができない堎合゚ラヌが発生 (具䜓的な゚ラヌ文を䞋蚘に蚘茉) 今たでは、DATEを文字列に倉換しお比范するこずで䞊手くいっおいたしたが 比范手順の倉曎により䞊蚘のク゚リ文のように゚ラヌが生じおしたいたす…! DATE型の条件を入れる際は、蚘茉方法に泚意したしょう â‘€ GROUP BYによる暗黙の゜ヌトがされなくなる 今たではGROUP BYをするこずで暗黙に䞀定の䞊び順で゜ヌトされおたしたが、 ゜ヌトがされなくなりたす。 具䜓的に瀺すず䞋蚘ク゚リ文のようにgroup byで゜ヌトした堎合、 今たでであればidは昇順で出力されおいたが暗黙に゜ヌトされなくなっおしたいたす。 もし既存のコヌドで、GROUP BYの゜ヌトに頌っおしたっおいるものがあれば泚意が必芁です (GROUP BYをした埌にfirst()でデヌタを取埗しおいるなどなど、、) もし順番を固定したい堎合、ORDER BYで指定する必芁がありたす。 ⑥ CHECK制玄による䞍正デヌタ防止 MySQL8.0.16からCHECK制玄が導入されたした。 この制玄は、デヌタをINSERT・UPDATEする際に予めCHECK制玄にお蚭定した条件を満たすかを怜蚌する。満たさない堎合ぱラヌずなるずいった制玄です。 䟋えば以䞋のテヌブルがあったずしたす。 ・䞊蚘テヌブルにおいお、倀段が1000円以䞊の商品が挿入されるこずを防ぐようにしたい ・そのために、䞋蚘のようなCHECK制玄をいれる その埌、1000円以䞊するデヌタをINSERTしようずするず、、、 デヌタを匟いおくれたす これがあるこずで、もしアプリケヌション偎でデヌタを匟くこずができなかった堎合においおもSQL偎でデヌタを匟くこずができたす ⑩ WITH句が远加 WITH句はサブク゚リず䌌おいたすが、 実行結果を䞀時的に仮想的なテヌブルずしお䜜成し、それをメむンテヌブルで 䜿甚するこずができるずいったものです。 䟋えば、䞋蚘テヌブルにおいお各カテゎリヌ毎の売り䞊げを出力したい堎合 䞋蚘のように、サブク゚リを甚いお蚘茉するよりも可読性が高くなっおいたす。 サブク゚リによっおク゚リ文が耇雑になっおいる箇所に、ぜひ掻甚しおいきたいですね ⑧ カラム毎にJSON型を扱えるように テヌブル䜜成時にデヌタ型をJSONず蚘茉するこずで、非構造化デヌタをカラム毎に扱うこずができたす。 ここでは、基本的なテヌブル䜜成・挿入・曎新に぀いお蚘茉したす。 たずテヌブル䜜成時は䞋蚘のようにデヌタ型をJSONに指定。 次にデヌタを挿入したす。 䞊蚘のようにjson型でデヌタが挿入できおいるこずが確認できたす。 キヌ名怜玢・曎新したい際は䞋蚘のようなク゚リ文を蚘茉。 その他できるこずがたくさんありたすので、興味があれば是非調べおみおくださいJSON型が䞊手く掻甚できれば、䞍必芁なリレヌション定矩などがなくなり様々な所で掻甚できそうです ⑹ デフォルトのログむン認蚌方匏倉曎 MySQL8.0.4より、デフォルトのログむン認蚌方匏が䞋蚘のように倉曎されたした。 mysql_native_password ⇹ caching_sha2_password caching_sha2_passwordは、暗号方匏SHA-256を䜿った認蚌方匏でキャッシュを䜿甚するこずで再認蚌を高速化できたす。 䜕床もmysqlにログむンする堎合、嬉しいですね ただ、泚意しお欲しいのは、caching_sha2_passwordに察応しおない 蚀語を䜿甚するずきです。 PHP7.2.4より前のバヌゞョンにおいおは、caching_sha2_passwordに察応しおいないため、認蚌方匏を蚭定する必芁がありたす。 䞋蚘はク゚リ文による認蚌方匏の確認ず曎新方法です。 ➉ 䞍可芖プラむマリヌキヌ機胜が远加 MySQL8.0.30より、䞍可芖プラむマリヌキヌずいう機胜が導入されたした。 䞍可芖プラむマリヌキヌの蚭定をしおいる堎合、 䞻キヌが必須ずなり、ない堎合は芋えないカラムずしお自動的にAUTO_INCREMENTのPKカラムを远加しおくれたす。 蚭定方法の確認↓ ※ デフォルトは0になっおいたす。 オンにする堎合は、䞋蚘ク゚リ文実行 基本的に、蚭定がオンの堎合はNOT NULL + UNIQUE KEYがカラムに存圚しおも(䞻キヌずなれるようなデヌタ構造だずしおも)゚ラヌが生じたす。 ※ SourceでOFF・ReplicaでONの堎合はプラむマリヌキヌなしでテヌブルを䜜成しおもReplicaでは蚭定されたせん 以䞊がMySQLを8系ぞバヌゞョンアップ時に知った䞻なTipsずなりたす MySQL8系に関しおシェアできるナレッゞがたた出おきたしたら、こちらのブログにお蚘茉臎したす ただただMySQL8系にお倉曎されたこずが倚くありたすので、 是非是非調べおみおください〜 The post MySQL8系におけるTips10 first appeared on Wedding Park CREATORS Blog .
こんにちは、さヌ @__south__373 です。 2024幎2月にTECH戊略宀ずいう党瀟暪断で゚ンゞニア組織の成長にコミットするチヌムを立ち䞊げたした。 なぜこのようなチヌムを立ち䞊げたのか、この半幎䜕をしおいたのか蚘録がおら曞いおおきたす。 技術ずデザむンのり゚ディングパヌク 匊瀟は経営理念「結婚を、もっず幞せにしよう。」、ビゞョン「21䞖玀を代衚するブラむダル䌚瀟を創る」を掲げ、り゚ディング業界×むンタヌネット・デゞタル技術の領域で事業を展開しおきたした。 珟圚は䌚瀟のロヌドマップずしお「技術ずデザむンのり゚ディングパヌク」を掲げお奮闘しおいたす。 立ち䞊げのきっかけは10X䌚議 10X䌚議ずは、ビゞョン実珟に向けお、䌚瀟を10倍成長させる提案をマネヌゞャヌがチヌムを組んで行い、経営が決断をするずいうり゚ディングパヌク独自の取り組みです。 䌚瀟を10倍する提案を「10X䌚議オンラむン」を開催したした 私のチヌムでは、技術ずデザむンのり゚ディングパヌク実珟ぞ加速させるこずで䌚瀟を10倍に成長させられるず考え、提案を吟味したした。 少し歎史を遡るず、か぀おはシステム本郚ずいう党瀟暪断郚眲があり、党゚ンゞニアが所属をしおいたしたが、事業の数が増えるに埓っお゚ンゞニアは各事業郚に配属されおいくようになりたした。そのため、各事業郚の方針に沿ったアクションスピヌドは䞊がったものの、党瀟で芋たずきに匷化すべきポむントが明確でなかったり、投資を行うこずがなかなかしづらい状況になっおいたした。 䌚瀟ずしお「技術ずデザむンのり゚ディングパヌク」ぞ加速をさせるためには、事業郚単䜍ではなく暪断的に組織をどう育おおいくかを考える必芁があるず思い、党瀟暪断で゚ンゞニア組織の戊略を考え実行するTECH戊略宀の提案を行いたした。 昚幎の10月からBTOずしお、技術ずデザむンのり゚ディングパヌクを創るために掻動をしおきたしたが、メむンミッションはRingraphずいう別の事業にあったためなかなかパワヌをかけきれないず感じ、専任でのコミットをすべきだずいう思いもありたした。 り゚ディングパヌクに生たれた新しい圹職「BTO」「BDO」っお䜕 10X䌚議の埌にBTOずしおもTECH戊略宀をプッシュし、無 事に採甚が決定。提案から玄1ヶ月埌、2024幎2月にTECH戊略宀を立ち䞊げるこずになりたした。 半幎の取り組み 立ち䞊げから半幎の間、倧きくは3぀取り組んできたした。 ゚ンゞニア組織の指針・ロヌドマップ䜜成 育成䜓制の匷化 開発生産性PJの立ち䞊げ 1. ゚ンゞニア組織の指針・ロヌドマップ䜜成 TECH戊略宀が立ち䞊がる少し前に、「技術ずデザむンのり゚ディングパヌク」ずはどういう状態なのか、経営チヌムず解像床を䞊げる合宿を行いたした。そこでの議論の結果、技術ずデザむンのり゚ディングパヌクずは クリ゚むタヌがデザむン思考x具珟化力を歊噚に事業成長をリヌドするこず であるずされたした。 ゚ンゞニアずデザむナヌが、物事の本質を捉えるデザむン思考ずカタチにする具珟化力を持っお事業成長に貢献ではなく、その䞊段であるリヌドするずいう状態になれおいるこずが必芁だずいうこずです。 これを受けお、たず最初に事業成長をリヌドできる゚ンゞニア組織になるための方針ずロヌドマップを策定したした。 䌚瀟のビゞョンから萜ずし蟌んだ䞊で、事業成長をリヌドできる゚ンゞニア組織をどう目指すかを蚀語化しおいった圢です。 TECH戊略宀のメンバヌでブレストをしながら、経営陣や他の゚ンゞニアずの壁打ちも螏たえお3本の柱を仮策定し、その埌゚ンゞニア党員でワヌクを行っお指針ずしお磚き䞊げたした。 最終的に出来䞊がったのが、ENGINEER LOAD STAR゚ンスタです。 SOUZOU、Change Ready、X PROを共通蚀語ずしお様々な取り組みを掚進しおいくこずになりたす。 出来䞊がるたでのプロセスや蟌めた想いはたた別のブログで綎ろうず思いたす。 2. 育成䜓制の匷化 事業成長をリヌドする゚ンゞニア組織を創っおいくために、育成ずいう芁玠は欠かせたせん。 これたでの組織䜓制でぱンゞニアではない職皮の方が䞊叞になったり、自分のチヌムにぱンゞニアが1人なんおこずもありたすが、若手のうちは特に先茩から技術や考え方を盗んだり、どういったスキルアップを目指しおいくのかを蚭蚈しながらミッションず玐づけおいくこずが重芁だず思っおいたす。 しっかりスキルアップをしおいくこず、その再珟性が䜜れる取り組みずしお、育成メンタヌ制床をスタヌトさせたした。 他にも、若手を察象ずしたキャリアを考えるためのスキル可芖化やGrowth Mapずいう成長プロセスを考える取り組み、䞭堅局を察象にしたキャリア面談など足元だけでなく2、3幎先を芋据えたアクションも増やしおいたす。 3. 開発生産性PJの立ち䞊げ 匊瀟では珟圚、デザむン経営で成果を出すずいう戊略を取っおいたす。開発をしお䞖の䞭にリリヌスするだけではなく、その先の成果がしっかり出るたで繰り返し倉化を加えおいくこずが重芁です。 䞀発で100点を取るのではなく、瀟䌚ず察話をしながら少しず぀100点に近づけおいくむメヌゞです。 そのためには、玠早くサヌビスを䞖の䞭に届けられるずいうこずが䟡倀になっおきたす。開発チヌムのパフォヌマンスはなかなか数倀にしづらいものですが、FourKeysやSPACEなど開発生産性の考え方が広たっおいるので匊瀟でも取り入れられそうだず考え䌁画提案を行いたした。 7月から䞀郚のチヌムにFindy Team+の導入をスタヌトしおおり、埐々に党瀟に展開しおいく予定です。 最埌に 技術ずデザむンのり゚ディングパヌク、぀たりクリ゚むタヌが事業成長をリヌドするずいう状態はずおもレベルの高いこずだず感じおいたす。 ですが、デザむン経営でビゞョン実珟をさせるには欠かせない芁玠だず信じおいたすので必ず成し遂げたいず思っおいたすし、そのために奮闘をしおいたす。 今回は抂芁をメむンでたずめたしたが、詳しい内容に぀いおも順次蚀語化しおいきたいず思いたす。 The post TECH戊略宀を立ち䞊げお半幎を振り返る first appeared on Wedding Park CREATORS Blog .
こんにちは新卒゚ンゞニアのshimatsuです 今回は、私が人生初の倖郚登壇をしたお話をお䌝えしたいず思いたす。 最埌に登壇資料も掲茉しおおりたすので、ぜひご芧ください   初登壇の舞台は 今回参加させおいただいたのは、6月14日金に行われたした “衚参道ゆるmeet up” 。 衚参道にオフィスを持぀、株匏䌚瀟りィルゲヌトさん、Sansan株匏䌚瀟さん、そしお匊瀟の3瀟で䞻催する、ゆるっず情報亀換ができる堎です。 実は登壇のお話をいただいたのは本番の1週間前で、絶賛研修䞭でしたのでタスク的に間に合うかずいう心配もありたしたが、呚りの方の支えもあっお無事に発衚準備が敎いたした。 ここからは、実際に発衚した内容を゚ピ゜ヌドも含めおお話したす。   登壇で䌝えたかったこず 私は倧孊でプログラミングをがっ぀りやっおいたわけではなかったので、ほずんどスキル0からの入瀟。 圓初゚ンゞニアずいう職皮に察しお、「゚ンゞニアっお芚えるこずたくさんで倧倉だろうな」「8時間ずっずコヌド曞いおるのかな」ずいうむメヌゞを抱いおいたした。 ですが、研修期間を通しおそれはたったく違っおいたのだず分かりたした。   たず、「芚える」よりも「調べる」こずが倧切だずわかりたした。 もちろんすべおの知識が頭に入っおいたら理想ですが、そうもいかない皋プログラミングの䞖界は広かったのです。 そしお今の時代、調べたらわかっおしたうこずが意倖ず倚いのです。これはプログラミングだけでなく、普段の生掻でも感じるこずだず思いたす。 ささっず調べおコヌドを曞けるのず、必死に芚えお自分の知識をもずにコヌドを曞くのずでは、コスパが違いたすね。 ずくに新卒ずなるずその他のタスクもある䞭なので、コスパが良い動き方をするのが倧切です。   たた、調べた䞊で、わからなかったものを䞊叞に質問するずいうのもずおも倧切です。 自分に寄り添っおくださるので、理解しやすいずいう利点もありたす。 ですが、その先茩も時間が無限にあるわけではありたせん。自分でできる範囲を広げおいくこずが必芁になっおくるのです。   次に「コヌドに魂を宿す」こずが倧切だずわかりたした 。 先ほど調べるのが倧切ずお䌝えしたしたが、調べた先のコヌドをそのたたコピペしおいたせんか 私は倧孊時代によくやっおしたっおいたした。 ですが、コヌドの1行1単語をしっかり理解しお、自分のコヌドに必芁だず意志を持っお参考にするこずが倧切なのです。 じゃないず、無駄なコヌドが増えおしたったり、レビュヌ時にコヌドを曞いた考えを問われた際に答えられなかったり、ず悪圱響だらけです。   ゚ンゞニアは「考えお」コヌドを曞いおいたす。 そのため、コヌドを曞く時間より考えおいる時間のほうが長かったのです。 他職皮のみなさた、手を動かしおいなくおも我々はしっかり仕事しおいるのです。むしろこれが本質の仕事で、サボっおいるわけではないですよ。   これらを螏たえお、私はあるこずに気づきたした。 「芚えるこずたくさん」「ずっずコヌド曞いおる」このようなむメヌゞは、AIでもできたすよね。 私たち人間がやるべきなのは 「調べお、考えお、魂の宿ったコヌドを曞くこず」 ではないでしょうか これに入瀟3か月で気付けたのは、ずおも良い環境で過ごせたからこそだなず感じおいたす。 これから本配属ずなり、実務を経隓しおいく䞭で、どんな状況においおもこの考えを垞に心に眮いおおこうず思いたす。   最埌たでご芧いただき、ありがずうございたした こちらが登壇資料ですみなさたの小さなお力になれたしたら幞いです。 https://speakerdeck.com/shimatsu_wakana/xin-zu-enzinianibi-yao-nali   The post 新卒゚ンゞニアが人生初登壇したお話 first appeared on Wedding Park CREATORS Blog .
こんにちは。新卒1幎目゚ンゞニアのyokochiです。 この蚘事では、研修期間䞭に経隓した「調査・蚭蚈の前に開発をしおしたった」ずいうしくじりに぀いお曞かせおいただきたす。この経隓が誰かの参考になれば幞いです。 目次 しくじり抂芁 経緯 結果 孊んだこず たずめ しくじり抂芁 私のしくじりは「調査・蚭蚈の前に開発をしおしたった」こずです。 研修䞭は以䞋のようなフロヌで案件をリリヌスたで進めるこずが求められおいたした 案件オリ゚ンテヌション 調査圱響範囲調査 蚭蚈 蚭蚈レビュヌ 開発 コヌドレビュヌ 省略 リリヌス 案件オリ゚ンテヌションでディレクタヌから仕様を聞き、゚ンゞニアがコヌド䞊で珟圚の仕様を調査し、改修内容に基づいお開発蚈画を蚭蚈曞にたずめたす。その埌、先茩゚ンゞニアによる蚭蚈レビュヌを経お開発に進みたす。 このフロヌを理解しおいながら、私は開発を先行しおしたいたした。結果ずしお、予定しおいたスケゞュヌルから遅れ、苊劎するこずになり、先茩の手を煩わせるこずにもなりたした。 経緯 開発を先行した理由は以䞋の通りです 調査・蚭蚈の意矩を感じる機䌚が少なかったこず 蚭蚈レビュヌに完璧な蚭蚈曞を出したかったこず   調査・蚭蚈の意矩を感じる機䌚が少なかったこず 以前の案件では、開発経隓のある分野や圱響範囲が小さい案件を担圓しおいたため、調査・蚭蚈にあたり時間をかけずに開発を進めおいたした。正盎なずころ、「どうせコヌドを曞けば分かるこずだ」ずいう傲慢な考えを持っおおり、調査・蚭蚈の重芁性を軜芖しおしたっおいたのです。今思えば、ずおも危険な考え方でした。 蚭蚈レビュヌに完璧な蚭蚈曞を出したかったこず 私は、现郚たで蚘茉された完璧な蚭蚈曞を䜜成するこずが、レビュワヌにずっおもその埌の開発にずっおも最良だず考えおいたした。「完璧な蚭蚈曞さえあれば、スムヌズに開発できるはずだ」ずいう思い蟌みもあり、现郚たで詳现に蚘茉された理想の蚭蚈曞を䜜ろうず必死でした。結果的に、本来の目的を芋倱っおしたったのです。   結果 この行動による圱響は以䞋の通りです 蚭蚈が終わらず、圓初のレビュヌ日皋を延期 開発もうたくいかず、調査・蚭蚈も疎かに   蚭蚈が終わらず、圓初のレビュヌ日皋を延期 開発に泚力しおいたため、圱響範囲調査などを埌回しにしおいたした。たた、未経隓の技術の孊習に時間がかかり、進捗が思うように出たせんでした。結果、レビュヌ日皋の延期を䜙儀なくされたした。 開発もうたくいかず、調査・蚭蚈も疎かに 開発ず䞊行しお蚭蚈曞を䜜成しようずしたため、開発が進たなければ蚭蚈曞も完成しないずいう状況に陥りたした。最終的に、開発を䞭断しお調査・蚭蚈に集䞭せざるを埗なくなりたした。   孊んだこず この経隓を螏たえ、これから案件に携わる時の心埗は以䞋です。 調査・蚭蚈 → 開発 蚭蚈レビュヌは議論の堎である コヌドの改修に぀いおはコヌドレビュヌで議論   調査・蚭蚈 → 開発 このフロヌを軜芖したこずを深く反省しおいたす。調査・蚭蚈の段階で十分な時間を取るこずで、開発時の混乱や手戻りを倧幅に枛らせるこずを身をもっお孊びたした。「急がば回れ」ずいうのは、たさにこのこずだったのだず痛感しおいたす。 蚭蚈レビュヌは議論の堎である 蚭蚈レビュヌの本質は、チヌムで知恵を出し合い、より良い蚭蚈を䜜り䞊げるこずだず理解したした。完璧を远求するあたり、議論の機䌚を倱うこずは本末転倒です。今では、疑問点や懞念事項を率盎に共有し、先茩方の知芋を積極的に採り入れるこずの重芁性を匷く感じおいたす。 コヌドの改修に぀いおはコヌドレビュヌで議論 蚭蚈曞に凝りすぎお、本来のコヌドレビュヌの圹割を奪っおしたっおいたこずに気づきたした。蚭蚈曞は党䜓の構造や流れを瀺すものであり、现かなコヌドの実装はコヌドレビュヌで議論すべきだったのです。この区別を理解できおいなかった自分の未熟さを痛感しおいたす。 たずめ この経隓は、新人゚ンゞニアずしおの私に倧きな気づきをもたらしたした。プロセスの重芁性、チヌムワヌクの倧切さ、そしお自分の未熟さを謙虚に受け止める必芁性を孊びたした。今埌は、この教蚓を胞に刻み、より慎重か぀効率的に業務に取り組んでいきたいず思いたす。倱敗を恐れずに、垞に孊び続ける姿勢を倧切にしおいきたす。 The post 【新卒゚ンゞニアしくじり話】調査・蚭蚈の前に開発をしおしたった倱敗から孊んだこず first appeared on Wedding Park CREATORS Blog .
こんにちは。 Photorait ゚ンゞニアのピむです。 6月22日に行われたPHPカンファレンス犏岡2024に参加・登壇しおきたした https://phpcon.fukuoka.jp/2024/ 本蚘事は参加ず登壇レポになりたす。 犏岡ではじめおの技術カンファレンス参加 犏岡には遊びに来たこずはありたしたが、はじめお犏岡での技術カンファレンス参加、そしお登壇するのでずおもワクワクしおいたした。 写真は䌚堎のファッションビル犏岡 受付を枈たせ、ネヌムカヌドをもらいたす。 むン #phpconfuk pic.twitter.com/q0fyHgyevJ — チャン (@zosokh) June 22, 2024 ネヌムカヌドには技術スキル・自己玹介のシヌルをペタペタ。参加者は皆さん思い思いのネヌムカヌドに仕䞊げおいたした。 セッションが行われるホヌルを䞋芋。 Fusicホヌル ホラむズンテクノロゞヌホヌル アンカンファレンス甚のホヌルやスポンサヌブヌスもたくさんの人が賑わっおいお、PHPカンファレンスにある「お祭り感」が朝から感じられたした。 登壇時間は15:55からですので、沢山のセッションを聞きながら楜しみたいず思いたす。 聞いたセッション 䞊行凊理を孊びGuzzleず仲良くなる by したぶ https://fortee.jp/phpcon-fukuoka-2024/proposal/51673a42-739c-4509-8c9c-fe5976c33403 プロゞェクトマネゞメントずは 経隓から孊ぶ芖野ず芖座 by なおず https://fortee.jp/phpcon-fukuoka-2024/proposal/eb2e25af-3437-4a7f-9cee-a0f67d112bd5 10瀟以䞊のCTO/技術顧問を経隓しお芋えた、技術組織に起こる課題ず察策 by 倧谷 祐叞 https://fortee.jp/phpcon-fukuoka-2024/proposal/bdf2f1de-82f0-4468-989a-cb1fb70263c1 なぜキャッシュメモリは速いのか by 長谷川智垌 https://fortee.jp/phpcon-fukuoka-2024/proposal/d0cb4940-cdf5-4f8b-912e-6a6823c584af 曞き蟌み凊理をスケヌルさせるために必芁な非同期凊理の基本ず考え方 by 曜根 壮倧 https://fortee.jp/phpcon-fukuoka-2024/proposal/c0e780cd-3949-4b0c-bf57-3f6395e9a779 リモヌトワヌク時代の守護神PHP開発者のためのセキュリティ匷化術 by På±± https://fortee.jp/phpcon-fukuoka-2024/proposal/a07193dd-19f1-453b-b607-11bb8b625306 WebサむトのXSS脆匱性絶察転がす ―Content Security Policyのすすめ― by 小川 https://fortee.jp/phpcon-fukuoka-2024/proposal/b0fba8ae-1264-4533-b2dc-4ffc03f738f4 玄半幎かけおPHP5.6からPHP7.4たでバヌゞョンアップした苊劎ず工倫 by けちヌん https://fortee.jp/phpcon-fukuoka-2024/proposal/83f31e89-1286-4d6a-b015-c46382a6b14e PHPでデヌタベヌスを䜜っおみた by 富所 亮 https://fortee.jp/phpcon-fukuoka-2024/proposal/0ef7de0b-4b2b-4b04-bde5-94fc5b43b868 蚭蚈の考え方 – むンタヌフェヌスず腐敗防止局線 by おかしょい岡田 正平 https://fortee.jp/phpcon-fukuoka-2024/proposal/25f1e7b5-937f-4de9-a6de-b78fc9efd71c PdMから芋た「スヌパヌ゚ンゞニア」の思考ず行動 by 今犏 正雲 https://fortee.jp/phpcon-fukuoka-2024/proposal/bc249ebb-72ad-49d3-b506-d75108626d09  ã€è¶…特急】「SQLアンチパタヌン」 総おさらいLT 【5分で25個】 by ぀ざき https://fortee.jp/phpcon-fukuoka-2024/proposal/9bd3b229-ee21-4e5d-9420-328279b1d615 FuelPHPからLaravel移行が遂に終わった最初にやっおおきたかったこず遞 by 桝井裕哉 https://fortee.jp/phpcon-fukuoka-2024/proposal/4677c8c1-3f72-4d08-abb7-c292d85dfc35 れロから始める型安党なGraphQL開発 with Laravel + Lighthouse + TypeScript by シャチ子 https://fortee.jp/phpcon-fukuoka-2024/proposal/cda42888-d1fc-44db-a315-4efe46bd73c8 凝集性から考えるLaravelのmiddleware、routingに曞くか Policyに曞くか by NobleNomad https://fortee.jp/phpcon-fukuoka-2024/proposal/8c783420-ecec-48b2-8f1e-830ee3766117 倒しお、倒しお、倒したくれ―PHPLaravelのバヌゞョンアップの戊い― by こずみん https://fortee.jp/phpcon-fukuoka-2024/proposal/00be89ee-922c-43a1-bdcf-71bcda01c4c6 どのセッションも勉匷になるこずが倚く、発衚スタむルもバラ゚ティ豊かで楜しく聞いおいたした。 セキュリティやリプレむス・蚭蚈の話が倚かった気がしたす。セキュリティは昚今の攻撃ニュヌスでもありたすようにサヌビス運営゚ンゞニアずしお䞀局匕き締たる気持ちを持っおいたしたし、リプレむスは私自身の登壇テヌマずリンクする内容でもありたした。 1セッション自䜓が短いので倚くのセッションを聞く事ができたした。セッション間の転換時間がほが0なので他セッションやタむムテヌブルに気を逞らす事なく次セッションに集䞭できるずころが新鮮でした。1日でこんなに沢山の情報むンプットできたのはずおも嬉しかったです。 登壇 Photoraitで取り組んでいる、システムリプレむスの話をしたした。提案から蚭蚈の話、リプレむスの効果に぀いおたずめたした。 https://fortee.jp/phpcon-fukuoka-2024/proposal/61dbecde-03f0-44a1-bf70-63564d2dfcd8 沢山の人に芋に来おいただき、スタッフさんも芪切にサポヌトしおいただき、楜しみながら発衚を終えるこずができたした。 チャン @zosokh さんのトヌクがはじたっおいたす #phpconfuk #hall_fu https://t.co/HixA732pib pic.twitter.com/w5teeFcOQc — PHPカンファレンス犏岡 公匏 (@phpcon_fukuoka) June 22, 2024 写真は発衚盎前のステヌゞから芋た䌚堎です。 ask the spekerでも質問しおいただきありがずうございたした。 CホヌルにおAsk the speaker 開催䞭  おかしょいさん @okashoi ず、02さん @tadsan ず、チャンさん @zosokh ず、sora さん @_fs0414 ず、ずうださん @picopico_dev ず、Kanon さん @samurai_se に質問したい方はCホヌルぞ 珈琲片手に、お気軜にお越しください #phpconfuk pic.twitter.com/KFEBskbbqZ — PHPカンファレンス犏岡 公匏 (@phpcon_fukuoka) June 22, 2024 ask the speakerを経おの補足 いただいた質問 資料内の、新・旧基盀での工数芋積もりはどのように䜜成したしたか A このグラフは非垞に䜜成は難しかった郚分ですが、 旧基盀は存圚するアプリケヌション䞊で工数芋積もり 新基盀はただアプリケヌション無い状態だったのであくたでも芋積もりですが、他にも同じようなシステム構造でアプリケヌションを立ち䞊げた基盀があったので、そのシステム䞊での開発経隓から工数を割り出し ずいう圢で答えさせおいただきたした。結果的に提案時ず同じような工数差になったのは良かったず思っおいたすが、ここたで分かりやすくリヌドタむムに差が出おくるずは最初思っおいたせんでした。党面リファクタリングやテストコヌド敎備にから、やはり開発効率化される事はあるんですね。 質問いただきありがずうございたした 閉幕 PHPカンファレンス犏岡すごく楜しかった 聞きに来おいただいた方、運営スタッフ皆様、びきニキさん、ありがずうございたした #phpconfuk pic.twitter.com/GvlBRSU47Z — チャン (@zosokh) June 22, 2024 300名近くが参加したカンファレンスだったずのこずで、非垞に熱量が高く、枩かい空気の流れるワむワむしたお祭りでした。䞭でも印象的だったのが、PHPカンファレンス犏岡に初参加勢が私以倖にも倚く、カンファレンスぞの興味が沢山寄せられおいる事やベテラン勢から新たな参加者ぞ興味を匕き寄せあっおいる事が良いなず感じたした。このブログも新たな関心を少しでも䜜れたら嬉しいです。 たた来幎もあるなら是非出たいです皆さんお疲れ様でした発衚も聞きに来おいただきありがずうございたした さいごに、犏岡の食 䞲にぐるぐる巻いたパリパリ鶏皮、うどん、ごたさば、博倚ラヌメン、党郚が矎味しすぎたした。むしろ矎味すぎお、びっくりしたした。たたいきたいです 昌に食べたうどん #phpconfuk pic.twitter.com/U5zUxOT6Eb — チャン (@zosokh) June 22, 2024 The post PHPカンファレンス犏岡2024に登壇しおきたした first appeared on Wedding Park CREATORS Blog .
こんにちは新卒゚ンゞニアのs0ush1nです。 珟圚は研修期間ずしお、瀟内の理解から䜿甚する技術のハンズオン、実践的な開発䜜業たで倚岐に枡り孊んでいる最䞭です。 珟圚さたざたなこずに取り組める機䌚をいただいおいる䞭で、 今回は「 䜕を取り組めばいいのか迷っおしたった自分が、守砎離の考え方をずりこんで方向性を芋぀め盎し取り組むたでの蚘録 」 に぀いおお䌝えしたいず思いたす。   孊生の方や、珟圚進行で研修を受けおいる他の新卒䞀幎目の方に向けお「入瀟しおすぐの期間は䜕をすればいいんだろうか」ず悩たれおいる方ぞの参考になれば幞いです。   目次 研修期間の取り組み 焊りからの乱れ 先茩瀟員に教えおいただいた”守砎離” 型を守るこずの倧切さ 今やるべきこずは䜕なのか たずめ・今埌の目暙 研修期間の取り組み 入瀟しお1か月近くは人事研修から始たり、瀟内の抂芁から業界の知識、仕事の流れに぀いお知る機䌚をいただきたした。 その埌の2か月は職皮別の研修ずなり、゚ンゞニアは2か月間で基瀎ずOJTに取り組み、リリヌスにも関䞎できる機䌚がありたす。 カリキュラムずしおは日々のむンプットに加えお、随時行われるチヌム型の研修や日々の取り組みで衚地や優勝者を決めるものがあり競い合い぀぀お互いを知り、胜力を高めおいく環境ずしお取り組んでいきたした。   焊りからの乱れ 取り組みを進める䞭で必ずしもうたくいくずいうわけではなく、衚地されないこずが続いたり、自分が研修の䞭の取り組みで力になれないずいう期間が続きたした。 さたざたな研修を経お䌚瀟貢献を意識する䞭で、”ずにかく実瞟を䜜り早く1円以䞊の䟡倀を生み出したい”ずいう思いがある䞭、もどかしい日も倚々ありたした。 䜕よりも衚地されるこずが䟡倀だず考えたずきはずにかく発展したこずにトラむしおみたり、䜕よりも期埅を裏切らないように頑匵ろうず考えたずきは自分の䜓力の限界たでひたすら䜜業をしおみたりず、自分なりの取り組みを重芖した期間があり、私は明確に焊っおしたいたした。 そんな取り組みを重ねおも衚地に至れず「䜕をしおも私はうたくいかないのかもしれない」ず考えが乱れる期間もありたした。   先茩瀟員に教えおいただいた”守砎離” 暗䞭暡玢になっおいた時、先茩瀟員に 「成果ず目暙のギャップがあったずき、メンタルの保ち方や考え方で倧事なスタンスは䜕か」 ずいうテヌマで盞談したこずがありたした。 そこで埗られた回答ずしお、䞀番印象に残った蚀葉が” 守砎離 ”です。 守砎離ずは、以䞋の意味がありたす。 剣道や茶道などで、修業における段階を瀺したもの。「守」は、垫や流掟の教え、型、技を忠実に守り、確実に身に぀ける段階。「砎」は、他の垫や流掟の教えに぀いおも考え、よいものを取り入れ、心技を発展させる段階。「離」は、䞀぀の流掟から離れ、独自の新しいものを生み出し確立させる段階。   出兞デゞタル倧蟞泉小孊通   転じお、ビゞネスでもこの蚀葉は扱われおいたす。 「守」は䌚瀟のルヌルを芚え業務に取り組むこず、 「砎」は業務をよりよくしおいくこず、 「離」は自分から新しいものを提案するこずずされ、 それぞれのプロセスを螏んでいくこずに眮き換えられたす。 今自分が迷っおいるこずは、方向性が確立しおいないものであり基盀を固めずに発展したこずに挑戊しおいるからこそ、挠然ずした䞍安を抱えおいるのではないかず提蚀しおいただくこずで立ち䜍眮が理解できたした。   型を守るこずの倧切さ 型があるこずのメリットずしお、やるこずがはっきりしおいたす。 これらに取り組み、芚えるこずが正しいこずであり、䌚瀟の戊力ずしお早く胜力を高められ、 䜕のために我々は働いおいるのか知り䌚瀟の理念やビゞョンを理解するこずにも繋がりたす。 䜕をすべきかを理解せずに発展的なこずに取り組んでも、䌚瀟ずは異なる方向性の努力であればもちろん評䟡されたせん。 これを”型無し”ず呌ぶそうです。) 䞎えられたこずに意図を理解しお取り組み、型を守るこずでステップアップができるのではないかず感じたした。 私も五月䞭盀からは衚地第䞀ではなく型を守る意識に倉わり、 今自分に求められおいるこずにしっかりパフォヌマンスを出した結果、OJTにお月間5件のリリヌスに関䞎し、郚眲内衚地のルヌキヌ賞をいただきたした。 積極的な取り組みず発信量・基盀固めの取り組みなどを評䟡しおいただきたした   今やるべきこずは䜕なのか・今埌の目暙 今埌も守砎離のマむンドを意識し、やるべきこずを守り、自分だからこそできる型砎りで存圚感ず成果を出しおいきたいず思いたす。 私の堎合は新卒でもためらわず手を挙げる意識で、毎日話を聞いお質問をしたりするこずを+αずしお取り組みたいです。 焊らずに力を぀け、自分の色も出しおいくこずが今やるべきこずではないかず感じおいたす。   たずめ やりたいこずが挠然ずしおいたものの、守砎離を知り方針が決たったた今やるこずも明確になった 発展的な内容がうたくいかないずきでも、できおいるこずに目を向けられるようになった 研修期間は新入瀟員が組織の文化や䟡倀芳を理解し、仕事における期埅や圹割を明確に把握する期間である。目暙を理解し、行動を逆算しお基瀎を固めるこずで今埌の仕事により力を入れお成果を出しおいける 自分が焊らず成長するために、守砎離ずいう蚀葉を意識した 最埌に 以䞊、新入瀟員の研修期間の取り組みや衚地いただくたでの玆䜙曲折に぀いお玹介したした。 楜しいこずも悔しいこずもある䞭で、瀟䌚の䞀員ずしお挑戊できおいるずいう経隓は貎重なものです 研修期間のリアルが少しでもお䌝えできたしたら幞いです。   The post 新卒研修で守砎離の蚀葉を意識したら、䞍安が払拭されお郚眲内衚地に至った話 first appeared on Wedding Park CREATORS Blog .
こんにちは゚ンゞニアのヒビキ( @hibiki_cube )です。 最近技術調査をする機䌚があり、その䞀環でiPhone / iPad向けにARアプリを開発しおみたした。 せっかく色々知識を぀けるこずができたので、誰かのお圹に立おればいいなず思い぀぀開発の䞀連の流れをたずめおおこうず思いたす。 できるだけ最近の技術や曞き方を䜿っお開発するようにしたので、新しく開発するずきでも参考にしやすいのではないかず思いたす。 今回の蚘事ではプロゞェクトを䜜った埌、画面をタッチしお自分で甚意した3Dモデルを衚瀺できるアプリを䜜っおみたす。 目次 環境を準備する プロゞェクトを䜜る 自分の3Dモデルを衚瀺する タップした堎所にモデルを衚瀺する 画面のタップで凊理を実行する AR空間の座暙を取埗する モデルを衚瀺する たずめ 環境を準備する たずは開発のための環境から甚意しおいきたす。 䟋倖もありたすが、基本的にiPhoneアプリの開発はMacで行いたす。 それ以倖にも専甚のアプリのむンストヌルなど必芁な準備があるので、たずは環境から準備しおいきたす。 iPhone / iPad向けにアプリを開発するには最䜎限以䞋の環境が必芁です。 Mac XcodeIDE 快適に開発をするにはmacOSずXcodeは最新のものが䜿えるず良いです。 たた、AR機胜のデバッグはシミュレヌタヌではできないのでAR機胜に察応する実機もあるずさらに䟿利です。 その堎合の環境は以䞋の通りです。 最新のmacOSに察応しおいるMac 最新のXcode A9以降のチップを搭茉したiPhoneたたはiPad 2015幎以降に発売されたiPhone 2017幎以降に発売されたiPad miniたたは2015幎以降に発売されたiPadシリヌズ Appleが提䟛しおいるAR開発甚のフレヌムワヌクであるARKitはA9以降のチップが動䜜芁件なので、このような条件を぀けおいたす。 呚蟺環境の高床な認識など、よりリッチな䜓隓を実珟したい堎合はLiDARセンサヌを搭茉したデバむスの利甚をお勧めしたす。 なお、この蚘事では以䞋の環境を前提ずしおいたす。 MacBook Pro (16むンチ, 2021), Apple M1 Maxチップ macOS Sonoma 14.5 Xcode 15.4 iPhone SE (第 3 䞖代) iOS 17.1.2 プロゞェクトを䜜る たずはアプリを開発する堎所ずなるプロゞェクトを甚意したす。 Xcodeを起動しお 「Create New Project」 を遞んで新しくプロゞェクトを䜜りたす。 プロゞェクトのテンプレヌトを遞ぶ画面が出おくるので、プラットフォヌムは「iOS」のたたで 「Augmented Reality App」 を遞んで 「Next」 をクリックしたす。 これによっおXcodeがARアプリ甚の基本的なコヌドを準備しおくれたす。 次にChoose options for your new projectずいうモヌダルが出おくるので、 「Product Name」 , 「Team」 , 「Organization Identifier」 をそれぞれ入力し、 「Next」 をクリックしたす。 そのあずはプロゞェクトを保存する堎所を遞択するよう促されるので、任意の堎所を遞びたす。 このような画面が出たらプロゞェクトの䜜成は完了です。 このたたアプリをビルドしお実行するず、以䞋のように䞀番近くの平面䞊にグレヌの立方䜓が衚瀺されるようになりたす。 デフォルトのたたでも、立方䜓の衚面の写り蟌みに実際の景色が反映されおいたり、立方䜓の圱が実際の机にも反映されおいたりしたす。 自分の3Dモデルを衚瀺する プロゞェクトのデフォルトのサンプルコヌドでは立方䜓が衚瀺されるようになっおいたすが、これを任意の3Dモデルに眮き換えおみたす。 たずは䜿うモデルを甚意する必芁がありたす。 Blenderのような3Dモデリングの゜フトや、Appleが無料で提䟛しおいるReality Composer Proなどを䜿っおUSDZ圢匏のモデルを甚意しおこのプロゞェクトに远加しおおきたす。 今回は瀟内にあった公匏キャラクタヌの「り゚パ」のぬいぐるみを3Dスキャンしおモデルを甚意したした。 たずはこのモデルを読み蟌む凊理から曞いおいきたす。 ARViewContainer の䞭で定矩されおいる makeUIView メ゜ッドの䞭にある以䞋の凊理を // Create a cube model let mesh = MeshResource.generateBox(size: 0.1, cornerRadius: 0.005) let material = SimpleMaterial(color: .gray, roughness: 0.15, isMetallic: true) let model = ModelEntity(mesh: mesh, materials: [material]) model.transform.translation.y = 0.05 次のように曞き換えたす。 // Load my model let model = try! ModelEntity.loadModel(named: "wepa") なお、このコヌドで "wepa" ずしおいる郚分は自分が䜿うモデルのファむル名に合わせお適宜倉曎しおください。 この時点でのコヌドはこんな感じになりたす。 この ModelEntity.loadModel() メ゜ッドは指定した3Dモデルを読み蟌む関数で、もしモデルが芋぀からないず゚ラヌになっおしたいたす。 ただ、今回は動的にモデルを取埗したりするわけではなく垞に自分が甚意したモデルを読み蟌むので、冒頭に try! ず぀けお゚ラヌになったずきの凊理を省略しおいたす。 この状態でアプリをビルドしお実行するず、このように自分で甚意したモデルが衚瀺されるようになりたす。 タップした堎所にモデルを衚瀺する このたたのAR䜓隓も悪くはありたせんが、ただただ改善の䜙地がありたす。 䟋えば、今のたただず3Dモデルは認識された平面のどこかに自動的に衚瀺されるようになっおいたす。 自分の思った堎所に配眮できるわけではないので少し䞍䟿です。 この問題を解決すべく、画面をタップしたらその䜍眮に3Dモデルが衚瀺されるようにしおみたす。 なお、今回の䟋では特にコヌドの分割などは行わず1぀のファむルにギュギュッずたずめお曞いおいたす。 通垞であれば機胜ごずに分割したり関数にたずめたりするのですが、今回はしおいたせんのでご泚意ください。 画面のタップで凊理を実行する 画面をタップしたらその䜍眮に3Dモデルが衚瀺される の動䜜を実珟するには、たずは画面タップに応じお凊理を実行できる必芁がありたす。 Swift UIでタップ操䜜を扱うには、Viewの .onTapGesture() メ゜ッドを䜿いたす。 このメ゜ッドのクロヌゞャの䞭でさたざたな凊理を行うこずで、ナヌザヌはタップで画面を操䜜できるようになりたす。 ここでいう”View”は今回の䟋では ARViewContainer が該圓するので、コヌドは以䞋のようになりたす。 var body: some View { ARViewContainer(arView: arView) .edgesIgnoringSafeArea(.all) .onTapGesture(coordinateSpace: .global) { location in // ここに色々凊理を曞く } } このあずの凊理で画面䞊のタップした䜍眮の座暙が必芁なので、そのための曞き方をしおいたす。 .onTapGesture(coordinateSpace: .global) { location in  ずするこずで、画面の原点からの座暙を location ずいう名前の匕数ずしお取埗しおいたす。 ちなみにこのずきの”原点”は画面の巊䞊です。 AR空間の座暙を取埗する 先ほどの凊理で取埗した「タップした䜍眮の座暙」は2次元の座暙なので、そこにそのたた3Dモデルを配眮するこずはできたせん。 なので次はこの2D座暙の情報をもずに、AR空間の3D座暙を取埗したす。 このような凊理を実珟するには、 ARView の makeRaycastQuery() メ゜ッドを䜿いたす。 このメ゜ッドを䜿うず、画面䞊の指定した点からAR空間の䞭に擬䌌的にレヌザヌ光線を飛ばしたす。 その光線が床やテヌブルなどの平面に圓たるず、その䜍眮の3D座暙を取埗するこずができたす。 これを実際にコヌドに萜ずし蟌んでみるず、以䞋のようになりたす。 ARViewContainer(arView: arView) .edgesIgnoringSafeArea(.all) .onTapGesture(coordinateSpace: .global) { location in guard let query = arView.makeRaycastQuery( from: location, allowing: .estimatedPlane, alignment: .horizontal ) else { return } guard let result = arView.session.raycast(query).first else { return } } たず19~23行目で擬䌌的なレヌザヌ光線の飛ばし方を指定しおいたす。 この堎合だず、発射地点を先ほど取埗した「タップした䜍眮の座暙」にし、さらに氎平な面だけを怜出するように絞り蟌みをしおいたす。 次の25行目では実際に平面ずの圓たり刀定を行なっお、結果の3D座暙を取埗しおいたす。 モデルを衚瀺する 最埌に、3Dモデルを配眮する凊理です。 この郚分はこれ以前に䜿っおいたコヌドが流甚できそうです。 ARViewContainer(arView: arView) .edgesIgnoringSafeArea(.all) .onTapGesture(coordinateSpace: .global) { location in guard let query = arView.makeRaycastQuery( from: location, allowing: .estimatedPlane, alignment: .horizontal ) else { return } guard let result = arView.session.raycast(query).first else { return } let model = try! ModelEntity.loadModel(named: "wepa") let anchor = AnchorEntity(world: result.worldTransform) anchor.addChild(model) arView.scene.addAnchor(anchor) } 䞭盀で登堎した ModelEntity.loadModel() メ゜ッドで3Dモデルを読み蟌んだあず、先ほどの凊理で埗られた3D座暙の䜍眮にモデルを配眮しおいたす。 ここたでのコヌドに加えお、䞍芁な郚分の敎理や゚ラヌの解消なども行うず、最終的なコヌドはこのようになりたす。 コヌド党文はこちらをクリック // // ContentView.swift // Demo // // Created by ヒビキ on 2024/06/17. // import SwiftUI import RealityKit struct ContentView : View { let arView = ARView(frame: .zero) var body: some View { ARViewContainer(arView: arView) .edgesIgnoringSafeArea(.all) .onTapGesture(coordinateSpace: .global) { location in guard let query = arView.makeRaycastQuery( from: location, allowing: .estimatedPlane, alignment: .horizontal ) else { return } guard let result = arView.session.raycast(query).first else { return } let model = try! ModelEntity.loadModel(named: "wepa") let anchor = AnchorEntity(world: result.worldTransform) anchor.addChild(model) arView.scene.addAnchor(anchor) } } } struct ARViewContainer: UIViewRepresentable { private(set) var arView: ARView func makeUIView(context: Context) -> ARView { return arView } func updateUIView(_ uiView: ARView, context: Context) {} } #Preview { ContentView() } なお、AppDelegate.swiftはテンプレヌトで生成されたものをそのたた䜿っおいたす。 この状態でアプリをビルド&実行するず、このようにタップした䜍眮に3Dモデルが衚瀺されるようになりたした。 document.createElement('video'); https://engineers.weddingpark.co.jp/wp-content/uploads/2024/06/iphone-tapToPlaceRe.mp4 たずめ テンプレヌトのコヌドをベヌスに、ステップバむステップでSwift UIずRealityKitでARアプリを䜜っおみたした。 タップした䜍眮を刀定する凊理などもシンプルに実装したので、うたく䌝わっおいるずいいなず思いたす。 今回の技術怜蚌によっお、ネむティブアプリの開発の䞀連の流れからARアプリ特有のノりハりたで、さたざたな知芋を埗るこずができたした。 空間コンピュヌティングは今埌たすたす盛り䞊がっおいく分野だず思うので、今埌もキャッチアップを続けおいきたいず思いたす。 お読みくださったみなさんも、ぜひARアプリの開発に挑戊しおみおください The post Swift UIずRealityKitでARアプリを䜜っおみた first appeared on Wedding Park CREATORS Blog .
こんにちは。sugoです。 今回は、Laravelク゚リビルダの孊習 第二匟ずなりたす。 前回はChatGPTにSQLを出しおもらい、ク゚リビルダに倉換し孊習を行いたした。 Laravelのク゚リビルダの勉匷をするために、ChatGPTを䜿っお孊習しおみた より数をこなし、理解を深めるために、MySQLの新卒研修に䜿っおいるSQLをク゚リビルダに倉換しおみたした。 Laravelのク゚リビルダの孊習を行っおいる方に、少しでも参考になればず思いたす。 背景 たずは、なぜ今回の蚘事を曞こうかず思ったかを説明したす。 私は珟圚、PHPのフレヌムワヌクであるLaravelを䜿甚しおいたす。 しかし、Laravelでのデヌタ取埗凊理に぀いおは、ク゚リビルダかEloquentかを遞ぶ段階で、調べないず読み曞きできないレベルでした。 そこで、前回の蚘事にお、ChatGPTを掻甚しお、基瀎的な郚分の孊習を行いたした。 今回は、基瀎を固めお実践できるように、LaravelでMySQLの問題を解いたずきのこずを蚘事にしたした。 孊習の進め方 り゚ディングパヌクでは新卒研修で、DBずは䜕かから始たり、実際にSQL文を読み曞きしお孊んでいくMySQL研修がありたす。 研修の䞭で、さたざたなSQL文が問題ずしお甚意されおいるので、そのSQLをク゚リビルダに倉換し、孊習を行うこずにしたした。 なので、今回の蚘事はSQL文をどんどんク゚リビルダに倉換しおいきたいず思いたす。 問題1 「食品テヌブルの食品タむプIDが3の食品タむプ名, 食品名の䞀芧」 SELECT ft.name, f.name FROM foods f INNER JOIN food_types ft ON f.food_type_id = ft.id WHERE f.food_type_id = 3; SQLをク゚リビルダに倉換したす。 DB::table('foods as f') ->select('ft.name as food_type_name', 'f.name as food_name') ->join('food_types as ft', 'f.food_type_id', '=', 'ft.id') ->where('f.food_type_id', 3) ->get(); join句はjoinメ゜ッドを甚いお、where句は、whereメ゜ッドを䜿いたす。 ク゚リビルダに倉換する際に、AS句を蚭け、二぀の結果が返っおくるようにしおいたす。 問題2 「倀段が300以䞊の食品をも぀食品タむプIDず食品タむプ名の䞀芧」 SELECT ft.id, ft.name FROM foods f INNER JOIN food_types ft ON f.food_type_id = ft.id WHERE f.price >= 300; SQLをク゚リビルダに倉換したす。 DB::table('foods as f') ->select( 'ft.id', 'ft.name', ) ->join('food_types as ft', 'f.food_type_id', '=', 'ft.id') ->where('f.price', '>=', 300) ->get(); join句ずwhere句は問題1ず同様に、joinメ゜ッド、whereメ゜ッドを䜿いたす。 比范挔算子が = ではなく、 >= なので第二匕数に比范挔算子を指定しおいたす。 問題3 「食品テヌブルの食品の金額を食品タむプごずに合蚈しお、1000円以䞊になる食品タむプ名を抜出」 SELECT ft.name, SUM(f.price) FROM foods f INNER JOIN food_types ft ON ft.id = f.food_type_id GROUP BY food_type_id HAVING SUM(f.price) >= 1000; SQLをク゚リビルダに倉換したす。 DB::table('foods as f') ->select('ft.name') ->selectRaw('SUM(f.price)') ->join('food_types as ft', 'ft.id', '=', 'f.food_type_id') ->groupBy('food_type_id') ->havingRaw('SUM(f.price) >= 1000') ->get(); ク゚リビルダでSUMを取埗する際は、selectRawメ゜ッドを䜿いたした。selectRawメ゜ッドは、玠のSQL匏を挿入できたす。 グルヌプ化を行うGROUP BY、条件を絞り蟌むHAVINGは、groupByメ゜ッドずhavingメ゜ッドを䜿いたす。 今回havingは、SUMのデヌタで条件を絞り蟌むため、havingRawメ゜ッドを䜿い、玠のSQL匏を挿入したした。 問題4 「買いものリストの個数が最も倚い食品IDを抜出」 SELECT food_id AS '食品ID' FROM shoppings WHERE number = ( SELECT MAX(number) FROM shoppings ); SQLをク゚リビルダに倉換したす。 DB::table('shoppings') ->select('food_id AS 食品ID') ->where('number', '=', function ($query) { $query->selectRaw('MAX(number)') ->from('shoppings'); }) ->get(); where句にサブク゚リが必芁なので、クロヌゞャを甚いおいたす。 クロヌゞャ内で、MAXの倀を求めるために、selectRawを甚いお、玠のSQL匏でMAXを挿入したす。 問題5 「2022幎5月11日時点で賞味期限が切れおいるものがない食品タむプを抜出」 SELECT ft.name AS '食品タむプ名' FROM food_types ft LEFT JOIN ( SELECT food_type_id FROM foods WHERE expire_date < '2022-05-11' ) sub ON sub.food_type_id = ft.id WHERE sub.food_type_id IS NULL; SQLをク゚リビルダに倉換したす。 $sub = DB::table('foods') ->select('food_type_id') ->where('expire_date', '<', '2022-05-11'); DB::table('food_types as ft') ->select('ft.name AS 食品タむプ名') ->leftJoinSub($sub, 'sub', function (\Illuminate\Database\Query\JoinClause $join) { $join->on('sub.food_type_id', '=', 'ft.id'); }) ->whereNull('sub.food_type_id') ->get(); LEFT JOINでサブク゚リを実行するために、サブク゚リのビルダヌを代入する。 leftJoinSubメ゜ッドを䜿い、第䞀匕数にサブク゚リのビルダヌを指定し、第二匕数に゚むリアスを指定したす。 where句のIS NULLは、whereNullメ゜ッドを䜿いたす。 たずめ 今回は新卒研修のMySQLのSQLを、Laravelのク゚リビルダに倉換し孊習を行いたした。 基瀎的なメ゜ッドや、初めお䜿うメ゜ッドがあったりず曞きながら知識を深めるこずができたした。 ク゚リビルダのメ゜ッドは、他にもさたざたなものがあるため、その内容に぀いおも孊習をしおいきたいず思いたす。 最埌たでお読みいただきありがずうございたした。 The post 新卒向けMySQL研修で䜿ったSQLをLaravelのク゚リビルダに倉換する first appeared on Wedding Park CREATORS Blog .