명령형 vs 선언형 프로그래밍. 당신의 적은 객체 지향 프로그래밍이 아닙니다.

이 문서는 원래 blog.vaibhavgharge.com에 게시되었습니다.

많은 사람들이 OOP가 너무 형편없다고 불평합니다. 물론 많은 일들이 제대로 이루어지지 않았지만 우리의 적은 객체 지향 프로그래밍이 아닙니다.

실제 대화는 객체 지향과 기능의 차이가 아니라 명령형 프로그래밍 스타일과 선언형 프로그래밍 스타일의 차이입니다.

주류 프로그래머로서 우리는 매우 오랫동안 명령형 스타일을 프로그래밍해 왔으며 물론 세상은 선언형 프로그래밍 스타일을 향해 나아가고 있습니다.

따라서 실제 질문은 명령형으로 프로그래밍하는 것입니까 아니면 선언형으로 프로그래밍해야 하며 어떤 것을 선택해야 합니까?

탐구하자,
  • 차이점.
  • 코드 예.
  • 이별 생각.

  • 이 두 패러다임의 차이점은 무엇입니까?



    Imperative style of programming is where you tell what to do but you also have to spend the time and effort telling how to do it. So not just the what but also the how. First do this and next do that.





    예를 들어 보겠습니다.



    여기에 작은 프로그램이 있습니다. 이름 목록이 있지만 우리의 좋은 친구 Nemo가 목록에 있는지 알고 싶습니다.

    그렇다면 Nemo가 이 목록에 있는지 어떻게 알 수 있습니까?
  • 내가 할 첫 번째 단계는 boolean found를 false로 정의하는 것입니다. 물론 우리가 찾은 경우 Nemo가 찾은 것을 출력해야 합니다.
  • 그렇지 않으면 Nemo를 찾을 수 없습니다.

  • 
        List<String> names = List.of("Gill", "Dorry", "Bruce", "Nemo", "Darla");
    
        boolean found = false;
    
        for (String name : names) {
            if (name.equals("Nemo")) {
                found = true;
                break;
            }
        }
    
        if (found) {
            System.out.println("Nemo Found. :-)");
        } else {
            System.out.println("Nemo Not Found. :-(");
        }
    
    


    코드를 실행하면 "Nemo Found. :-)"라고 표시됩니다.

    이것은 무엇을 해야 하는지 뿐만 아니라 어떻게 해야 하는지에 대해서도 명시적이므로 명령형 코드 스타일의 예입니다.

    이제 선언적 프로그래밍 스타일의 예인 코드를 살펴보겠습니다.

    Declarative style is where we tell what to do and not how to do it. It is an abstraction on top of imperative systems that opens the whole new world of possibilities to program in asynchronous and event-driven fashion without having to think about how to it works.



    List<String> names = List.of("Gill", "Dorry", "Bruce", "Nemo", "Darla");
    
        if (names.contains("Nemo")) {
            System.out.println("Nemo Found. :-)");
        } else {
            System.out.println("Nemo Not Found. :-(");
        }
    


    이별 생각


  • 모든 것이 운영 체제와 하드웨어에 도달할 때 어느 시점에서 필수가 된다는 사실을 기억하고 이해하는 것이 중요합니다. 왜냐하면 선언적 프로그래밍이 무엇을 다루고 궁극적으로 어떻게 실행되는지에 대한 정신 모델을 이해하는 데 도움이 되기 때문입니다. 마법이 없습니다.
  • 명령형 스타일은 쓰기는 쉽지만 읽기는 어렵습니다.
  • 반면에 Declarative Style은 읽기는 쉽지만 쓰기는 어렵다(어느 정도 익숙하지 않아서).
  • 프로그램이 필수적이어야 합니까, 아니면 작동해야 합니까? 제 대답은 둘 중 하나가 아니며 코드가 명령형이어야 할 때가 있고 코드가 기능적이어야 할 때가 있다는 것입니다. 완전히 하나이고 다른 하나가 아닙니다.

  • 이 게시물이 도움이 되셨기를 바랍니다. 댓글 섹션에서 의견을 공유해 주세요.

    기꺼이 이야기하겠습니다! 이 게시물이 마음에 드셨다면 공유와 댓글 부탁드립니다.😊 건배

    좋은 웹페이지 즐겨찾기