프로그래머의 성장 경험으로 가는 길 - 효율적인 코딩 팁

AIGC의 급속한 발전으로 프로그래머는 외부 세계와 자신의 압력을 점점 더 많이 느낄 수 있습니다. 인공지능이 활발하게 발전하는 시대에 우리는 어떻게 뒤처지거나 대체되지 않을 수 있을까? 프로젝트의 개발 효율성은 중요한 역할을 합니다.

먼저 몇 가지 질문을 합니다.

  1. 효율적인 프로그래밍을 달성하는 방법은 무엇입니까?
  2. 효율적인 프로그래밍의 핵심은 어디에 있습니까?

1. 효율적인 프로그래밍을 달성하는 방법은 무엇입니까?

1) 프로그래밍 경험 축적 및 회사의 개발 아키텍처에 대한 이해도 향상

이제 다음 시나리오를 상상해 봅시다:
상사가 3일 이내에 프로젝트를 완료할 것을 요구합니다. 이 프로젝트는 달성하기 쉽지 않으며 시간 제한 작업 프레임워크, 메시지 푸시 및 Excel 가져오기 및 내보내기 기능을 사용해야 합니다. 신입사원이나 입사한 지 얼마 안 된 신입사원이라면 이 일이 조금 어려울 수 있는데, 신입사원으로서는 회사 구조에 대한 이해가 부족하고, 신입사원으로서는 개발 경험이 부족합니다. 그래서 우리는 무엇을 해야 합니까?

맞습니다, 효율적인 프로그래밍을 하기 위해서는 먼저 프로그래밍 경험을 축적하고 회사의 개발 아키텍처 및 시스템에 대한 이해를 높여야 합니다. 프로그래밍 경험을 쌓는 것은 더 많은 코드를 작성하는 것뿐만 아니라 같은 구덩이를 두 번 밟지 않도록 문제를 처리하는 능력을 향상시키는 것입니다.

신입 프로그래머나 갓 업계에 입문한 신입 사원의 경우 경험이 풍부한 동료와 함께 프로젝트를 개발하면 문제 해결 능력이 빠르게 향상될 수 있으며, 이를 소위 교육이라고 합니다. 가르치는 과정에서 서로 문제를 토론하고 좋은 기술 토론 분위기를 형성하는 것도 개선에 더 좋은 역할을 할 것이며, 중급 프로그래머 또는 고급 프로그래머의 경우 문제 해결 과정에서 점진적으로 문제를 해결해야 합니다. 자신의 "시스템", 오류 또는 문제가 발생할 때마다 자신의 시스템에 따라 문제를 해결하고 처리가 완료된 후 적시에 자신의 오류 데이터 세트를 업데이트하십시오.

2) 코드 재사용 실현

이제 또 다른 시나리오를 상상해 봅시다.
우리는 매일 코드를 작성하지만 그로 인해 효율성이 향상되지 않고 프로젝트 수가 증가함에 따라 코드 양과 코딩 압력이 증가합니다. 코딩 부담을 줄일 뿐만 아니라 코드 품질을 향상시킬 수 있는 길고 복잡한 코드를 어떻게 처리해야 할까요?

효율적인 프로그래밍을 달성하기 위한 고급 방법은 코드 재사용을 달성하는 것입니다. 우리는 흥미로운 이야기를 들었을 것입니다. 한 프로그래머가 자신이 개발한 모든 프로젝트를 기록하는 USB 플래시 드라이브를 가지고 다니는 것을 좋아하지만, 어느 날 그는 소중한 USB 플래시 드라이브를 잃어버리고 자신의 경력이 끝났다고 한숨을 쉬었습니다.

이 이야기를 보았을 때 나의 첫 반응은 이 프로그래머가 적어도 신인은 아니라는 것이었습니다. 그는 자신의 코드를 저장하고 재사용하여 후속 시스템 개발을 용이하게 할 것입니다. 그러나 현실은 많은 프로그래머들이 이것을 하지 않고 하루 종일 추가, 삭제, 변경 및 확인을 작성하고 자신의 안락한 영역에 살면서 자신이 "열심히 일한다"고 생각하지만 "게으르다"는 생각은 하지 않습니다. .

그렇다면 코드 재사용을 달성하는 방법은 무엇입니까?

숙련된 Java 개발 엔지니어로서 코드 기능을 구축하기 위해 리플렉션, 주석, 제네릭, 열거 및 디자인 패턴과 같은 도구를 사용하는 것을 먼저 생각할 것입니다. 예를 들어 데이터가 비어 있는지 여부를 확인하기 위해 먼저 설명을 작성합니다.

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface NotBlank {
    
    
    String message() default "参数不能为空";
}

그런 다음 리플렉션을 사용하여 클래스 및 해당 부모 클래스의 모든 DeclaredFields, 즉 개인 변수를 포함한 모든 멤버 변수를 가져온 다음 주석이 달린 변수를 가져오고 비어 있는지 확인하고 비어 있으면 예외를 throw합니다.

/**
 * 实体工具类
 * @author zyl
 */
@Slf4j
public class EntityUtils {
    
    

    public static <T> boolean verifyIsEmpty(T entity) {
    
    
        if (entity == null) {
    
    
            throw new MyException("实体类为空");
        }
        try {
    
    
            Class<?> cls = entity.getClass();
            String clsName = cls.getSimpleName();
            while (!"Object".equalsIgnoreCase(clsName.trim())) {
    
    
                Field[] fields = cls.getDeclaredFields();
                for (Field f : fields) {
    
    
                    f.setAccessible(true);
                    NotBlank anno = f.getAnnotation(NotBlank.class);
                    if (anno != null) {
    
    
                        Object obj = f.get(entity);
                        if (obj == null || "".equals(obj)) {
    
    
                            throw new MyException(anno.message());
                        }
                        if (obj instanceof List && ((List) obj).isEmpty()) {
    
    
                            throw new MyException(anno.message());
                        }
                        String str = String.valueOf(obj);
                        if (str.isEmpty()) {
    
    
                            throw new MyException(anno.message());
                        }
                    }
                }
                cls = cls.getSuperclass();
                clsName = cls.getSimpleName();
            }
            return false;
        } catch (Exception ex) {
    
    
            log.error(ex.getMessage());
            throw new MyException(ex.getMessage());
        }
    }
}

이 방법을 사용할 생각이 없다면 스프링과 함께 제공되는 @NotBlank 주석을 사용하여 위의 기능을 달성할 수도 있습니다.

코드 재사용의 두 번째 경로는 구성 요소를 작성하는 것입니다. 이는 구성 요소의 전반적인 기능 파악과 같은 디자인 패턴과 같은 프로그래밍 능력에 대한 특정 요구 사항이 있습니다. 그러나 구성 요소를 패키징하고 사용하는 방법을 배우면 일반적인 비즈니스 시스템 개발에 효율성이 크게 향상됩니다. 예를 들어, 나무를 바퀴로 가공하는 것은 번거롭지만 바퀴를 프레임으로 조립하는 것은 쉬워집니다.
여기에 이미지 설명 삽입
상위 수준은 코드 생성기를 직접 구현하는 것, 즉 코드 생성 프레임워크를 직접 작성하는 것입니다. 너무 어렵네요, 하하. 다행스럽게도 시장에는 Ali의 Yidai, Baidu의 Aispeed 등과 같이 상대적으로 성숙한 코드 생성 도구가 있습니다.

효율적인 프로그래밍의 핵심

  1. 반복되는 것은 표준화되고, 표준적인 것은 자동화됩니다. 열심히 일하는 것은 바람직하지 않으며 때로는 게으름이 왕입니다.
  2. 경험을 축적하고 개방적인 학습 태도를 유지하십시오.

추천

출처blog.csdn.net/qq_31236027/article/details/132046808