스피커 | 성적 증명서 |
| 웨인 레빈 | 지속적인 개선을 위해 JSL 애플리케이션의 Hamcrest 자동 테스트를 확장하는 세션에 오신 것을 환영합니다. |
| 여기서 보여 드릴 것은, 여러분에 대한 약속입니다. 여러분도 생산적인 비용 효율적인 제품을 구축 할 수있는 방법을 보여 드리겠습니다. |
| 높은 품질 보증, 높은 신뢰성 및 지원 가능한 JMP 기반 미션 크리티컬 통합 분석 시스템. 그래 할 말이 많지만 그건 |
| 이것이 바로이 환경에서 우리가하는 일입니다. 우리는 매우 만족합니다. 여러분과 공유 할 수있게되어 정말 영광입니다. |
| 그래서 여기에 우리가 여기서 따를 의제가 있습니다. 약간의 소개, 내 자아, 잠시 후에 그렇게하겠습니다. 그리고 Predictum에 대해 조금만 말씀 드리겠습니다. 우리에 대해 너무 많이 알지 못할 수도 있기 때문입니다. |
| 우리의 배경, JSL 개발의 배경, 인프라, 그와 관련된 약간의 역사. |
| 그리고 우리가 여러분과 공유하기 위해 여기에 배치 한 변화의 결과입니다. 그런 다음 데모를 수행하고 다음 작업, 앞으로 계획 한 작업에 대해 이야기하고 마지막으로 질문이있을 경우 공개 할 것입니다. |
| 저는 웨인 레빈입니다. 여기 오른쪽에있는 저입니다. 저는 Predictum의 사장이고 합류했습니다. |
| 빈스 폴러와 함께. Vince는이 중요한 이니셔티브를 이끌고있는 우리의 최고 소프트웨어 엔지니어입니다. 그래서 우리에 대해 조금, 바로 거기. 우리는 JMP 파트너입니다. |
| 우리는 1992 년에 시작하여 29 년이되었습니다. |
| 우리는 JMP를 사용하여 통계적 방법에 대한 교육을 수행하고 해당 영역에 대한 컨설팅을 수행하며 구축 및 |
| 통합 분석 응용 프로그램 및 시스템을 배포하기 때문에 이러한 노력이 우리에게 매우 중요했습니다. 우리는 처음으로 JMP 애플리케이션을 |
| 2000 년에 JMP 4.0은 실제로 20 년이 넘었고 우리는 더 큰 시스템을 구축해 왔습니다. 물론 그 당시부터는 너무 작은 도구 였지만 JMP 8 또는 9에서 더 큰 시스템을 구축하기 시작했습니다. |
| 그래서 우리는 이것에 대해 꽤 많은 역사를 가지고 있습니다. 쉽게 10 년이 넘습니다. 약간의 배경 지식 만 있으면됩니다. 2019 년 하반기까지 개발 환경은 정말 이질적이었고 단편적이었습니다. |
| 프로젝트 관리 |
| 하지만 다시 모든 것이 깨졌습니다. 버전 제어 및 시간 관리, 개발자 시간 등을위한 다양한 응용 프로그램이 있었고 일반적으로 프로젝트 관리 만있었습니다. |
| 개발자들은 쉽게 지출했고 이에 대해 이야기하겠습니다. |
| JMP 애드 인 암호화 및 패키징과 같은 일상적인 기계 작업을 수행하는 데 약 절반의 시간이 소요됩니다. 알다시피 구성 패키지를 유지하고 |
| 암호화 된 스크립트와 암호화되지 않은 스크립트에 대해 리포지토리 또는 일반적으로 리포지토리라고 부르는 것을 분리합니다. 그건 ... 그게 개발 작업이 아니라고 생각해야 할 것이 많았습니다. 정말 일 이었어요 |
| 개발자 재능은 ... 낭비되었습니다. 또한 제가 말했듯이 우리는 오랫동안 해왔습니다. 2019 년에도 10 년이 걸렸습니다. 그래서 10 년이 넘는 레거시 프레임 워크가 JMP 5까지 거슬러 올라갑니다. 알다시피, 부풀어 오르고 느려졌습니다. |
| 그리고 우리는 JMP가 수년에 걸쳐 먼 길을 왔다는 것을 알고 있습니다. JMP 9에서는 네임 스페이스가 있고 JMP 14는 클래스를 도입했습니다. 그때가 바로 Hamcrest |
| 시작되었습니다. 그리고 우리가 이것을 할 수있게 해준 것은 Hamcrest였습니다. 그래서 우리는 2019 년 8 월에이 주요 이니셔티브를 시작했습니다. |
| 그리고 그 때 우리가 첫 번째 Gitlab 라이선스를 획득하고 그것은 우리의 새로운 개발입니다. 우리의 새로운 개발 아키텍처의 개발이 시작되었고 그 이후로 계속 개선되고 있습니다. |
| 매월 기본적으로 우리는 앞으로 나아갈수록 생산성을 높이기 위해 역량을 추가하고 구축해 왔습니다. |
| 그리고 그것은 계속되고 있습니다. 그래서 우리는 실제로 이것을 린 (Lean) 유형의 노력이라고 생각합니다. 실제로 린 원칙을 따르며 개발을 가속화합니다. |
| 이 시스템 덕분에 자동화 된 테스트가 있으며 Vince가이를 보여줄 것입니다. 여기에이 작은 모델이 있습니다. 일찍 테스트하고 자주 테스트합니다. |
| 그리고 그것이 우리가하는 일입니다. 코드 재사용을 지원하며 Predictum 시스템 프레임 워크를 재개발했습니다. 이제 2.0입니다. 우리는 이전의 노력에서 많은 것을 배웠습니다. 사라진 모든 것, 거의 사라진 것, 그리고 대체되고 확장되었습니다. |
| 그리고 빈스는 그것에 대해 더 많이 알려줄 것입니다. 쉽고 간단하게 우리는 생산성이 50 % 이상 증가했으며 개발자가 훨씬 더 행복하다고 말씀 드리고자합니다. 그들은 덜 좌절합니다. |
| 그들은 자신의 작업에 더 집중하고 있습니다. 지루한 종류의 일이 아니라 개발자가해야하는 실제 작업을 의미합니다. |
| 여전히 개선의 여지가 있습니다. 그래서 우리는 끝나지 않았고 Vince는 그것에 대해 더 많이 말할 것입니다. |
| 현재 개발 표준이 있으므로 기능에 대한 스타일 가이드가 있으며 모든 개발이 기능 기반이라고 말할 수 있습니다. |
| 각 기능에는 적어도 하나의 Hamcrest 테스트가 필요하며 개발자가 서로 공유하는 코드 리뷰가 있습니다. |
| 우리의 표준을 따르고 있는지 확인합니다. 그리고 어떻게 이러한 표준을 강화하고 더 나은 것으로 만드는지에 대한 의문을 제기합니다. |
| 개발자가 코드를 깨도록 권장하는 일종의 재미있는 세션도 있습니다. |
| 맞습니다, 그래서 그들은 이러한 브레이크 코드 도전, 또는 당신이 무엇과 같이 불립니다. 그래서 그것은 우리의 방식의 일부가되었고 모든 것이이 개발 환경에 적합합니다. 예를 들어, 추가 테스트, 추가 Hamcrest 테스트가 추가됩니다. 아주 작은 프로젝트가 하나 있습니다. |
| 약 1 년 전에했던 것입니다. 우리는 그것의 새로운 단계로 가고 있습니다. 잘 끝났어 ... |
| 100 개가 넘는 Hamcrest 테스트가 내장되어 있으며 개발 프로세스를 통해 반복해서 실행됩니다. |
| 따라서 다른 이점은 개발자가 무엇을하는지와 같이 리소스 할당을 할당하고 추적 할 수 있다는 것입니다. 모두가 다른 사람이 무엇을하고 있는지 알고 있습니다. |
| 지속적 통합, 지속적 배포 등), |
| 코드 충돌이 조기에 감지됩니다. 만약 그렇다면 ... 우리는 여러 사람이 일부 프로젝트를 작업하고 있습니다. 그래서 누군가가 여기에서 함수를 변경하고 있고 다른 누군가와 충돌 할 것입니다. 하고있다. 우리는 훨씬 더 빨리 알아낼 것입니다. |
| 또한 여러 직원의 지원 가능성을 개선 할 수 있습니다. 특정 개발자에게 의존하는 코드를 가질 수 없습니다. 개발자 나 지원 담당자가 지원할 수있는 코드가 있어야합니다. |
| 앞으로 나아가고 있습니다. 그것은 우리의 중요한 목표이기도합니다. 그리고 그것은 전체 품질 보증 영역을 일반적으로 발전시킵니다. |
| QA에 관한 FDA 요구 사항 지원, 유효성 검사, IQ OQ PQ 등이 포함됩니다. 그래서 ... 우리는 자동화 또는 반 자동화 중입니다. |
| 이 인프라를 통해 이러한 작업을 수행합니다. 우리는 내부적으로 그리고 외부 적으로 그것을 사용합니다. |
| 일부 제품은 (???) Kobe sash lab하지만 새로운 제품은 스팸 잘 Kobe send spam (???)은 다른 곳에서도 화제를 모으고 있습니다. |
| 2021 년 JMP Discovery European Conference에서 가서 확인해보고 싶겠지 만 꽤 큽니다 |
| 코드베이스는 모두 개발되어 있습니다. 즉, 우리는 그 표현을 알고 있다면 우리 자신의 개 사료를 먹지만 우리는 모든 클라이언트와 함께 사용합니다. |
| 개발, 그래서 이것은 우리 고객에게 중요한 것입니다. 우리는 그들이 의존 할 응용 프로그램을 구축하고 있기 때문입니다. |
| 그래서 우리는 ... 우리가 신뢰할 수있는 인프라를 가져야합니다. 어쨌든 그것은 이것의 큰 부분입니다. |
| Predictum 시스템 프레임 워크를 언급했습니다. 여기에서 일부 스 니펫을 볼 수 있습니다. 그것은 스크립팅 색인 안에 있으며, 우리는 인수와 |
| 예와 그 모든 것. 우리는 그 모든 것을 구축했고 95 %, 그들 중 95 % 이상이 그들과 관련된 Hamcrest 테스트를 가지고 있습니다. 물론 우리의 목표는 그들 모두가 그렇게하고 우리가 거기에 도달하도록하는 것입니다. |
| 우리는 거기에 가고 있습니다. 이 프레임 워크 ...이 프레임 워크는 실제로 여기 인프라의 일부입니다. 그것은 그것의 중요한 요소 중 하나입니다. 또 하나는 ... 햄 레스트 ... |
| 단위 테스트를 수행하는 능력. 그리고 저는 ... 마지막에 ... 슬라이드가 있습니다.이 슬라이드는 여러분이 Hamcrest에 대해 더 많이 배울 수있는 커뮤니티로의 링크를 제공 할 것입니다. 이것은 |
| 몇 분 전에 언급했듯이 JMP 14에서 JMP가 우리에게 가져온 개발입니다. Gitlab은 이것의 큰 부분입니다. 프로젝트 관리 저장소, CI / CD 파이프 라인 등을 제공합니다. |
| 또한 우리가 만든 JSL 용 비주얼 스튜디오 코드 확장이 있습니다. 여기에서 별 5 개를 볼 수 있습니다. |
| 비주얼 스튜디오에서. 우리가 그것을 무엇이라고 부르는지 모르겠습니다. 빈스, 당신은 우리에게, 가게에 대해 말해 줄 수있을 것입니다. 수백 번 다운로드되었고 우리는 |
| 정기적으로 업데이트합니다. 그래서 그것은 당신이 가서 찾아 볼 수있는 것입니다. 마지막에있는 리소스 슬라이드에도 이에 대한 링크가 있다고 생각합니다. |
| 그래서 제가 지금 할 것은 이것을 Vince Faller에게 넘겨 줄 것입니다. Vince는 다시 우리의 최고 소프트웨어 엔지니어입니다. Vince는 제가 말했듯이 2019 년 8 월부터이 이니셔티브를 주도했습니다. 많은 노력이 있었고 |
| 노력은 계속됩니다. 우리 모두는 회사에서 Vince와 그의 리더십에 대해 매우 감사하고 있습니다. 그래서 빈스, 여기서 가져가는 게 어때? 난 ... |
| 나는 ... |
| 빈스 폴러 | 나누는. |
| 그래서 웨인은 햄 크레스트를 여러 번 말했습니다. Hamcrest가 무엇인지 모르는 사람들을 위해 |
| JMP. |
| Justin Chilton과 Evan McCorkle이 주도했습니다. 자동화 된 방식으로 실행, 테스트 및 결과를 얻을 수있는 단위 테스트 라이브러리입니다. |
| 이것은 실제로 우리가 이것을 할 수있는 공을 굴리기 시작했습니다. 그래서 그것이 확장이라고 불리는 이유입니다. |
| 나는 몇 가지를 보여줄 것입니다 |
| 내 화면으로. 저는 우리가 만든 VSCode 확장에서 거의 독점적으로 작업합니다. 이것은 VSCode입니다. |
| 통합, 랩 통합과 같이 작성할 필요가없는 많은 내장 기능이나 확장 가능한 기능이 있기 때문입니다. |
| 여기에서 이것이 JSL 스크립트임을 알 수 있으며 잘 읽습니다. |
| 원한다면 ... VSCode에 익숙하다면 가벼운 텍스트 편집기 일뿐입니다. JMP를 입력하기 만하면됩니다. |
| 그리고 당신은 그것을 보게 될 것입니다. 유일한 사람입니다. |
| 하지만 우리는 우리가하는 일을 할 것입니다. |
| 그래서. |
| 코드 변경시 |
| 파이프 라인 실행이 있습니다. |
| 우리는 그것이 무엇을하는지 보여줄 것입니다. 따라서 README 파일을 이렇게 변경하면 Discovery의 데모입니다. |
| 2021. |
| 그리고 나는 그것을 저지를 것입니다. 당신이 모르는 경우, 그냥 커밋 |
| 현재 우리가 정확히 어디에 있는지에 대한 스냅 샷을 원한다고 말한 다음 리포지토리로 푸시하면 서버에 저장됩니다. |
| 행복한 날. |
| 커밋 메시지. 추가 readme 정보. |
| 그리고 VSCode가 굉장하기 때문에 푸시를 할 수 있습니다. |
| 파이프 라인 데모. |
| 그래서 지금 밀어 붙였습니다. 파이프 라인이 실행될 것입니다. 여기로 내려 가서 이것을 클릭하면 병합 요청이 제공됩니다. 그래서 지금 |
| 파이프 라인이 실행되기 시작했습니다. |
| 파이프 라인 상태를 확인할 수 있습니다. |
| 지금하고있는 것은 필요한 Hamcrest 파일이 있는지 확인하는 것입니다. 몇 가지 요구 사항이 있습니다. |
| 우리는 그것이 할 수 있도록 시행합니다 ... |
| 우리는 우리가 |
| 우리 일을 잘하고 있습니다. |
| 그리고 끝났습니다. 암호화를 누르겠습니다. |
| 이제 암호화는 전체 패키지를 가져와 암호화합니다. |
| 여기로 가면 |
| 이것은 어딘가에 VM입니다. 그것은 |
| 달리기 시작 |
| 잠시 후. |
| 그래서 그것은 모든 코드를 통과하고 있습니다. |
| 모든 암호화 된 암호를 작성하고, 모든 것을 클릭합니다. 동시에 여러 스크립트를 암호화하려고 시도한 적이 있다면 |
| 당신은 아마 그것이 고통이라는 것을 알 수있을 것입니다. 그래서 우리는 이것을 자동화하여 이것을 할 필요가 없습니다. Wayne이 말했듯이, 이것을하는 데 많은 시간이 걸리기 때문입니다. |
| 예를 들어, 우리가 어떤 릴리스를 할 때마다 100 개의 스크립트를 통과하고 모든 스크립트를 암호화한다면 끔찍했습니다. |
| 우리는 우리의 |
| 암호화 된 코드는, 예, 죄송합니다, 의견, 좋아요, 공유를 중단 할 수 있습니다. |
| 아. |
| 그래서 실행될 것입니다. |
| 곧 완료 될 것입니다. |
| 그런 다음 단계를 거치고 준비한 다음 준비는 기본적으로 문서에서와 같이 원하는 모든 정보 소스를 가져옵니다. |
| 나머지 github, gitlab과 마찬가지로 대부분의 문서는 마크 다운으로 작성된 다음이를 무엇 으로든 렌더링합니다. |
| 나머지 부분을 보여줄 필요는 없지만 그래요. 그래서 지나가고 있습니다. 갈 것입니다. |
| VSCode로 돌아갑니다. |
| 그래서. |
| 우리가 변화한다면 이것은 단지 하나의 기능 일뿐입니다. |
| 내가 여기에 들어가면 이걸 실행한다면 ... |
| JSL, 현재 선택을 실행합니다. |
| 그래서. |
| 당신은 그것이 돌아 왔다는 것을 볼 수 있습니다. 그것이하려는 모든 것은 Big Class를 열고, 적합 선을 실행하고, 방정식을 얻는 것입니다. 방정식을 반환합니다. |
| 그리고 실제로 여기에서도 실행되는 것을 볼 수 있습니다. |
| 그러나. |
| 따라서 이것은 더 많은 문서를 사용할 수 있습니다. |
| 그리고 우리는 실제로이 데이터 테이블이 열리기를 원하지 않습니다. |
| 하지만 이걸 진짜 빨리 해보자. |
| 그리고 말하세요. |
| 아니. 이것은 좋은 수익이 아니며 분명히 모든 대문자로 방정식을 바꿉니다. |
| 그래서 내가 그것을 무대로한다면. |
| 더 나은 문서. |
| 푸시. |
| 다시 여기로. |
| 그래서 다시 밀고 있습니다. 이것은 또 다른 파이프 라인입니다. |
| 설정 방법에 따라 파워 쉘 스크립트를 순서대로 실행하고 있습니다. |
| 그러나이 파이프 라인에는 더 많은 단계가 있음을 알 수 있습니다. |
| 그래서 우리가 |
| 이를 확장 할 수 있도록 돕기 위해 JSL 만 테스트합니다. |
| 처음에는 최소한으로 수행 한 다음 통과하면 추가 테스트를 허용합니다. |
| 그리고 변경된 JSL 파일이있는 경우에만 테스트했습니다. |
| 그러나 우리는 이것을 통과 할 수 있습니다. |
| 테스트가 멈춘 경우를 대비하여 실행되고 테스트 위치를 알려줍니다. 닫히지 않는 모달 대화 상자가있는 경우 분명히 JMP는 그 이후에 아무 작업도 수행하지 않을 것입니다. 하지만 보시다시피 많은 일을했습니다. 예, 굉장합니다. 끝났어. |
| 신난다. |
| 새로 고칩니다. 작은 녹색 확인 표시를 받으십시오. |
| 그리고 우리는 지금 모든 것을 실행할 수 있습니다. 그것은 통과하고, 모든 것을 테스트하고, 암호화하고, 암호화 된 것을 테스트 할 것입니다. 기본적으로 우리가 애드 인을 만들 실제적인 것을 테스트 한 다음 다시 스테이징하고 우리를 위해 패키징하고 실제 애드 인을 만듭니다. 고객에게 줄 것입니다. |
| 1 분 정도 걸리므로 그렇게 빨리하지 않겠습니다. |
| 그러나 |
| 우리가 여기에 들어가서 마치, 오, |
| 음,이 데이터 테이블을 닫고 싶습니다. 내가 왜 처음에 주석을 달았는지 모르겠다. 더 이상 사용하지 않기 때문에 열어야한다고 생각하지 않습니다. 우리는 ... 그것을 원하지 않습니다. |
| 우리는 괜찮다고 말할 것입니다. |
| dt를 닫습니다. |
| 다시 밀어. 이제이 모든 작업은 Hamcrest가있는 내 컴퓨터에서 수동으로 수행 할 수 있습니다. |
| 하지만 아시다시피, 때때로 개발자는 컴퓨터에있는 모든 것을 위해 Hamcrest를 모두 실행하지 않고 무언가를 밀어 붙일 것입니다. 그리고 이것은 ... 그것의 전체 목적은 그것을 잡는 것입니다. 그것은 우리가 일을 조금 더 잘하도록 강요했습니다. |
| 과 |
| 네. |
| 이 버튼을 계속 클릭하십시오. 열 수는 있지만 괜찮습니다. |
| 이제 파이프 라인이 다시 실행되는 것을 볼 수 있습니다. 파이프 라인으로 이동합니다. |
| 그리고 나는 반복을 위해 이것을 계속 말할 것입니다. 우리는 테스트하고 암호화하고 테스트하고 있습니다. |
| 때로는 암호화가 자체적으로 입력되기 때문에 |
| 누군가 암호화를 한 적이 있다면 문제의 세계입니다. |
| 실행, 실행, 실행, 실행, 실행. |
| 그리고, 오, 우리는 던졌습니다. 당신은 그것을 보시겠습니까? |
| 난 죽으려고하는 건 아니지만 알 잖아 |
| 그래서 우리가 이것을 준비된 것으로 표시하고 예, 우리는 끝났다고 말하면, |
| 아, 그 테스트는 통과하지 못했습니다. |
| 지금 |
| 우리는 다운로드 할 수있다 |
| 왜 테스트가 아티팩트를 통과하지 못했는지. |
| 그러면 J 유닛이 열립니다. |
| 여기서 꺼내려고하는 파일입니다. |
| 또한 getlab에서 렌더링하므로 더 쉬울 수 있지만 지금은이 작업을 수행합니다. |
| 결국. 모든 것을 최소화하십시오. |
| 이제 어서. |
| 그래서 우리는 R 제곱에서 어떤 일이 발생했고 실패했음을 알 수있었습니다. |
| 내부 |
| 파란색. |
| 그래서 우리는 여기에 올 수 있습니다. |
| 왜 이것이 실패를 일으키는 무언가가 boo에 있습니까? |
| 우리는 누군가 우리의 방정식을 불렀습니다. |
| 그런 다음 그들은 데이터 테이블이 있다고 가정했습니다. 그래서 제가 변경 한 것이 다른 사람의 코드를 깨뜨 렸기 때문입니다. |
| 그래서 우리는 그 문제를 가지고 있습니다. |
| 어디 갔어? 여기 있습니다. |
| 그것이 우리가 여기서하는 모든 일의 주된 목적입니다. 제가 무언가를 바꾸고 다른 사람의 물건을 부수 었다는 사실을 파악할 수있는 것입니다. |
| 그래서 나는 통과 할 수 있었다. |
| 부가하는 일을보세요. |
| 오 글쎄, 난 그냥 Big Class를 열어야 할까 |
| 자기. |
| 그래, 멋지다. 내가 그걸 저장하면 |
| 나는 아마 그것을 더 좋게 만들어야한다. |
| 직접 Big Class를 엽니 다. |
| 내가 준비 할게. |
| Big Class를 엽니 다. |
| 그리고 다시 |
| 오래된 파이프 라인. |
| 이제 이것은 걸릴 것입니다 |
| 아니 ... 너무 길지 않습니다. |
| 그래서 우리는 여기에 들어갈 것입니다. 우리는 ... 우리는 오직 하나만 테스트합니다 ... |
| JMP 버전이지만 볼 수 있습니다. |
| 자동으로 하나만 테스트합니다. |
| 그런 다음 개발자가 예, 끝났고 모든 것이 좋아 보인다고 말할 때까지 기다립니다. 계속하다. 자원상의 이유로 그렇게합니다. |
| 이들은 항상 자동으로 흔들리는 vms에서 실행되고 있으며 이러한 시스템을 모두 사용하는 여러 개발자가 있기 때문입니다. |
| 우리는 또한 ... |
| 보시다시피, 이것은 실제로 도커 시스템입니다. 우리는 이것을 컨테이너화하고 있습니다. |
| 글쎄, 우리는 이것들을 컨테이너화하는 과정에 있습니다. 작동하고 있지만 아직 모든 버전이있는 것은 아닙니다. |
| 하지만 우리는 14.3을 실행합니다. 최소한이 프로젝트에서는 14.3, 15, 15.1, |
| 그리고 그것은 작동합니다. |
| 그냥 되 돌리자. |
| 당신이 알기 때문에 작동합니다. |
| 아마 클래식을 했어야했는데 ... 괜찮습니다. |
| 그래. |
| 우리는 테스트 할 것입니다. |
| 이 말을 계속 반복하는 것 같아요. 우리는 모든 것을 테스트 할 것입니다. |
| 우리는 실제로 우리가 얻은 결과의 종류를 보여주기 위해 이것을 실행하게 할 것입니다. |
| 걸릴 것입니다. |
| 조금. |
| 그래서 우리는 이것을 테스트하고 그것이 진행되고 있는지 확인하고 로그를 볼 수 있습니다. 우리는 무슨 일이 일어나고 있는지, 어디에 있는지, 달리고있는 주자를 알려주는 것과 같은 적절한 정보를 얻고 있습니다. |
| 지금은 Windows에서만 실행 중입니다. 다시 말씀 드리지만, 이것은 데모입니다. |
| 우리는 달릴 수 있어야합니다 |
| 더. |
| 실행되는 동안 VSCode에 대해 좀 더 이야기하겠습니다. |
| VSCode에는 또한 ... 스 니펫과 사물도 있으므로 함수를 만들고 싶다면 |
| 그것은 모든 기능 정보를 생성합니다. 우리는 자연 문서를 사용합니다 |
| 다시, 그것은 Hamcrest 팀에서 도난당했습니다. |
| 우리로 |
| 개발 문서. |
| 그래서 그것은 모든 것을 자연스러운 문서 형태로 넣을 것입니다. 다시 말하지만이 아이디어는 우리가 일을하도록 돕고 우리가 일을하도록 강요하는 것입니다. |
| 조금 더 멋지게, 조금 더 좋습니다. |
| 웨인 레빈 | 문서를 위해? |
| 빈스 폴러 | 그래서 그것은 문서를위한 것입니다. |
| 웨인 레빈 | 개발하면서 동시에 문서화하고 있습니다. |
| 빈스 폴러 | 네. 물론. |
| 또한 for 루프와 while 루프도 있습니다. |
| 어소시에이트 행의 경우 그런 것입니다. |
| 우리 ... 이거 ... 이거 아직 끝났어? 아마도 끝났을 것입니다. |
| 그래서 우리는 녹색 체크 표시를 얻습니다. 이제 모든 시스템에서 실행됩니다. |
| 여기로 돌아갈 수 있다면 그냥 볼 수있을 것입니다. |
| JMP를 엽니 다. 몇 가지 테스트를 실행합니다. |
| 아마도 Big Class가 열릴 것입니다. |
| 그런 다음 모두 닫으십시오 ... 모두 닫으십시오. |
| 웨인 레빈 | 그래서 우리는 이것을하고 있습니다. |
| 많은 클라이언트가 서로 다른 버전의 JMP를 배포하고 있으며 특정 추가 기능을 원하지만 |
| 실행하면 현장에 다른 버전이 있습니다. 또한 버그를보고하기 때문에 JMP에 대한 서비스 인 JMP의 얼리 어답터 버전에 대해서도 테스트합니다. |
| 그러나 클라이언트에게도 도움이됩니다. 왜냐하면 그들은 JMP의 새 버전으로 업그레이드 할 수 있다는 것을 알고 있기 때문입니다. 그들은 우리가 그들을 위해 만든 응용 프로그램이 테스트되었음을 알고 있습니다. |
| 그리고 그것은 우리에게 일상적인 일입니다. |
| 좋은. |
| 빈스 폴러 | 끝났습니다. 끝났습니다. 끝났습니다. |
| 로 변경... |
| 얘기 할 수 있어요 ... |
| 그리고 이것은 단지 실행될 것입니다. 우리는 |
| 원하면 영화 마술이, 멕. |
| 더 빨리 실행되도록합니다. |
| 기본적으로 스테이징에 들어가고 싶지만 시간이 걸립니다. |
| 웨인, 그것에 대해 더 할 말이 있습니까? |
| 멋있는. |
| 내가 넣을 게 ... |
| 내가 말할 수있는 것, |
| 준비 중일 때 |
| mk 문서에도 문서가 있습니다. 그래서 실제로 mk doc의 버전을 실행하고, 렌더링하고, 도움말 파일에 도움말을 넣고, 기본적으로 릴리스를 생성 할 수 있습니다. |
| 받아 들여. |
| 릴리스를 만드는 것은 많은 노력이 필요하기 때문입니다. |
| 암호화. 거의 완료되었습니다. |
| 아마도 하나만 미리로드 했어야했습니다. |
| 라이브 데모, 무엇을 하시겠습니까? |
| 약간. |
| 운영. |
| 오, 내가 확실히하고 싶은 한가지. |
| 따라서 파이프 라인이 실제로하는 마지막 일은 우리가 실제로 시간을 보냈는지 확인하는 것입니다. |
| 우리는 실제로 보낸 시간을 기록하지 않고 돈을받지 못하기 때문에 그렇게하도록 강요합니다. |
| 좋은 시간입니다. |
| Vinde Faller | 그래서 |
| 빈스 폴러 | 그것 없이는 일이 실패했을 것입니다. |
| 직업을 보여 드릴 수 있습니다. 견딜 수 없는. |
| 그것이 도커입니다. 우리는 그것을 원하지 않습니다. |
| 그래서 |
| 우리에게 성공을 가져다 준 것을 알 수 있습니다. |
| 실패가 없습니다. 예기치 않은 던지기가 없습니다. 그것은 Hamcrest의 모든 것입니다. |
| 어서. 하나 더. |
| 좋습니다. |
| 그것이하는 한 가지는 저장소를 생성합니다. |
| 매번 신선하게 만듭니다. |
| 그래서 그것은 일종의 무국적 상태로 유지하려고합니다. |
| 방법. 이제 아티팩트를 다운로드 할 수 있습니다. |
| 이제이 파이프 라인 데모가 있어야합니다. |
| 그냥 거기에 갔으면 좋았을 텐데. |
| 뭐. |
| Internet Explorer가 실행되는 이유는 무엇입니까? 이제 파이프 라인 데모를 볼 수 있습니다. |
| JMP 추가 기능입니다. |
| 압축을 풀면. |
| 모르는 경우 JMP 추가 기능은 zip 파일 일뿐입니다. |
| 지금 살펴보면 |
| 여기에 우리의 모든 스크립트가 있고 foo가 있고 막대가 있음을 알 수 있습니다. 그걸 열면 |
| 열다, |
| 암호화 된 파일임을 알 수 있습니다. |
| 그래서 이것은 기본적으로 우리가 고객에게 줄 수있는 것입니다. |
| 기계 작업이 많지 않습니다. 웨인은 |
| 개발자는 덜 실망 스럽습니다. 개인적으로는 과소 평가라고 생각합니다. 왜냐하면이 작업을 반복하기 전에는 매우 실망스럽고 많은 도움이 되었기 때문입니다. |
| 그. |
| 웨인 레빈 | 이제 암호화에 대해 추가 기능을 제공 할 때 |
| 회사 내 사용자가 사용하기 위해 일반적으로 원하지 않는 경우, 보안상의 이유로 누구에게도 들어 가지 못하도록합니다. |
| 코드를 처리하십시오. 알다시피, 그런 종류의 것입니다. 그래서 우리는 암호화되지 않은 코드를 전달할 수 있습니다. 클라이언트는 암호화 된 코드를 가지고 있지만 최종 사용자에게 전달하기 위해서는 일반적으로 모든 것을 암호화해야합니다. 변조 될 수 있습니다. 그런 것 중 하나 일뿐입니다. |
| 빈스 폴러 | 네, 이것으로 데모가 끝났습니다. 웨인, 마무리를 위해 다시 가져 가고 싶다면. |
| 웨인 레빈 | 예, 훌륭합니다. |
| 네, 감사합니다, 빈스 이 전체 시스템에는 움직이는 부분이 많이 있습니다. 기본적으로 우리가 |
| 아시다시피, 코드는 서로 충돌하지 않는 여러 사용자가 개발하고 있습니다. 우리는 동시에 문서를 만들고 있습니다. 그리고 실제로 문서는 애플리케이션과 함께 배포되며 우리는 그것을 엮을 필요가 없습니다. 이것의... |
| 인프라가 자동으로 처리되도록 설정했습니다. 코드와 함께 포괄적으로 동시에 업데이트 할 수 있습니다. |
| 당신이 원한다면. 진행중인 Hamcrest 테스트, 작성되는 각 함수, |
| 당신이 원한다면 예상되는 결과가 있습니다. 그래서 그들은 비교를했고 우리는 간략하게 그 방정식에 문제가있는 것을 보았습니다. R 제곱 또는 다른 값으로 돌아온 것, |
| 즉, 여기에 뭔가가 없습니다. 함수에서이 출력을 기대하고있었습니다. |
| 유스 케이스. 이것이 우리가 클라이언트로부터 얻는 것 중 하나입니다. 아시다시피, 우리는 Hamcrest 테스트로 전환되는 사용 사례 풀을 구축하고 사라집니다. 여기에 다른 슬라이드가 있습니다. |
| 예를 들어, 언제, 언제, 가서 슬라이드를 다운로드하면 사용할 수 있습니다. 이 부분은 그대로 두겠습니다. 여기에 파이프 라인의 작은 그림이 있습니다. |
| 우리가 사용하고있는 것과 개발자를위한 코드 검토 활동에 대해서도 조금 설명합니다. 당신이 그것과 함께 앞뒤로 가고 싶다면. 빈스, 코드 검토 및 승인이 이루어지는 방법에 대해 여기에 추가 할 내용이 있습니까? |
| 빈스 폴러 | 그래, 그래서 병합 요청 내부 |
| 코드의 차이점에 JSL 코드가 있습니다. 그리고 다시, 큰 |
| 감사합니다 |
| Hamcrest를 한 사람들도 GitHub와 GitLab이 JSL을 읽을 수 있도록 lexer (?)를 시작했기 때문에 실제로 이것은 getlab 내부에 있습니다. |
| 그리고 그들은 또한 JSL을 읽을 수 있습니다. 실행하지는 않지만 형식이 좋습니다. 모두 흰색 텍스트가 아니라 아름답습니다. 그냥 들어가겠습니다. |
| 이 스크린 샷에서와 같이 한 줄을 클릭하고 원하는 주석을 입력하면 검토 가능한 작업이됩니다. 그래서 우리는 가능한 한 GitLab 내부에서 |
| 투명성 이유로 |
| 모든 것이 닫히면 예, 내 병합 요청을 실행할 준비가되었습니다. 마스터 브랜치, 메인 브랜치에 넣어 보겠습니다. |
| 웨인 레빈 | Awesom. 그래서 당신은 정말 도움이됩니다. 우리는 정말로 코딩 표준을 정의하고 있습니다. |
| 나는 집행이라는 단어를 좋아하지 않지만 그것이 의미하는 바입니다. 그리고 변화를 줄입니다. 여러 개발자가 이해하기가 더 쉽습니다. |
| 다른 사람들이 한 일. 그리고 우리가 새로운 개발자를 데려 오면 그들은 표준을 이해하고 무엇을 찾아야하는지 알고 무엇을해야하는지 알고 있습니다. |
| 그래서 그것은 온 보딩을 훨씬 더 쉽게 만들고 다시 다룹니다. 모든 것이 여기에 모든 것에 연결되어 있으므로 지원 가능성 등을 알 수 있습니다. |
| 이 슬라이드는 앞서 언급 한 일부 리소스에 대한 슬라이드이므로 GitLab을 사용하고 있습니다. 나는 GitHub 또는 당신과 같은 일반적으로 모든 자식에 동일한 원칙이 적용되었다고 생각합니다. 다음은 Hamcrest의 커뮤니티 링크입니다. 이야기가 있었다 |
| 투손에서, 그것은 우리가 여행하고 함께 모이던 옛날의 2019 년이었습니다. 정말 재미 있었어요. 그리고 여기에 비주얼 코드 스튜디오를위한 마켓 플레이스 링크가 있습니다. |
| 비주얼 스튜디오 코드, 당신은 무엇입니까. |
| 그래서 빈스가 말했듯이, 우리는 그것이 모두 통합되어 있기 때문에 내장 된 JMP 편집기를 사용하는 것과는 반대로 그 편집기를 많이 사용합니다. 이것의... |
| 하나의 큰 애플리케이션 개발 환경의 일부일뿐입니다. 그리고 Vince와 저는 Vince와 저를 대신하여 이것에 대한 귀하의 관심에 감사 드리며, 다시 한번 JMP 팀에 정말 감사하고 싶습니다. Justin Chilton과 회사, |
| 내가 당신을 부를 것입니다. Hamcrest가 아니라면 우리는 이것에 있지 않을 것입니다. 그건 |
| 누락 된 부분 또는 JSL 개발을 실제로 가능하게 해주는 부분이었습니다. |
| 기본적으로 코드 개발, 일반적으로 산업에서 기대하는 표준의 종류입니다. 그래서 우리는 그것에 대해 정말 감사하고 우리의 ... |
| 우리가 배포 한 각 애플리케이션과 함께 전파됩니다. 그리고이 시점에서 빈스와 저는 어떤 질문이든 기꺼이 받아들입니다. |
| info@predictum.com으로 보내 주시면 다시 연락 드리겠습니다. 그러나이 시점에서 우리는 Q & A를 열 것입니다. |