本文目錄一覽:
如何提高團隊代碼質量
一、最根本也是第一步要做的就是,在設計系統架構階段就需要充分地考慮系統的可擴展性、模塊的高聚合性以及接口靈活易用的性。要做到這一點,就和對需求的分析、系統的了解和經驗有很大關係了,需要長期的積累和經常對架構的思考與實踐。交給團隊裏面最牛逼的一個人去主導,比較牛逼的幾人參與討論來做這一步吧。
二、選用一個適合需求的開發框架,會讓你事倍功半。PHP的框架有很多,各自有各自的特性和優劣,可以比較選擇。Python的tornado在做Web應用的時候比較方便。同樣前段也需要代碼框架的支持,Javascript中jQuery能勝任大多數項目,HTML和CSS可以嘗試使用Twitter的Bootstrap。使用框架對代碼的健壯性有幫助嗎?當然有!因為框架封裝實現很多常用的功能,這樣我們自己的代碼量會大大減少。直觀一點講,代碼量少了,bug自然就少了。其實最重要的是代碼量少了,程序的邏輯和結構會更加清晰,從而減少Bug的出現。
三、多人協作需要良好的代碼管理工具。SVN可以考慮淘汰了,用分佈式的GIT。
四、團隊還需要統一的開發環境。包括統一的編碼規範、統一的語言版本、統一的編輯器配置(tab和空格之類)、統一的文件編碼,統一的數據庫等等。這樣可以完全避免因為環境不同而導致的Bug。
五、較優秀的程序員應該負責較初級的程序員的代碼質量,定期對初級程序員的代碼進行review。同時團隊內部應該有針對性對一些比較複雜或者變態的部分進行code review。
六、對於系統的破窗和腫瘤,要適時適量地清除,絕對不能放任不管。
php快兩年了 怎麼再進一步 提升一下呢?如題 謝謝了
用php兩年了?那經驗還是很豐富了嘛。我估計這裡很少有人能回答你的問題。 如果是從事互聯網開發,那麼可以研究其他的相關技術嘛,php的應用畢竟是跟需求結合的。如果學的再好、再多,但是用不上還是缺乏現實的動力。我的建議是把自己工作中的其他應用到的技術加深就可以了。
如何提高實際的編碼能力?
1.明確學習目的
學習編程對大多數IT業人員來說都是非常有用的。學編程,做一名編程人員,從個人角度講,可以解決在軟件使用中所遇到的問題,改進現有軟件,可以為自己找到一份理想的工作添加重要得砝碼,有利於在求職道路上謀得一個好的職位;從國家的角度,可以為中國的軟件產業做出應有的貢獻,一名優秀的程序員永遠是被爭奪的對象。學習編程還能 鍛煉思維,使我們的邏輯思維更加嚴密;能夠不斷享受到創新的樂趣,將一直有機會走在高科技的前沿,因為程序設計本身是一種創造性的工作。知識經濟時代給我們帶來了無限的機會,要想真正掌握計算機技術,並在IT行業里干出一番事業來,有所作為,具有一定的編程能力是一個基本條件和要求。
2.打好基礎
學編程要具備一定的基礎,總結之有以下幾方面:
(1)數學基礎 從計算機發展和應用的歷史來看計算機的數學模型和體系結構等都是有數學家提出的,最早的計算機也是為數值計算而設計的。因此,要學好計算機就要有一定的數學基礎,出學者有高中水平就差不多了。
(2)邏輯思維能力的培養 學程序設計要有一定的邏輯思維能力,「邏思力」的培養要長時間的實踐鍛煉。要想成為一名優秀的程序員,最重要的是掌握編程思想。要做到這一點必須在反覆的實踐、觀察、分析、比較、總結中逐漸地積累。因此在學習編程過程中,我們不必等到什麼都完全明白了才去動手實踐,只要明白了大概,就要敢於自己動手去體驗。誰都有第一次。有些問題只有通過實踐後才能明白,也只有實踐才能把老師和書上的知識變成自己的,高手都是這樣成材的。
(3)選擇一種合適的入門語言 面對各種各樣的語言,應按什麼樣的順序學呢?程序設計工具不外乎如下幾類: 1)本地開發 應用軟件開發的工具有:Visual Basic 、Delphi 、VC++ ( C++ Builder ) 等;數據庫開發工具有:Visual Foxpro 、Oracle Developer 、Power Builder 等。 2)跨平台開發 開發工具如 Java 等。 3)網絡開發 對客戶端開發工具如:Java Script 等;對服務器開發工具如:PHP 、ASP 、JSP 、ISAPI 、NSAPI 、CGI 等。 以上不同的環境下幾種開發工具中 VB 法簡單並容易理解,界面設計是可設化的,易學、易用。選 VB 作為入門的方向對出學者是較為適合的。
3. 注意理解一些重要概念
一本程序設計的書看到的無非就是變量、函數、條件語句、循環語句等概念,但要真正能進行編程應用,需要深入理解這些概念,在理解的基礎上應用,不要只簡單地學習語法、結構,而要吃透針對這些語法、結構的應用例子,做到舉一反三,觸類旁通。
4.掌握編程思想
學習一門語言或開發工具,語法結構、功能調用是次要的,最主要是學習它的思想。例如學習 VC 就要學習 Windows 的內在機理、什麼是線程……;學習 COM 就要知道 VTALBE 、類廠、接口、idl……,關鍵是學一種思想,有了思想,那麼我們就可以觸類旁通。
5.多實踐、多交流
掌握編程思想必須在編程實際工作中去實踐和體會。編程起步階段要經常自己動手設計程序,具體設計時不要拘泥於固定的思維方式,遇到問題要多想幾種解決的方案。這就要多交流,各人的思維方式不同、角度各異,各有高招,通過交流可不斷吸收別人的長處,豐富編程實踐,幫助自己提高水平。親自動手進行程序設計是創造性思維應用的體現,也是培養邏輯思維的好方法。
6.養成良好的編程習慣
編程入門不難,但入門後不斷學習是十分重要的,相對來說較為漫長。在此期間要注意養成一些良好的編程習慣。編程風格的好壞很大程度影響程序質量。良好的編程風格可以使程序結構清晰合理,且使程序代碼便於維護。如代碼的縮進編排、變量命令規則的一致性、代碼的注釋等。
7.上網學編程
在網上可以學到很多不同的編程思想、方法、經驗和技巧,有大量的工具和作品及相關的輔導材料供下載。
8.加強計算機理論知識的再學習
學編程是符合「理論→實踐→再理論→再實踐」的一個認識過程。一開始要具有一定的計算機理論基礎知識,包括編程所需的數學基礎知識,具備了入門的條件,就可以開始編程的實踐,從實踐中可以發現問題需要加強計算機理論知識的再學習。程序人人皆可編,但當你發現編到一定程度很難再提高的時候,就要回頭來學習一些計算機科學和數學基礎理論。學過之後,很多以前遇到的問題都會迎刃而解,使人有豁然開朗之感。因此在學習編程的過程中要不斷地針對應用中的困惑和問題深入學習數據結構、算法、計算機原理、編譯原理、操作系統原理、軟件工程等計算機科學的理論基礎和數理邏輯、代數系統、圖論、離散數學等數學理論基礎知識。這樣經過不斷的學習,再努力地實踐,編程水平一定會不斷提高到一個新高度。
高質量PHP代碼的50個技巧(3)
42
43
44
45
/**
Method to execute a command in the terminal
Uses :
1. system
2. passthru
3. exec
4. shell_exec
*/
function terminal($command)
{
//system
if(function_exists(‘system’))
{
ob_start();
system($command , $return_var);
$output = ob_get_contents();
ob_end_clean();
}
//passthru
else if(function_exists(‘passthru’))
{
ob_start();
passthru($command , $return_var);
$output = ob_get_contents();
ob_end_clean();
}
//exec
else if(function_exists(‘exec’))
{
exec($command , $output , $return_var);
$output = implode(“\n” , $output);
}
//shell_exec
else if(function_exists(‘shell_exec’))
{
$output = shell_exec($command) ;
}
else
{
$output = ‘Command execution not possible on this system’;
$return_var = 1;
}
return array(‘output’ = $output , ‘status’ = $return_var);
}
terminal(‘ls’);
上面的函數將運行shell命令, 只要有一個系統函數可用, 這保持了代碼的一致性.
5. 靈活編寫函數
?
1
2
3
4
5
6
function add_to_cart($item_id , $qty)
{
$_SESSION[‘cart’][‘item_id’] = $qty;
}
add_to_cart( ‘IPHONE3’ , 2 );
使用上面的函數添加單個項目. 而當添加項列表的時候,你要創建另一個函數嗎? 不用, 只要稍加留意不同類型的參數, 就會更靈活. 如:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function add_to_cart($item_id , $qty)
{
if(!is_array($item_id))
{
$_SESSION[‘cart’][‘item_id’] = $qty;
}
else
{
foreach($item_id as $i_id = $qty)
{
$_SESSION[‘cart’][‘i_id’] = $qty;
}
}
}
add_to_cart( ‘IPHONE3’ , 2 );
add_to_cart( array(‘IPHONE3’ = 2 , ‘IPAD’ = 5) );
現在, 同個函數可以處理不同類型的輸入參數了. 可以參照上面的例子重構你的多處代碼, 使其更智能.
6. 有意忽略php關閉標籤
我很想知道為什麼這麼多關於php建議的博客文章都沒提到這點.
?
1
2
3
?php
echo “Hello”;
//Now dont close this tag
這將節約你很多時間. 我們舉個例子:
一個 super_class.php 文件
?
1
2
3
4
5
6
7
8
9
?php
class super_class
{
function super_function()
{
//super code
}
}
?
//super extra character after the closing tag
index.php
?
1
2
require_once(‘super_class.php’);
//echo an image or pdf , or set the cookies or session data
這樣, 你將會得到一個 Headers already send error. 為什麼? 因為 「super extra character」 已經被輸出了. 現在你得開始調試啦. 這會花費大量時間尋找 super extra 的位置。因此, 養成省略關閉符的習慣:
?
1
2
3
4
5
6
7
8
9
?php
class super_class
{
function super_function()
{
//super code
}
}
//No closing tag
這會更好.
7. 在某地方收集所有輸入, 一次輸出給瀏覽器
這稱為輸出緩衝, 假如說你已在不同的函數輸出內容:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function print_header()
{
echo “p id=’header’Site Log and Login links/p”;
}
function print_footer()
{
echo “p id=’footer’Site was made by me/p”;
}
print_header();
for($i = 0 ; $i 100; $i++)
{
echo “I is : $i ‘;
}
print_footer();
替代方案, 在某地方集中收集輸出. 你可以存儲在函數的局部變量中, 也可以使用ob_start和ob_end_clean. 如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function print_header()
{
$o = “p id=’header’Site Log and Login links/p”;
return $o;
}
function print_footer()
{
$o = “p id=’footer’Site was made by me/p”;
return $o;
}
echo print_header();
for($i = 0 ; $i 100; $i++)
{
echo “I is : $i ‘;
}
echo print_footer();
為什麼需要輸出緩衝:
可以在發送給瀏覽器前更改輸出. 如 str_replaces 函數或可能是 preg_replaces 或添加些監控/調試的html內容.
輸出給瀏覽器的同時又做php的處理很糟糕. 你應該看到過有些站點的側邊欄或中間出現錯誤信息. 知道為什麼會發生嗎? 因為處理和輸出混合了.
8. 發送正確的mime類型頭信息, 如果輸出非html內容的話.
輸出一些xml.
?
1
2
3
4
5
6
$xml = ‘?xml version=”1.0″ encoding=”utf-8″ standalone=”yes”?’;
$xml = “response
code0/code
/response”;
//Send xml data
echo $xml;
工作得不錯. 但需要一些改進.
?
1
2
3
4
5
6
7
$xml = ‘?xml version=”1.0″ encoding=”utf-8″ standalone=”yes”?’;
$xml = “response
code0/code
PHP初級程序員如何提升自己?
不管你是初級的JAVA/PHP或者其他的程序員都是一樣的的,對於剛入門的程序員來說。
第一點:
你沒有經過系統的的學習,有些職場方面的經驗還是不足,其實在外包公司是學的東西是比較多的,一方面努力提升自己,一方面就是學習。不管你是有經驗還是沒有經驗都需要學習。找一些適合自己的學習方法,利用晚上時間去參加一些培訓不耽誤自己的上班,還省錢。
第二點:找一些技術的視頻講的比較好的,每天堅持看下去,每個人自制能力都不一樣,我感覺是,你想要一個好的未來,就要努力去奮鬥。舒服是留給死人的。
第三點:你沒有一個厲害的爹,你老爸不是王建立,不是馬雲、不是李彥宏。要想活的好你就去努力學習。因為你沒有拼爹的資本。
第四點:找一些技術比較好的人,在網上多和他們去交流,其實你能獲得真的很多。
加油吧!!!! 少年
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/196203.html