规范2
If Then Else 格式 布局 这由程序员决定。不同的花括号样式会产生些微不同的样观。一个通用方式是: if (条件1) // 注释 { } else if (条件2) // 注释 { } else // 注释 { } 如果你有用到else if 语句的话,通常最好有一个else块以用于处理未处理到的其他情况。可以的话 放一个记录信息注释在else处,即使在else没有任何的动作。 条件格式 总是将恒量放在等号/不等号的左边,例如: if ( 6 == $errorNum ) ... 一个原因是假如你在等式中漏了一个等号,语法检查器会为你报错。第二个原因是你能立刻找到数值 而不是在你的表达式的末端找到它。需要一点时间来习惯这个格式,但是它确实很有用。 -------------------------------------------------------------------------------- switch 格式 Falling through a case statement into the next case statement shall be permitted as long as a comment is included. default case总应该存在,它应该不被到达,然而如果到达了就会触发一个错误。 如果你要创立一个变量,那就把所有的代码放在块中。 例如 switch (...) { case 1: ... // FALL THROUGH case 2: { $v = get_week_number(); ... } break; default: } -------------------------------------------------------------------------------- continue,break 和 ? 的使用: Continue 和 Break Continue 和 break 其实是变相的隐蔽的 goto方法。 Continue 和 break 像 goto 一样,它们在代码中是有魔力的,所以要节俭(尽可能少)的使用它们。 使用了这一简单的魔法,由于一些未公开的原因,读者将会被定向到只有上帝才知道的地方去。 Continue有两个主要的问题: 它可以绕过测试条件。 它可以绕过等/不等表达式。 看看下面的例子,考虑一下问题都在哪儿发生: while (TRUE) { ... // A lot of code ... if (/* some condition */) { continue; } ... // A lot of code ... if ( $i++ > STOP_VALUE) break; } 注意:"A lot of code"是必须的,这是为了让程序员们不能那么容易的找出错误。 通过以上的例子,我们可以得出更进一步的规则:continue 和 break 混合使用是引起灾难的正确方法。 ?: 麻烦在于人民往往试着在 ? 和 : 之间塞满了许多的代码。以下的是一些清晰的连接规则: 把条件放在括号内以使它和其他的代码相分离。 如果可能的话,动作可以用简单的函数。 把所做的动作,“?”,“:”放在不同的行,除非他们可以清楚的放在同一行。 例如 (condition) ? funct1() : func2(); or (condition) ? long statement : another long statement; -------------------------------------------------------------------------------- 声明块的定位 声明代码块需要对齐。 理由Justification 清晰。 变量初始化的类似代码块应该列表。 The ??token should be adjacent to the type, not the name. 例如 var $mDate var& $mrDate var& $mrName var $mName $mDate = 0; $mrDate = NULL; $mrName = 0; $mName = NULL; -------------------------------------------------------------------------------- 每行一个语句 除非这些语句有很密切的联系,否则每行只写一个语句。 -------------------------------------------------------------------------------- 短方法 方法代码要限制在一页内。 理由 这个思想是,每一个方法代表着一个完成单独目的的技术。 从长远来说,过多的无效参数是错误的。 调用函数比不调用要慢,但是这需要详细考虑做出决定(见premature optimization 未完善的优化)。 -------------------------------------------------------------------------------- 记录所有的空语句 总是记录下for或者是while的空块语句,以便清楚的知道该段代码是漏掉了,还是故意不写的。 while ($dest++ = $src++) ; // VOID -------------------------------------------------------------------------------- 不要采用缺省方法测试非零值 不要采用缺省值测试非零值,也就是使用: if (FAIL != f()) 比下面的方法好: if (f()) 即使 FAIL 可以含有 0 值 ,也就是PHP认为false的表示。在某人决定用-1代替0作为失败返回值的时候, 一个显式的测试就可以帮助你了。就算是比较值不会变化也应该使用显式的比较;例如:if (!($bufsize % strlen($str))) 应该写成:if (($bufsize % strlen($str)) == 0)以表示测试的数值(不是布尔)型。一个经常出 问题的地方就是使用strcmp来测试一个字符等式,结果永远也不会等于缺省值。 非零测试采用基于缺省值的做法,那么其他函数或表达式就会受到以下的限制: 只能返回0表示失败,不能为/有其他的值。 命名以便让一个真(true)的返回值是绝对显然的,调用函数IsValid()而不是Checkvalid()。 -------------------------------------------------------------------------------- 布尔逻辑类型 大部分函数在FALSE的时候返回0,但是发挥非0值就代表TRUE,因而不要用1(TRUE,YES,诸如此类)等式检测一个布尔值,应该用0(FALSE,NO,诸如此类)的不等式来代替: if (TRUE == func()) { ... 应该写成: if (FALSE != func()) { ... -------------------------------------------------------------------------------- 通常避免嵌入式的赋值 有时候在某些地方我们可以看到嵌入式赋值的语句,那些结构不是一个比较好的少冗余,可读性强的方法。 while ($a != ($c = getchar())) { process the character } ++和--操作符类似于赋值语句。因此,出于许多的目的,在使用函数的时候会产生副作用。使用嵌入式赋值 提高运行时性能是可能的。无论怎样,程序员在使用嵌入式赋值语句时需要考虑在增长的速度和减少的可维 护性两者间加以权衡。例如: a = b + c; d = a + r; 不要写成: d = (a = b + c) + r; 虽然后者可以节省一个周期。但在长远来看,随着程序的维护费用渐渐增长,程序的编写者对代码渐渐遗忘, 就会减少在成熟期的最优化所得。 -------------------------------------------------------------------------------- 重用您和其他人的艰苦工作 跨工程的重用在没有一个通用结构的情况下几乎是不可能的。对象符合他们现有的服务需求,不同的过程有着 不同的服务需求环境,这使对象重用变得很困难。 开发一个通用结构需要预先花费许多的努力来设计。当努力不成功的时候,无论出于什么原因,有几种办法推 荐使用: 请教!给群组发Email求助 这个简单的方法很少被使用。因为有些程序员们觉得如果他向其他人求助,会显得自己水平低,这多傻啊!做新 的有趣的工作,不要一遍又一遍的做别人已经做过的东西。 如果你需要某些事项的源代码,如果已经有某人做过的话,就向群组发email求助。结果会很惊喜哦! 在许多大的群组中,个人往往不知道其他人在干什么。你甚至可以发现某人在找一些东西做,并且自愿为你写代 码,如果人们在一起工作,外面就总有一个金矿。 告诉!当你在做事的时候,把它告诉所有人 如果你做了什么可重用的东西的话,让其他人知道。别害羞,也不要为了保护自豪感而把你的工作成果藏起来。 一旦养成共享工作成果的习惯,每个人都会获得更多。 Dont be Afraid of Small Libraries 对于代码重用,一个常见的问题就是人们不从他们做过的代码中做库。一个可重用的类可能正隐蔽在一个程序目 录并且决不会有被分享的激动,因为程序员不会把类分拆出来加入库中。 这样的其中一个原因就是人们不喜欢做一个小库,对小库有一些不正确感觉。把这样的感觉克服掉吧,电脑才不 关心你有多少个库呢。 如果你有一些代码可以重用,而且不能放入一个已经存在的库中,那么就做一个新的库吧。如果人们真的考虑重 用的话,库不会在很长的一段时间里保持那么小的。 If you are afraid of having to update makefiles when libraries are recomposed or added then dont include libraries in your makefiles, include the idea of services. Base level makefiles define services that are each composed of a set of libraries. Higher level makefiles specify the services they want. When the libraries for a service change only the lower level makefiles will have to change. Keep a Repository Most companies have no idea what code they have. And most programmers still dont communicate what they have done or ask for what currently exists. The solution is to keep a repository of whats available. In an ideal world a programmer could go to a web page, browse or search a list of packaged libraries, taking what they need. If you can set up such a system where programmers voluntarily maintain such a system, great. If you have a librarian in charge of detecting reusability, even better. Another approach is to automatically generate a repository from the source code. This is done by using common class, method, library, and subsystem headers that can double as man pages and repository entries. -------------------------------------------------------------------------------- 评价注释 注释应该是讲述一个故事 Consider your comments a story describing the system. Expect your comments to be extracted by a robot and formed into a man page. Class comments are one part of the story, method signature comments are another part of the story, method arguments another part, and method implementation yet another part. All these parts should weave together and inform someone else at another point of time just exactly what you did and why. Document Decisions Comments should document decisions. At every point where you had a choice of what

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Gigabyte 마더보드에서 키보드 시작을 설정하는 방법 먼저, 키보드 시작을 지원해야 한다면 PS2 키보드여야 합니다! ! 설정 단계는 다음과 같습니다. 1단계: 부팅 후 Del 또는 F2를 눌러 BIOS에 들어가고, BIOS의 고급(Advanced) 모드로 들어갑니다. 일반 마더보드는 기본적으로 마더보드의 EZ(Easy) 모드로 들어갑니다. F7을 눌러 고급 모드로 전환합니다. ROG 시리즈 마더보드는 기본적으로 BIOS로 들어갑니다. 고급 모드(간체 중국어를 사용하여 설명) 2단계: - [고급] - [고급 전원 관리(APM)]를 선택합니다. [PS2 키보드로 깨우기] 옵션 찾기 4단계: 이 옵션 기본값은 비활성화입니다. 아래로 당기면 세 가지 다른 설정 옵션이 표시됩니다. 즉, 컴퓨터를 켜려면 [스페이스바]를 누르고 그룹을 누르세요.

QQ 이메일: QQ number@qq.com, 영어 QQ 이메일: 영어 또는 number@qq.com, foxmail 이메일 계정: 자신의 account@foxmail.com 설정, 휴대폰 이메일 계정: 휴대폰 number@qq.com. 튜토리얼 적용 모델: iPhone13 시스템: IOS15.3 버전: QQ Mailbox 6.3.3 분석 1QQ 사서함에는 일반적으로 사용되는 네 가지 형식이 있습니다. QQ 사서함: QQ number@qq.com, 영어 QQ 사서함: 영어 또는 숫자@qq.com, foxmail 이메일 계정: 자신만의 account@foxmail.com을 설정하세요. 휴대폰 이메일 계정: 휴대폰 번호@qq.com. 보충: qq 메일함이란 무엇입니까? 1 최초의 QQ 메일함은 QQ 사용자 사이에만 있었습니다.

1. 프로세서 컴퓨터 구성을 선택할 때 프로세서는 가장 중요한 구성 요소 중 하나입니다. CS와 같은 게임을 플레이할 때 프로세서의 성능은 게임의 부드러움과 응답 속도에 직접적인 영향을 미칩니다. Intel Core i5 또는 i7 시리즈 프로세서는 강력한 멀티 코어 처리 기능과 높은 주파수를 갖추고 CS의 높은 요구 사항에 쉽게 대처할 수 있으므로 선택하는 것이 좋습니다. 2. 그래픽 카드 그래픽 카드는 게임 성능을 좌우하는 중요한 요소 중 하나입니다. CS 등 슈팅 게임에서는 그래픽 카드의 성능이 게임 화면의 선명도와 부드러움에 직접적인 영향을 미칩니다. NVIDIA GeForce GTX 시리즈 또는 AMD Radeon RX 시리즈 그래픽 카드를 선택하는 것이 좋습니다. 이 카드는 뛰어난 그래픽 처리 기능과 높은 프레임 속도 출력을 갖추고 있으며 더 나은 게임 경험을 제공할 수 있습니다.

마더보드의 SPDIFOUT 연결 라인 순서 최근에 전선의 배선 순서에 문제가 발생했습니다. 온라인에서 확인해 보니 1, 2, 4가 out, +5V, ground에 해당한다는 정보도 있고, 1, 2, 4가 out, ground, +5V에 해당한다는 정보도 있습니다. 가장 좋은 방법은 마더보드 설명서를 확인하는 것입니다. 설명서를 찾을 수 없으면 멀티미터를 사용하여 측정할 수 있습니다. 먼저 접지를 찾은 다음 나머지 배선의 순서를 결정할 수 있습니다. 마더보드 VDG 배선 연결 방법 마더보드의 VDG 배선을 연결할 때 VGA 케이블의 한쪽 끝을 모니터의 VGA 인터페이스에 연결하고 다른 쪽 끝을 컴퓨터 그래픽 카드의 VGA 인터페이스에 연결해야 합니다. 마더보드의 VGA 포트에 연결하지 않도록 주의하세요. 연결되면 다음을 수행할 수 있습니다.

세계 최초의 AI 프로그래머 데빈(Devin)이 태어난 지 한 달도 채 안 된 2022년 3월 3일, 프린스턴 대학의 NLP팀은 오픈소스 AI 프로그래머 SWE-에이전트를 개발했습니다. GPT-4 모델을 활용하여 GitHub 리포지토리의 문제를 자동으로 해결합니다. SWE-bench 테스트 세트에서 SWE-agent의 성능은 Devin과 유사하며 평균 93초가 걸리고 문제의 12.29%를 해결합니다. SWE-agent는 전용 터미널과 상호 작용하여 파일 내용을 열고 검색하고, 자동 구문 검사를 사용하고, 특정 줄을 편집하고, 테스트를 작성 및 실행할 수 있습니다. (참고: 위 내용은 원문 내용을 약간 조정한 것이지만 원문의 핵심 정보는 그대로 유지되며 지정된 단어 수 제한을 초과하지 않습니다.) SWE-A

글로돈소프트웨어(Glodon Software)는 건축정보화 분야에 주력하는 소프트웨어 회사로, 해당 제품은 건축 설계, 시공, 운영 전반에 걸쳐 폭넓게 사용되고 있다. Glodon 소프트웨어의 복잡한 기능과 대용량 데이터로 인해 높은 컴퓨터 구성이 필요합니다. 이 기사에서는 독자가 적합한 컴퓨터 구성 프로세서를 선택할 수 있도록 Glodon 소프트웨어의 컴퓨터 구성 권장 사항을 여러 측면에서 자세히 설명합니다. Glodon 소프트웨어는 아키텍처 설계, 시뮬레이션 및 기타 작업을 수행할 때 많은 양의 데이터 계산 및 처리가 필요합니다. 프로세서의 경우 더 높습니다. Intel i7 시리즈 또는 AMD Ryzen 시리즈와 같은 멀티 코어, 고주파 프로세서를 선택하는 것이 좋습니다. 이러한 프로세서는 강력한 컴퓨팅 성능과 멀티 스레드 처리 기능을 갖추고 있어 Glodon 소프트웨어의 요구 사항을 더 잘 충족할 수 있습니다. 메모리 메모리가 컴퓨팅에 영향을 미치고 있습니다.

잘못 정렬된 WordPress 웹 페이지 해결 가이드 WordPress 웹 사이트 개발 시 때로는 웹 페이지 요소가 잘못 정렬되는 경우가 있습니다. 이는 다양한 장치의 화면 크기, 브라우저 호환성 또는 부적절한 CSS 스타일 설정 때문일 수 있습니다. 이러한 잘못된 정렬을 해결하려면 문제를 주의 깊게 분석하고, 가능한 원인을 찾아 단계별로 디버그하고 복구해야 합니다. 이 문서에서는 몇 가지 일반적인 WordPress 웹 페이지 정렬 문제와 해당 솔루션을 공유하고 개발에 도움이 되는 특정 코드 예제를 제공합니다.

jQueryAJAX 오류 403 문제를 해결하는 방법은 무엇입니까? 웹 애플리케이션을 개발할 때 jQuery는 종종 비동기 요청을 보내는 데 사용됩니다. 그러나 때때로 jQueryAJAX를 사용할 때 서버에서 액세스가 금지되었음을 나타내는 오류 코드 403이 발생할 수 있습니다. 이는 일반적으로 서버 측 보안 설정으로 인해 발생하지만 문제를 해결하는 방법이 있습니다. 이 기사에서는 jQueryAJAX 오류 403 문제를 해결하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. 만들다
