실업률이 점점 높아지면서 많은 사람들이 일자리를 유지하는 것이 얼마나 중요한지 깨닫고 있습니다. 그렇다면 직업을 유지하고 자신을 대체할 수 없는 사람으로 만드는 좋은 방법은 무엇입니까? 간단한 사실은 누구도 귀하의 코드를 유지할 수 없는 한 귀하는 성공적으로 작업을 유지했다는 것입니다. 유지 관리할 수 없는 코드를 작성하는 것은 특별한 기술이지만 이상하게도 일부 개발자에게는 자연스러운 것 같습니다. 하지만 나머지 개발자들을 위해 유지 관리할 수 없는 코드 작성을 시작하는 데 도움이 되는 몇 가지 팁과 힌트가 있습니다.
가장 먼저 해야 할 일
첫 번째 단계는 일자리를 찾는 것입니다. 당신은 성장하고 당신의 유지 불가능한 잠재력을 실현할 수 있는 올바른 회사를 찾아야 합니다. 회사에서 반드시 PHP 전문가일 필요는 없으며, 그렇다면 더욱 좋습니다. 일자리를 찾을 때 직무 설명에 다른 언어에서 PHP로 마이그레이션하는 내용이 언급되어 있으면(그래서 귀하가 결정을 내릴 수 있음을 알 수 있음) PHP5에 대한 10년의 경험과 숙련도가 필요한 오해의 소지가 있는 일자리를 검색할 수도 있습니다. FrontPage와 Netscape에서.
이 일생에 한 번뿐인 기회를 얻으면 첫날부터 조치를 취하세요. 회의에서 발언하고 자신의 목소리를 들려주세요. 객체 지향 아키텍처 설계, 기업, 개혁 계획, 그리고 더 나은 것을 만드는 방법에 대해 대담하게 이야기하십시오. 물론 그에 상응하는 약속도 해야 합니다. 모든 사람이 중요한 코딩 단계에 대해 상담하도록 하세요.
관리 불가능한 코어
훌륭한 기사 "유지 관리 불가능한 코드 작성"(직장을 유지하려는 사람들이 반드시 읽어야 함)에서 영감을 받아 마스터하고 마스터해야 하는 두 가지 중요한 개념은 다음과 같습니다.
다른 사람이 다른 것을 깨뜨리지 않고 쉽게 무엇이든 수정할 수는 없습니다.
관리자는 코드를 이해할 시간이 없습니다. 유지 관리 가능한 코드란 수많은 코드에서 특정 부분을 빠르게 찾을 수 있고, 작동 방식을 빠르게 이해하고, 코드를 손상시키지 않고 변경할 수 있음을 의미합니다. 당신은 이것을 할 수 없습니다. 다른 사람이 무언가를 쉽게 검색하거나 원하는 위치에서 찾을 수 있도록 만들지 마십시오.
귀하의 코드는 유지 관리 불가능해 "보일" 수 없으며(다른 사람들이 의심할 것이기 때문에) 유지 관리 불가능 "해야" 합니다.
코드는 관리자에게 평범해 보이지만 전혀 예상치 못한 순간에는 놀라게 됩니다.
모범 사례
코딩 규칙이 없습니다. 코딩 및 명명 규칙에 대한 미늘은 끝이 없습니다. 당신이 속한 훌륭한 조직에서는 이런 일이 결코 일어나서는 안 됩니다. 작업할 멋진 프로젝트가 있는데 탭을 사용할지 스페이스를 사용할지 토론하는 데 셀 수 없이 많은 시간을 보낼 수는 없습니다. 게다가 계약에는 한계가 있습니다. 만약 새로운 사람이 회사에 입사했는데 그 사람이 당신의 동의에 익숙하지 않다면 그 사람은 비참해질 것입니다. 불행한 프로그래머는 무능한 프로그래머이다. 묻는 사람에게 설명하십시오. 누구나 자신이 선호하는 스타일로 코드를 작성할 수 있습니다. 자신의 코드에 관해서는 규칙을 바꾸십시오. 월요일은 모두 소문자로 camelCase
小驼峰命名,周二用 all_lowercase
로 명명되고, 금요일은 혼합되어 명명되며, 매년 2월 29일은 헝가리식 명명법을 사용합니다.
댓글이 없습니다. 귀하의 코드는 아름답습니다. 주석이 필요하지 않습니다. 누군가가 당신의 코드를 이해하지 못한다면, 그 사람은 그다지 좋은 프로그래머가 아닐 가능성이 높습니다. 가능하다면 억지로 댓글을 써야 한다면, 그냥 과장해서 쓰세요. 가장 명확하고 덜 중요한 코드를 자세히 설명하고 나머지는 건너뜁니다.
메모장을 사용하여 코드를 작성하세요. 또는 코드 들여쓰기를 표시하지 않는 다른 편집기를 사용하십시오. 다른 사람들을 고통스럽게 만들고 결국 팀을 떠나게 만듭니다. 이렇게 하면 항상 그들의 불만을 들을 필요가 없습니다. 누군가 메모장을 사용하는 이유를 묻는다면 다음과 같이 설명할 준비를 하십시오. 메모장은 Windows(현재 창의적인 프로그래머를 위한 유일한 운영 체제)에서 제공되므로 필요한 교육이 필요하지 않으며 비용도 전혀 들지 않습니다. 웹 페이지를 코딩하기 위해 어떤 프로그램, 심지어 Word라도 사용할 수 있다는 참고 자료를 온라인에서 찾을 수 있을 거라 확신합니다. 그러나 진짜 권위자는 메모장뿐입니다. 결국 회사에서 고용하는 유일한 사람은 당신뿐입니다.
단위 테스트 거부. 질문하는 사람에게 당신은 고품질의 버그 없는 코드를 작성하기 위해 고용되었다는 사실을 설명하십시오(그래서 테스트가 필요하지 않습니다). 올바른 생각을 가진 사람이 코드가 올바르게 작동하는지 증명하기 위해 사소한 테스트를 작성하는 데 시간을 할애할 이유가 무엇입니까? 인생의 어떤 것들은 하늘이 파랗고, 해가 동쪽에서 뜨고, 코드가 작동하는 것과 같습니다. 정말 감사합니다. 계속하세요(댓글에 좋아요를 눌러야 한다면, 뻔한 부분만 테스트하고 나머지는 건너뛸 준비를 하세요)
템플릿 엔진을 사용하지 않음. 템플릿 엔진은 비즈니스 논리 계층과 프레젠테이션 계층을 구별하는 데 도움이 됩니다. 이는 코드의 유지 관리 가능성을 보장하므로 이 규칙을 따를 수 없습니다. PHP의 아버지인 Rasmus Lerdorf는 "PHP는 템플릿 엔진이다"라고 말했습니다. 템플릿 엔진을 사용해야 하는 경우에도 템플릿에 일부 비즈니스 코드를 넣거나 데이터베이스 액세스 계층에서 HTML(및 CSS 및 JavaScript) 코드를 신중하게 혼합하는 등 이를 남용하는 방법을 찾으십시오.
일반적으로 동일한 코드 줄에 PHP, HTML, CSS 및 JavaScript 코드를 최대한 확실하게 혼합하세요. PHP 코드 내에서 인라인 스타일을 사용하여 JavaScript 및 HTML 코드를 만듭니다. 누군가 묻는다면 이 패턴을 "캡슐화"라고 하며 코드에 대한 전적인 책임은 본인에게 있다고 말하세요.
버전 관리. 이를 피하기는 어렵지만 양식이나 버전 제어에서 벗어나려고 노력하는 것이 좋습니다. 냉혈한 버전 제어 소프트웨어에 의존하는 대신 팀 구성원 간의 의사소통이 향상된다는 점을 토론 중에 입증할 수 있습니다. 누구도 설득하지 못하더라도 절망하지 마십시오. 제출할 때 모두 커밋할 필요는 없습니다. 자신의 코드 중 일부를 로컬에 보관하세요. 이 작지만 치명적인 코드 조각은 여러분이 아닌 다른 사람이 프로젝트를 빌드하고 배포하려고 하면 프로젝트를 중단시킵니다. 걸리면 코드가 아직 프레젠테이션에 적합하지 않다고 주장하면 됩니다. 결국 후배 팀을 교육할 수 있는 고품질 코드와 우수한 솔루션을 제출한 것입니다. 이 어린 소년 소녀들은 기대감을 갖고 여러분을 우러러볼 것입니다!
프레임워크 구축. 그렇다면 당신은 필연적으로 건축가가 되며 당신의 권위는 의심할 여지가 없습니다. 이 방법을 사용하면 가장 경험이 풍부한 유지관리자조차 감지하지 못하는 몇 가지 비밀 규칙(물론 대부분은 때로는 모순되기도 함)을 추가할 수 있습니다. 당신의 프레임워크는 모든 것을 처리할 것이고, 아무도 그것을 이해하려고 애쓰지 않을 것이며, 당신만이 개발을 더 쉽게 만들고 회사 전체의 생산성을 높일 수 있기 때문에 모두가 행복할 것입니다. 여러분의 프레임워크를 오픈 소스로 공개하지 마십시오. 왜냐하면 a) 프레임워크는 회사의 자산이고 회사는 이에 많은 돈을 투자했기 때문입니다. b) 오픈 소스 커뮤니티는 여러분을 비웃을 것입니다. 허세 끝.
이름 지정 관련
변수 이름은 신비스러워야 하며, 한 글자만 사용하는 것이 좋습니다. 이렇게 하면 누구도 간단한 검색만으로 필요한 것을 찾을 수 없습니다.
클래스 이름과 메서드는 한 글자로 가장 잘 정의됩니다. 정말로 일반적인 이름을 정의하고 싶다면 항상 그 이름을 사용하십시오. 정보를 숨기는 가장 좋은 방법은 자주 사용하는 것임을 기억하십시오. 동일한 이름을 재사용할 때("객체 지향 프로그래밍"이라고 함) 새 줄에 괄호와 중괄호를 배치하면 코드의 가독성이 향상되고 팀원을 코드에 유지하는 데 도움이 됩니다. 정규식을 공부해야 합니다. 이것을 고려하십시오:
$noodles = 1; class noodles { var $noodles = 2; function noodles () { $noodles['noodles'] = 'noodles'; } } function noodles() { return new noodles; } $noodles = noodles(); var_dump($noodles);
멋진 문자 세트를 사용하여 변수 이름을 지정할 수도 있습니다. 키릴 문자는 일부 문자가 로마 알파벳처럼 보이지만 그렇지 않기 때문에 완벽합니다(모두: xopekacMEBCTAKXOPH). 그러면 다음과 같이 출력됩니다.
$alert = 1; $аlert = 2; echo $alert;
두 번째 alert
가 키릴 문자 "a"로 시작하면 아니요!
引用相关
即使你非常正常的定义来一些东西,但并不意味着你不能以有趣的方式来使用它。主要的武器有:
eval()
可变变量
可变类,比如 $strudels = "noodles"; $noo = new $strudels;
call_user_func()
基本上任何将代码视为字符串的语言结构都是你的好朋友。
// calling abc(); $z = 'A'; call_user_func($z .'bC');
大写
字母例子,函数方法名不区分大小写,滥用这个特点。
function abc(){ echo "abc";}AbC();
另一方面,数组的健(key) 对大小写敏感,也滥用这个特点。
$a['UseConvetionsOnlyTobreakThem'] = 1;if (isset($a['UseConvetionsOnlyToBreakThem'])) { // ?? 大写 B !!1!}
重写
在不期望的情况下重写全局变量,尤其是超全局变量。尽早重写 $_GET
数组中的属性,多次重写,$_POST
亦是如此。在 $_REQUEST
上做一些不起眼的重写作为点缀。如果是在 WTF-ed 上,你可以解释是在防止用户输入的 XSS 攻击、注入攻击以及其他的病毒攻击。
控制结构
使用、混合、匹配所有备选的 if
,while
,for
,foreach
,switch
语法。如果被问起来,所有的这些,请解释说你正在培训新员工学习真正的语言。
if ($a > 5): if ($a > 4) { while ($a > 0): echo --$a; endwhile; }endif;
嵌套三元运算符,没有比这个更好、更简洁的代码了。
// 猜猜这里输出什么echo true ? 'true' : false ? 't' : 'f';
在 for
的循环体内,再次增加 $i
以保持所有人的注意。或者,通过不使用 $i
来实现循环增量的惊喜。从不。
嵌套循环、深入,然后突然跳出它们(循环)。像 break 2
和 break 3
这样的代码存粹是为了娱乐,尤其是当混合了奇怪的缩进代码时。
这是一个开始!
这就是今天的全部。我希望你相信你自己也能做到,你也可以编写不可维护的代码。现在你的未来就在你的手中!当然,你也可以编写可读性比较高的代码,但是冒着被替代的风险。
Practice makes perfect.
原文地址:http://www.phpied.com/how-to-write-unmaintainable-php-code-2009/
相关文章推荐:
1. 2019 PHP安全指南