之前寫過一篇
《分享我的學(xué)習方法——還是堅持+努力》
,得到許多朋友的支持,在此感謝下。許諾寫這篇文章。寫完這篇文章后我就抓緊做《Servlet 3.1規(guī)范》的翻譯了,希望大家支持,有興趣的朋友可以站內(nèi)信我,一起翻譯。
?
來iteye快一年了,回答了1000多個問題,有會的,也有不會的,在這我總結(jié)一下我的解決問題的思路,供一些剛?cè)胄械呐笥褏⒖迹M麑δ銈冇袔椭?
?
獻給雙11的光棍程序員們,加油吧!
?
?
思考:為什么提問的問題沒有人幫忙回答??
?
精心提出問題
怎么才能提出自己的問題呢?錯誤信息越全越容易解決。我的觀點是: ?問題描述、日志信息或異常堆棧信息(如果有)、環(huán)境和配置(如果有)、相關(guān)代碼。
?
問題描述
要力求簡潔,一針見血。不要搞些沒用的。
?
不好的問題描述:
a、 關(guān)于springmvc3.0的問題 ??
c、 Spring3.1問題
e、 springAOP代理
f、? 該如何解決
g、 Mysql 連接錯誤
?
?
從以上問題描述中我們看不到到底遇到什么問題,更好的問題描述應(yīng)該:
1、我從描述中可以看出你所用的技術(shù),如spring,這樣我可以有選擇的解決問題;
2、如果遇到的問題有異常,直接上異常信息,如果經(jīng)驗足夠多,這種問題可能一眼就知道是哪里出的問題;
3、如果實在不知道哪里出錯了,把一些關(guān)鍵點寫到標題上。
?
?
我認為更好的問題描述:
a、配置好SpringMVC攔截器后,JSP不能正常解析,直接原樣輸出 ?(這樣我知道你使用的技術(shù)是什么和大體原因了)
b、使用Spring注解注入時,拋出BeanCreationException ? ? ? ? ? (雖然不知道具體原因,但是我知道BeanCreationException的問題是什么)
c、No Spring WebApplicationInitializer types detected on classpath ?(直接把異常貼出來更有效)
d、請問在使用struts2時,那個attr到底指什么 ?(告訴我你用的技術(shù),縮小范圍)
e、[spring]?Cannot convert value of type [$Proxy4 implementing com.service.IUserService (從具體的錯誤棧中找最核心的錯誤信息作為標題)
f、 直接把異常貼出來不是更好?
g、Access denied for user 'root'@'localhost' (using password: YES) ?(直奔主題更好)
?
……等等,把有用的信息貼出來這就足夠了,不要用激將法,如沒人會嗎? 這些沒實際意義,還不如好好把問題想明白。
?
日志信息或異常堆棧信息
日志的目的包括如審計、監(jiān)控、數(shù)據(jù)恢復(fù)等等,因此如果是出錯了,就應(yīng)該把相關(guān)的日志找出了,越全越容易找到問題所在。而且盡量用文本,如果量大用附件,盡量不要用圖片,與人方便就是于己方便。
?
出問題時,不要這樣貼異常:
a、 《一個NullpointerException問題》 ?而且內(nèi)容中也沒有給出具體的描述,只知道空指針,還需要我們回答的人進一步問出在哪一行啊。。。
b、《使用spring注解注入,測試一直報錯》,內(nèi)容中只給出org.springframework.beans.factory.BeanCreationException異常,沒有給出詳細堆棧,如果能給出詳細堆棧,立馬就能告訴你問題出在嗎?
?
沒有詳細的信息,問題就不能診斷,神仙也幫不了你。
?
環(huán)境和配置
環(huán)境包括:如系統(tǒng)環(huán)境(操作系統(tǒng)是什么等)、項目環(huán)境(是普通Java工程還是動態(tài)web工程,eclipse開發(fā)還是myeclipse)、技術(shù)環(huán)境(如使用了哪些技術(shù))。
?
配置包括:如常見的web.xml、spring的配置文件,struts2的配置文件等等。
?
在提問時把使用的環(huán)境和相關(guān)配置貼出來能做到事半功倍的效果。當然有時候不是必須的,但貼出來更能幫助找到問題。
?
如 《jbpm4 有誰碰到這個奇怪的問題嗎?!!!》 ?,異常是貼出來了,如果它告訴我使用的技術(shù)環(huán)境,如hibernate4+spring3+jbpm4,我立馬就能知道原因。
?
相關(guān)代碼
如果是代碼出錯了,就應(yīng)該把相關(guān)代碼貼出來,而不是說有錯誤,而又不告訴別人是哪些代碼出錯了,這樣誰也幫不了你。
?
?
先試試自己能不能解決
大部分問題,經(jīng)過自己的探索都能解決。一上來連思考都沒思考,就直接追著別人問,這種行為是不好的,可以按照如下步驟做:
1、先看看遇到的錯誤之前見過嗎?如果見過回憶下之前是怎么解決的。如果像我這種記憶力不好的,可以做個文檔記錄下來,下次遇到再查一下;
2、查閱相關(guān)技術(shù)文檔,如JDK文檔、Spring文檔等等,看看具體錯誤指的是什么,文檔中有沒有解決方案,此步驟你大體應(yīng)該能知道是什么錯誤;
3、還是搞不定,那就搜索(查技術(shù)還是用google),查的時候記住關(guān)鍵詞是:【使用的技術(shù) 問題】,如 【spring?No Spring WebApplicationInitializer types detected on classpath?】、【Access denied for user 'root'@'localhost' (using password: YES)】、【java.lang.NoClassDefFoundError: org/springframework/asm/ClassVisitor】,像這些問題只要你動動手搜索下很快就解決了,對于一些不常見的問題反復(fù)多查幾次,不要只查一兩下就放棄,堅持才能勝利;
4、還搞不定那就尋求幫助,如 問答頻道 咨詢,或者到相應(yīng)的群組咨詢,更或者直接給某人發(fā)站內(nèi)信咨詢。
?
記住,別人沒有義務(wù)幫你,尊重幫助自己的人;不要不勞而獲,要學(xué)會自己試著去解決,慢慢的大部分問題你都能解決(我接觸的很多問問題的,比如上午問,我下午才看到,問下說已經(jīng)解決了)。
?
常見的錯誤:
java.lang.NullPointerException:空指針異常,最常問的異常,遇到此異常一定說明有個空指針,如a.test(); 肯定說明a是null,這種問題問的實在太多了。思考下很容易解決的。細心點即可。
java.lang.ClassNotFoundException:類沒有找到,一般是所需要的類不在classpath或類名寫錯了。
……,這些錯誤只要細心肯定能解決,讓我們更加細心起來。
java.lang.NoClassDefFoundError: 只要動動手搜索一下,答案立馬出來。
?
搜索,記住可以搜索類似問題,要學(xué)會觸類旁通。
?
?
真誠而有效的尋求幫助
直奔主題,別搞什么『大神、高手、菜鳥求助』等詞吸引眼球,好問題自然有人愿意解決,不愿給你解決的問題說明之前有人已經(jīng)遇到過了,自己去查查肯定能解決。
?
把錯誤相關(guān)信息貼全,可以參考下 《ITeye提問的智慧》 ,然后直奔 問答頻道 問問題吧,好多熱心人都在等著你的問題呢。
?
總結(jié)為什么
弄明白一個問題,尤其是別人幫你解決的,盡量記錄下來,方便以后查閱,也方便其他人出問題查閱。
對于一些經(jīng)常遇到的問題,一定要知道所以然,不要僅僅解決了就完事了,解決了只是個開始。
?
會學(xué)習的和不會學(xué)習的很大的區(qū)別我認為是 問為什么!
?
?
我的一點忠告
1、你的問題別人沒有任何義務(wù)幫你解決,學(xué)會感恩,不管別人回答的對還是錯;
2、不要提『蠢問題』,即遇到問題后立馬問別人要解決方案,這樣你會天天有很多同樣的解決不了的問題;
3、不勞而獲可恥,作為一個程序員沒有試著去解決自己的問題就提問我認為是很可恥的,而且對自己發(fā)展是不利的,學(xué)會獨立解決問題;
4、要思路不要代碼,這樣我們學(xué)到的更多,自己的事情自己做,當然有時候代碼能讓思路更清晰,思路為主,代碼為輔;
5、不是問題解決了就完事了,試著做個總結(jié)方便后人查閱,而且對于一些經(jīng)常出現(xiàn)的問題要知道為什么錯了;
6、『取精華棄糟粕』,從別人的回答中提取有用的,不要一股腦的接受,自己要有分辨能力;
7、『兼聽則明,偏信則暗』,學(xué)會獨立思考,對于有些拿不準的答案要多方咨詢保證其正確性,時刻保持懷疑;
8、『書上就是那么寫的?』等,權(quán)威?沒有絕對的權(quán)威,有人不犯錯誤嗎?理論指導(dǎo)實踐,但實踐才能出真知!不要死學(xué)習,有時候適當?shù)母淖兯悸罚灰欢ǜ鷷系囊粯印?
9、『我和書上寫的一模一樣,怎么結(jié)果不對呢?』等,這是傻學(xué),尤其計算機這東西,如果環(huán)境不同或有些配置不同可能出現(xiàn)的結(jié)果完全不一樣,要活學(xué)活用,書本上的知識是用于借鑒的,不是照抄的。
10、喜歡遇到問題和解決問題,這就是經(jīng)驗,解決問題越多經(jīng)驗就越多!經(jīng)驗是靠問題堆起來的。不要怕丟人!
11、出問題先找自己的原因,不要抱怨,很多時候的錯誤都是粗心造成的。
12、出錯必有原因,別給自己理由,比如『我本機就行,一到服務(wù)器就不行,想想自己是不是忘了哪個東西沒部署』。
?
PS:以上是個人觀點,如有錯誤希望不吝賜教。
?
為什么提問的問題沒有人幫忙回答? 大部分原因是之前他們解決過類似的問題,而這些問題通過自己簡單的摸索就能解決。
?
回答別人的問題的同時其實也是自己能力的提升,參與進來,學(xué)到的更多。
?
讓我們來問答頻道發(fā)現(xiàn)我們喜歡的問題并解決掉它們吧! 傳送門》》》
?
?
?
給廣大宅男的媳婦省錢的一個應(yīng)用?
討好女生的手機應(yīng)用:
1、淘寶精選女裝團購應(yīng)用,2折起:愛團 http://www.myapp.com/downcenter/a/103786?
2、屌絲步入女神的生活利器 ,我也經(jīng)常用,因為有不少噴血美女模特:穿搭志 http://www.myapp.com/downcenter/a/619655
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
