라라벨 엘로퀀트 모델 이벤트 고찰

today 2017-10-22 face Posted by appkr turned_in Work & Play forum 0

라라벨 엘로퀀트에서 발생하는 모델 이벤트를 실험한 결과 입니다. 선점 잠금과 비선점 잠금 실험을 위한 프로젝트에 이벤트 리스너를 등록하고 엘로퀀트 모델을 DB에 저장하고, 변경한 후 DB에 저장하고, 삭제할 때 어떤 이벤트가 발생하는지 살펴 봤습니다.

이벤트를 잡기 위한 리스너 클로저는 아래와 같습니다.

<?php // https://github.com/appkr/db-lock-poc/blob/master/app/Providers/EventServiceProvider.php

class EventServiceProvider extends ServiceProvider
{
    public function boot()
    {
        Event::listen('eloquent.*', function ($event) {
            Log::info($event);
        });
    }
}

관찰자(Observer) 패턴은 관찰의 대상이 되는 타입에, 대상을 관찰하려는 타입을 등록해두고, 특정 사건(Event)이 발생하면 등록된 관찰자의 함수를 호출하는 겁니다. 쉽게 말하면, “밥 다되면 불러줘~”라고 미리 말해두고, 밥이 다 되면 알려주는 거죠.

“관찰자를 등록하고 사건이 발생하면 등록된 관찰자들에게 알려준다”는 큰 개념은 같지만, 라라벨의 엘로퀀트 모델은 $observables 변수에 객체가 아닌 문자열로 관찰자를 등록합니다. 그리고 엘로퀀트에서는 save()와 같은 퍼블릭 함수가 작동할 때, 자신의 fireModelEvent('created') 함수를 호출하고, 이 함수가 다시 관찰자에서 이벤트와 같은 이름을 가진 함수, 예를 들어 created($this)를 호출하는 식으로 작동합니다.

소프트웨어 장인 by 산드로 만쿠소

today 2017-09-23 face Posted by appkr turned_in Learn & Think forum 0

[p.316] 나는 일을 선택하기 전에 아래와 같은 질문들을 스스로에게 던졌다.

  • 나의 커리어로부터 나는 무엇을 원하는가?
  • 그것을 성취하기 위한 다음 단계는 무엇인가?
  • 이 일은 나의 커리어 방향과 합치하는가?
  • 내가 이 회사에 줄 수 있는 가치의 양은 얼마나 되는가?
  • 그러한 투자에 대한 이익은 무엇인가?
  • 그러한 투자는 대략적으로 얼마 동안 지속되어야 하는가?
  • 내가 되고자 하는 프로페셔널에 이르는 데 이 일은 어떻게 도움이 되는가?
  • 이 일에서 나는 자율성, 통달, 목적의식을 가질 수 있나?
  • 나의 고용주와 생산적인 동반자 관계를 맺을 수 있나? 양측 모두 가치를 얻고 행복할 수 있나?

애자일 선언서 이해하기

today 2017-08-20 face Posted by appkr turned_in Learn & Think forum 0

그림출처: //forintus.com/tag/agile-manifesto/

Manifesto for Agile Software Development

We are uncovering better ways of developing software by doing it and helping others do it.

Through this work we have come to value:

 

INDIVIDUALS AND INTERACTIONS over PROCESSES AND TOOLS

WORKING SOFTWARE over COMPREHENSIVE DOCUMENTATION

CUSTOMER COLLABORATION over CONTRACT NEGOTIATION

RESPONDING TO CHANGE over FOLLOWING A PLAN

 

That is, while there is value in the items on the right, we value items on the left more.

 

Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas

 

©2001, the above authors

this declaration may be freely copied in any form, but only in its entirely through this notice.

코드 비용에 대한 2016년의 메모

today 2017-08-12 face Posted by appkr turned_in Learn & Think forum 0

책상을 정리하다가 “라라벨 빨간책”이라 알려진 책을 집필하며 2016년 초에 쓴 메모 중 일부를 찾았다.

실무 개발자로 일하지 않던 시절 피상적으로만 생각하던 내용들이 지금은 피부에 와 닿는다. 이 포스트의 본문은 최근 나 또는 내가 속한 팀이 처한 상황에 거의 흡사하게 오버랩핑되는 2016년 메모의 일부분이다. 내 기억이 맞다면, 누군가의 영상 강의를 보고 메모한 것이다.

이 시대의 스승(엉클 밥, 파울러 옹 등)들이 언급한 소프트웨어 개발자로서 코드를 대하는 자세, 즉 소프트웨어의 제 2가치와 제 1가치에 대해 다시 한번 되새겨본다.

개발해서 남에게 납품하는 소프트웨어는 굳이 이럴 필요까진 없다고 생각한다. 그러나, 자신의 서비스를 위해 소프트웨어를 개발한다면, 개발자가 코드를 완전히 소유할 수 있는 시간과 비용을 인정해 줘야 한다.

keyboard_arrow_up