소프트웨어 개발의 PTSD 방법

in hive-137029 •  3 years ago 

많은 개발자들이 다양한 방법으로 완성도 높은 코드를 만들기 위해서 노력하는 것 같습니다. 이 블로그도 그 중 하나이며, 이 방법론을 이해해서 각자의 능력과 취향에 맞는 저마다의 방법론을 만드는 것이 좋을 것 같아서 소개드립니다.

PTSD — " 프로그램 을 빠르게 삭제 "는 Visa , Amazon 및 Meta 에서 몇 년 동안 일한 후 제가 발명한 프로그래밍 방법론입니다. 이 방법의 주요 아이디어는 코드를 작성하기 전에 나중에 삭제할 방법을 생각하는 것입니다. 이 기사에서는 PTSD 방법에 따라 코드를 구성하는 방법을 설명합니다.

왜 삭제합니까?

코드를 삭제하면 도입한 모든 버그가 제거됩니다. 정말 빠르게 진행되는 소프트웨어 개발의 세계에서 경고 없이 계획이 빠르게 변경되므로 코드를 삭제할 수 있는 것이 필수적입니다. 몇 달 동안 한 기능을 작업하다가 리더십이 다른 프로젝트로 전환하고 작업을 창 밖으로 버리기로 결정했다고 상상해 보십시오. 코드를 유지하는 것은 비극입니다. 100,000줄의 코드가 있는 프로젝트에서 눈 깜짝할 사이에 10,000줄의 코드를 삭제할 수 있을 때 미칠 수 있는 영향을 상상해 보십시오.

코드 삭제는 Thanos보다 훨씬 강력합니다.

외상 후 스트레스 장애

PTSD 방법의 멘탈 모델은 내일 코드를 삭제할 것이라고 생각하는 것입니다. 어떻게 하시겠습니까? 다음 다이어그램(아래 설명 포함)을 참조하십시오.

PTSD 방법

이 아름다운 프로그램을 보세요. 여기에 설명이 있는 각 구성 요소가 있습니다.

DU — 삭제 가능한 단위

이것이 PTSD 개발 방법에서 기능을 호출하는 방법입니다. 단순히 삭제하거나 삭제할 수 있는 별도의 기능입니다.

여기에 기능의 내부 논리를 기본 프로그램 논리(BBP)와 별도로 배치합니다.

// The DU that prints Hello World

// tdd/helloworldDU.js

export default function helloWorldDU() {

console.log("Hello World");

}

샘플 TU

I2 — 통합 인터페이스

DU를 Big Bad Program과 분리하는 추상화를 갖는 것은 여기에서 좋은 습관입니다. DU의 코드를 직접 호출하지 마십시오.

// The I2 that connect DU with the BBP

// tdd/helloworldI2.js

import helloWorldDU from "./helloWorldDU.js";

import KS from "kill-switch";

@KS("HelloWorld")

export function helloWorldI2() {

helloWorldDU();

}

KS가 있는 I2

KS — 킬 스위치

Decorator Pattern 과 같은 패턴을 사용하여 심각한 버그를 유발할 때 프로덕션에서 기능을 안전하게 끌 수 있는 원격 킬 스위치로 I2를 래핑합니다. 이렇게 하면 해고되는 것을 막을 수 있습니다.

TDD — 디렉토리를 삭제하려면

모든 DU 및 I2 코드를 단일 디렉토리에 넣으면 한 번의 마우스 클릭으로 모든 코드를 삭제할 수 있습니다.

이 예에서 디렉토리 이름은 tdd로 지정됩니다.

1LI — 1 라이너 통합

Big Bad Program 코드에서 I2를 호출하고 1줄로 짧게 유지하려고 합니다.

// BBP/HelloWorldBBP.js

import "../tdd/helloWorldI2.js";

function main() {

helloWorldI2(); // <- The 1LI

}

자, 어떻게 PTSD를?

코드를 삭제하는 방법은 3가지가 있습니다.

  • 완벽하게 TDD와 BBP에 있는 모든 1LI를 제거하면 안전합니다.
  • 게으르게 도 DU(Deletable Unit) 를 아무 작업도 수행하지 않는 다른 DU(Dump Unit) 로 교체하기만 하면 됩니다. 따라서 모든 1LI를 삭제하기 위해 BBP를 파헤치는 시간을 절약할 수 있습니다.
  • 빨리 KS를 끌 수 있습니다.

이 새로운 프로그래밍 방법이 도움이 되기를 바랍니다. 아래에 의견을 보내주십시오.



https://banhtieu.medium.com/the-ptsd-method-in-software-development-1c1cdafb4c62

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!