迪米特羅夫事件 迪米特法則:如果兩個類不必彼此直接通信,例如什么情況?
迪米特法則:如果兩個類不必彼此直接通信,例如什么情況?在德米特定律的狹義意義上,如果兩個類不必直接相互通信,那么這兩個類就不應(yīng)該直接交互。如果其中一個類需要調(diào)用另一個類的方法,可以通過第三方轉(zhuǎn)發(fā)調(diào)用。
迪米特法則:如果兩個類不必彼此直接通信,例如什么情況?
在德米特定律的狹義意義上,如果兩個類不必直接相互通信,那么這兩個類就不應(yīng)該直接交互。如果其中一個類需要調(diào)用另一個類的方法,可以通過第三方轉(zhuǎn)發(fā)調(diào)用。朋友圈的“朋友”條件:1)當(dāng)前對象本身(this)2)以參數(shù)形式傳入當(dāng)前對象方法的對象3)當(dāng)前對象的實(shí)例變量直接引用的對象4)如果當(dāng)前對象的實(shí)例變量是聚合,那么聚合中的所有元素都是朋友5)如果當(dāng)前對象創(chuàng)建的任何對象滿足上述要求,其中一個條件是當(dāng)前對象是“朋友”;否則,它是“陌生人”。狹義的德米特定律:系統(tǒng)中產(chǎn)生了大量的小方法。這些方法只是間接調(diào)用,與系統(tǒng)的業(yè)務(wù)邏輯無關(guān)。在類之間遵循Dimiter定律將簡化系統(tǒng)的本地設(shè)計,因?yàn)槊總€部分都不會與遠(yuǎn)程對象直接相關(guān)。但是,這也會降低系統(tǒng)不同模塊之間的通信效率,使系統(tǒng)不同模塊之間的協(xié)調(diào)變得困難。表面模型和中介模型實(shí)際上是迪米特定律的應(yīng)用。廣義迪米特定律在類設(shè)計中的體現(xiàn):應(yīng)優(yōu)先考慮將類設(shè)置為不變類。最小化對類的訪問。小心使用serializable。盡量減少對成員的訪問。
什么樣的代碼叫好代碼?
好的代碼,滿足兩個條件:能達(dá)到預(yù)期效果,容易理解。
代碼的不同不在于功能能否實(shí)現(xiàn),而主要在于實(shí)現(xiàn)的質(zhì)量。
有些代碼雖然實(shí)現(xiàn)了效果,但另一個程序員看不懂,無法維護(hù),也是壞代碼。
現(xiàn)在在軟件行業(yè),程序員加班是很常見的。疲勞將不可避免地影響代碼的質(zhì)量。
他們大多急于達(dá)到職能要求,完成領(lǐng)導(dǎo)安排的任務(wù),只以完成為目標(biāo)。
這種不考慮長遠(yuǎn)的工作方式在短時間內(nèi)實(shí)現(xiàn)了目標(biāo),但從長遠(yuǎn)來看是個大問題。
一旦程序員離開,新來的人需要很長時間才能接手。項(xiàng)目的可擴(kuò)展性和穩(wěn)定性沒有保證。
尤其是一些外行領(lǐng)導(dǎo)只知道如何為上級做貢獻(xiàn),不能科學(xué)安排時間。
功能需求一經(jīng)更改就立即更改,新功能即將出現(xiàn)。因此,工程設(shè)計不斷調(diào)整,整體建筑穩(wěn)定性受損。
整個行業(yè)還沒有意識到代碼質(zhì)量的重要性,也沒有對代碼的敬畏。它只著眼于現(xiàn)在而忽視了長遠(yuǎn)。
只有行業(yè)人員達(dá)到飽和,淘汰不合格的程序員和產(chǎn)品經(jīng)理,好的代碼才能形成趨勢。
假設(shè)開發(fā)某款軟件1個程序員10天可以做好,那么找10個同等水平程序員一起做1天能否做好?
生孩子需要孕婦懷孕10個月。十個同級的女人一個月能生一個孩子嗎?
模塊設(shè)計的主要原則是什么?
開合原則,按場景設(shè)計原則,優(yōu)先組合原則,包容變化原則。
里克特替代原理、依賴反轉(zhuǎn)原理、合成/聚合復(fù)用原理、德米特定律、界面隔離原理。
如何判斷一個程序員寫代碼好與不好?
程序員編寫的代碼質(zhì)量可以從兩個方面入手
1。好的代碼通常很容易理解
專家總是把復(fù)雜的代碼變成簡單的代碼。他們寫的第一件事就是能讓人們理解。在提交代碼之前,谷歌和蘋果的工程師們會環(huán)顧四周,同時看到代碼。如果對方認(rèn)為沒有問題,可以直接提交,并在提交評論中寫上評審人的名字,這也承擔(dān)了責(zé)任,看似很簡單的模式,但大多數(shù)科技公司都采用這種模式。
所以代碼不能只被你自己理解,這樣其他人就可以理解你的想法和你的設(shè)計意圖。
2. 好的代碼,遵守整個系統(tǒng)的編碼規(guī)范,不出格,最重要的一點(diǎn)是好的代碼能經(jīng)得起實(shí)踐的檢驗(yàn),在實(shí)際操作過程中,沒有大的系統(tǒng)崩潰才能被稱為好代碼
所以代碼不僅要好看,還需要有好的性能,對于程序員來說,代碼是面子,尤其是在團(tuán)隊(duì)合作中的應(yīng)用,一個人如果編寫出高質(zhì)量的代碼,就會給人一種可靠的感覺,在合作的過程中很容易形成一種默契的感覺。當(dāng)我們看到誰編寫了高質(zhì)量的代碼時,我們在調(diào)用模塊時會感到非常舒服和自在。代碼的好壞直接關(guān)系到程序員的素質(zhì),有很多老程序員非常關(guān)心代碼的質(zhì)量,不允許自己犯一些非常低級的錯誤,造成自己聲譽(yù)的損害。
fabi法則是什么?
晶圓廠規(guī)則是屬性、功能和效益的規(guī)則。Fab對應(yīng)三個英文單詞:feature、advantage和benefit。按此順序介紹它們是勸說性話語的結(jié)構(gòu)。它的作用是讓顧客相信你是最好的。
海因斯法則說的是什么?
海因里希定律,又稱“海因里希安全法”、“海因里希事故法”或“海因里希定律”,是美國著名安全工程師赫伯特·威廉·海因里希的300:29:1法則。這一規(guī)定意味著,一個企業(yè)有300個隱患或違規(guī)行為時,必須有29個輕傷或故障,以及1個重傷、死亡或重大事故。海因里希法則是美國海因里希通過分析工傷事故發(fā)生概率,提出的保險公司經(jīng)營規(guī)則。這一規(guī)律完全可以應(yīng)用于企業(yè)在安全管理方面,一次重大事故背后必須有29起輕微事故和300起潛在隱患。
海因里希首先提出了事故因果鏈理論,闡明了造成傷亡事故的各種原因和事故之間的關(guān)系。該理論認(rèn)為,傷亡事故的發(fā)生并不是一個孤立的事件,雖然海因里希認(rèn)為傷害可能在瞬間突然發(fā)生,但工傷事故的發(fā)生和發(fā)展過程被描述為一個具有一定因果關(guān)系的事件鏈過程,即:(1)傷亡事故的發(fā)生是一個整體事故的結(jié)果。
(2)事故的發(fā)生是由于:(1)人的不安全行為;(2)物體的不安全狀態(tài)。
(3)工傷事故的發(fā)生是由于:(1)人的不安全行為;(2) 物體的不安全狀態(tài)人的不安全行為或事物的不安全狀態(tài)是由人的缺點(diǎn)引起的。(4)海因里希的工業(yè)安全理論是這一時期的代表性理論。海因里希認(rèn)為,人的不安全行為和事物的不安全狀態(tài)是事故發(fā)生的直接原因,企業(yè)事故預(yù)防的中心是消除人的不安全行為和事物的不安全狀態(tài)海因里希的研究表明,大多數(shù)工傷事故是由工人的不安全行為引起的。即使有些工傷事故是由事物的不安全狀態(tài)引起的,事物的不安全狀態(tài)也是由勞動者的缺點(diǎn)和錯誤引起的。因此,海因里希的理論和事故頻發(fā)理論一樣,將工傷事故的責(zé)任歸屬于這一認(rèn)識,海因里希進(jìn)一步調(diào)查了事故的根本原因,海因里希最初提出了事故的因果鏈過程,包括以下五個因素:(1)遺傳和社會環(huán)境(2)人的缺點(diǎn)(3)不安全行為或不安全狀態(tài)(4)事故(5)傷害