나는 1 년이 조금 넘도록 프로그래밍을 해 왔으며 시스템 응용 프로그램, 웹 응용 프로그램 및 비즈니스 / 조직 용 스크립트 작성 경험이 있습니다. 그러나 내가 실제로 한 적이없는 것은 Django, Rails 또는 Zend와 같은 프레임 워크를 사용하는 것입니다.
장고 프레임 워크를 살펴보면 프레임 워크에서 추상화되는 양이 약간 실망 스럽습니다. DRY의 핵심 목표와 최소한의 코드를 이해하지만 다른 모듈에 대한 과도한 의존과 핵심 기능에 대한 추상화는 다음과 같습니다.
끊임없이 변화하는 모듈 / 프레임 워크의 특성으로 인해 프로그램이 정말 빠르게 업데이트됩니다.
다양한 프레임 워크 및 모듈과 모든 고유 한 특성으로 인해 코드를 이해하기 어렵게합니다.
모든 문서를 읽지 않으면 코드를 덜 논리적으로 만듭니다. 즉, 일부 목록 이해와 조건부 논리를 읽고 프로그램이 수행하는 작업을 파악할 수 있지만 임의의 문자열과 사전을 전달 해야하는 함수를 볼 때 이미 전문가가 아닌 한 상황을 이해하기가 조금 어려워집니다. 주어진 모듈; 과:
프레임 워크 간 전환이 어렵고 지루합니다. 언어 간 전환은 이미 어려운 일이지만 핵심 기능 / 철학에 대해 충분히 이해하고 있다면 관리가 가능합니다. 프레임 워크 간 전환은 암기의 문제로 보이며, 어떤 방식으로 이러한 프레임 워크가 제거하도록 설계된 비 효율성을 장려하는 것으로 보입니다.
MySQL 쿼리처럼 단순한 것 위에 50 개의 추상화 계층을 배치해야합니까? 준비된 명령문 / 입력 테스트는 처리되지만 보편적으로 이해할 수있는 SQL 쿼리는 여전히 함수의 일부인 PHP의 PDO 인터페이스와 같은 것을 사용하지 않는 이유는 무엇입니까?
이러한 추상화가 실제로 유용합니까? 부풀려 기능이 없어 쓸모없고 프레임 워크를 사용하지 않고 작성된 유사한 응용 프로그램에 비해 응용 프로그램이 더 어려워 집니까?
Do we really need to put like 50 layers of abstraction on top of something as simple as a MySQL query?
첫째, 좋은 프레임 워크는 하나의 추상화 계층 (내부적으로 2 또는 3 개)이며, 둘째로 "MySQL 쿼리처럼 단순한 것"은 실제로 수십 가지 추상화를 포함합니다. 인터프리터 언어로 실행 한 쿼리가 데이터베이스 서버로 쿼리 한 후에도 실제 스토리지의 파일 시스템에서 엔진에 대한 데이터베이스에 대한 쿼리가 여전히 있습니다. 요약하자면, 머리가 폭발하지 않도록 추상화가 필요합니다.
as a relatively inexperienced programmer
-소프트웨어를 오래 만들수록 휠을 다시 만드는 시간을 줄이고 집에서 좋아하는 일을하는 데 더 많은 시간을 할애 할 수 있습니다.