어떤 라이브러리 / 프레임 워크가 해결하려는 문제에 비해 너무 복잡하다고 생각하십니까? [닫은] 답변이 뒷받침 될 것으로 예상되지만이 질문은 토론,

… 기능을 “수동으로”코딩 했습니까?

다소 은유 적 인 예로서, 2 차 방정식을 풀기위한 라이브러리가 거의 필요하지 않지만 그러한 라이브러리가 존재하고 누군가가 심각하게 생각합니다.

더 의심스러운 경우, 상황에 따라 jQuery를 버릴 수도 있습니다 (예 : 석기 브라우저를 지원할 필요가없는 경우). 일부 단순화하지만 DOM에 복잡성 및 신뢰성을 추가합니다. jQuery를 과도하게 사용하면 최근에 본 것과 같은 터무니없는 문제가 발생합니다. ajQuery 를 사용하여 태그에 빈 href를 어떻게 할당 합니까? JavaScript가 아닌 HTML 질문이었습니다.

또 다른 터무니없는 사건이지만 많은 사람들에게는 분명하지 않은 것은 다른 템플릿 시스템 위에 구축 된 템플릿 엔진 / 언어를 사용하는 것입니다 : PHP. 누군가를 유혹하는 3 단계?

그리고 또 다른 하나 : 때로는 (그림처럼) XML을 뱉어내는 printf것이 괴물 같은 XML 엔진을 사용하는 것보다 훨씬 쉽습니다.

다른 경험이 있습니까?



답변

많은 MS 엔터프라이즈 라이브러리와 .net에 대한 대부분의 타사 컨트롤은 약간의 사용 후에 나 에게이 느낌을 남겼습니다.

귀하의 마일리지가 다를 수 있습니다


답변

Windows Communication Foundation

그것은 홈페이지에 스위스 군용 칼의 그림이 있다는 사실이 나를 위해 요약합니다. XML 구성이 실제로 작성하는 코드의 4 배 정도이고 C #, Java, PHP, Python 및 “추천 된”다른 언어간에 상호 운용 가능한 SOAP 서비스를 작성하는 것이 여전히 어렵다고 상상해보십시오. 상호 운용 가능

향후 모든 프로젝트에서 REST를 계속 사용하려고합니다.


답변

사람들이 “자신의 롤링”에서 경험 한 문제 중 하나는 접근 방식이 더 빠르고 간단하지만 취하기 쉽고 버그가 있거나 불완전하거나 보안 결함이있을 가능성이 높다는 것입니다 .

간단한 예 : printf를 사용하여 라이브러리를 사용하는 것보다 XML을 내보내는 것이 10 배 더 쉬울 수 있습니다.

printf("<xml>%s</xml>", str);

하지만 특수 문자를 피하는 것을 기억 str하십니까? 예를 들어 ‘ <‘및 ‘ &‘? 어떤 사람들은 “아니요”라고 말하고 다음과 같이 작성합니다.

printf("<xml><![CDATA[%s]]></xml>", str);

그러나 str하위 문자열 ” ]]>“이 포함되어 있으면 여전히 깨진 XML이 방출 됩니다. 가장자리 케이스-확실합니다. 그러나 심각한 결과로 예기치 않은 문제가 발생할 수있는 유효한 시나리오입니다.

“자신의 롤링”이 적절할 수있는 시간과 장소는 많지만, 적절한시기를 식별하기 위해서는 많은 경험과 지식이 필요합니다. 그렇기 때문에 프로그래머가 자체 구현 루틴 대신 기존 라이브러리 (사용 가능한 경우)를 사용하는 것을 선호하는 이유가 종종 있습니다.


답변

Log4Net

도서관은 훌륭하지만 문서는 끔찍합니다. 내가하고 싶은 일에 너무 잔인했습니다.

내가 사용 추적을 대신.


답변

공유 지점

잘못 이해하지 마십시오. SharePoint는 대부분의 작업이 필요하고 많은 작업이 필요하면 훌륭하지만, 현재하고있는 일을 모르거나 한두 가지만 필요한 경우 노력과 구성의 가치가 없습니다.


답변

ASP.NET WebForms-.NET 웹 개발자로서 오랜 시간 동안 빵과 버터를 먹었지 만 MVC 프레임 워크를 사용하기 시작한 이후 (PHP / Smarty 템플릿 환경에서 제공됨) 때때로 더 나은 것이 있다는 것을 알고 있습니다 웹 개발을 수행하는 방법과 웹에서 사용하는 추상화는 과도하고 유출 됩니다.


답변

거의 모든 경우에이 작업을 수행 한 후 후회하게되었습니다.

  • 래퍼 라이브러리 대신 PHP oci_ * 함수를 사용하면 코드 유지 관리 기능으로 인해 잘못된 동작으로 판명되었습니다. 모든 코드를 Zend_Db로 이식하면 데이터베이스 코드 유지 관리가 훨씬 쉬워졌습니다.
  • 내 다른 아약스 그리드 컴포넌트를 롤링하는데, 다른 그리드 컴포넌트가 얼마나 빨리 진화 하는지를 감안할 때 개발에 너무 많은 시간이 걸렸다. 현재 광범위한 기능을 사용할 수 있기 때문에 Ext JS 그리드에 모두 포팅하고 있습니다.
  • 프로토 타입 및 jquery와 같은 라이브러리를 피하면 크로스 브라우저 문제가 반복적으로 발생하여 종종 추적하기가 어렵습니다. Ext JS 포트는 크로스 브라우저 문제를 해결했습니다. 이해하는데 몇 주가 걸렸던 광대 한 프레임 워크 일지라도 마술입니다.

신뢰할 수있는 타사 프레임 워크를 선택하고 모든 작업의 ​​기초로 사용하는 것이 훨씬 낫다는 결론에 도달했습니다. 이러한 프레임 워크는 다른 사람에 의해 개발되고 디버깅되며, 일단 표준화하고 잘 이해하면 시간을 절약 할 수 있습니다.