gif分解合成_如何通過分解和合成使復雜的問題更容易

gif分解合成

Discover Functional JavaScript was named one of the best new Functional Programming books by BookAuthority!

“發現功能JavaScript”BookAuthority評為最佳新功能編程書籍之一

Our natural way of dealing with complexity is to break it into smaller pieces and then put everything back together.

我們處理復雜性的自然方法是將其分解為較小的部分,然后將所有內容放回原處。

This is a two step process:

這是一個兩步過程:

  • decompose the problem into smaller parts

    將問題分解成更小的部分
  • compose the small parts to solve the problem

    組成小零件解決問題

We decompose in smaller parts because they are easier to understand and implement. The smaller parts can be developed in parallel.

我們將較小的部分分解,因為它們更易于理解和實施。 較小的部分可以并行開發。

The process of decomposition is about assigning responsibilities and giving names. This makes it easy to talk and reason about. Once we identify a responsibility, we can reuse it.

分解的過程是關于分配職責和給出名稱的。 這使得談論和推理變得容易。 一旦確定了責任,就可以重用它。

Composition is about combining the small parts together and establishing a relationship between them. We decide the way these pieces communicate, the order in which they execute, and how data flows between them.

組成是將小部分組合在一起并在它們之間建立關系。 我們決定這些部分的通信方式,它們執行的順序以及它們之間的數據流向。

We find a system hard to understand even if it is split in smaller parts, if there is a high number of relations between these parts. In order to make a system easier to understand, we need to minimize the number of possible connections between its parts.

即使這些部分之間存在大量關系,即使將系統分成較小的部分,我們也很難理解。 為了使系統更易于理解,我們需要最大程度地減少系統各部分之間可能的連接數。

對象分解 (Object decomposition)

Objects are more than state and behavior working together. Objects are things with responsibilities.

對象不僅僅是狀態和行為協同工作。 對象是有責任的事物。

分解 (Decompose)

In How to create a three layer application with React, I take a to-do list application and split the responsibilities between the following objects :

在如何使用React創建一個三層應用程序中 ,我將一個待辦事項列表應用程序并在以下對象之間劃分職責:

  • TodoDataService : responsible for the communication with the server Todo API

    TodoDataService :負責與服務器Todo API的通信

  • UserDataService : responsible for the communication with the server User API.

    UserDataService :負責與服務器User API的通信。

  • TodoStore : the domain store for managing to-dos. It is the single source of truth regarding to-dos.

    TodoStore :用于管理待辦事項的域存儲。 這是關于待辦事項的唯一事實來源。

  • UserStore : the domain store for managing users.

    UserStore :用于管理用戶的域存儲。

  • TodoListContainer : the root container component displaying the list of to-dos.

    TodoListContainer :顯示待辦事項列表的根容器組件。

As you can see, when decomposing, I assign responsibilities and give names.

如您所見,在分解時,我分配職責并給出名稱。

撰寫 (Compose)

Next, I compose them together in a single function. This is the place where all objects are created and dependencies injected. It is called Composition Root.

接下來,我將它們組合成一個函數。 在這里創建所有對象并注入依賴項。 它稱為合成根。

Discover Functional JavaScript was named one of the best new Functional Programming books by BookAuthority!

發現功能JavaScript被稱為 BookAuthority最好的新功能編程書籍

For more on applying functional programming techniques in React take a look at Functional React.

有關在React中應用函數式編程技術的更多信息,請查看 Functional React

Learn functional React, in a project-based way, with Functional Architecture with React and Redux.

通過帶有React和Redux的功能架構 ,以基于項目的方式學習功能性React

Follow on Twitter

在Twitter上關注

翻譯自: https://www.freecodecamp.org/news/how-to-make-complex-problems-easier-by-decomposing-and-composing-be57ce230c49/

gif分解合成

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/392657.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/392657.shtml
英文地址,請注明出處:http://en.pswp.cn/news/392657.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vs2005 新建項目一片空白

最近在研究 workflow fundation ,但是在安裝了他的extensions之后,發現VS2005 新建項目一片空白,除開workflow其他的項目模板全部丟失,新建項目對話框中空空如也。查閱資料后發現,可以通過 命令 devenv.exe /InstallVSTemplates 來…

docker導入鏡像 liunx_docker掃盲?面試連這都不會就等著掛吧

推薦閱讀:java喵:6大面試技能樹:JAVA基礎JVM算法數據庫計算機網絡操作系統?zhuanlan.zhihu.com一只Tom貓:都是“Redis惹的禍”,害我差點掛在美團三面,真是“虛驚一場”!?zhuanlan.zhihu.com現…

crontab里shell腳本將top信息寫入文件

crontab里shell腳本將top信息寫入文件: 注: 1、top -n 1代表執行1次退出(默認top是不退出的),-d 1代表每1秒執行1次 2、crontab里需加/bin/bash # crontab -e */5 * * * * /bin/bash /usr/local/bin/top.sh # vi top.sh #!/bin/ba…

leetcode 1030. 距離順序排列矩陣單元格(bfs)

給出 R 行 C 列的矩陣&#xff0c;其中的單元格的整數坐標為 (r, c)&#xff0c;滿足 0 < r < R 且 0 < c < C。 另外&#xff0c;我們在該矩陣中給出了一個坐標為 (r0, c0) 的單元格。 返回矩陣中的所有單元格的坐標&#xff0c;并按到 (r0, c0) 的距離從最小到…

Linux iptables:規則原理和基礎

什么是iptables&#xff1f; iptables是Linux下功能強大的應用層防火墻工具&#xff0c;但了解其規則原理和基礎后&#xff0c;配置起來也非常簡單。 什么是Netfilter&#xff1f; 說到iptables必然提到Netfilter&#xff0c;iptables是應用層的&#xff0c;其實質是一個定義規…

太陽系八大行星碰撞的視頻_火星的身世:從太陽系的起源說起

大約46億年前盤狀的太陽星云從一大片又冷又暗的氣體云中誕生太陽自己并沒有任何暴露確切年齡的線索&#xff0c;我們之所以能夠知道太陽系的“生日”&#xff0c;是因為迄今從隕石中找到的最古老固體物質&#xff0c;年齡約為45.68億年。一般認為&#xff0c;太陽系的各個地方是…

refract推導_我們如何利用Refract來利用React式編程的力量

refract推導by Joe McGrath通過喬麥克格拉斯 我們如何利用Refract來利用React式編程的力量 (How we harnessed the power of reactive programming with Refract) Have you ever wondered how open-source libraries built by companies come into existence?您是否想過公司建…

sql server:查詢系統表

---查看所有存儲過程或視圖的位置 select a.name,a.[type],b.[definition] from sys.all_objects a,sys.sql_modules b where a.is_ms_shipped0 and a.object_id b.object_id and a.[type] in (P,V,AF) order by a.[name] ASC GO--1、查看所有存儲過程與函數 exec sp_store…

UDP數據包的大小

問題來源于日志信息&#xff0c;在這里總結一下&#xff0c;后續在補充新的內容。在鏈路層&#xff0c;由以太網的物理特性決定了數據幀的長度為&#xff08;46&#xff0b;18&#xff09;---&#xff08;1500&#xff0b;18&#xff09;&#xff0c;其中的18是鏈路層的首部和尾…

博科查看光功率_法拉第旋光器:非互易性旋轉光的偏振

法拉第旋光器是利用法拉第效應制作的光學器件&#xff0c;當入射光正向(或反向)進入旋光器時&#xff0c;入射光偏振面會發生旋轉。法拉第效應1845年&#xff0c;法拉第發現&#xff1a;當一束平面偏振光通過置于磁場中的磁光介質時&#xff0c;平面偏振光的偏振面就會隨著平行…

Object.prototype 原型和原型鏈

Object.prototype 原型和原型鏈 原型 Javascript中所有的對象都是Object的實例&#xff0c;并繼承Object.prototype的屬性和方法&#xff0c;有些屬性是隱藏的。換句話說&#xff0c;在對象創建時會存在預定義的屬性&#xff0c;其中有一個屬性就是原型對象。在函數對象中存在原…

leetcode 406. 根據身高重建隊列(貪心算法)

假設有打亂順序的一群人站成一個隊列。 每個人由一個整數對 (h, k) 表示&#xff0c;其中 h 是這個人的身高&#xff0c;k 是應該排在這個人前面且身高大于或等于 h 的人數。 例如&#xff1a;[5,2] 表示前面應該有 2 個身高大于等于 5 的人&#xff0c;而 [5,0] 表示前面不應該…

java和vue2.0

java中的el表達式${對象.屬性}和vue中的雙向數據綁定{{mode.xx}}感覺有點類似轉載于:https://www.cnblogs.com/YangBinChina/p/11180460.html

oh-my-zsh官方教程

https://github.com/robbyrussell/oh-my-zsh/wiki

leetcode 134. 加油站

在一條環路上有 N 個加油站&#xff0c;其中第 i 個加油站有汽油 gas[i] 升。 你有一輛油箱容量無限的的汽車&#xff0c;從第 i 個加油站開往第 i1 個加油站需要消耗汽油 cost[i] 升。你從其中的一個加油站出發&#xff0c;開始時油箱為空。 如果你可以繞環路行駛一周&#…

ps怎么對比原圖快捷鍵_PS學習之旅:ps如何制作滿天星,讓你夜晚的天空圖片更美...

ps學習之旅&#xff0c;本文介紹關于如何利用ps軟件來制作滿天星&#xff0c;讓你夜晚的天空圖片更美&#xff0c;操作很簡單哦。1工具/原料Adobe Photoshop CS6軟件圖片一張2效果展示原圖&#xff1a;效果圖&#xff1a;3方法/步驟(1)打開PS&#xff0c;選擇你想要加星星的一張…

linux程序莫名異常怎么查

內存異常經常導致程序出現莫名其妙的錯誤&#xff0c;往往很難查證&#xff0c;本文介紹在linux下的各種常見內存異常的查證工具和方法。1 訪問空指針/未初始化指針/重復釋放內存對于像訪問空指針、未初始化指針&#xff08;非法地址&#xff09;&#xff0c;重復釋放內存等內存…

永磁直驅風力發電機結構圖_國內首臺10MW海上永磁直驅風力發電機研制成功

2019首屆新能源產業投融資論壇2019年10月25日周老師&#xff1a;157129595968月21日&#xff0c;具有完全自主知識產權、國內首臺10MW海上永磁直驅風力發電機在東方電氣集團東方電機有限公司研制成功&#xff0c;以此優異成績向新中國成立70周年獻禮。10MW海上永磁直驅風力發電…

struts2官方 中文教程 系列六:表單驗證

先貼個本帖的地址&#xff0c;以免被爬&#xff1a;struts2教程 官方系列六&#xff1a;表單驗證 即 http://www.cnblogs.com/linghaoxinpian/p/6906720.html 下載本章節代碼 介紹 在本教程中&#xff0c;我們將探索使用Struts2來驗證用戶在表單上的輸入。有兩種方法可以來進…

Alictf 2015決賽題目設計和解題思路

解題思路&#xff1a; https://weibo.com/p/1001603836186467681086 設計題目&#xff1a; http://www.cnblogs.com/qsjmobilesec/p/4456090.html