백엔드 개발 PHP 튜토리얼 少编码多思考:代码越多 问题越多_PHP教程

少编码多思考:代码越多 问题越多_PHP教程

Jul 13, 2016 am 10:38 AM
php web 하나 암호 생각하다 쓰다 코딩 프로그램 작성 질문

大约一年前,我曾编写过一些PHP Web编程守则——MicroPHP Manifesto。但我发现各个语言之间有一些共同的编程/编码规则,这或许是我在熟悉各种类型的编程语言后的一些收获吧。

下面是我总结出来的一些规则,并且在实际中应该牢记于心。

学习语言而不是框架

我喜欢PHP、Python和JavaScript,喜欢用他们做些东西。但我却不是Symfony、Django、jQuery开发人员。

我认为这有很大的区别。一个人很有可能成为一名jQuery程序员而非JavaScript,也有可能成为Django程序员而不是Python。在实际应用中,的确存在许多有价值且非常实用的工具和框架,但如果我仅知道如何使用一个框架,我想表达的观点是在工作上只使用合适的工具其实会给任务带来一些限制,你可以查看一下,看看你用的工具,看看你用的框架。以我的经验来看,一些复杂的全栈(full-stack)框架并不是非常合适的工具,尤其在灵活性和性能方面都不是太好。

集中精力学习一门语言会让程序员变的更加灵活。全栈式复杂框架可以帮助我快速的构建某个产品,但当我需要一个不属于框架范围内的解决方案时,它反而会变成一种伤害。我经常会采用“plug和pray”方法进行开发,当我发现某个库或插件可以满足需求时,我就会把它们应用到产品里。这样可能会使应用程序快速推出,但在以后的道路上会留下很多障碍。

此外,学习全栈框架和学习新语言一样复杂。它们通常都有复杂的体系结构和术语,并且有些部分并不适用于其他框架和工具上。当然框架也有许多好处,但前提是你必须要懂这门语言,然后才能理解其真正的工作原理,所以我宁愿花时间学习更多关于语言本身的东西,并且把所学的技能应用到其他语言或者库上。

构建小模块

有些小型的单元代码是很好很讨程序员们喜欢的,因为越小越容易理解且很难把它弄的很糟,所以限制编写冗长复杂的代码是非常重要的。

所以有目的的构建一些小模块——尽可能的接近需求目标。它们应该是独立的块,单纯地解决某方面问题,但是把它们结合起来时,就可以解决许多大型的、复杂的问题。

像这些简单的模块代码修复起bug来也会非常容易。因为这些单独的块通俗易懂,一看就会知道其用途。如果模块是自我包含的,那么测试起来会更加简单。

代码越少越好

套用Biggie Smalls的一句话:“代码越多,问题也就越多”。

谁都喜欢管理少的代码。估计大家都有过这样的体会,当审查一个功能模块的代码时,如果代码很多很乱,第一印象肯定不好,相反,如果该模块代码简洁明了,你会非常愉悦。更通俗点讲就是代码越多,管理起来也就越困难:搜索代码库的时间会变长、查看文件导航也需要较长的时间、跟踪执行也会变的困难等。

你是否发现,代码审查、还有你使用的工具,很大程度上都是用来减少代码量的。那些庞大的库和长代码似乎会溢出人们的大脑缓冲区。当我在追踪一段较长的源码或执行跳跃好几个源文件的功能时,我会感到很苦恼。这就是为什么我会喜欢给语法进行着色的编辑器,并且保持一致的空格对我也非常有帮助。

除了喜欢管理较少的代码外,我还支持开发者们尽量简化代码。程序员要为应用程序所使用的代码,不仅仅是自己编写的部分负责——甚至是这些应用里的每行代码。这也就意味着要替这些应用里出现的bug或者安全漏洞负责。

你会在程序中使用自己不理解的代码吗?这并不表示我从不使用他人的代码——坦白说,世上有许多优秀的程序员,但是在应用他人代码的时候,你必须理解代码,因为应用程序里的每行代码都很重要。在编码时千万不要忘记思考,编写最少代码的背后应该是多思考,这样就不会给自己带来不必要的麻烦。

编写简单、有用可读的代码

编写容易理解的代码,少编码多思考,这样完成一个功能就会很快,生产力就会得到提高。

当然,我也希望代码是可验证的。并且我一直认为简单、模块化的代码是更容易被测试。

代码应具备的另一特征就是可读。代码应简洁明了,语义清楚。在编写代码时,我会思考其他程序员在第一眼看到它的时候会花多长时间来理解。或者一两个月后我自己能一目了然吗?正如大家熟知的那句编程谚语:任何一个傻瓜都会写出能够让机器理解的代码,只有好的程序员才能写出人类可以理解的代码。当我试图发现它们工作原理的时间越少,做的事情就会越多。

但是很少有人能坚持这些规则,如果我说是,那么我肯定是在撒谎。有时候我也会很懒惰,甚至由于时间限制,我会编写一些复杂的、难以理解的代码或者使用没有审查的库来实现某个功能。想要在短期内编写简单、清晰的代码会很困难——它需要更多的纪律和不断的技术评估。特别是那种对时间敏感的项目,实行起来将会更难。

但是,当你花时间和精力去做的时候,你会发现功夫不负有心人——不仅仅对自己有帮助,还会给其他团队成员带来很多益处。

来自:More Code, More Problems

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/735071.htmlTechArticle大约一年前,我曾编写过一些PHP Web编程守则MicroPHP Manifesto。但我发现各个语言之间有一些共同的编程/编码规则,这或许是我在熟悉各种类...
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

이전에 몰랐던 후회되는 PHP 함수 7가지 이전에 몰랐던 후회되는 PHP 함수 7가지 Nov 13, 2024 am 09:42 AM

숙련된 PHP 개발자라면 이미 그런 일을 해왔다는 느낌을 받을 것입니다. 귀하는 상당한 수의 애플리케이션을 개발하고, 수백만 줄의 코드를 디버깅하고, 여러 스크립트를 수정하여 작업을 수행했습니다.

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. JWT (JSON Web Tokens) 및 PHP API의 사용 사례를 설명하십시오. Apr 05, 2025 am 12:04 AM

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? Feb 07, 2025 am 11:57 AM

이 튜토리얼은 PHP를 사용하여 XML 문서를 효율적으로 처리하는 방법을 보여줍니다. XML (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다

문자열로 모음을 계산하는 PHP 프로그램 문자열로 모음을 계산하는 PHP 프로그램 Feb 07, 2025 pm 12:12 PM

문자열은 문자, 숫자 및 기호를 포함하여 일련의 문자입니다. 이 튜토리얼은 다른 방법을 사용하여 PHP의 주어진 문자열의 모음 수를 계산하는 방법을 배웁니다. 영어의 모음은 A, E, I, O, U이며 대문자 또는 소문자 일 수 있습니다. 모음이란 무엇입니까? 모음은 특정 발음을 나타내는 알파벳 문자입니다. 대문자와 소문자를 포함하여 영어에는 5 개의 모음이 있습니다. a, e, i, o, u 예 1 입력 : String = "Tutorialspoint" 출력 : 6 설명하다 문자열의 "Tutorialspoint"의 모음은 u, o, i, a, o, i입니다. 총 6 개의 위안이 있습니다

PHP에서 늦은 정적 결합을 설명하십시오 (정적 : :). PHP에서 늦은 정적 결합을 설명하십시오 (정적 : :). Apr 03, 2025 am 12:04 AM

정적 바인딩 (정적 : :)는 PHP에서 늦은 정적 바인딩 (LSB)을 구현하여 클래스를 정의하는 대신 정적 컨텍스트에서 호출 클래스를 참조 할 수 있습니다. 1) 구문 분석 프로세스는 런타임에 수행됩니다. 2) 상속 관계에서 통화 클래스를 찾아보십시오. 3) 성능 오버 헤드를 가져올 수 있습니다.

Python을 사용한 문제 해결: 초보 코더로서 강력한 솔루션 잠금 해제 Python을 사용한 문제 해결: 초보 코더로서 강력한 솔루션 잠금 해제 Oct 11, 2024 pm 08:58 PM

Python은 초보자에게 문제 해결 능력을 부여합니다. 사용자 친화적인 구문, 광범위한 라이브러리 및 변수, 조건문 및 루프 사용 효율적인 코드 개발과 같은 기능을 제공합니다. 데이터 관리에서 프로그램 흐름 제어 및 반복 작업 수행에 이르기까지 Python은 제공합니다.

See all articles