• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于前后端分離系統(tǒng)的計算機編程算法

    2022-05-17 00:40:52王智棟
    信息記錄材料 2022年3期
    關鍵詞:代碼頁面梯度

    索 晉,王智棟

    (山西應用科技學院 山西 太原 030000)

    0 引言

    當前,前后端分離系統(tǒng)在互聯(lián)網(wǎng)項目開發(fā)當中應用較為普遍,前端開發(fā)主要是指網(wǎng)站頁面的開發(fā),與用戶的交互較為直接。而后端的開發(fā)則是一個繁瑣復雜的過程,需要結合數(shù)據(jù)存儲、業(yè)務邏輯、服務器配置等多項元素。不過,無論是前端還是后端,都需要結合計算機編程算法上升全新的臺階[1]。實際上計算機編程算法簡單理解就是利用計算機解決問題的一種方法,執(zhí)行的過程是一個將抽象問題轉化為數(shù)理性問題的過程。生活中解決問題可以通過多種途徑,計算機編程也可以有多種算法。

    1 前后端分離系統(tǒng)概述

    前后端分離主要的目標是擺脫前后端架構之間的相互依賴,通過對其進行單獨的項目部署實現(xiàn)系統(tǒng)的優(yōu)化。后端追求的是高并發(fā)、高可用、高性能以及存儲業(yè)務等的安全,而前端追求的則是頁面表現(xiàn)、設計美感、速度流暢、兼容性等等。其實,前后端分離是一種Web 應用的架構模式,分離后的前端部分是用戶可見的界面,與用戶之間的聯(lián)系最為直接,可以是一個網(wǎng)站網(wǎng)頁,也可以是手機的APP。前端展現(xiàn)的內容比較直觀,例如特效、圖片、視頻、音頻等豐富的內容,這時的前端不再是簡單的HTML 文件,而是一個功能齊全的網(wǎng)絡應用小程序[2-3]。前端開發(fā)主要內容就是根據(jù)方案設計運行顯示界面并為后端開發(fā)提供依據(jù),實現(xiàn)數(shù)據(jù)的顯示和交互功能。整個前端開發(fā)是視覺內容的呈現(xiàn),通過瀏覽器對HTML、CSS、Java 文件進行解析處理以及渲染等流程的運用呈現(xiàn)出來,見圖1。

    后端部分主要是指程序的支持,實際上是前端開發(fā)的強大后盾。盡管后端是用戶表面上看不到的東西,但所涵蓋的內容異常豐富。整個后端開發(fā)比較復雜,既要實現(xiàn)服務器、應用、數(shù)據(jù)庫的彼此交互,又要通過這些工具的運用編寫代碼來創(chuàng)建或更新Web 應用。整個后端編輯考慮的不僅是業(yè)務邏輯、服務器的配置,更有數(shù)據(jù)的存儲以及跨平臺API 的設計等因素。這些內容并不能被用戶看到,但卻影響著整個平臺以及網(wǎng)站的穩(wěn)定性以及基礎性能的體現(xiàn)[4]。

    實際上,前后端系統(tǒng)分離并不是簡單的代碼分離,其根本在于通過分工合作來實現(xiàn)協(xié)同合作效率的提升。例如,在進行網(wǎng)站訪問的時候通常會有一些注冊或登錄的信息,這時候前端就是整個頁面的展現(xiàn),需要輸入賬號以及密碼并點擊登錄按鈕,從而實現(xiàn)下一個網(wǎng)頁的跳轉。在這樣的過程中后端系統(tǒng)是一直在運行的,因為隨著賬號密碼的輸入,請求接口會將相關信息發(fā)送給后端做進一步處理,后端通過信息數(shù)據(jù)的搜集、查詢來確認賬號信息,并及時地將獲得的信息反饋給前端,反應結果即登錄成功或者登錄失敗。

    2 前后端分離基礎上的計算機編程優(yōu)勢

    2.1 易于打造高質量團隊,提高工作效率

    對于開發(fā)團隊來講,前后端的分離開發(fā)有助于深度發(fā)揮自己擅長的領域優(yōu)勢,對于技術特性的提升以及代碼編寫質量的提高有著積極的意義,而且并行開發(fā)在效率提升方面的表現(xiàn)也是非常明顯的,有助于快速搶占市場,奪得先機[5]。

    2.2 精準bug 問題,提升系統(tǒng)性能

    在計算機程序的運行過程中bug 的出現(xiàn)不可避免,而在前后端分離的基礎上,能夠快速地實現(xiàn)bug 定位,厘清前后端的開發(fā)責任,因此并不會出現(xiàn)責任推脫的情況,在發(fā)現(xiàn)bug 以后,相應的工程師也會進行迅速處理降低損失。例如頁面布局的邏輯錯誤以及跳轉失誤或者頁面與瀏覽器不兼容等問題,都是前端的責任;而數(shù)據(jù)接口出錯、請求應答超時等問題都應由后端來負責。這樣的過程雙方互不干擾,且能夠保障每個項目都部署在單獨的服務器上,從實質上降低服務器內部的運行壓力,在頁面響應以及交互體驗上都會有很大提升。

    2.3 實現(xiàn)前后端解耦,組建模塊化開發(fā)

    耦合關系的存在會使整個系統(tǒng)的性能變差,且難以控制。但前后端實現(xiàn)分離以后代碼的完全解耦基本實現(xiàn),因此整個開發(fā)過程中的模塊化更為明顯,前端代碼以組件的方式被復用,后端代碼的邏輯也會變得更加清晰。基于此,為項目的維護利用提供了更好的環(huán)境,而這些模塊的存在也為深度的開發(fā)提供了明確參考。即便后端服務有超時或者暫時的宕機,除了數(shù)據(jù)刷新失敗,并不會影響前端頁面的訪問[6]。

    3 前后端分離系統(tǒng)的計算機編程算法優(yōu)化

    3.1 前后端分離主要流程

    整個前后端分離的過程主要包含設計階段、開發(fā)階段、測試階段以及部署階段,其中設計階段的溝通是前提也是基礎,該過程由前后端架構負責人溝通分析,將項目整體進行拆分,并對整體的API 風格、開發(fā)協(xié)助模式進行討論確定,接下來明確分工共同制定開發(fā)接口,整個溝通設計階段是開發(fā)的鋪墊,高效的溝通之上才能夠避免后期聯(lián)調的麻煩;整個開發(fā)階段前后端工作人員各司其職,后端提供Restful API,前端發(fā)送API 請(GET、PUT、POST、DELETE 等)獲取數(shù)據(jù)(json,xml)渲染頁面;測試階段前端人員會通過mock server 完成模擬測試,這也是保證協(xié)同聯(lián)調的關鍵,此時的后端人員采用junit 進行API 單元測試,在API 完成之后,前端人員輔助對接;項目部署是整個開發(fā)的最后階段,該階段利用nginx 做反向代理,采用Java+nodejs+nginx 方式進行完成整個項目開發(fā)。

    3.2 前后端分離主要技術要點

    前后端分離的技術要點在于交互形式、代碼組織方式、開發(fā)模式以及數(shù)據(jù)接口規(guī)范流程,4 個要點之間環(huán)環(huán)相扣,深度體現(xiàn)了計算機編程算法特色。以交互形式來講,前后端分離的構架更傾向于目標的明確,后端主要的職責在于提供可調用的API 服務。HTTP 就是前端與后端的交互形式,只有前端完成了數(shù)據(jù)收集,后端方可開展下一步的工作進行頁面的組裝與渲染。在代碼的組織方法上,主要有全分離和半分離兩種模式,半分離的模式是指前后兩端共享一個代碼庫,使得前端無法完成獨立的研究與實驗。分離模式的前端代碼可以由自己獨立開發(fā)和測試,分離模式的前后端代碼項目可以單獨開發(fā)和測試,前端工程師的代碼項目有HTML、JS、CSS 和前端資源,在使用HTTP 發(fā)出請求之后再調用后端資源,做到了并行開發(fā),是對傳統(tǒng)開發(fā)過程最大的簡化[6-7]。最后,數(shù)據(jù)接口規(guī)范流程尤為重要,它決定了前后端的調用效率和連接跳轉的靈活度,因此前后端必須共同商定好數(shù)據(jù)接口的交互形式和數(shù)據(jù)格式,接下來再通過并行開發(fā)進行mock 測試,通過功能聯(lián)調并校驗格式。

    3.3 前后端接口聯(lián)調

    前后端聯(lián)調是前后端分離系統(tǒng)融合使用的關鍵,但整個聯(lián)調過程中會面對接口字段變更頻繁、接口時間不穩(wěn)定、接口文檔不同步等痛點,實際上保證前后端聯(lián)調的關鍵在于標準化協(xié)同流程的操作,其中最重要的還是明確職責分配,加強開發(fā)過程的溝通與交流,保證協(xié)同合作。整個過程中,數(shù)據(jù)接口規(guī)范流程也是尤為重要的,它決定了前后端的調用效率和連接跳轉的靈活度,因此前后端必須共同商定好數(shù)據(jù)接口的交互形式和數(shù)據(jù)格式。該操作過程中最基本的一點就是對頁面以及服務器所提供的數(shù)據(jù)接口、方式以及格式等進行確定,建立協(xié)作調試環(huán)境,保證聯(lián)調之前端mock 的完成以及后端程序自測完成。接下來收集接口文檔自動化,通過chrome 插件去訂閱差異接口完成錯誤接口的收集,保證接口文檔的規(guī)范性,接口規(guī)范的過程中可以采用新增(post)、修改(put)、刪除(delete)、獲?。╣et)等方式,同時完成參數(shù)的請求和返回,利用swagger 或者是apipost 工具完成接口文檔。另外,在整個聯(lián)調過程中聯(lián)調時間的確定也是非常關鍵的,有著以下的公式可以參考:聯(lián)調時間=迭代提測時間-第一次增量接口調通時間。

    4 前后端分離系統(tǒng)的計算機編程算法

    4.1 算法在計算機編程中的作用

    數(shù)學算法是計算機編程的基礎,通過一定數(shù)學原則和步驟的編制有效減少計算機工作的負擔和工作量。通過某種程序設計語言進行程序代碼編寫,用數(shù)學算法將系統(tǒng)運行中出現(xiàn)的問題轉化為合理的數(shù)據(jù)結構,完成復雜的問題簡單化處理,實際上就是對解題方案進行優(yōu)化,通過準確完整的描述來實現(xiàn)清晰的指令,整個過程涵蓋范圍包括復雜度、正確性以及健壯性等。其作用對象為程序時空復雜度以生成代碼短的算法為優(yōu),通過模型優(yōu)化的建立對目標函數(shù)完成優(yōu)化,最終達成計算機編程優(yōu)化的目的。

    前后分離系統(tǒng)中前端項目開發(fā)涉及的技術有HTML、CSS、JavaScript、jQuery、Ajax 等,可以使用Vue.js、React、Angular.js 等主流前端框架簡化開發(fā)流程。IDE可以使用WebStorm 來提高開發(fā)效率。后端可以使用SSM后端開發(fā)框架,IDE 可以使用IDEA 簡化開發(fā)流程,根據(jù)項目的設計進行編程算法優(yōu)化[8]。常用的計算機編程算法優(yōu)化包含隨機搜索法、梯度下降法、牛頓法以及遺傳算法等。這些算法各有各的優(yōu)勢,可以應用在不同的前后端分離技術當中。

    4.2 前后端分離系統(tǒng)的計算機編程算法優(yōu)化

    4.2.1 隨機搜索法

    隨機搜索中就會使用隨機數(shù)來實現(xiàn)優(yōu)解的方法,主要是指通過隨機點地分布計算約束函數(shù)和目標函數(shù),拋棄壞的點保留好的點來實現(xiàn)質量的提升得到最優(yōu)解近似解[9]。該種算法以概率論為基礎,計算過程中選取的隨機點越多,得到的優(yōu)解越大,大多數(shù)計算機程序庫中都裝置有隨機數(shù)發(fā)生器,所以在進行程序編寫時應用隨機搜索法是比較方便的。

    4.2.2 梯度下降法

    梯度下降法通過對當前位置負梯度方向的搜索完成思想優(yōu)化,是一種最優(yōu)化算法,其計算過程求解無約束,搜索方向為負梯度,是一種比較傳統(tǒng)的方法。整個梯度下降法的求解過程當中,需要多次迭代才能夠完成,而梯度下降法又分為隨機梯度下降法和批量梯度下降法,批量梯度下降法能夠將所有訓練樣本的損失函數(shù)最小化,因此,求解的全局都是最優(yōu)解求解的風險函數(shù)最小,但有著對大規(guī)模樣本來講效率低下的缺陷。而隨機梯度下降法能夠保證每條樣本是函數(shù)最小化,盡管該過程當中不能夠保證每次迭代的損失函數(shù)都能夠實現(xiàn)最優(yōu)方向的確定,但整體方向是面向全局最優(yōu)解的,這種方法適用于大規(guī)模的訓練樣本。盡管現(xiàn)在梯度下降法已不具備實用價值,不過很多的有效計算方法都是以其為基礎加以完善與修正而獲得的。

    4.3 前后端分離的計算機編程算法優(yōu)化策略

    C 語言作為一種高級語言,在計算機編程語言中得以廣泛應用,在其編譯的過程當中,需要執(zhí)行嚴格的邏輯代碼操作。因此,合理利用數(shù)學算法能夠實現(xiàn)編程代碼的簡化提升程序面向過程的整體效率。以S=1×2×3×…× n(1 000 <n <10 000)為例,對S 末尾0 的個數(shù)求解為例,該過程當中可以假設 S=a×10b,但a 作為一個正數(shù)卻并不可以被10 整除,該問題當中最終的結果就是求取b 值。

    實際上,整個計算過程當中可以通過不同的數(shù)學算法來進行計算。例如,通過對S 進行計算,尾數(shù)出現(xiàn)0 時將其去掉,對0去掉的個數(shù)進行記錄,以此為依據(jù)進行C語言,程序的編寫。但該過程當中每計算一次都需要做一次判斷,且并不是每個數(shù)據(jù)都會生成0,該過程中對2 和5 的倍數(shù)把握十分關鍵,不過整體來看程序運行次數(shù)較多,且運行過程繁瑣,所以該種方法并非最優(yōu),只有減少運行次數(shù)才能提高效率。

    為此對該種數(shù)學算法進行深入分析概括的過程當中可以發(fā)現(xiàn)5 的倍數(shù)能夠生成0,因此整個計算過程當中只需要找到n 的分解數(shù)中一共包含有多少個5 就能夠得到結果。不過盡管該種算法相比較原始算法而言有效地減少了運行次數(shù),但所有數(shù)值當中包含2 或5 的倍數(shù)仍舊擁有龐大的數(shù)字量,此時可以進行進一步的優(yōu)化分析,發(fā)現(xiàn)0 的個數(shù)和5 的個數(shù)密切相關,二者有數(shù)量相同的特征,因此可以將原始數(shù)據(jù)當中的5、10、15、20…以5為單位步長進行循環(huán)計算逐步實現(xiàn)轉化為1、2、3、4…通過循環(huán)分別以5^2 以及5^3 為步長進行循環(huán)計算,直至循環(huán)到m 次以后出現(xiàn)步≥n 時停止運行,得出5 的各次方之和為運算結果。

    通過合理的數(shù)學算法能夠完成對C 語言編程以及面向對象程序的優(yōu)化,而C++作為面向對象程序避免了C 語言的缺陷,通過合理的算法進行建??梢赃_到高效穩(wěn)定程序編寫的目的。

    5 結語

    當前,前后端分離系統(tǒng)憑借效率高、性能高、質量高的特點被廣泛應用于網(wǎng)站開發(fā)設計中,而實際上前后端分離的過程是一種編程算法的均衡和優(yōu)化,對于整個程序編寫質量與速率的提升有著積極的指導作用。

    猜你喜歡
    代碼頁面梯度
    大狗熊在睡覺
    刷新生活的頁面
    一個改進的WYL型三項共軛梯度法
    一種自適應Dai-Liao共軛梯度法
    一類扭積形式的梯度近Ricci孤立子
    創(chuàng)世代碼
    動漫星空(2018年11期)2018-10-26 02:24:02
    創(chuàng)世代碼
    動漫星空(2018年2期)2018-10-26 02:11:00
    創(chuàng)世代碼
    動漫星空(2018年9期)2018-10-26 01:16:48
    創(chuàng)世代碼
    動漫星空(2018年5期)2018-10-26 01:15:02
    地溫梯度判定地熱異常的探討
    河南科技(2014年3期)2014-02-27 14:05:45
    兴义市| 商南县| 土默特右旗| 临安市| 吉林省| 唐海县| 房山区| 长沙市| 沙河市| 会同县| 新和县| 咸丰县| 绥棱县| 南部县| 商水县| 邹城市| 东阳市| 新民市| 辽宁省| 达拉特旗| 兴安盟| 阿巴嘎旗| 呼伦贝尔市| 绍兴县| 房山区| 华阴市| 和田县| 外汇| 中宁县| 永善县| 九龙坡区| 许昌市| 盐山县| 通河县| 滦平县| 民和| 麻江县| 长垣县| 灵台县| 搜索| 那坡县|