원격으로 서서 빨지 않는다.

6089 단어
의사소통이 어렵다.이것이 바로 민첩한 단체가 정기적으로 스탠딩 회의를 개최하는 이유다.원격 팀에서 의사소통이 더욱 어렵다.이것이 바로 우리가 우리를 도울 도구가 있는 이유다.회의 확대/축소, 달력 공유 및 서서 조사.기술의 위대함은 대부분 자동화할 수 있다는 데 있다.고정된zoom 회의를 예약하고 공공 달력에 대한 링크를 삭제하고 조사를 작성하여 매주 월요일 오전에 팀에 자동으로 보냅니다.
자동화의 문제는 일을 평범하게 하고 심지어는 지루하게 만드는 것이다.우리는 더 이상 zoom 회의에 관심을 갖지 않고 일을 완성하기 시작했다. 우리는 똑같은 낡은 답안으로 똑같은 스탠딩 질문에 대답하기 시작했고 아무 생각도 하지 않았다.

Do you have any blockers?
Nope, I'm good.

What are you working on this week?
Same feature, we were working on last week.


응, 우리는 더 잘할 수 있어.


저는 Lambda School을 위해 프로젝트를 하고 있습니다. 이것은 대부분이 원거리입니다. 관상바이러스 이후 완전히 원격의 온라인 인코딩 캠프입니다.그들은 우리 팀으로 하여금 더욱 인성화된 조사 절차를 세우게 했다.우리의 아폴로 프로젝트는 기계 발송 조사를 안배할 필요가 없고, 팀 책임자가 수동 발송 조사를 결정할 필요가 있다.그들은 우리가 괴물이 아니라는 것을 그들의 부드러운 뇌로 기억할 필요가 없다. 그들은 조사 요청을 해야 한다는 통지를 받을 것이다.
아폴로가 조사 결과를 자동으로 보내지 않는 이유는 팀 책임자가 조사에 대한 배경 정보를 제공할 기회가 있기 때문이다. 그들은 팀에게 시간을 내서 조사 결과를 작성하라고 요구했다.맞아요. 조사 요청을 하기 전에 팀 담당자가 스스로 대답해야 해요.이번 주 우선권이 바뀌었나요?이해관계자는 팀에 조사 요청에 어떻게 대답하는지 알려주는 새로운 소통이 있습니까?이런 가치 있는 배경은 자동으로 생성되는 조사 요청의 단조성을 깨뜨리고 서 있는 데 가치 있는 견해를 제공할 수 있다.따라서 Apollo의 작업 원리는 Geekbot 등 다른 제품과 매우 비슷하지만 추가 층을 추가하여 보내는 모든 조사에 배경을 제공한다.

미래를 내다보다


우리 팀은 이 프로젝트를 시작하게 되어 매우 기쁘지만, 우리는 여전히 대답하지 않은 문제와 새로운 도전이 있다.우리는 사용자의 요구를 더욱 잘 이해하기 위해 응용 프로그램의 절차를 더욱 잘 이해해야 한다.우리의 계획은 Geekbot을 하나의 팀으로 사용하고 우리가 효과적인 MVP가 있을 때마다 우리 자신의 제품을 사용하여 우리의 일상적인 홍보를 하는 것이다.응, yummy dogfood.이 밖에도 우리는 익숙하지 않은 기술을 사용할 수 있는 도전/기회에 직면해 있다.API 외에 이 제품은 사용자에게 알림을 전송하기 위한 메시지 서비스가 필요합니다. 이것은 우리가 이전에 해 본 적이 없는 일입니다.또한 OAUTH 대신 새로운 인증 플랫폼 OKTA를 사용할 것입니다.쿨, 출근해야지.

우리는 심지어 모형이 하나 있다



소매를 걷어올리다


우리의 응용 프로그램은 Java Spring API가 지원하는 React SPA로 구성됩니다.제가 개발한 첫 번째 기능 중 하나는 다단계 폼 구성 요소입니다. 사용자가 조사를 설정하여 팀에게 보낼 수 있도록 합니다.머지않아, 우리는 구성 요소에 데이터를 제공하기 위해 데이터가 필요하기 때문에, 나는 백엔드로 옮겨서 우리의 노드를 일하게 할 것이다.

모델, 서비스, 컨트롤러, 오 마이 갓!


네.아침 발톱 냄새.우리는 데이터베이스 디자인에 따라 모델을 실현한 후에 JSON을 제작하여 고객의 수요를 만족시키기 시작했다.우리는 필요한 단점을 돌렸다.GET의 POST, PUT 및 DETELE. 엔드포인트를 보호하고 사용자만 액세스할 수 있도록 허용하기 전까지는 모든 것이 순조롭게 실행됩니다.
그 전에 제가 API를 만든 경험은 직접 사용자를 검증하는 것입니다.이 프로젝트는 OTKA를 사용하여 인증을 처리하도록 요구합니다. 그러면 사용자 정보를 가진 책임을 지지 않고 권한 수여 단점만 걱정할 필요가 있습니다.
다행히도 OKTA에는 좋은 문서가 있습니다. Github에는 몇 가지 초급 항목이 있습니다. 우리는 그 중에서 선택하고 배울 수 있습니다.OTKA를 어플리케이션에 통합하기 시작했을 때 알 수 없는 큰 차이점이 있었지만 이는 비교적 간단한 과정이었습니다.

요컨대 OKTA 프로세스.

  • 클라이언트 응용 프로그램에서 로그인 정보를 OTKA 양식에 입력하라는 메시지를 표시합니다.
  • 성공하면 OTKA는 JWT 토큰과 그 권한을 반환합니다*사용자가 API에 요청할 때 클라이언트 응용 프로그램도 영패
  • 를 보냅니다.
  • API는 영패가 있는 요청을 받은 후 이 영패를 OKTA에 전송하여 영패가 확실히 합법적인지 확인한다.
  • 이윤!
  • 우리는 1단계와 2단계를 신속하게 완성할 수 있기 때문에 이제 우리의 API를 설정할 때가 되었다.
    OKTA 서버와 어떻게 대화합니까?
    OKTA는 프로젝트 관리자로서 MAVEN을 사용하여 플러그인을 제공합니다.지금까지는 쉬웠어요.
            <dependency>
                <groupId>com.okta.spring</groupId>
                <artifactId>okta-spring-boot-starter</artifactId>
                <version>1.4.0</version>
            </dependency>
    
    다음은 JWT 토큰을 찾기 위해 Spring 보안을 설정해야 합니다.
    @Configuration
        public class OktaAuthSecurityConfig extends WebSecurityConfigurerAdapter {
    
            @Override
            protected void configure(HttpSecurity http) throws Exception {
                http.authorizeRequests()
                        .anyRequest().authenticated()
                        .and()
                        .oauth2ResourceServer().jwt();
            }
        }
    
    지금까지는 괜찮았지만, 우리는 어디에서 영패를 검사합니까?우리는 application.properties 에서 설정할 수 있다
    spring.security.oauth2.resourceserver.jwt.issuer-uri=https://auth.{ourUniqueDomain}/oauth2/default
    
    aaaand.그렇습니다.아니오, 정말이에요.이게 다야.
    지금, 우리는 이 영패를 우리의 단점에 사용합시다.
    끝점을 만들고 사용자에게 안부를 묻겠습니다.
        @GetMapping(value = "/greet",
                produces = {"application/json"})
        public ResponseEntity<?> greetUser(Authentication authentication) {
            String greeting = "Hello, " + authentication.getName();
            return new ResponseEntity<>(greeting,
                    HttpStatus.OK);
        }
    
    휴, 이제 효과가 있는지 봅시다.우체부에서 종점에 도달합시다.

    우리 해냈어!



    그럼 우리 어떡하지?우리는 영패를 얻고 그 영패를 백엔드에 전달할 수 있는 전단이 있다.우리의 백엔드는 영패를 검증하고 사용자에게 데이터를 제공할 수 있다.우리의 사용자는 그들의 팀을 위해 조사를 만들 수 있고, 사용자는 팀에 가입할 수 있으며, 지도자는 그들이 만든 팀 조사를 보낼 수 있으며, 심지어는 조사를 동적으로 수정할 수 있으며, 팀 구성원은 이 조사에 대답하고 다른 사람의 대답을 볼 수 있다.이것은 좋은 시작이지만, 우리의 제품은 아직 완성되지 않았다.
    우리는 여전히 모든 조사 회답에 대해 진일보한 토론을 진행하기 위해 논평을 실시하기를 희망한다.지도자는 조사 결과에 따라 보고할 수 있어야 한다.그리고 우리는 여전히 우리의 메시지 서비스를 해결해야 한다.우리는 다시 한 번 이런 일을 어떻게 실시할 것인가에 대한 거대한 미지에 직면해 있다.차갑다
    ...아마도 이것은 미래의 문장이 될 것이다.

    [업데이트]


    나는 더 이상 다른 글을 쓰지 않고 이곳에서 업데이트를 발표하기로 결정했다.그렇다면 우리는 대기사항 목록에 몇 가지 기능을 추가했습니까?하나도 없다
    우리의 응용 프로그램은 내가 상상한 것보다 더욱 완벽해야 한다.테스트, 문서 작성, 스타일링 사이에서 우리는 지난 4주 동안 접시를 가득 채워서 응용 프로그램이 정상적으로 작동할 수 있도록 했다.
    우리는 매일 우리의 응용 프로그램을 사용하는 데 전념하는데, 보이가 이렇게 하는 것은 정말 우리의 응용 프로그램이 얼마나 나쁜지 보여 준다.우리는 확실히 우리가 얻은 진전을 과대평가했다.예를 들어 우리가 이 프로그램을 사용하기 시작했을 때, 우리는 조사를 만드는 데 응용 프로그램을 파괴하는 오류가 있다는 것을 깨달았다.기본 문제를 편집하려고 하면 전체 프로세스가 중단되어 조사를 보낼 수 없습니다.그 밖에 우리의 디자인도 통일되지 않았다.우리가 구성 요소를 구축할 때, 모든 프로그래머는 간단하게 설계 결정을 내렸다.이것은 디자인을...유일했어
    그래서 나는 응용 프로그램을 정상적으로 실행하는 것이 성공의 절반에 불과하다는 것을 알게 되었다.소프트웨어를 발송할 수 있는 상태로 만들려면 아직도 해야 할 일이 많다.이것은 내가 앞으로 프로젝트가 얼마나 걸릴지 예측하고 프로젝트의 생명 주기와 프로젝트가 특정한 상태에 있는 위치를 더욱 잘 이해하도록 도와줄 것이다.
    다음까지!

    좋은 웹페이지 즐겨찾기