⑴ 如何正確掌握java的學習方法
作為掌握了JAVA技術,將來准備成為Java軟體工程師的人來說,要想成為JAVA工程師肯定要學習JAVA。一般的程序員或許只需知道一些JAVA的語法結構就可以應付了。但要成為高級JAVA工程師,我們需要對JAVA做比較深入的研究。為大家總結了以下三個方面的學習方法:
一、軟體開發學習路線。兩千多年的儒家思想孔孟之道,中庸的思想透入骨髓,既不冒進也不保守並非中庸之道,而是找尋學習軟體開發的正確路線與規律。從軟體開發人員的生涯規劃來講,我們可以大致分為三個階段,軟體工程師→軟體設計師→架構設計師或項目管理師。不想當元帥的士兵不是好士兵,不想當架構設計師或項目管理師的程序員也不是好的程序員。我們應該努力往上走。讓我們先整理一下開發應用軟體需要學習的主要技術。
A.基礎理論知識,如操作系統、編譯原理、數據結構與演算法、計算機原理等,它們並非不重要。如不想成為計算機科學家的話,可以採取「用到的時候再來學」的原則。
B.一門編程語言,現在基本上都是面向對象的語言,JAVA/C++/C#等等。如果做WEB開發的話還要學習HTML/Jav**ript等等。
C.一種方法學或者說思想,現在基本都是面向對象思想(OOA/OOD/設計模式)。由此而衍生的基於組件開發CBD/面向方面編程AOP等等。
D.一種關系型資料庫,ORACLE/SqlServer/DB2/MySQL等等。
E.一種提高生產率的IDE集成開發環境JBuilder/Eclipse/VS.NET等。
F.一種UML建模工具,用ROSE/VISIO/鋼筆進行建模。
G.一種軟體過程,RUP/XP/CMM等等,通過軟體過程來組織軟體開發的眾多活動,使開發流程專業化規范化。當然還有其他的一些軟體工程知識。
H.項目管理、體系結構、框架知識。
正確的路線應該是:B→C→E→F→G→H。
還需要補充幾點:
1、對於A與C要補充的是,我們應該在實踐中逐步領悟編程理論與編程思想。新技術雖然不斷涌現,更新速度令人眼花燎亂霧里看花;但萬變不離其宗,編程理論與編程思想的變化卻很慢。掌握了編程理論與編程思想你就會有撥雲見日之感。面向對象的思想在目前來講是相當關鍵的,是強勢技術之一,在上面需要多投入時間,給你的回報也會讓你驚喜。
2、對於資料庫來說是獨立學習的,這個時機就由你來決定吧。
3、編程語言作為學習軟體開發的主線,而其餘的作為輔線。
4、軟體工程師著重於B、C、E、D;軟體設計師著重於B、C、E、D、F;架構設計師著重於C、F、H。
二、JAVA學習路線。
1、基礎語法及JAVA原理。基礎語法和JAVA原理是地基,地基不牢靠,猶如沙地上建摩天大廈,是相當危險的。學習JAVA也是如此,必須要有扎實的基礎,你才能在J2EE、J2ME領域游刃有餘。參加SCJP(SUN公司認證的JAVA程序員)考試不失為一個好方法,原因之一是為了對得起你交的1200大洋考試費,你會更努力學習,原因之二是SCJP考試能夠讓你把基礎打得很牢靠,它要求你跟JDK一樣熟悉JAVA基礎知識;但是你千萬不要認為考過了SCJP就有多了不起,就能夠獲得軟體公司的青睞,就能夠獲取高薪,這樣的想法也是很危險的。獲得「真正」的SCJP只能證明你的基礎還過得去,但離實際開發還有很長的一段路要走。
2、特定API的學習。JAVA介入的領域很廣泛,不同的領域有不同的API,沒有人熟悉所有的API,對一般人而言只是熟悉工作中要用到的API。如果你做界面開發,那麼你需要學習Swing/AWT/SWT等API;如果你進行網路游戲開發,你需要深入了解網路API/多媒體API/2D3D等;如果你做WEB開發,就需要熟悉Servlet等API啦。總之,需要根據工作的需要或你的興趣發展方向去選擇學習特定的API。
3、開發工具的用法。在學習基礎語法與基本的面向對象概念時,從鍛煉語言熟練程度的角度考慮,我們推薦使用的工具是Editplus/JCreator+JDK,這時候不要急於上手JBuilder/Eclipse等集成開發環境,以免過於關注IDE的強大功能而分散對JAVA技術本身的注意力。過了這一階段你就可以開始熟悉IDE了。
4、OO思想的領悟。掌握了基礎語法和JAVA程序運行原理後,我們就可以用JAVA語言實現面向對象的思想了。面向對象,是一種方法學;是獨立於語言之外的編程思想;是CBD基於組件開發的基礎;屬於強勢技術之一。當以後因工作需要轉到別的面向對象語言的時候,你會感到特別的熟悉親切,學起來像喝涼水這么簡單。
使用面向對象的思想進行開發的基本過程是:
(1)調查收集需求。
(2)建立用例模型。
(3)從用例模型中識別分析類及類與類之間的靜態動態關系,從而建立分析模型。
(4)細化分析模型到設計模型。
(5)用具體的技術去實現。
(6)測試、部署、總結。
5、學習軟體工程。對小型項目而言,你可能認為軟體工程沒太大的必要。隨著項目的復雜性越來越高,軟體工程的必要性才會體現出來。
6、基本API的學習。進行軟體開發的時候,並不是什麼功能都需要我們去實現,也就是經典名言所說的「不需要重新發明輪子」。我們可以利用現成的類、組件、框架來搭建我們的應用,如SUN公司編寫好了眾多類實現一些底層功能,以及我們下載過來的JAR文件中包含的類,我們可以調用類中的方法來完成某些功能或繼承它。那麼這些類中究竟提供了哪些方法給我們使用?方法的參數個數及類型是?類的構造器需不需要參數?總不可能SUN公司的工程師打國際長途甚至飄洋過海來告訴你他編寫的類該如何使用吧。他們只能提供文檔給我們查看,JAVADOC文檔(參考文獻4.4)就是這樣的文檔,它可以說是程序員與程序員交流的文檔。
基本API指的是實現了一些底層功能的類,通用性較強的API,如字元串處理/輸入輸出等等。我們又把它成為類庫。熟悉API的方法一是多查JAVADOC文檔,二是使用JBuilder/Eclipse等IDE的代碼提示功能。
程序員日常工作包括很多活動,編輯、編譯及構建、調試、單元測試、版本控制、維持模型與代碼同步、文檔的更新等等,幾乎每一項活動都有專門的工具,如果獨立使用這些工具的話,你將會很痛苦,你需要在堆滿工具的任務欄上不斷的切換,效率很低下,也很容易出錯。在JBuilder、Eclipse等IDE中已經自動集成編輯器、編譯器、調試器、單元測試工具JUnit、自動構建工具ANT、版本控制工具CVS、DOC文檔生成與更新等等,甚至可以把UML建模工具也集成進去,又提供了豐富的向導幫助生成框架代碼,讓我們的開發變得更輕松。應該說IDE發展的趨勢就是集成軟體開發中要用到的幾乎所有工具。從開發效率的角度考慮,使用IDE是必經之路,也是從一個學生到一個職業程序員轉變的里程碑。
JAVA開發使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等幾種;而Eclipse、JBuilder佔有的市場份額是最大的。JBuilder在近幾年來一直是JAVA集成開發環境中的霸主,它是由備受程序員尊敬的Borland公司開發,在硝煙彌漫的JAVAIDE大戰中,以其快速的版本更新擊敗IBM的VisualAgeforJAVA等而成就一番偉業。IBM在VisualAgeforJAVA上已經無利可圖之下,乾脆將之貢獻給開源社區,成為Eclipse的前身,真所謂「柳暗花明又一村」。浴火重生的Eclipse以其開放式的插件擴展機制、免費開源獲得廣大程序員(包括幾乎所有的骨灰級程序員)的青睞,極具發展潛力。
最後一點,成為一名優秀的JAVA工程師,我們需要掌握的專業知識和技能包括:熟悉java語言,理解面向對象的思想與設計模式,至少熟悉j2ee、j2me、j2se等開發體系中的一種;熟練使用Eclipse或Jbuilder等開發工具,理解MVC模式及實際應用;至少熟悉一種資料庫的開發和設計;具有一定的程序測試和設計分析能力。除此之外,良好的學習能力、團隊合作精神、強烈的責任心以及溝通能力也是必不可少的。
如果以上幾點你都能很好的做到了,那麼你就是一位優秀的JAVA工程師了
⑵ 如何正確閱讀jquery源碼和jquery插件源碼
1. jQuery 裡面有很多東西是出於兼容性,歷史遺留。
比如 .ready() 之類的函數,為什麼會很scroll 有關,那是為了兼容某些ie。這種代碼對於編程思想來說不僅沒用,而且是雜音,你要篩選出來就得了解這段代碼的變動,費心費力得不償失。
2. jQuery 裡面的代碼不一定是最優的,例如事件委託,每一次事件觸發都要調用選擇器,實際上是效率很低的。但是我又比較懶,沒有提交patch。
3. jQuery 實際上很容易寫出來一個 barebone alternative,在使用的過程中多想,多思考多總結就可以了。
4. jQuery 這類框架里真正有思維挑戰性的東西不多,一半以上是堆代碼而已,剩下的一點價值在於架構、抽象、擴展能力。
5. 我有一句話與所有的同行分享:工程師讓需求成為現實,優秀工程師化復雜為簡單,頂尖工程師變不可能為可能;架構師掌握現在,優秀架構師展望未來,頂尖架構師創造時代。
jQuery 的設計目的是,讓前端工程師的工作更簡單更輕松,但它並不適合所有的前端工程師,假如你的目標是成為優秀架構師、頂尖架構師的話,你在jQuery里也看不清未來。
⑶ Web前端工程師喜歡的高質量Web前端框架有哪些
今天小編要跟大家分享的文章是關於高質量Web前端框架,相信很多Web前端工程師都會對此感興趣的。Web前端框架就是為了節約開發成本和時間,一般開發一個項目都會用到前端框架(除非自己有前端開發團隊)。今天小編就為大家分享一些高質量的前端框架希望能夠對大家有所幫助。
一、QUICKUI
QUICK
UI是一套完整的企業級web前端開發解決方案,由基礎框架、UI組件庫、皮膚包、示例工程和文檔等組成。使用QUICKUI開發者可以極大地減少工作量,提高開發效率,快速構建功能強大、美觀、兼容的web應用系統。
QUICKUI優勢:
①功能最為強大
QUICKUI經歷了7年的迭代更新,不斷從客戶的各種業務中對組件的需求進行歸納和抽離,從而打造新的組件和功能。現在最新的4.0版本框架包含了一百多種組件,一千多個應用場景示例。可以說在前端框架領域中,QUICKUI擁有功能最強大組件庫。
②運行最為穩定
很多其他的第三方UI控制項在簡單場合使用OK,到了復雜的場景中就會出現很多問題,這種現象很常見,因為在組件設計時無法預料到所有的應用場合。而QUICKUI在7年間經歷了數千個項目實際檢驗,在各種復雜場景都應用過,並根據客戶的反饋不斷完善和調整。目前的第四代可以說是最穩定、最完美的版本。
③豐富精美的界麵皮膚
跟其他web前端框架僅僅是一套組件庫不同,QUICKUI是一整套前端解決方案,擁有豐富的外觀界面解決方案。採用現今流行的扁平化設計理念,推出了包括登錄、響應式web、工作桌面、地圖類、門戶風格、大屏展示風格等等幾百套製作精美、用戶體驗優秀的界面。這些界面是以QUICKUI皮膚包的形式發布,使用和更換都非常方便。
④事無巨細的開發文檔
QUICKUI擁有16萬字+的開發文檔,框架和組件的每一個功能點都有詳細的講解和代碼示例,用於開發過程中隨時查閱。除了框架機制講解和組件使用教程,文檔還涉及web前端開發的很多知識。仔細閱讀並結合框架使用的話,你很快就能成為web開發的高手。
⑤上手開發非常容易
QUICKUI採用組件化思想來構建組件,一個組件就是一兩句html的標簽,使用起來非常簡單。將開發人員從繁瑣的JS編碼中解脫出來,很大程度減少前台編碼的出錯率;保留了HTML的布局方式,從而快速進行頁面布局。對開發者前台技術要求也非常低,只需要了解html語法和一些簡單的JS即可,從而把更多精力放在業務功能的實現上,極大地提高開發效率。
⑥瀏覽器兼容性非常好
QUICKUI4.0使用了很多HTML5,CSS3技術用於提高表現力和用戶體驗,這些新的特性在現代瀏覽器中會有很好的效果。但是,國內依然有大量的用戶在使用IE7、IE8等舊時代的瀏覽器,為照顧這部分用戶,框架採用了漸進式思想,確保低版本瀏覽器也能正常使用。所以,QUICKUI兼容IE7以上所有主流瀏覽器。
二、flex
Apache基金會今天發布了Flex4.8版本,這是Adobe將Flex捐獻給Apache基金會後發布的第一個版本。
需要注意的是,Flex目前還在孵化階段,還不是Apache的正式項目,Flex4.8也不是一個正式的Apache版本。
Apache稱,該版本標志著Flex新時代的開始,Flex的未來將由社區來驅動,而不是由一個公司驅動。開發者可以通過貢獻代碼,來幫助改進Flex,如修復bug、增加功能等。
從Macromedia賣給Adobe,然後又捐給apache,不知道搞什麼名堂。不過還好沒有經過大幅重構,否則就真的是悲哀了!
三、extjs
ExtJS是一種主要用於創建前端用戶界面,是一個基本與後台技術無關的前端ajax框架。
功能豐富,無人能出其右。
無論是界面之美,還是功能之強,ext的表格控制項都高居榜首。
華麗的界面,靈活的功能,還有開發工具都是配套的,但有個最大的問題,用就得花錢!
四、easyui
easyui幫助你構建你的web應用更加容易。
它是一個基於jquery的插件,開發出來的一套輕量級的ui框架,非常小巧而且功能豐富。
但是她有一個最大的問題就是代碼只能找到以前的開源的版本,到了1.2以後的版本源代碼都是經過混淆的,如果遇到問題修改起來會非常麻煩!不過一個比較大的優勢是開源免費,並且界面做的還說的過去!
五、jQueryUI
jQueryUI是一套jQuery的頁面UI插件,包含很多種常用的頁面空間,例如Tabs(如本站首頁右上角部分)、拉簾效果(本站首頁左上角)、對話框、拖放效果、日期選擇、顏色選擇、數據排序、窗體大小調整等等非常多的內容。功能非常全面,界面也挺漂亮的,可以整體使用,也可以分開使用其中的幾個模塊,免費開源!
六、MiniUI
又一個基於jquery的框架,開發的界面功能都很豐富。
jQueryMiniUI_快速開發WebUI。
它能縮短開發時間,減少代碼量,使開發者更專注於業務和服務端,輕松實現界面開發,帶來絕佳的用戶體驗。
使用MiniUI,開發者可以快速創建Ajax無刷新、B/S快速錄入數據、CRUD、Master-Detail、菜單工具欄、彈出面板、布局導航、數據驗證、分頁表格、樹、樹形表格等典型WEB應用系統界面。
界面做的挺不錯,功能也挺豐富,但是有兩個比較大的問題,一個是收費,一個是沒有源碼,說白了,不開源!基於這個開發如果想對功能做擴展就需要找他們的團隊進行升級!
七、DWZ
DWZ富客戶端框架(jQueryRIAframework),是中國人自己開發的基於jQuery實現的AjaxRIA開源框架.
設計目標是簡單實用,快速開發,降低ajax開發成本。
畢竟是國產的,支持一下,而且源碼完全公開,可以選擇一下!不過性能怎麼樣不敢確定!
八、YUI
Yahoo!UILibrary
(YUI)是一個開放源代碼的JavaScript函數庫,為了能建立一個高互動的網頁,它採用了AJAX,DHTML和DOM等程式碼技術。它也包含了許多CSS資源。使用授權為
BSD許可證,基本上沒怎麼研究過!YUICompressor倒是挺出名的,這套UI庫不知道應用的情況怎麼樣!
九、Sencha
Sencha是由ExtJS、jQTouch以及Raphael三個項目合並而成的一個新項目。
大公司的框架,並且是幾樣庫的強強聯合,值得推薦!
十、OperaMasks-UI
OperaMasks-UI是OperaMasks團隊2011下半年打造的一款輕量級前端JS組件庫,旨在提供一款學習曲線低、定製性靈活、樣式統一,且多瀏覽器支持、覆蓋企業業務場景的前端JavaScriptUI組件庫。目前,該團隊已將這一產品以LGPL開源協議開放給社區。
文檔豐富,功能齊全,而且很容易使用和開發!而且是國產的喲!
以上排序是整理時的排序,一起整理分析一下,下次用的時候就不用到處找了,我想同樣的問題應該也存在在很多程序員身上,任何一款UI框架,只要能夠容易入手就行。
以上就是小編今天為大家分享的關於高質量web前端框架有哪些?的文章,希望本篇文章能夠對正在從事web前端工作的小夥伴們有所幫助。想要了解更多web前端知識的小夥伴們記得關注北大青鳥web培訓官網哦。
作者:qianankuangjia,來源:CSDN
原文:https://blog.csdn.net/qianankuangjia/article/details/78042944
⑷ 完全理解jQuery源代碼,在前端行業算什麼水平
依讀了2周jQuery源碼的人感覺來說,完全理解jQuery,就拿jQuery 1.11這個版本10337行代碼來說,水平已經很不錯了。謙虛點說,已經入門。驕傲點,國內領先水平。但其碼我感覺是js架構之路起行的第一步,完全理解源碼,說明有獨立構建或組織大型web前端框架的能力和基礎。然後看看完全理解jQuery是一個怎麼樣的狀態。
看下面幾個鏈接就明白了:
RubyLouvre/avalon · GitHub
artDialog
aui/artDialog · GitHub(後來的新版代碼有所改變)
沒錯,這兩個里邊,就是在繼承jquery的基礎上做了自己的創新嘗試。
然後在看下面這位:
[原創] jQuery1.6.1源碼分析系列(停止更新)
是唯一出過jquery源碼分析書的一位:
《jQuery技術內幕:深入解析jQuery架構設計與實現原理》(高雲)【摘要 書評 試讀】
然後在看這位:
jQuery 2.0.3 源碼分析系列
是目前一直在更新的一位,通俗有深度且版本比較新。
在說一下我2周閱讀jquery源碼的心得,初看源碼寫的惡心,再看寫的不錯,細看寫的真是精妙。然後今天在看ext 4.2的源碼,真是流暢易讀。基本來說,看懂jQuery源碼,以後的源碼學習之路可以說,平坦。
然後說是不是高手,高手只是一個自我定位的心理暗示,是一種人格魅力的體現,是業務與技術的完美結合。個人感覺只能無限的接近,不能在有限的生命里邊到達。我們在通往目的地過程中享受一路的風景,這才是生命的意義。
然後在說前端,前端的核心是js,外圍打醬油的技術太多,不一一列舉。
css就像一瓶酒,得品。
html,css總共就那些標簽跟選擇器屬性什麼的,但是要寫一個有擴展性,健壯性或維護性的頁面不容易。現在寫頁面基本條件反射,不是如何快速的完成,而是思考如果有前端界面需求修改,怎麼在修改代碼最少的情況下完成整體需求任務。
js就像一把劍,得磨。
js剛開始只是為了較驗,隨便技術社會的發展,承擔的角色越來越重,剛開始玩玩jQuery感覺已經會js了,其實只是冰山一角。隨著對js的了解越來越多,他即變態又可愛,即好玩又難控,即有很多兼容問題,但解決兼容是我們基本生存之道。
人生就是一場夢,得作。
技術只是生活的一部分,曾經雄心鬥志,如今低頭寫碼。改變能改變的,接受不能改變的。人生有限,兄爭朝夕啊。
最後說,什麼時候能閱讀jQuery源碼,我感覺其碼是純js編碼一年以上,js基礎知識沒有盲點。閱讀源碼,確實能學到很多東西。不只是技術,而是一種生活的態度。一種把一件事情做到極致的態度
⑸ 【源碼】微前端qiankun源碼閱讀(3):預載入、緩存和通信
【微前端】qiankun源碼閱讀(1):Demo與single-spa流程
【微前端】qiankun源碼閱讀(2):載入子應用與沙箱隔離
通過前面的兩篇可以大概了解qiankun的運行,其中可能會有些疑問:一個主應用有多個子應用,如果每次都在切換子應用時才去載入對應子應用的資源,那切換時的體驗會比較差。為此,qiankun提供了預載入功能,可以看到在start中調用了 doPrefetchStrategy :
去到 src/prefetch.ts 中查看 doPrefetchStrategy ,可以看到其默認預載入策略是 prefetchAfterFirstMounted ,也就是等當前子應用載入完畢後,再去預載入其他子應用。 prefetchAfterFirstMounted 很簡單,就是在 requestIdleCallback 中調用我們之前講到的 importEntry 去載入每個子應用。
requestIdleCallback 是一個相對新的API,可以用它來執行一些低優先順序的任務,它會在瀏覽器空閑的時候才去執行,從而避免影響當前子應用的載入。
另外有個問題是,如果我們每次切換應用都去 importEntry 重新載入資源,那不好。可以將資源保存起來。
這里其實也是 importEntry 做好了, importEntry 會將請求到的資源保存在 embedHTMLCache 變數中。
qiankun中的通信很簡單,在 initGlobalState API文檔 可以查看其使用。
這里源碼在 src/globalState.ts 中。各種通信方式在微前端框架里同樣適用,沒啥好看。
qiankun框架的源碼閱讀暫時先這樣,希望以後有應用場景可以使用一下這個框架。