2013-08-04 1 views
2

저는 프로그래밍 공동체에서 더 나은 실천이 무엇인지에 대해 궁금합니다.2 개의 함수 또는 1 개의 복잡한 함수를 갖는 것이 더 나은 방법입니까?

제출시 일부 유효성 검사가 수행되고 AJAX를 통해 게시물이 작성되는 함수가 호출됩니다. 나는 그들 모두를 다루는 함수를 갖는 것을 고려하고 있었다. 모든 요소 ID를 동일한 숫자로 변경합니다 (예 : txt1, txt2/txt1Cnt, txt2Cnt/txt1Lbl, txt2Lbl 등)

그런 다음 루프와 조건부를 추가합니다. 문을 사용하여 각 양식을 올바르게 처리 할 수 ​​있습니다. 이것은 재미있는 방식으로 들리는 데요, 내가 그걸하고 싶었던 이유입니다.하지만 지금은 2 가지 기능을 가진다면 모든 다른 요소를 구별 할 필요가 없기 때문에 매우 효율적이라고 생각하지 않을 수도 있습니다. . 특히 형태가 동일하지 않기 때문에.

제 질문은 이런 종류의 일에 관해서 엄지 손가락이 있습니까? 기능이 적거나 복잡하지 않는 것이 낫습니다.

감사합니다.

+0

어림짐작도없이 보트를 뜨는 모든 일을하십시오! – adeneo

+0

두 방법 중 하나를 사용하면 실제로 한 위치에서 다른 위치로 이동하는 대신 복잡성을 줄일 수 있습니까? 그렇다면 그걸로 가십시오. – Joni

답변

3

이러한 경우에 고려해야 할 몇 가지 사항이 있습니다.

  1. 코드 reusage - 나중에 다시 사용할 수있게된다 하나 또는 여러 개의 특정 일을 함수로 코드 속보.

  2. 코드 가독성 - 코드를 논리적 기능으로 나누면 코드를보다 쉽게 ​​읽을 수 있습니다. 특히 경우에 다른 사람이 코드

  3. 성능을 처리 할 때 -이 기능은 여러 번 호출하는 경우, 대부분의 경우는

+0

가장 일반적인 경우에는 다른 것이 훨씬 더 중요하기 때문에 첫 번째 사례를 맨 아래에 배치 할 것입니다. – Bart

+0

예, 동의합니다. 또한 주로 의견을 근거로 질문을 표시했습니다 – Tala

+0

답장을 보내 주셔서 감사합니다. 당신의 대답을 읽은 후에 나는 그것이 어느쪽으로 든 갈 수 있다고 생각합니다. 이들은 관리 양식이므로 사이트를 업데이트하는 데만 사용됩니다. 코드는 다시 사용되지 않습니다. 아마도이 경우 가독성 포인트가 가장 큰 요인 일 것입니다. 어쨌든이 주제에 대한 호기심이이 특별한 상황을 넘어 서기 때문에 답장을 보내 주셔서 감사합니다. – user2592690

1

엄지 손가락의 좋은 규칙은 1 개 기능을 가지고하는 것이 좋습니다 단일 책임 원칙 (Single Responsibility Principle)은 함수가 단 한 가지를 수행해야한다고 말합니다.

+0

답장을 보내 주셔서 감사합니다. 두 양식 모두 정확히 동일한 유효성 검사가 필요합니다. 텍스트 상자의 수, 출력의 텍스트 및 제출 된 PHP 파일의 문제 일뿐입니다. 좋은 지적 ... 명심하는 것이 좋다. – user2592690

0

더 간단한 기능, 덜 복잡합니다.

+0

답장을 보내 주셔서 감사합니다. – user2592690

0

내 경험 법칙은 :이 논리가 다른 목적을 위해 더 필요하게 될 가능성이 있다면, 그것을 자신의 방법이나 기능으로 분리하는 것이 더 낫습니다.

일반적인 조건에 맞게 일부 조건을 추상화해야하지만, 다른 사용 사례에서는 논리를 반복하는 N 번 여분의 시간을 절약 할 수 있습니다.

+0

감사합니다. 좋은 지적입니다. – user2592690

0

일반적으로 단일 기능 또는 메서드가 단일 중요한 작업을 수행하는지 확인하는 것이 좋습니다. 여기에는 두 가지 이점이 있습니다.

  • 코드 가독성 향상 - 더 이상 코드를 작성 기억할 수있을 때 다시 X 달 시간 코드에 온다면, 그것은 따라보다 짧은 함수의 순서를 적응하기 위해 소요되는 시간이 덜 수 없다 각각 여러 작업을 수행하는 소수의 대규모 기능.
  • 증가 코드 재사용 - 이는 OOP 클래스에 더 많이 적용되지만 절차 상 관련이 있습니다. 합리적으로 특정 작업을 수행하는 함수를 작성하면 미래의 프로젝트에서 함수를 다시 사용할 수 있으므로 함수를 다시 작성하기 위해 길고 다기능 함수의 부분을 추출하는 대신 몇 가지 매개 변수 나 경로를 적용해야합니다 새로운 프로젝트의 필요에 따라
+0

고맙습니다. 그것은 훌륭한 대답이기도합니다. – user2592690

관련 문제