欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    ython全能工程師2022版|百度網(wǎng)盤|完結(jié)無秘

    //下栽のke:chaoxingit.com/2028/

    成為Python全能工程師:打造多面手的技能組合

    Python已經(jīng)成為當今軟件開發(fā)領(lǐng)域的瑰寶,其簡潔而強大的語法、豐富的庫和生態(tài)系統(tǒng),以及廣泛的應(yīng)用范圍,使得它成為了許多開發(fā)者心目中的首選語言之一。然而,要成為一名真正的Python全能工程師,并不僅僅意味著精通Python語言本身,還需要掌握一系列相關(guān)技能和工具,以應(yīng)對不同的需求和挑戰(zhàn)。

    掌握核心Python技能

    首先,作為一名Python全能工程師,你需要對Python語言的核心概念和特性有深入的理解。這包括但不限于:

    • 語法和基礎(chǔ)知識: 了解Python的基本語法、數(shù)據(jù)類型、控制流程等,以及如何編寫簡潔、可讀性高的代碼。
    • 面向?qū)ο缶幊蹋?/span> 掌握面向?qū)ο缶幊痰脑砗蛯嵺`,包括類、對象、繼承、多態(tài)等概念,并能夠利用面向?qū)ο蟮乃枷朐O(shè)計和構(gòu)建復雜的程序結(jié)構(gòu)。
    • 函數(shù)式編程: 理解函數(shù)式編程的概念和特點,掌握函數(shù)式編程的核心函數(shù)和技巧,以及如何利用函數(shù)式編程風格編寫簡潔、高效的代碼。

    數(shù)據(jù)科學與分析能力

    Python在數(shù)據(jù)科學和分析領(lǐng)域有著廣泛的應(yīng)用,因此作為一名Python全能工程師,你需要具備一定的數(shù)據(jù)科學和分析能力。這包括:

    • Pandas和NumPy: 掌握Pandas和NumPy等數(shù)據(jù)處理和分析庫,包括數(shù)據(jù)清洗、轉(zhuǎn)換、統(tǒng)計分析等操作,以及如何利用這些庫處理和分析大規(guī)模的數(shù)據(jù)集。
    • 數(shù)據(jù)可視化: 熟練使用Matplotlib、Seaborn等數(shù)據(jù)可視化庫,能夠創(chuàng)建各種類型的圖表和可視化,以直觀地展現(xiàn)數(shù)據(jù)的特征、趨勢和關(guān)系。
    • 統(tǒng)計分析: 具備一定的統(tǒng)計分析能力,包括描述性統(tǒng)計、假設(shè)檢驗、回歸分析等,能夠從統(tǒng)計學角度深入分析數(shù)據(jù)并得出結(jié)論。

    機器學習和人工智能技能

    隨著人工智能和機器學習的快速發(fā)展,掌握相關(guān)技能已經(jīng)成為Python全能工程師的重要組成部分。這包括:

    • Scikit-learn和TensorFlow: 掌握Scikit-learn等機器學習庫,能夠應(yīng)用常用的機器學習算法進行分類、回歸、聚類等任務(wù),以及了解TensorFlow等深度學習框架的基本原理和使用方法。
    • 深度學習模型: 理解深度學習模型的原理和結(jié)構(gòu),包括神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)等,能夠設(shè)計和訓練復雜的深度學習模型解決實際問題。

    Web開發(fā)和框架

    除了數(shù)據(jù)科學和機器學習,Python在Web開發(fā)領(lǐng)域也有著豐富的應(yīng)用,因此掌握相關(guān)的Web開發(fā)技能也是一名Python全能工程師必備的能力之一。這包括:

    • Django和Flask: 掌握Django和Flask等Web開發(fā)框架,能夠構(gòu)建高效、安全的Web應(yīng)用,并了解RESTful API的設(shè)計和實現(xiàn)。
    • 前端開發(fā): 熟悉HTML、CSS、JavaScript等前端開發(fā)技術(shù),能夠與后端進行交互,實現(xiàn)動態(tài)的Web頁面和用戶交互功能。
    • 數(shù)據(jù)庫和存儲: 掌握SQL和NoSQL數(shù)據(jù)庫的基本操作和管理,能夠使用數(shù)據(jù)庫存儲和管理數(shù)據(jù)。

    自動化和腳本編程

    最后,作為一名Python全能工程師,你還需要具備一定的自動化和腳本編程能力,以提高工作效率和生產(chǎn)力。這包括:

    • 自動化腳本: 利用Python編寫自動化腳本,實現(xiàn)各種任務(wù)的自動化處理,如文件處理、數(shù)據(jù)抓取、系統(tǒng)管理等。
    • 任務(wù)調(diào)度和批處理: 使用Python編寫任務(wù)調(diào)度和批處理腳本,實現(xiàn)定時任務(wù)的執(zhí)行和批量處理任務(wù)的管理。
    • 系統(tǒng)集成和部署: 了解系統(tǒng)集成和部署的基本原理和方法,能夠編寫部署腳本和自動化工具,實現(xiàn)系統(tǒng)的快速部署和配置。

    成為一名Python全能工程師并不是一蹴而就的,它需要持續(xù)的學習和實踐,不斷地拓展和提升自己的技能和能力。然而,一旦你掌握了這些關(guān)鍵技能,你將能夠在各種領(lǐng)域和項目中游刃有余地應(yīng)對挑戰(zhàn),成為行業(yè)中的佼佼者。

    準備環(huán)境

    1. 編程環(huán)境:

    • Python解釋器: 首先需要安裝Python解釋器,推薦使用最新版本的Python,可以從官方網(wǎng)站 下載安裝。
    • 集成開發(fā)環(huán)境(IDE): 選擇一個適合自己的集成開發(fā)環(huán)境,常用的有PyCharm、VSCode、Jupyter Notebook等,它們提供了代碼編輯、調(diào)試、版本控制等功能,提高了編程效率。

    2. 數(shù)據(jù)科學與分析環(huán)境:

    • 數(shù)據(jù)科學庫: 安裝常用的數(shù)據(jù)科學庫,如NumPy、Pandas、Matplotlib、Seaborn等,可以使用pip或者conda進行安裝。
    • 科學計算環(huán)境: 推薦使用Anaconda發(fā)行版,它集成了常用的數(shù)據(jù)科學和機器學習庫,并提供了方便的環(huán)境管理工具,如conda。

    3. 機器學習與人工智能環(huán)境:

    • 機器學習庫: 安裝Scikit-learn、TensorFlow、Keras等機器學習庫,可以通過pip或conda安裝。
    • GPU支持: 如果需要使用GPU加速深度學習模型的訓練,可以安裝相應(yīng)的GPU驅(qū)動和CUDA工具包,并使用支持GPU的深度學習框架。

    4. Web開發(fā)環(huán)境:

    • Web框架: 安裝Django、Flask等Web開發(fā)框架,通過pip安裝即可。
    • 前端開發(fā)工具: 需要安裝Node.js和npm,以及相關(guān)的前端開發(fā)工具和庫,如React、Vue.js、Bootstrap等。

    5. 自動化與腳本編程環(huán)境:

    • 自動化工具: 安裝相關(guān)的自動化工具和庫,如Fabric、Ansible等,可以簡化系統(tǒng)管理和部署的工作。
    • 任務(wù)調(diào)度工具: 需要安裝任務(wù)調(diào)度工具,如crontab(Linux)、Task Scheduler(Windows)等,用于定時執(zhí)行任務(wù)。

    6. 版本控制與團隊協(xié)作環(huán)境:

    • 版本控制系統(tǒng): 推薦使用Git作為版本控制系統(tǒng),并學習使用Git的基本操作和工作流程。
    • 團隊協(xié)作平臺: 使用團隊協(xié)作工具,如GitHub、GitLab等,用于代碼托管、協(xié)作開發(fā)和項目管理。

    7. 學習資源與社區(qū)支持:

    • 官方文檔: 學習Python語言和相關(guān)庫的官方文檔是最好的方式,可以從官方網(wǎng)站獲取最新的文檔和教程。
    • 在線教程: 利用在線教程和課程學習Python和相關(guān)技術(shù),如Coursera、edX、Udemy等平臺都提供了豐富的Python學習資源。
    • 社區(qū)支持: 加入Python社區(qū)和相關(guān)技術(shù)的討論組或論壇,如Stack Overflow、Reddit的r/Python板塊等,可以向他人請教問題、分享經(jīng)驗,獲取社區(qū)支持。

    快速入門

    . Python基礎(chǔ)知識:

    • 變量與數(shù)據(jù)類型: 了解Python的基本數(shù)據(jù)類型,如整數(shù)、浮點數(shù)、字符串等,以及如何創(chuàng)建和操作變量。
    • 流程控制: 學習使用條件語句(if-else)、循環(huán)語句(for、while)等來控制程序的流程。
    • 函數(shù)與模塊: 掌握函數(shù)的定義與調(diào)用,了解模塊的概念,學會如何創(chuàng)建和使用自定義函數(shù)以及使用標準庫中的模塊。
    • 異常處理: 學習如何處理異常,保障程序的穩(wěn)定性。

    2. 數(shù)據(jù)科學與分析:

    • NumPy和Pandas: 學習使用NumPy進行數(shù)值計算,以及使用Pandas進行數(shù)據(jù)處理與分析。
    • Matplotlib和Seaborn: 掌握可視化工具,如Matplotlib和Seaborn,用于創(chuàng)建圖表和展示數(shù)據(jù)。
    • Jupyter Notebook: 了解Jupyter Notebook的使用,它是一個交互式的數(shù)據(jù)分析工具。

    3. 機器學習:

    • Scikit-learn: 學習使用Scikit-learn庫,它提供了許多經(jīng)典的機器學習算法和工具。
    • TensorFlow或PyTorch: 了解深度學習框架,選擇學習TensorFlow或PyTorch,掌握基本的神經(jīng)網(wǎng)絡(luò)概念與實踐。

    4. Web開發(fā):

    • Django或Flask: 學習使用Django或Flask進行Web開發(fā),掌握路由、模板引擎、ORM等基本概念。
    • HTML、CSS、JavaScript: 了解前端開發(fā)基礎(chǔ),學習構(gòu)建簡單的網(wǎng)頁和交互。

    5. 版本控制與團隊協(xié)作:

    • Git: 學習使用Git進行版本控制,熟悉基本的Git命令和工作流程。
    • GitHub或GitLab: 掌握代碼托管平臺,學習如何使用GitHub或GitLab進行團隊協(xié)作。

    6. 自動化與腳本編程:

    • 腳本編程: 學會使用Python進行腳本編程,例如自動化任務(wù)、數(shù)據(jù)處理等。
    • 自動化工具: 了解自動化工具如Fabric、Ansible等,用于系統(tǒng)管理和部署。

    7. 持續(xù)學習與社區(qū)參與:

    • 官方文檔與在線資源: 閱讀Python官方文檔,參與在線教程和學習資源。
    • 社區(qū)參與: 加入Python社區(qū),參與討論、提問問題,從社區(qū)中獲取經(jīng)驗和建議。

    進階技巧和注意事項

    . 深入理解Python語言:

    • 掌握高級特性: 包括生成器、裝飾器、上下文管理器等。深入了解Python語言的高級功能和設(shè)計原理。
    • 理解Python的內(nèi)存管理: 學習Python的內(nèi)存管理機制,包括垃圾回收、引用計數(shù)等,優(yōu)化代碼的內(nèi)存使用。
    • 探索Python的元編程特性: 了解元類、動態(tài)屬性、反射等概念,靈活運用元編程增強代碼的靈活性和可維護性。

    2. 數(shù)據(jù)科學與機器學習:

    • 深入學習算法: 理解機器學習算法的原理和實現(xiàn)細節(jié),包括監(jiān)督學習、無監(jiān)督學習、強化學習等。
    • 優(yōu)化模型性能: 掌握模型評估與調(diào)優(yōu)的技巧,包括特征工程、超參數(shù)調(diào)優(yōu)等。
    • 掌握深度學習: 深入學習深度學習算法與框架,如TensorFlow、PyTorch,掌握卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)等深度學習模型。

    3. Web開發(fā)與微服務(wù)架構(gòu):

    • 掌握異步編程: 學習異步編程框架,如asyncio、Tornado,提升Web應(yīng)用的性能和并發(fā)能力。
    • 微服務(wù)架構(gòu): 了解微服務(wù)架構(gòu)的設(shè)計原理和實踐經(jīng)驗,學習使用Docker、Kubernetes等容器化技術(shù)。
    • 安全性和性能優(yōu)化: 學習Web應(yīng)用的安全性防護策略,如CSRF防護、XSS防護等,以及性能優(yōu)化技巧,如緩存、負載均衡等。

    4. 大數(shù)據(jù)處理與分布式系統(tǒng):

    • 學習大數(shù)據(jù)框架: 掌握大數(shù)據(jù)處理框架,如Hadoop、Spark,了解分布式文件系統(tǒng)、數(shù)據(jù)存儲與計算等概念。
    • 實時數(shù)據(jù)處理: 學習實時數(shù)據(jù)處理框架,如Kafka、Flink,掌握流式數(shù)據(jù)處理的原理和實踐。
    • 分布式系統(tǒng)設(shè)計: 深入理解分布式系統(tǒng)的設(shè)計原理,學習分布式一致性算法、分布式事務(wù)等概念。

    5. 軟件工程與團隊協(xié)作:

    • 設(shè)計模式與架構(gòu)模式: 深入理解常見的設(shè)計模式和架構(gòu)模式,如單例模式、工廠模式、MVC模式等,提高代碼的可維護性和擴展性。
    • 持續(xù)集成與持續(xù)交付: 學習持續(xù)集成和持續(xù)交付的實踐方法,包括自動化測試、自動化部署等。
    • 團隊協(xié)作與項目管理: 提升團隊協(xié)作能力,學習項目管理方法和工具,如敏捷開發(fā)、Scrum、Kanban等。

    6. 持續(xù)學習與實踐:

    • 跟進新技術(shù): 持續(xù)關(guān)注Python生態(tài)圈和技術(shù)發(fā)展趨勢,學習新的框架、工具和最佳實踐。
    • 開源貢獻與社區(qū)參與: 積極參與開源項目,貢獻自己的代碼和經(jīng)驗,擴大技術(shù)影響力,同時從開源社區(qū)中學習和獲取反饋。
    • 不斷實踐與總結(jié): 多參與實際項目,不斷積累經(jīng)驗,總結(jié)經(jīng)驗教訓,不斷提高自己的技術(shù)水平和解決問題的能力。

    成為一名Python全能工程師是一個持續(xù)學習和進步的過程,需要不斷地投入時間和精力,不斷提升自己的技術(shù)能力和綜合素質(zhì)。

    秘下架,無人發(fā)聲

    2017年8月28日,晚上十二點半,在德勤工作的Echo剛剛下班,她已經(jīng)在這個項目上忙了快一個月,基本每天都要在這個時候才能下班。

    在回家的出租車上,她打開了很久沒打開的無秘,但是刷新之后,發(fā)現(xiàn)頁面一直顯示“系統(tǒng)維護,暫停服務(wù)”。

    但無秘那段時間已經(jīng)時常不再穩(wěn)定,她也沒太在意。四天后,當她再次打開無秘,發(fā)現(xiàn)依然無法使用時,這才想起去無秘官微看看到底發(fā)生了什么。

    這才發(fā)現(xiàn)官微已經(jīng)在9月1日正式發(fā)了聲明,而且并未表明恢復服務(wù)的日期。那之后至今,已經(jīng)過去了整整兩個月,無秘這款國內(nèi)最火的匿名社交應(yīng)用,再也沒有能恢復服務(wù),并且已經(jīng)無聲無息地從app store 下架了。

    與這種無聲無息的下架相比,更奇怪的是,無秘的擁有一千六百萬用戶并為對此事發(fā)表過多看法。在各大社交網(wǎng)絡(luò)上,你只能看到零星的吐槽與牢騷,而未能看到太多用戶維護它、懷念它,甚至為它的復出而作出努力。

    同樣都是滿足用戶灰色需求的應(yīng)用,快播的下架就曾經(jīng)引起了軒然大波,甚至引起大眾關(guān)于“技術(shù)無罪”的熱烈討論。大量用戶維護快播,并為之發(fā)聲,認為某巨頭舉報快播是極為下作的競爭行為。

    兩相對比,我們就能看到其中的微妙之處:

    迄今為止,無秘下架兩個月,卻無人為它發(fā)聲,它的火熱與用戶仿佛一夜之間就全都銷聲匿跡了。

    永遠沒有下班時間的年輕人們

    在德勤工作的Echo學姐是無秘最早一批用戶,2014年剛一上線她就已經(jīng)安裝了。

    那時候無秘還單純只是一個匿名說心事的平臺,很多人在上面說著自己無法跟他人說的往事、焦慮和痛苦。

    當時無秘的爆料基本還是圍繞著每個用戶內(nèi)心深處的秘密,偶爾會有一些倫理邊緣的小故事,也大多都是能讓人找到共鳴和釋放的內(nèi)容。

    在德勤的工作本就繁忙而枯燥,工作之余 Echo 就會常常登陸無秘,看看大家心中的秘密,有時也會把自己不便告訴他人的心事寫在上面。

    那時候,無秘確實能夠讓人感覺很放松,是你一天里最沒有壓力的時刻,圈子功能推出后,還能看到很多業(yè)內(nèi)八卦。

    Echo這樣說。

    這是Echo一天里最為放松的時刻,她的工作已經(jīng)有太多焦慮和壓力,無法宣泄,也無處宣泄,最初,無秘很好地填補了這一塊空白。

    無秘的誕生和火爆所迎合的其實就是當下城市年輕人無處發(fā)泄的負面能量。

    他們每天都在被一個又一個deadline追著跑,永遠背不完的鍋,永遠兌現(xiàn)不了的空頭支票,永遠加不完的班,積蓄下來的負面情緒根本無處發(fā)泄。所以,每次只要有“發(fā)泄”主題的城市活動,絕對都能引起一時熱議。

    GQ實驗室曾經(jīng)做過一次“職場表情包破譯科”,每個emoji背后都有其嶄新含義,“鼓掌”背后的含義是“那你很棒棒哦,給你鼓鼓掌!(諷刺)”,“涂指甲油”的emoji則意味著“老娘懶得理你”。儼然已經(jīng)形成一種亞文化。

    在上海,網(wǎng)易新聞辦了一個與工作焦慮有關(guān)的藝術(shù)展,名字帶著幾分網(wǎng)絡(luò)化,“心靈復蘇大保健”。其中媒體品牌GQ、好奇心研究所;在社交網(wǎng)絡(luò)上紅極一時的彩虹合唱團、漫畫家Tango以及《奇葩說》辯手姜思達等10個內(nèi)容方,每個都展出了一種不同的工作焦慮。

    姜思達的展叫“You Da Boss”。比起靜止裝置這更像一場行為藝術(shù):員工模樣的男子坐在電腦前摸魚,一會兒看視頻一會兒打游戲,但只要有觀眾走到身后,他就會立刻切換到Word頁面(假裝)認真工作,切屏手速驚人。

    姜思達的“You Da Boss”

    今年6月,在上海新天地世界大丸百貨舉報過一場“魔都減壓展”,內(nèi)場提供了枕頭大戰(zhàn)、摔碗、冥想、撕假鈔票等減壓選項。但其實活動流程設(shè)計很一般,你真去了也不會參與到什么減壓活動。可門口的年輕人們依然排起了長隊。

    這些承載年輕人負面情緒并為之提供發(fā)泄方式的事物,都曾經(jīng)火熱一時,但它們也有一個共同點:迅速火熱,然后迅速消失。表情包也好,《感覺身體被掏空》也好,魔都減壓展也好,能夠讓年輕人追捧一時,然后被迅速忘記。

    因為它們只能發(fā)泄,而無法解決任何問題。狂歡之后,焦慮還在,壓力還在,生活還在繼續(xù),周一還要面對。所以,它們只能流行一時。

    而無秘,對于年輕人來說,正是這樣“流行一時、迅速忘記”的存在。

    “我選擇卸載”

    不止如此,因為無秘對其平臺負面的內(nèi)容不作為之后,無秘內(nèi)部的文化氛圍開始變得極為黑暗,這種黑暗氛圍在著名的“陸家嘴事件”后達到了頂峰。

    露骨、造謠、抹黑等等內(nèi)容開始大量涌現(xiàn),并且無秘平臺本身對此幾乎秉承著置之不理的態(tài)度。

    這些內(nèi)容不僅不會讓用戶得到放松,反而會讓其心情更加沉重。

    說出來可能有點難以相信,我的好朋友之所以從上一家公司跳槽到現(xiàn)在的公司,就是因為無秘。

    她在上一家公司里兢兢業(yè)業(yè)地工作,在外跑業(yè)務(wù)、對身邊的工作也盡心盡力。

    無秘在他們公司盛行,無論是老板、還是同事們都熱衷于在上面匿名地分享自己的小秘密、吐吐苦水。在這樣的環(huán)境下,朋友在一次被老板表揚并promote后,在無秘上遭到了圍攻,甚至公開點名說她靠裙帶關(guān)系上位,她崩潰了。

    其實無秘就是這樣,什么人都在上面,魚龍混雜得很,他們什么難聽的話都敢說,反正又沒人能知道他們到底是誰。

    指名道姓地在無秘上這樣說,而說這些話的人卻全都躲在匿名ID后面。

    沒過多久,她也離開了那家公司,然后卸載了無秘。

    她受不了一個熱愛無秘、還相信無秘的老板,也受不了一群把無秘當成辦公室政治斗爭工具的同事。

    而這只是無秘平臺所滋生出的黑暗文化的一小部分而已。

    與無秘上的亂相相似,快手上也活躍著大量游走在法律邊緣的視頻內(nèi)容,但一旦被平臺發(fā)現(xiàn),快手就會立刻處理,從不手軟。比如,剛剛發(fā)生的快手上的“未成年孕婦”事件。

    不管怎樣,快手的即時處理沒有讓事情發(fā)展得更為可怕,但是無秘卻幾乎從未對平臺下內(nèi)容做過任何疏導與管理,任由其黑暗文化滋生、成長。匿名帶來自由,匿名也帶來放肆與陰暗,由此便生發(fā)而出的黑暗文化在無形中消耗著用戶對它的忠誠度和好感度。

    成也蕭何、敗也蕭何

    歸根到底,用戶對無秘沒有感情、沒有情懷,有的只是不想承認、無法承認的黑暗面,這就是無秘匿名的意義。

    這是它最初火熱的原因,也是它如今無人為之哀悼的原因所在,正所謂“成也蕭何,敗也蕭何”。

    匿名帶來了其平臺的黑暗文化氛圍,平臺又沒有對其加以控制,使之走向了最終的失控。平臺被沉重的情緒填滿,使用戶再也不想要登陸上去,更不要說為之發(fā)聲了。

    所以無秘的下架也就理所當然地沒有引起大范圍的懷念與哀悼。

    無秘就像那些轉(zhuǎn)瞬即逝的解壓活動、宣泄方式,只能宣泄一時,而無法徹底解決焦慮與恐慌。

    樹洞只是樹洞,壞了,那換個新的就是,沒人會為樹洞大哭一場。

    我們永遠需要樹洞,我們永遠需要釋放壓力。

    但這樹洞不會永遠是無秘。

    圖片/來源網(wǎng)絡(luò)

    -END-

    品 2023黑馬java v13版本「完結(jié)無密」


    //xia栽ke:chaoxingit.com/2441/

    很多初學者開始接觸Java EE的時候,都會略有些迷茫,搞不太懂Java EE與Java之間的關(guān)系,也不太清楚各個框架都是干嘛的,名詞也多,內(nèi)容也復雜,不知道從哪個地方開始入手。因此,我們這篇文章就為給大詳細解讀一下Java EE到底是什么,包括哪些方面,應(yīng)該怎樣學習。

    一、Java EE到底是什么?

    Java EE實際上是Java語言和API的集合。官方說法叫企業(yè)級開發(fā),實際上最多的就是做Web應(yīng)用開發(fā),這里面的Web應(yīng)用和單獨一個網(wǎng)站還是有很大區(qū)別的,例如單獨開發(fā)一個靜態(tài)頁面,很多工具很快就可以完成了。而Web應(yīng)用,更多的是指在網(wǎng)絡(luò)上,以看起來像網(wǎng)站形式提供服務(wù)的一個復雜應(yīng)用。例如說Google,網(wǎng)頁上看著非常簡單,就一個框,實際上,后面有大量的數(shù)據(jù)庫,有大量的推薦算法、查詢算法,有廣告推薦服務(wù),有排名服務(wù)等等,可能這些服務(wù),在網(wǎng)頁上最終顯示出來的就一句話,但是背后的業(yè)務(wù)程序卻非常復雜。

    像淘寶、京東這些購物網(wǎng)站的后臺,都是Java寫的。背后要處理的東西非常多。比如說下一個訂單,就要考慮庫存狀態(tài)、訂單的存儲和備份、后臺的訂單處理、狀態(tài)變更、出庫入庫、支付系統(tǒng)、結(jié)算系統(tǒng)、對賬系統(tǒng),等等。

    而這么復雜的一個系統(tǒng),Java EE把它分為三層,分別是表示層、中間層、數(shù)據(jù)層。C#中的三層分別是表示層,業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層,只是不一樣的說法,但表達的是同一個意思。如下圖所示:

    所以對于一個簡單的系統(tǒng),比如說圖書管理系統(tǒng)來說,按上圖從左到右,就分成五個部分。

    1、瀏覽器:負責輸入要查詢的圖書,以及把查詢的圖書展示在瀏覽器里供人查看。

    2、視圖展示層:把瀏覽器里輸入的內(nèi)容包裝一下,發(fā)給業(yè)務(wù)處理層。比如說瀏覽器里輸入的是“紅樓夢”,它輸入給業(yè)務(wù)處理層的內(nèi)容可能是{“bookname”:“紅樓夢”,“type”:“Query”},告訴業(yè)務(wù)處理層,這人要查詢一本叫紅樓夢的書。同時業(yè)務(wù)處理層查完了,查到一本紅樓夢,作者曹雪芹,朝代清朝,頁數(shù)1563頁,出版社清華大學出版社,返回給它之后,它再給包裝一下,什么名字大寫,圖片放在右邊,作者放下下面之類。然后給瀏覽器一顯示,用戶就看到了。

    3、業(yè)務(wù)邏輯層:處理一下業(yè)務(wù)邏輯,比如說判斷一下,前端傳來是,是要查詢,還是要刪除這本書,或者是要查詢相似的書,等等。要查詢這本書,他就去查一下,看這本書庫里有沒有,給持久層一個查詢指令。要刪除這本書,他就先看一下,發(fā)請求的這個人有沒有權(quán)限,這本書庫里有沒有,刪除這本書這個事要不要記錄在日志里等等,確定要刪除了,就給持久層發(fā)一個刪除這本書的指令,發(fā)現(xiàn)這個人不能刪除這本書,就返回給視圖展示層說警告,你的權(quán)限不足,刪不了。

    4、持久層:用來操作數(shù)據(jù)庫的,把四面八方來的數(shù)據(jù)庫增刪改查指令都收集到它這里,一起處理,至于他是開一個數(shù)據(jù)庫連接還是一百個連接查詢,那就是他自己的事了。

    5、數(shù)據(jù)庫:那就老老實實執(zhí)行,持久層給他什么指令他就干什么。

    所以可以說,Java EE,就是實現(xiàn)上面這樣的系統(tǒng),需要的一系列技術(shù)的集合。

    二、Java EE與Java語言之間的關(guān)系

    Java EE是以Java語言為基礎(chǔ)的,可以認為Java語言是漢字,而Java EE則是不同類型的文章。會寫漢字,并不代表會寫論文、公文。而會寫論文也不代表會寫公文。

    三、Java EE包括哪些技術(shù)

    通常來講,Java EE包括13項核心技術(shù)。

    1、JDBC(Java DataBase Connectivity):用來連數(shù)據(jù)庫的。

    2、JNDI(Java Naming and Directory Interfaces) :給當前服務(wù)器管理的所有資源一個統(tǒng)一的標識,換句話說通過這服務(wù)能找到服務(wù)器管理的任何資源并使用。比如說數(shù)據(jù)庫、網(wǎng)頁、文件、連接池等。

    3、EJB(Enterprise JavaBean):實際給企業(yè)干活的組件,企業(yè)自己寫完注冊在服務(wù)器上,服務(wù)器給他一個統(tǒng)一的標識,就JNDI管那個,然后應(yīng)用服務(wù)就可以調(diào)用了。在這里面,Java EE是提供了部署和使用這些組件的平臺和標準。按這個標準寫的組件就可以用了。

    4、RMI (Remote Method Invoke):遠程方法調(diào)用,它提供了一種方法,可以遠程調(diào)用另一個Java虛擬機上的對象中的方法。

    5、JSP(Java Server Pages):生成Html給瀏覽器展示用的。JSP頁面由HTML代碼和嵌入其中的Java代碼組成。服務(wù)器在頁面端所請求以后,對這些Java代碼進行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。

    6、Java servlet:一種小型Java程序,它擴展了Web服務(wù)器的功能。作為一種服務(wù)器端的應(yīng)用,當被請求時開始執(zhí)行。Servlet提供的功能大多與JSP類似,不過實現(xiàn)的方式不同。JSP通常是大多數(shù)HTML代碼中嵌入少量的Java代碼,而Servlet全部由Java寫成并生成HTML。

    7、XML(Extensible Markup Language):可擴展標記語言。大家都見過。

    8、JMS(Java Message Service) :Java消息服務(wù),消息中間件規(guī)范。JMS的客戶端之間可以通過JMS服務(wù)進行異步的消息傳輸。JMS用于和面對面對消息的中間件相互通信的應(yīng)用程序接口(API)。既支持點對點的域,又支持發(fā)布/訂閱(publish/subscribe)類型的域。常用的消息中間件如ActiveMQ都支持完整的JMS標準。

    9、Java IDL (Interface Description Language) /CORBA (Common Object Broke Architecture) Java:接口定義語言/公用對象請求代理程序體系結(jié)構(gòu)。IDL是用來描述軟件組件接口的一種計算機語言。IDL通過一種中立的方式來描述接口,使得在不同平臺上運行的對象和用不同語言編寫的程序可以相互通信交流。

    10、JTS (Java Transaction Service) :是一個組件事務(wù)監(jiān)視器。規(guī)定了事務(wù)管理器的實現(xiàn)方式。

    JTS事務(wù)管理器為應(yīng)用服務(wù)器,資源管理器,獨立的應(yīng)用以及通信資源管理器提供了事務(wù)服務(wù)。

    11、JTA(Java Transaction API):和JTA一起為J2EE平臺提供了分布式事務(wù)服務(wù)(distributed transaction)。就是在一堆業(yè)務(wù)和數(shù)據(jù)源里,保證了用戶操作不會操作到一半出問題后半新半舊的情況,要么全操作完,要么操作失敗回到原始狀態(tài)。

    12、JavaMail:顧名思義,存取郵件服務(wù)器的API,支持郵件發(fā)送服務(wù)器SMTP,接收服務(wù)器POP3、IMap等。但是其API不怎么好用,底層很強大。所以Spring提供了mail包,封閉了javax.mail,比原生的好用很多。

    13、JAF (JavaBean Activation Framework):是一個專用的數(shù)據(jù)處理框架,它用于封裝數(shù)據(jù),并為應(yīng)用程序提供訪問和操作數(shù)據(jù)的接口。JAF的主要作用在于讓java應(yīng)用程序知道如何對一個數(shù)據(jù)源進行查看、編輯和打印等操作。就是那個大家經(jīng)常見到的activation.jar。

    (此處已添加書籍卡片,請到客戶端查看)

    四、各類框架與Java EE的關(guān)系

    提到Java EE,就不得不提到各種輕量級框架,Java EE相關(guān)的框架又多又復雜,很多人搞不清楚都是干嘛的。但是其實很簡單,Java EE提供的原生功能,很多都不怎么好用,所以程序員們,在基于原生功能基礎(chǔ)上,做了很多封裝,就是把原生的不怎么好用的功能包起來,用更人性的方式讓你使用,然后它再費勁巴拉的去調(diào)用原生的框架或者拐個彎實現(xiàn)要用的功能。

    1、表現(xiàn)層框架:表現(xiàn)層框架是用來替代JSP和Servlet的,主要有Struts1、Struts2和Spring MVC。說白了就是JSP和Servlet不太用戶友好,用這兩個框架幫忙給弄得用戶友好些。目前Spring MVC已經(jīng)成為了主流框架,Struts已經(jīng)基本沒什么人用了,而隨著前后端分離的快速流行,Spring MVC提供接口,VUE/React等提供展現(xiàn)的開發(fā)模式已經(jīng)越來越流行了。

    2、持久層框架:用來代替原生JDBC,主要有Hibernate、MyBatis/Plus、Spring Data JPA等。他們能讓操作數(shù)據(jù)庫,數(shù)據(jù)庫表與實體類的映射,數(shù)據(jù)庫查詢結(jié)果與前端的展現(xiàn)融合變得非常簡單。而不是像JDBC返回一堆數(shù)據(jù)自己再處理。

    3、全棧式框架:在三層結(jié)構(gòu)的各個部分進行優(yōu)化。主流即為Spring,以IOC(Inverse Of Control 反轉(zhuǎn)控制)和AOP(Aspect Oriented Programming 面向切面編程)為內(nèi)核,提供了表現(xiàn)層MVC和持久層Spring JDBC以及業(yè)務(wù)層事務(wù)管理等眾多的企業(yè)級應(yīng)用技術(shù),還能整合眾多著名的開源第三方框架和類庫,逐漸成為使用最多的JavaEE企業(yè)應(yīng)用開源框架。換句話說,Java EE提供的三層功能,該框架及其容納進來的各種類庫都能給實現(xiàn)了,所以人們現(xiàn)在基本上都只用它。而Spring Boot是在Spring框架基礎(chǔ)上,進行了進一步封裝,變得更加好用了。總結(jié)起來,這些框架在Java EE三層結(jié)構(gòu)中的代替關(guān)系如下圖所示。

    五、小結(jié)

    綜上所述,Java EE的整個技術(shù)棧,包括很多種內(nèi)容,其中最為核心的,就是完全一個企業(yè)級應(yīng)用所需要的展現(xiàn)、業(yè)務(wù)處理、和數(shù)據(jù)存儲三層功能。而學習Java EE最基礎(chǔ)的,是在了解其技術(shù)源流的基礎(chǔ)上,學習一個能實現(xiàn)企業(yè)業(yè)務(wù)功能的最小技術(shù)集。

    這個最小集在多年以前以SSH(Struts、Spring、Hibernate)較為流行,后來升級為Struts2,到后來Struts2漸漸被SpringMVC替換掉,變成了Spring + SpringMVC + Hibernate/ibatis架構(gòu)。

    之后Hibernate配置維護需要的人力成本大而慢慢被ibatis代替,后來MyBatis出現(xiàn)了,從iBatis到MyBatis,MyBatis提供了更為強大的功能,同時并沒有損失其易用性,就變成為了Spring+SpringMVC+Mybatis,這是很多公司比較流行的框架。

    目前,隨著SpringBoot的流行,開始向SpringBoot+Mybatis/plus架構(gòu)轉(zhuǎn)變,而Spring Data Jpa,又在持久層逐漸占領(lǐng)Mybatis/plus的市場。同時隨著微服務(wù)的流行,基于SpringBoot的SpringCloud微服務(wù)框架開始成為前沿框架。

    總之,對于一名軟件從業(yè)人員來說,要掌握一套完整的開發(fā)技術(shù)棧,然后不斷地嘗試新的前沿技術(shù),從而使自己不被時代所淘汰。

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權(quán)所有