摘要:在這里統一說開發,可能有失頗偏,畢竟我后端一直都是用實現的,沒用過也沒用過,但我想大體都是一樣都,我就此闡述一下我所認為的程序數據結構算法。這套的想法主要目的是把復雜程序盡量做簡化,并以數據和算法的思想去思考程序本身。
在這里統一說Web開發,可能有失頗偏,畢竟我后端一直都是用PHP實現的,沒用過.net也沒用過java,但我想大體都是一樣都,我就此闡述一下我所認為的“程序=數據結構+算法”。
輸入輸出思想相對于前端程序來說,前端用戶的操作為輸入,然后經過邏輯處理后,把數據輸出到后端;
相對于后端程序來說,從數據庫取數據算做輸入,然后經過處理后,輸出到前端展示;
相對于數據庫來說,對于數據的操作指令為輸入,操作后產生的輸出結果為輸出(如刪除成功返回值,寫入成功后返回值等)
開發過程中的邏輯處理思想后端輸出到前端展示邏輯
基于輸入輸出的思想:輸入(數據)+處理(算法)+輸出(數據);
數據由數據結構組成;
根據具體業務需求,確定輸出的數據結構;
如果確定的輸出數據結構過于復雜,拆分為單個簡單數據結構實現;
確定單個簡單數據結構的輸入源;
確定輸入源的數據結構;
用算法邏輯把輸入源轉化為輸出數據;
把單個簡單數據結構組裝為最終的復雜輸出數據結構;
前端遍歷輸出的內容,拆解數據做顯示。
前端輸入到后端的處理邏輯
確定后端需要存儲的數據結構;
把復雜的輸入數據結構拆分為簡單數據結構;
根據簡單數據結構,遍歷用戶輸入內容取得輸入數據組裝;
組裝簡單的輸入數據結構傳遞到后端;
后端拆解前端輸入的復雜數據結構為簡單數據結構;
遍歷單個復雜數據結構并存儲,且返回每個步驟的存儲結果,出錯做數據回滾;
把存儲結果返回。
其他思考
具體業務邏輯可能相對更復雜,一般get方式取數據對應的是后端的輸出邏輯思想,數據存儲對應的是前端輸入思想。
這套的想法主要目的是把復雜程序盡量做簡化,并以數據和算法的思想去思考程序本身。
另外一方面以數據拆解的思想盡量把復雜邏輯變簡單。
一些偽代碼示例存儲示例
commit(); } catch(DbException $e) { $db->rollBack(); // 出錯回滾 } // 存儲過程示例 end
輸出示例
[ "member_id" => 3, "member_name" => "用戶名" ], "order_list" => [ [ "order_id" => 1, "order_sn" => "訂單號" ], [ "order_id" => 1, "order_sn" => "訂單號" ] ] ]; // 確定輸出數據結構 end // 拆分數據結構處理 start $member = Member::find() -> select(["member_id","member_name"]) ->asArray() -> one(); $order_list = Order::find() ->select(["order_id","order_sn"]) ->asArray() ->all(); foreach($order_list as &$item) { $item["time"] = time(); // 對數據列表做其他處理 } // 拆分數據結構處理 end // 組裝數據并輸出 start return [ "member" => $member, "order_list" => $order_list ]; // 組裝數據并輸出 end
前端思想同樣如是,我就不做說明了。
這幾天 SF 增加了新的板塊——直播。我也收到了官方的邀請。4 月 7 日(本周五)晚 20:30 和大家一起聊聊項目中的一些總結。講座傳送: Yii2之RESTful程序基礎設計及目錄規劃
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/22658.html
摘要:在這里統一說開發,可能有失頗偏,畢竟我后端一直都是用實現的,沒用過也沒用過,但我想大體都是一樣都,我就此闡述一下我所認為的程序數據結構算法。這套的想法主要目的是把復雜程序盡量做簡化,并以數據和算法的思想去思考程序本身。 在這里統一說Web開發,可能有失頗偏,畢竟我后端一直都是用PHP實現的,沒用過.net也沒用過java,但我想大體都是一樣都,我就此闡述一下我所認為的程序=數據結構+算...
摘要:新的數據表關系數據的數據結構類似于這樣子大碼中碼小碼這個表結構的說明是避免對于關系鏈的數據邏輯不理解做的一個示例。 最近幾天一直在糾結于一個大數據批量導入的問題,經過幾天思考,發現基于小數據情況,原本的數據結構設計是沒有問題的,但是在大量數據導入,問題就很大了。我之前一直在強調程序=數據結構+算法,但在這此卻鉆了牛角尖,最后去仔細看了之前別人設計的數據表才突然靈光一現,發現了mysql...
閱讀 2024·2021-09-30 09:47
閱讀 703·2021-09-22 15:43
閱讀 1981·2019-08-30 15:52
閱讀 2431·2019-08-30 15:52
閱讀 2540·2019-08-30 15:44
閱讀 903·2019-08-30 11:10
閱讀 3372·2019-08-29 16:21
閱讀 3296·2019-08-29 12:19