提高程式碼質量-----php要提升的
關於php 現在主要糾結在 怎麼寫出 好看的程式碼 如 用面向物件的思想程式設計 用到設計模式 寫高質量的程式碼 提高演算法效率 所以在此轉載一些能改進我的這幾個方面的知識 學習 一下 也希望大俠們 有什麼好的建議 可以提出 注:要自己的親身體驗哦......
下面是轉載內容:
1.不要使用相對路徑
常常會看到:
- require_once('../../lib/some_class.php');
該方法有很多缺點:
它首先查詢指定的php包含路徑, 然後查詢當前目錄.
因此會檢查過多路徑.
如果該指令碼被另一目錄的指令碼包含, 它的基本目錄變成了另一指令碼所在的目錄.
另一問題, 當定時任務執行該指令碼, 它的上級目錄可能就不是工作目錄了.
因此最佳選擇是使用絕對路徑:
- define('ROOT' , '/var/www/project/');
- require_once(ROOT . '../../lib/some_class.php');
- //rest of the code
我們定義了一個絕對路徑, 值被寫死了. 我們還可以改進它. 路徑 /var/www/project 也可能會改變, 那麼我們每次都要改變它嗎? 不是的, 我們可以使用__FILE__常量, 如:
- //suppose your script is /var/www/project/index.php
- //Then __FILE__ will always have that full path.
- define('ROOT' , pathinfo(__FILE__, PATHINFO_DIRNAME));
- require_once(ROOT . '../../lib/some_class.php');
- //rest of the code
現在, 無論你移到哪個目錄, 如移到一個外網的伺服器上, 程式碼無須更改便可正確執行.
2. 不要直接使用 require, include, include_once, required_once
可以在指令碼頭部引入多個檔案, 像類庫, 工具檔案和助手函式等, 如:
- require_once('lib/Database.php');
- require_once('lib/Mail.php');
- require_once('helpers/utitlity_functions.php');
這種用法相當原始. 應該更靈活點. 應編寫個助手函式包含檔案. 例如:
- function load_class($class_name)
- {
- //path to the class file
- $path = ROOT . '/lib/' . $class_name . '.php');
- require_once( $path );
- }
- load_class('Database');
- load_class('Mail');
有什麼不一樣嗎? 該程式碼更具可讀性.
將來你可以按需擴充套件該函式, 如:
- function load_class($class_name)
- {
- //path to the class file
- $path = ROOT . '/lib/' . $class_name . '.php');
- if(file_exists($path))
- {
- require_once( $path );
- }
- }
還可做得更多:
為同樣檔案查詢多個目錄
能很容易的改變放置類檔案的目錄, 無須在程式碼各處一一修改
可使用類似的函式載入檔案, 如html內容.
3. 為應用保留除錯程式碼
在開發環境中, 我們列印資料庫查詢語句, 轉存有問題的變數值, 而一旦問題解決, 我們註釋或刪除它們. 然而更好的做法是保留除錯程式碼.
在開發環境中, 你可以:
- define('ENVIRONMENT' , 'development');
- if(! $db->query( $query )
- {
- if(ENVIRONMENT == 'development')
- {
- echo "$query failed";
- }
- else
- {
- echo "Database error. Please contact administrator";
- }
- }
在伺服器中, 你可以:
- define('ENVIRONMENT' , 'production');
- if(! $db->query( $query )
- {
- if(ENVIRONMENT == 'development')
- {
- echo "$query failed";
- }
- else
- {
- echo "Database error. Please contact administrator";
- }
- }
4. 使用可跨平臺的函式執行命令
system, exec, passthru, shell_exec 這4個函式可用於執行系統命令. 每個的行為都有細微差別. 問題在於, 當在共享主機中, 某些函式可能被選擇性的禁用. 大多數新手趨於每次首先檢查哪個函式可用, 然而再使用它.
更好的方案是封成函式一個可跨平臺的函式。
相關推薦
提高程式碼質量-----php要提升的
關於php 現在主要糾結在 怎麼寫出 好看的程式碼 如 用面向物件的思想程式設計 用到設計模式 寫高質量的程式碼 提高演算法效率 所以在此轉載一些能改進我的這幾個方面的知識 學習 一下 也希望大俠們 有什麼好的建議 可以提出 注:要自己
linux下提高程式碼質量的幾個工具
1、測試程式碼覆蓋率 gcov 2、程式碼靜態測試 splint 3、記憶體洩漏測試 valgrind --tool=memcheck --leak-check=yes ./file 4、效能測試 gpro
SonarQube與Jenkins結合提高程式碼質量
首先,為什麼需要SonarQube? 1、WriteClean Code 1)全域性健康報告 2)關注新增的問題 3)強制QualityGate 4)Issue詳情及建議… 詳情參考:https://www.sonarqube.org/features/clean-c
idea,配置checkstyle 【提高程式碼質量,檢查程式碼規範的工具 】Checkstyle,FindBugs,PMD,Jtest
idea,配置checkstyle 【提高程式碼質量,檢查程式碼規範的工具 】Checkstyle,FindBugs,PMD,Jtest 2016年12月15日 14:19:02 common_util 閱讀數:18818更多 個人分類: 開發 版權宣告:本文為博主原創文章,可以轉載分
C#中使用try catch和using如何提高程式碼質量
簡介: try catch我們之前說過是處理異常的,其實主要處理異常的是catch,而finally中是釋放資源的,說白了using在C# 中也是讓使用資源的物件釋放資源的,無疑和finally差不多,
【程式碼質量管理工具】--使用sonarLint提高程式碼質量
【背景】 專案組,在12月份的時候使用了強大的程式碼質量管理工具--Sonar來檢測規範我們的程式碼,但是當時使用的時候會有一個缺陷,就是我每使用一次maven命令將程式碼掃描到sona
php程式設計師要努力突破的瓶頸-----php要提升的
作為Web開發中應用最廣泛的語言之一,PHP有著大量的粉絲,那麼你是一名優秀的程式設計師嗎?在進行自我修煉的同時,你是否想過面對各種各樣的問題,我該如何突破自身的瓶頸,以便更好的發展呢? PHP工程師面臨成長瓶頸 先明確這裡所指的PHP工程師,是指主要以PHP進行Web系統的開發,沒有使用其的語言工
用 Eclipse 外掛提高程式碼質量
開發軟體時,我的主要目標之一是:要麼防止將缺陷引入程式碼庫,要麼限制缺陷的生存期;換言之,要儘早找到缺陷。很顯然,越是瞭解如何編寫更好的程式碼以及如何有效測試軟體,就越能及早地捕捉到缺陷。我也很想要一張能發現潛在缺陷的安全之網。 在本系列 八月份 的那期文章中,我得出了這樣
提高程式碼質量,從觀念到實踐--Clean Code 培訓總結
程式設計價值觀 之前我總是認為好的程式碼精簡是第一位,這樣才夠“優雅”,我寫20行程式碼的功能,別人10行就能實現就是比我厲害。但在工程的世界,程式設計師寫程式碼不只是給自己看的,還要考慮到後面會有同事要來維護你的程式碼。因此什麼是好程式碼要重新定義:不應該追
提高程式碼質量-工具篇
在這片文章中,我將從工具使用的角度上講述如何提高 Android 程式碼質量,這些自動化工具包括 Checksytle、Findbugs、PMD 和 Android Lint. 團隊中程式碼意識不一致,水平參差不齊,程式碼風格迥異,定下的規範也是熟視無睹。這時候就需要藉助工具的力量,利用工具自動地幫助我
idea,配置checkstyle 【提高程式碼質量,檢查程式碼規範的工具 】Checkstyle
CheckStyle是SourceForge下的一個專案,提供了一個幫助JAVA開發人員遵守某些編碼規範的工具。它能夠自動化程式碼規範檢查過程,從而使得開發人員從這項重要,但是枯燥的任務中解脫出來。 CheckStyle檢驗的主要內容 列表內容 Jav
不知道怎麼提高程式碼質量?來看看這幾種設計模式吧!
## 提高程式碼質量的目的 程式猿的本職工作就是寫程式碼,寫出高質量的程式碼應該是我們的追求和對自己的要求,因為: > 1. 高質量的程式碼往往意味著更少的BUG,更好的模組化,是我們擴充套件性,複用性的基礎 > 2. 高質量的程式碼也意味著更好的書寫,更好的命名,有利於我們的維護 ## 什
PHP提升程式碼質量之36計
轉載:https://www.binarytides.com/35-techniques-to-enhance-your-php-code/ 1.不要使用相對路徑 常常會看到: require_once('../../lib/some_class.php'); 該方法有很多缺
36計教您如何提高PHP程式碼質量(二) 轉自csdn
7、 在某地方收集所有輸入, 一次輸出給瀏覽器 這稱為輸出緩衝, 假如說你已在不同的函式輸出內容: <?php function print_header() { echo "<div id='header'>Site Lo
《隨筆十八》——C#中的 “ 【《Effective C#》提煉總結】提高Unity中C#程式碼質量的22條準則 ”
目錄 引言 本文內容思維導圖式總結 原則1:儘可能地使用屬性,而不是可直接訪問的資料成員 原則2:偏向於使用執行時常量而不是編譯時常量 原則3: 推薦使用is 或as操作符而不是強制型別轉換 原則4: 推薦使用條件屬性而不是#if條件編譯 原則5:理解幾個等同性判斷之
技術管理者---提升研發程式碼質量---程式碼稽核Code Review
本文是《技術管理者---提升研發程式碼質量》系列文章第三篇,第一篇整體介紹請看博文《技術管理者---提升研發程式碼質量---總體方法論》,第二篇整體介紹請看博文《技術管理者---提升研發程式碼質量---程式碼檢查工具Sonar》。本文重點講兩部分內容:1)GitLab MergeRequest介紹;
技術管理者---提升研發程式碼質量---程式碼檢查工具Sonar
本文是《技術管理者---提升研發程式碼質量》系列文章第二篇,第一篇整體介紹請看博文《技術管理者---提升研發程式碼質量---總體方法論》。本文重點講三部分內容:1)sonar是什麼,研發體系如何利用sonar提供程式碼質量;2)開發過程中如何使用Sonar保證程式碼質量;3)
提高Unity中C#程式碼質量的21條準則
作者:Williammao, 騰訊移動客戶端開發工程師 商業轉載請聯絡騰訊WeTest獲得授權,非商業轉載請註明出處。 原文連結:http://wetest.qq.com/lab/view/290.html WeTest 導讀 我們知道,在C++領域,作為進階
提高 Unity 中 C# 程式碼質量的 21 條準則
本文將《Effective C# Second Edition》一書中適用於 Unity 遊戲引擎裡使用 C# 的經驗之談進行了提煉,總結成為21條(一開始總結的是22條,後來發現第22條也是.NET的特性,Unity版本的mono並沒有實現,所以嚴格意義上來說是2
【《Effective C#》提煉總結】提高Unity中C#程式碼質量的22條準則
毛星雲,網路ID「淺墨」,90後,熱愛遊戲開發、遊戲引擎、計算機圖形、實時渲染等技術,就職於騰訊互娛。 微軟最有價值專家 著作《Windows遊戲程式設計之從零開始》、《OpenCV3程式設計入門》 碩士就讀於南京航空航天大學航天學院(2013級碩士研究生),已於2016年三月畢業。本科