⑴ 如何去閱讀並學習一些優秀的開源框架的源碼
對於開發者來說,社區里豐富的開源代碼其實是筆極為寶貴的財富。如果能充分利用好開放源代碼的資源,不僅可以掌握多種編程方法,提高實踐能力,還能獲得好的思想,激發編程靈感。開源代碼怎麼學以及怎樣才能學好是大家經常關注的話題,日前,在問答網站知乎上,有人拋出了「如何更有效地學習開源項目的代碼?」的話題,眾技術好手各抒己見,CSDN軟體研發頻道對本文內容進行了整理,方便大家學習與參考。盛大創新研究院研究員 庄表偉:學習開源 盡可能在代碼里找答案 庄表偉提供了以下9個建議:1.在下載源代碼之後,首先要跑起來,編譯通過、正常運行;2.在你覺得最有可能運行到的地方,設置斷點或者拋出異常,這樣,就能夠找到一個項目在正常運行時的入口點;3.從入口點所在的那個源文件開始閱讀,逐步把握整個項目是如何啟動起來;4.隨便改點代碼,看看會不會報錯,如果報錯,會從哪裡報錯;5.試著把報錯屏蔽、修復、或者繞開;6.嘗試理解一個系統的內部結構,多少組成部分,主線模塊是哪些?輔助模塊是哪些?7.從實際需要出發,修改這個項目,滿足自己的某一個小的需求。(注意在此之前,盡量不要在網路上找答案);8.看看相關的討論與心得,是否與自己的理解相一致;9.提交bug fix或者某個新的功能代碼。在學習開源的過程中,有幾個方面會獲得大量收獲,1.架構與模式;2.開源社區常見的一些慣用法;3.相關領域的結構與演算法。總結一點:學習開源,盡可能在代碼里找答案,而不是在代碼之外找答案,那些都是二手的,而且很可能不準確。互聯網評論員 朱曉陽:從簡單做起 理論聯系實踐朱曉陽對此發表了兩點看法:首先,從簡單做起。剛開始的時候學習一些領域內基礎理論,然後找一些簡單的東西去實現,不能一開始就去找開源項目。建議大家經常動手寫一些小程序,如改進宿舍網路登錄客戶端等。積小成多,能顯著提高自己的編程能力。其次,學習的知識一定要和自己生活或工作有聯系,這樣才會有樂趣或動力。互聯網評論員孫竟:先構想一個想做的項目首先,構想一個想做的項目(比如論壇、博客、微博等);然後,思考需要什麼功能,應該怎麼去實現,盡可能包括各種細節,有必要時記錄下來;最後,去找個類似的開源應用,看看它是怎麼實現的,和你的想法有什麼差異,有什麼可以學習或需要改進的地方。互聯網草根hqman:我的5個建議:1.反復地使用軟體,熟釋軟體的組成文件和軟體功能,注意IE地址欄內的地址變化;2.打開資料庫文件或存放數據的XML文件,參照數據字典了解各個表和欄位的數據含意;如果沒有數據字典,就運行軟體輸入數據,參照所輸入的數據,了解各個表和欄位的數據含義;3.利用Visio進行反向工程,將類圖抽出來;4.研究類之間的關系,注釋各個類的屬性和方法,弄清程序的整體框架;5.另開一個項目,按照軟體開發的流程,將代碼分段復制進新的項目,進行編譯調試,關注一些實現細節,學習一些編程的技巧。在讀研究生張偉:在校學生空閑時間多參加一下比賽張偉的建議是大家在空閑時間多參加一些比賽。一個完整的項目,不管再小,只要做完了,就會有收獲。多看一些比較大的開源項目源代碼,每次看完後都會受益匪淺。從網上成熟的開源代碼里,可以學到很多的設計思想。他認為,從項目入手,以項目為驅動,可激勵自己進步。當然,是否一定需要看開源代碼,這將取決於個人的興趣和需要。畫出程序流程圖 理解程序流程思想CSDN博客專家i_like_cpp:曾在CSDN分享了《如何將源代碼學好》的博文,對此,他給出了四點建議:1. 畫出整個程序的流程圖,理解整個程序流程的思想。畫流程圖的方式更讓人很直接的理解程序的整體流程,而不會被代碼所干擾,讓程序員總體上把握整個程序;2. 對流程各節點(函數或過程)的理解,流程的每一節點是構成整個流程的不可缺少的部份;3.再把流程和流程各節點串起來理解整個程序,可能的話最好寫出讀書筆記;4. 如果想深刻的學習到源代碼的精髓所在,請寫一個相近的程序進行操練。理解了這個程序並不表明掌握了這個程序,只有在操練一個相近的程序時,才知道你到底理解了多少,掌握了多少。編後語:源代碼的學習是一個從整體到不斷細化的過程,是一個極為繁瑣的過程同時也是一個不斷認清事物本源的過程。本文總結的源代碼的學習經驗,希望對您有所幫助。那麼,CSDN的網友們,你們是如何對待開源項目源代碼的呢?
⑵ 有框架的網頁,如何讀取框架里的源碼
用chtmlview打帶框架網頁寫面函數
BOOL CHtmlView::GetFrameSource( IDispatch *pDisp, CString& refString )
{
BOOL bRetVal = FALSE;
HRESULT hr = S_OK;
if ( pDisp != NULL )
{
CComQIPtr pBrowser = pDisp;
if ( pBrowser != NULL )
{
IDispatch *pDispDoc = NULL;
hr = pBrowser->get_Document(&pDispDoc);
if ( !( FAILED(hr) || !pDisp ) )
{
CComQIPtr pStmInit = pDisp;
if ( !pStmInit )
{
HGLOBAL hMemory;
hMemory = GlobalAlloc(GMEM_MOVEABLE, 0);
if (hMemory != NULL)
{
CComQIPtr spPSI = pDispDoc;
if( spPSI != NULL)
{
CComPtr spStream;
if (SUCCEEDED(CreateStreamOnHGlobal(hMemory, TRUE, &spStream)))
{
spPSI->Save(spStream, FALSE);
LPCTSTR pstr = (LPCTSTR) GlobalLock(hMemory);
if (pstr != NULL)
{
// Stream is always ANSI, but CString
// assignment operator will convert implicitly.
bRetVal = TRUE;
TRY
{
refString = pstr;
}
CATCH_ALL(e)
{
bRetVal = FALSE;
DELETE_EXCEPTION(e);
}
END_CATCH_ALL
if(bRetVal == FALSE)
GlobalFree(hMemory);
else
GlobalUnlock(hMemory);
}
}
}
}
}
}
RELEASE(pDispDoc);
}
}
return bRetVal;
}
能用DocumentComplete我知道獲pDisp像DocumentComplete才能獲框架各頁pDisp沒通用性我想要實現像GetSource功能要網頁載完畢任意刻獲框架html源文件!
⑶ 哪一個框架的源碼適合拿來閱讀學習
不要看框架源碼,最好先打好基礎,比如反射,代理等。因為很多框架的功能已經十分繁多,光是功能(英文)你都難以弄懂,更何況是參合了很多中間變數、邏輯功能的源碼,越看越難以理解。即使要學習框架,也要先從javadoc注釋,即API幫助文檔開始,了解數據流的流入和流出。用源碼反向猜測設計邏輯是吃力不討好的事,一沒完整注釋,二不是本人,三反射的應用最傷腦細胞,你壓根不知道在哪裡被插了一腳。如果框架適合用來學習,那麼改別人的代碼也就不是個事了。問題來了,為何程序員都不喜歡改別人的代碼bug?
⑷ 如何去閱讀並學習一些優秀的開源框架的源碼 來自
沒有目標的去看所謂的源碼,沒有任何的意義。
最適合看源碼的就是,你對完成一個功能感興趣,所以你想要了解他。
比如說Mybatis,你想了解他的代碼生成機制,自己先去思考,如果是你做,該怎麼做,再去看源碼。
再比如說Log4j.打日誌的時候是非同步的嗎?如果我需要把日誌打到另外一台機器上,我該怎麼做?
帶著這些問題去思考解決方案。
那麼天底下的源碼都是你的老師。
千萬別東一錘子西一錘子的去瞎看。
⑸ 看源代碼時,你喜歡怎麼做筆記
學習編程的人,往往繞不過 Github,經過這段時間的嘗試,我發現 Github 的確有很適合做筆記的地方。 但,非常不建議用issue,其最大的問題在於不支持 git 操作,也就是備份及版本管理非常麻煩。 顧名思義啊,issue是提出問題,討論問題的地方,用這個寫筆記,抑或是寫博客。的確非常特立獨行,但是否真的合適,值得商榷。我知道這種方式的流行是因為某些前端大牛。但,我始終認為,永遠不要跟風大牛的行徑,多聽聽自己內心的聲音。 那麼在 Github 我推薦什麼?是 Wiki,About GitHub Wikis · GitHub Help。這個東西的初衷是用來做項目說明文檔的,而文檔,不就是更規范的一種筆記形式嗎?況且, Wiki 因其自身特性,本來就是最高效知識整理工具,大牛們用 Wiki 來積累知識與技能的例子數不勝數:例如閑耘™. Wiki ,第一次看到時真的把我震撼到了。
⑹ CodeIgniter :CI框架中插件添加在哪能具體怎麼操作!如何調用
放在helper目錄下,類似全局函數,autoload或者使用的時候載入
⑺ 簡單的php+CI框架做的網站源碼
到官網去找demo啊,CI很簡單的,主要就是看一下資料庫操作函數和各種類庫
⑻ 我想找個PHP框架來看源碼學習,有什麼框架比較推薦的么
thinkphp, 注視是中文的, 英文能力過關的話, 可以了解下Laravel, 覺得有興趣的話, 可以深入學習
⑼ 如何學習php框架源代碼
第一步,選擇一個合適的php框架
在國內,使用zf,ci和tp框架的人比較多,新手可以從中選一個去學習,新手不建議一開始就去學習zf,功力還不夠深,學習zf會讓你更迷茫。
第二步,學習輸出hello world,hello world很簡單,但是對於學習一門新的語言或框架,很重要。
第三步,學習理解單一入口和網址解析(即網址路由),單一入口,對於新手來說,可能有點不太好理解。
第五步,學習資料庫的添加,修改,刪除,查詢,學會簡單的資料庫操作。
第六步,學習php框架常用的函數和類庫,php框架中一般會帶一些常用的函數和類,可以稍微看一下,此時還沒有必要深入研究,等用到的時候再詳細的去看手冊和樣例。
第七步,下載基於此框架開源的項目系統下來學習,了解了php框架的執行流程,模板操作,和資料庫操作,下載一個開源的系統,下來去學習,學習別人的代碼,學得更快。
第八步,做項目學習,要熟練掌握一個的框架,需要大量的實踐,通過做項目,去深入學習。
第九步,閱讀框架代碼,了解其實現原理
第十步,到這一步,已經學會了這個php框架。
⑽ 找人幫我看下後台代碼,基於ci框架的,新手實在看不懂了,求助!!!加1265571889
怎樣建立網站? 我們就進入後台了。第四步:熟悉一下後台的操作!然後自己試著添加一篇文章!其他的又什麼不懂的可以再q我,很高興為...例如新世紀網路的黑白色,網易...做網頁設計需要學習什麼軟體 另外還要用到動畫軟體,如flash,和gif動畫用的軟體,gif動畫軟體比較多,自己選個順手的。然後是後台,後台的話一般就是asp jsp php 以及做腳本代碼的ja...