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

抽象化という思考のツール - 開発現場での活用 - / Abstraction-as-a-To...

Avatar for shin1x1 shin1x1
September 11, 2025

抽象化という思考のツール - 開発現場での活用 - / Abstraction-as-a-Tool-for-Thinking-in-dev

2025-09-09 PHPカンファレンス関西 アフターパーティー in スマレジ

Avatar for shin1x1

shin1x1

September 11, 2025
Tweet

More Decks by shin1x1

Other Decks in Programming

Transcript

  1. D .BTBTIJ4IJOCBSB!TIJOY ந৅Խྫ TIJOY w ࢯ໊ w ੜ೥݄೔ʢ೥ྸʣ w ݂ӷܕ

    w ॅॴ w ϝʔϧΞυϨε w ࡕਆϑΝϯ w ສതճߦͬͨ w ͳͲ
  2. D .BTBTIJ4IJOCBSB!TIJOY ந৅Խྫ TIJOY w ࢯ໊ w ੜ೥݄೔ʢ೥ྸʣ w ݂ӷܕ

    w ॅॴ w ϝʔϧΞυϨε w ࡕਆϑΝϯ w ສതճߦͬͨ w ͳͲ จ຺ษڧձࢀՃ จ຺ʹଈͨ͠ந৅ w DPOQBTTϢʔβ໊ w ϝʔϧΞυϨε
  3. D .BTBTIJ4IJOCBSB!TIJOY ந৅Խྫ TIJOY w ࢯ໊ w ੜ೥݄೔ʢ೥ྸʣ w ݂ӷܕ

    w ॅॴ w ϝʔϧΞυϨε w ࡕਆϑΝϯ w ສതճߦͬͨ w ͳͲ จ຺ݙ݂ w ࢯ໊ w ݂ӷܕ w ݙ݂ཤྺ w ମॏ w ମԹ w ͳͲ จ຺ʹଈͨ͠ந৅
  4. ࣮૷ཻ౓ͷந৅౓͕௿͍ public function register(Request $request) { $errors = []; if

    (!$request->input('name')) { $errors['name'] = '໊લ͸ඞਢͰ͢'; } // snip if (!empty($errors)) { return response()->json(['errors' => $errors], 422); } $userId = DB::table('users')->insertGetId([ 'name' => $request->input('name'), 'email' => $email, // snip ]); return response()->json([ 'message' => 'ొ࿥͕׬ྃ͠·ͨ͠', 'userId' => $userId, ], 201); } ༷ʑͳίʔυ͕͍ࠞͬͯͯ͡ ཧղͮ͠Β͍
  5. ✅࣮૷ཻ౓ͷந৅౓͕ߴ͍ public function register(Request $request) { $errors = $this->validateRegistration($request); if

    (!empty($errors)) { return $this->validationErrorResponse($errors); } $userId = $this->createUser($request); return $this->registrationSuccessResponse($userId); } QSJWBUFϝιουݺͼग़͠ͷΈͰॲཧϑϩʔΛهड़ શମͷॲཧͷྲྀΕ͕෼͔Γ΍͍͢ɻ ʢผΫϥεʹ࣮૷͢Δͷ΋0,ʣ
  6. ✅ந৅౓ͷ௿͍ίʔυ͸֤ϝιουʹ෼ׂ private function validateRegistration(Request $request): array { // όϦΤʔγϣϯ }

    private function validationErrorResponse(array $errors): Response { // όϦσʔγϣϯΤϥʔϨεϙϯεੜ੒ } private function createUser(Request $request): int { // Ϣʔβอଘ } private function registrationSuccessResponse(int $userId): Response { // ਖ਼ৗϨεϙϯεੜ੒ } ॲཧର৅͕ϝιου͝ͱʹ ෼ׂ͞Ε͍ͯΔͷͰཧղ͠΍͍͢