문제

실제적인 프로그래머 을 옹호하는 사용하는 코드의 생성기입니다.당신은 코드를 만들기 발전기 프로젝트에 대?그렇다면,당신은 무엇을 사용하는가?

도움이 되었습니까?

해결책

전 경우에 널리 사용되지 않고 올바른 논증하는 코드 적 이해하고 줄이 유지(동일 dynamic SQL 방법에 의해).개인적으로 난 사용하여 그것의 일부와 함께 ORM 도구이기 때문에,그들의 사용은 여기 대부분이 명백하고 때로는 같은 것들에 대한 검색 구문 분석 알고리즘과 grammatic 분석기하지 않는 설계를 유지하여야"손에 의해"요즘.환호를 받았다.

다른 팁

에서"실용적인 프로그래머 사냥"고 토마스를 구별 수동 및 능동 코드를 생성기입니다.

수동 생성기는 한 번 실행 한 후,당신은 편집 결과입니다.

Active 발전기는 실행시로 원하는 대로,당신은 결코 결과를 편집하기 때문에 그것을 대체될 것입니다.

IMO,후자는 훨씬 더 귀중하기 때문에 그들이 접근 건조한(하지 마십시오-반복 자)원칙으로 합니다.

만약 입력한 정보의 프로그램으로 분할할 수 있습니다 두 가지 부분으로,부품을 변경하는 드물게(A)(좋아하는 메타데이터 또는 DSL)및 그 부분마다 다른 프로그램을 실행하(B)(라이브 입력)작성할 수 있습기 발전기 프로그램을 만으로 입력 및 작성합니다 ad-hoc 프로그램을 만 B 를 사용하여 입력할 수 있습니다.(다른 이름이 이것은 부분적인 평가입니다.)

발전기 프로그램을 간단하기 때문에 그것은 단지를 통해 웨이드 입력,지 않을 A 와 B또한,그것은 필요가 없기 때문에 빨리 그것은 자주 실행,그리고 그것은 없을 걱정하는 메모리 누수를 방지합니다.

Ad-hoc 프로그램을 빠르기 때문에 그것은 하지 않아 웨이드를 통해 입력하는 것은 거의 항상 동일한(A).그것은 간단하기 때문에 그것은 단지에 대한 결정을 내 입력 B,지 않을 A 와 B

그것은 좋은 아이디어를 생성된 임시 프로그램으로 아주 읽기 쉬운,그래서 당신은 수 있습니다 더 쉽게 찾을 수 있에 오류가 있습니다.일단 당신 오류 제거 발전기에서,그들은 영원히 사라지고있습니다.

하나의 프로젝트에서 일했고,팀의 설계로 복잡한 데이터베이스 응용 프로그램의 디자인과 함께 스펙을 두고 두꺼운 긴 구현 일정을 내포한 문제에 대한 성과입니다.에 의한 코드를 작성하는 발전기,두 사람들은 작업에서 세월,그리고 소스 코드 목록(C)이에 대해 반 두꺼운 인치,그리고 생성된 코드는 다음과 같습니다 그래서 빨리하지 않는 문제입니다.Ad-hoc 프로그램을 다시 생성되는 주간에,사소한 비용.

그래서 active 코드 생성, 할 때 사용할 수 있습니다, 은 윈-윈.고,나는 그것이 없이 사고로 이것은 정확히 무엇을 컴파일러는 않습니다.

하드웨어 디자인,그것은 매우 일반적인 관행이 이렇게하려면에서 여러 가지 수준의'stack'.예를 들면,나는 코드로 발전기를 방출하는 Verilog 에 대한 다양한 폭이,토폴로지,구조물의 DMA 엔진을 크로스바,스위치기 때문에 구축하는 데 필요한 표현이 매개 변수화 되지 않은 아직 성숙에서 합성 및 시뮬레이션 도구가 흐른다.

그것은 또한 일상을 방출하는 논리적인 모델은 모든 방법으로 데이터 레이아웃을 위해 매우 정기적으로 일할 수 있는 표현을 생성하는 알고리즘을 사용하여 다음과 같 SRAM,캐시,등록 파일의 구조.

나 또한 소요 시간의 공정한 비트 쓰기,본질적으로,코드기 능력을 개선하는 데 도움을 XML 모두에 대한 설명 레지스터에 시스템-온-칩,그리고 방출 HTML(예,그렇다,나는에 대해 알아 XSLT,발견했출 프로그래밍 방식으로 더 시간에 효율적인),Verilog,SystemVerilog,C,어셈블리 등등."전망"의를 위해 이 데이터를 다른 팀(프런트 엔드 엔 ASIC design,펌웨어,문서,etc.) 을 사용하여(그리고 그들을 일관하는 이 미덕으로 단일 XML"codebase").이것도 포함되나요?

사람들도 같은 코드를 작성하는 발전기에 대한 예로 간결한 설명은 아주 일반적인 것처럼,유한 상태 기계,기계 출력 상세한 명령어를 구현하는 코드를 효율적으로(예:전환 테이블 탐색 코드).

우리는 코드를 사용하여 발전기를 위한 데이터를 생성하는 엔티티 클래스,데이터베이스에 물체(트리거,저장 프로시저),서비스는 프록시 등.어디에서든지 당신의 많은 참조하십시오 repititive 코드는 다음과 같은 패턴 및 수동 작업을 많이,관련된 코드의 생성기 도움이 될 수 있습니다.하지만,당신은 그것을 사용하지 말아야에 너무 많이 확장하는 관리는 고통입니다.어떤 문제도 발생하려면 그들을 다시 생성.

Tools Visual Studio 와 같은,Codesmith 자신의 템플릿에 대한 가장 일반적인 작업이 응용 프로그램 중 하나입니다.하지만,그것은 쉽게 출입니다.

그것은 자주 유용하는 코드를 만들기를 생성하는 코드에서는 사양-일반적으로는 하나는 일반 테이블 형식 규칙이 있습니다.그것은 기회를 감소를 소개하는 오류를 통해 잘못 입력했거나 누락입니다.

네 나는 나 자신의 코드의 생성기 AAA 직경 프로토콜을(RFC3588).그것을 생성할 수 있는 구조와 Api 의한 직경의 메시지 읽기 XML 파일에서 설명하는 직경 프로그램의 문법입니다.

는 크게 감소하는 시간을 개발하는 완전한 인터페이스 직경(과 같은 SH/CX/RO etc.).

내 생각에 좋은 프로그래밍 언어가 필요하지 않기 때문에 내성이타 코드의 생성 일부가 될 것이라는 것의 예 언어python 메타클래스고 새로운 모듈 등입니다.

코드는 일반적으로 발전기를 더 생성 관리하기 어려운드에서 장기간 사용합니다.

그러나,그것은 절대적으로 필수적 코드를 사용하여 발전기(eclipse VE 스윙 개발은 내가 무엇을 사용하여 시간)다음 확인을 알고 코드를 생성하는 중입니다.저를 믿고,당신을 원하지 않을 것 코드에서는 응용 프로그램에서는 익숙하지 않습니다.

쓰기에 자신의 발전기 프로젝트를 위한 효율적이지 않습니다.대신 사용하여 발전기와 같은 T4,CodeSmith 및 Zontroy.

T4 은 더 복잡하고 알아야 합니다.Net 프로그래밍 언어입니다.를 작성해야 합 템플릿을 줄이고 당신은 완벽한 데이터 관계형 운영합니다.당신은 그것을 사용할 수 있습을 통해 Visual Studio.

CodeSmith 는 기능성 도구와 많은 템플릿을 사용할 준비가 되었습니다.그것을 기반으로 T4 와 쓰기에 자신의 temlate 너무 많은 시간이 걸리는 그것에 T4.이것이 시험이고 상업용 버전입니다.

Zontroy 새로운 도구와 사용자 친화적 인 사용자 인터페이스가 있습니다.그것은 그것의 자신의 템플릿 언어하고 쉽게 배울 수 있습니다.온라인으로 템플릿을 시장에 그것을 개발하고 있습니다.심지어 당신을 제공할 수 있는 템플릿과 판매 그들이 온라인을 통해 시장이다.그것은 무료이며 상업용 버전입니다.심지어 무료 버전에 충분을 완료하는 중소 규모의 프로젝트입니다.

이 있을 수 있습 많은 코드의 생성기 거기에,그러나 나는 항상 내 자신의 코드를 확인 하려면 더 이해하고 맞게 프레임워크 및 지침에 우리가 사용하는

우리가 사용하는 발전기에 대한 모든 새 코드하는지 확인하는 데 코딩 표준에 따른다.

최근에는 교내에서는 C++발전기 CodeSmith.우리는 여전히 만드는 템플릿에 대한 도구이지만 그것은 이상적인 것 같지를 유지하는 도구는 자신이다.

내 가장 최근에 필요한 발전기 프로젝트 데이터를 읽는 하드웨어에서 궁극적으로 게시하는'dashboard'UI.사이 있었 모델,속성,발표자,이벤트,인터페이스 플래그,etc.에 대한 여러 가지 데이터 포인트입니다.일까지 프레임워크에 대한 몇 가지 데이터 포인트까지 만족할 수 있는 라이브로 디자인이다.그런 다음의 도움으로 일부를 신중하게 배치하의 의견,나는"세대"에서 visual studio 매크로 조정하고 청소하는 매크로를 추가한 데이터 포인트를 함수에서 매크로를 부르 생성 및 저장을 몇 시간이 지루한(일까요?) 습니다.

지 않의 힘을 과소평가 매크로 :)


나는 또한 지금 우리는 어리석음을 서로 주변 CodeRush 사용자 정의 기능이 저에게 도움을 좀 더 현지 세대의 요구 사항입니다.가 강력한 물건을 거기에서해야 하는 경우에는 즉시 의사 결정할 때를 생성하는 코드 블록입니다.

나는 내 자신의 코드의 생성기는 실행에 대한 SQL 테이블이 있습니다.생성 SQL 절차에 액세스하는 데이터,데이터 액세스층과 비즈니스 논리입니다.그것은 경이로움에서 표준화 내 코드와 이름규칙에 대하여.기 때문에 그것이 기대하는 특정 분야에서 데이터베이스 테이블(id 열 및 업데이트 날짜/시간 열)그것은 또한 표준화 내 데이터를 디자인합니다.

어떻게 많은 것은 당신이 찾고 계십니까?내가 만들어진 두 가지 주요 것들과 수많은 사소한 것들입니다.의 첫 번째 주요 것들을 생성 프로그램 1500 선 프로그램(또는)그 강한 가족들과의 유사성이나 적응 서로 다른 데이터베이스의 테이블과하는 빠르고,안정적으로.

아래쪽의 코드의 생성기에는 버그가 있다면 코드에서 생성됩(기 때문에 템플릿은 버그가 포함되),다음의 많은 고정시키는 않습니다.

그러나,언어에 대해하나 시스템이 많이 거의 반복적인 코딩을 할 수,좋은(충분한)코드의 생성기는 혜택(고의 더 많은 이익보다는'doggle').

예 했을 유지하는 몇 가지 있습니다.CORBA 또는 다른 객체를 커뮤니케이션 스타일의 인터페이스는 아마 일반적인 것은 내가 생각하고 있습니다.당신이 객체의 정의는 제공한 인터페이스를 이야기하려고하지만 당신은 여전히 구축하는 해당 개체에 코드입니다.건축 및 실행 코드의 생성기는 상당히 일상적인 방법으로 그 목적을 달성할 수 있게 해 줍니다.이 될 수 있는 상당히 긴 컴파일하여 지원하는 일부 기존 통신 채널고 있기 때문에 큰 경향이 래퍼 CORBA 더 간단하고,잘 것이 다만 악화됩니다.

에서 일반적인 경우는 다량의 구조,또는 빠르게 변화하는 구조물을 사용할 필요가 있지만,당신이 처리할 수 없는 성능은 건물의 개체를 통해 메타데이터 다음으로 쓰는 코드를 생성기입니다.

나는 생각할 수 없는 어떤 프로젝트가 우리를 만드는 데 필요한 우리의 자신의 코드로 발전기를 처음부터 그러나 몇 가지 우리가 사용되는 기존 발전기.(나는 모두 사용 Antlr 및 Eclipse 모델링을 구축하기 위한 프레임워크를 파서는 모델에는 java 기업용 소프트웨어입니다.) 의 아름다움을 사용하여 발전기 코드는 다른 사람은 작은 것을 저자가 될 경향이 있는 전문가 그 지역에서 문제를 해결하는 저도 몰랐는데 아직입니다.이것은 나를 저장합니다.

그렇지만 나는 할 수 있는 코드를 작성하는 것에 문제를 해결손,나를 생성할 수 있는 코드는 많은 빠르고 있는 좋은 기회가 될 것입니다 적은 버그를 보다 아무것도 작성합니다.

If you're not going 코드를 작성하고,당신은 편안한 것,다른 사람의 생성된 코드?

그것은 저렴하고 시간 및$$$에 직접 작성하는 코드 또는 코드를 생성기는?

을 썼다는 것을 구축 100 의 클래스의(java)는 것 출력 XML 데이터에서 데이터베이스에서 DTD 또는 스키마에 준수하는 방식이다.코드 세대는 일반적으로 한 시간 일하고 코드는 다음 smartened 다양한 비즈니스 규칙 등입니다.출력한 오히려 현학적 은행합니다.

코드를 생성기는 작업에 대한 프로그래밍 언어로 제한 사항이 있습니다.나 개인적으로 선호하는 반사를 대신하기하는 발전기 코드는 더 유연 및 결과 코드를 분명히 빠르게 있습니다.나는 희망,미래전 버전의 C#포함됩니다 어떤 종류의 DSL 환경입니다.

만 코드로 발전기를 내가 사용하는 웹 서비스 parsers.나 개인적으로부터 멀리하기 때문에 유지 관리 문제에 대한 새로운 직원이나 별도의 팀 후에는 손으로 끕니다.

내가 쓰는 내 자신의 코드의 생성기에서,주로 T-SQL,호출되는 동안 프로세스를 구축 합니다.

기반 메타 모델,데이터 생성하거,로깅,C#const 선언/삽입 업데이트 문 데이터 모델은 정보를 여부를 확인하는 응용 프로그램이 실행되는 예상되는 데이터베이스에 스키마.

나는 여전히 작성해야하는 형태로 발전기 생산성 향상을 위해,더 많은 사양과 적은 코딩;)

내가 만들어 몇 가지 코드를 생성기입니다.나는 수동적인 코드의 생성기에 대한 SQL 저장하는 절차를 사용 템플릿이 있습니다.이 생성된 생성된 90%를 우리의 저장합니다.

때문에 우리가 스위치를 만들어하는 엔티티 프레임워크를 만들었 active codegenerator 를 사용하여 T4(텍스트 템플릿 변환 Toolkit 서)visual studio.내가 사용했던 그것을 만드는 기본적인 저장소를 부분적인 클래스에 대한 우리의 entities.작동이 매우 친절하고 저장한 무리의 코딩이다.또한 사용 T4 꾸미기를 위한 엔티티 수업과정 특성이 있습니다.

내가 사용하는 코드를 생성 기능 제공 EMF-Eclipse 모델링 Framework.

발전기 코드는 정말 유용한 많은 경우에,특히 매핑에서 다른 한 형식.나는 코드로 발전기를 위한 IDL C++,데이터베이스에 테이블을 OO 유형 및 정렬 코드 이름을 몇 가지 있습니다.

내가 생각하는 지점은 저자가 만들려고 노력하는 경우에 당신은 개발자를 만들 수 있어야 컴퓨터가 당신을 위해 작동합니다.코드를 생성하는 단 하나의 명백한 작업을 자동화 할 수 있습니다.

내가이 사람과 주장 할 것이라고 우리의 IDL C++매핑을 수 있습니다.에서 프로젝트의 시작이었을 유지할 수 있기 때문에,나머지는 우리들의 노력을 하기 위하여 무엇을 파악지만,결국 그는 병목 현상이 발생합니다.내가 코드를 생성기에서는 Perl 그리고 우리는 꽤 많은 수의"일"에 대한 보고서를 받을 수 있습니다.

"universal"코드를 생성기 기반 프로그램으로 변환합니다.

내가 건축 및 핵심 구현.그것은 상당한 분수의 이 발전기,생성되 이용하여 생성기입니다.

에서는 임베디드 시스템,때때로 당신은 필요가 큰 블록의 데이터는 바이너리에서 플래시입니다.예를 들어,내가 하나는 텍스트 파일로 포함하는 비트맵 글꼴을 문집으로 그것.cc/.h 파일 쌍을 선언하는 흥미로운 상수(과 같은 첫 번째 문자,마지막 문자,문자 폭,높이)그리고 실제 데이터로 큰 static const uint8_t[].

하려고 이런 일을 하는 C++에서 자체,그래서 글꼴로 데이터를 자동으로 생성에서 컴파일하지 않고 먼저 통과,고통 것입과 가장 가능성이 읽을 수 없어서는 안됩니다.쓰.o 파일에 의해 손은 질문입니다.그래서 깨 그래프 용지,손으로 인코딩하는 바이너리,타이핑하는 모든이다.

이럴,이런 종류의 발전기 코드는 무엇이 있습니다. 을 잊지 못하는 컴퓨터 작동을 위한 당신이 아닌 다른 방법으로,주위에.

BTW,사용하는 경우 발전기 항상상 일부를 포함한 라인과 같은이 모두에서의 시작과 끝을 생성된 각각의 파일:

// This code was automatically generated from Font_foo.txt. DO NOT EDIT THIS FILE.
// If there's a bug, fix the font text file or the generator program, not this file.

우리가 사용하는 Telosys 코드의 생성기에서 우리의 프로젝트: http://www.telosys.org/

우리가 만든 그것을 개발하기 위해서는 기간에 작업이 재발하는 다음과 같 CRUD 화면,문서,등등....

우리를 위해 가장 중요한 것은 커스터마이즈할 수 있는 발전기의 템플릿을 만들기 위해서는 새로운 세대의 대상 필요한 경우와 사용자 정의 기존 템플릿이 있습니다.그 이유는 우리는 또한 템플릿을 만들기(에 대한 속도이다.vm 파일).그것은 잘 작동을 위한 Java/봄/련 코드를 생성할 수 있는 적응을 위한 다른 목표는(PHP,C#,Python,etc.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top