代碼大全2內(nèi)容簡(jiǎn)介.ppt
《代碼大全2內(nèi)容簡(jiǎn)介.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《代碼大全2內(nèi)容簡(jiǎn)介.ppt(38頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、1、歡迎進(jìn)入軟件的世界,這章闡述了軟件構(gòu)建的重要性,軟件構(gòu)建大體上就是說(shuō)具體程序員做的工作,而不是需求收集、產(chǎn)品設(shè)計(jì)、業(yè)務(wù)分析、測(cè)試、運(yùn)維人員等做的工作,雖然這些人的工作在整個(gè)軟件開發(fā)生命周期中也非常的重要,但是一個(gè)軟件開發(fā)的最主要的部分卻是具體程序員做的那部分事情。一般的軟件公司里具體程序員的數(shù)量應(yīng)該占很大的比重,大多數(shù)的程序員也是具體程序員,只有很少的程序員經(jīng)過(guò)多年的工作學(xué)習(xí)能成為項(xiàng)目經(jīng)理,業(yè)務(wù)分析人員,架構(gòu)師等高級(jí)軟件從業(yè)人員。 具體程序員做什么工作呢?理解架構(gòu)師做出的架構(gòu)設(shè)計(jì),做你負(fù)責(zé)的模塊的詳細(xì)設(shè)計(jì),做出自己的負(fù)責(zé)模塊的開發(fā)計(jì)劃,編碼,測(cè)試,解決測(cè)試人員提出的BUG,以及網(wǎng)站上線后排
2、查線上的問(wèn)題等等。如果你做的是這些工作,那你就是具體程序員,你做的大多事情就是軟件構(gòu)建的事情。 只要你是個(gè)程序員,就應(yīng)該系統(tǒng)的,好好的學(xué)習(xí)下軟件構(gòu)建的技能和知識(shí),這比你學(xué)很多種語(yǔ)言,嘗試很多種花哨的新技術(shù)要值很多,至少我看了這本書的其中幾章有這個(gè)體會(huì),第一次認(rèn)真考慮軟件構(gòu)建中的一些基礎(chǔ)的,細(xì)節(jié)的,基本的,通用的思維方式,編碼技巧和規(guī)范。,2、用隱喻來(lái)更充分的理解軟件開發(fā),這章總的來(lái)說(shuō)可讀可不讀,比較理論。 我們平時(shí)把軟件編碼叫做寫代碼,讓外行人聽起來(lái)像是在寫文章,就是把你心里的想法一點(diǎn)一點(diǎn)的有條理的寫出來(lái),在這一點(diǎn)上,編碼和寫文章確實(shí)有相似之處,但寫文章一般是你自己寫,編碼則需要和別人合作。
3、還有在軟件設(shè)計(jì)的時(shí)候,我們經(jīng)常拿蓋房子來(lái)比喻,蓋房子之前要先畫好藍(lán)圖,整體結(jié)構(gòu),考慮好水、電的布局等,蓋一個(gè)小狗窩和蓋一棟大樓的過(guò)程也是不一樣的,做一個(gè)小軟件和一個(gè)超大型的軟件的過(guò)程也是不一樣的。如果你能很好把軟件的開發(fā)過(guò)程想象成某些生活中具體的例子,找到他們的相似之處和不同之處,你就能更好的理解軟件開發(fā),以及利用這些隱喻來(lái)與人更好的溝通。你腦子里如果有很多這樣的隱喻,在你做軟件設(shè)計(jì)時(shí)就會(huì)不經(jīng)意的想起來(lái),成為你思考和權(quán)衡不同方案的工具。,3、三思而后行:前期準(zhǔn)備,做任何事情都需要前期準(zhǔn)備,在軟件開發(fā)中更是如此,盡管如此,還是有很多程序員接到任務(wù)后就是想著盡快編碼。要想保證一個(gè)軟件的質(zhì)量,在前期
4、準(zhǔn)備,需求分析,架構(gòu)設(shè)計(jì),編碼,測(cè)試,維護(hù)等每一個(gè)環(huán)節(jié)都要重視質(zhì)量。具體程序員接到任務(wù)的時(shí)候要檢查一下在你之前的那些軟件活動(dòng)有沒(méi)有準(zhǔn)備好,如果需求中有好多沒(méi)有說(shuō)明的地方,架構(gòu)設(shè)計(jì)也不明確,你不知道需要和其它模塊之間如何通信,基礎(chǔ)組件啥也沒(méi)有,這種情況下進(jìn)行詳細(xì)設(shè)計(jì)和編碼會(huì)很受罪。和老板同事達(dá)成前期準(zhǔn)備重要性的共識(shí)之后,就是如何做前期準(zhǔn)備以及如何判斷前期準(zhǔn)備已經(jīng)做好的技巧,這些是更實(shí)用的地方。如何做前期準(zhǔn)備基本上是需求分析人員,產(chǎn)品經(jīng)理和架構(gòu)師的關(guān)心的問(wèn)題,而判斷前期準(zhǔn)備是否已準(zhǔn)備好則是具體程序員也需要具備的能力。 所以我們?cè)陂_發(fā)之前要要先通讀特性文檔的內(nèi)容,看看設(shè)計(jì)上是不是有疑難的地方、有不明
5、確的地方、有不理解的地方等,及時(shí)溝通解決問(wèn)題。 前期準(zhǔn)備所花費(fèi)的時(shí)間是不容易把握的,也沒(méi)有個(gè)固定的衡量標(biāo)準(zhǔn),但前期準(zhǔn)備是必須要做的,前期準(zhǔn)備的根本目的是降低風(fēng)險(xiǎn),提高項(xiàng)目質(zhì)量。,4、防錯(cuò)編程,4.1 對(duì)錯(cuò)誤輸入的保護(hù) 4.2 錯(cuò)誤處理技術(shù) 4.3 異常,防御式編程,這一概念來(lái)自 防御式駕駛,在防御式駕駛中要建立這樣一種思維,那就是你永遠(yuǎn)也不能確定另一位司機(jī)將要做什么。這樣才能保證 在其他人做出危險(xiǎn)動(dòng)作時(shí)你也不會(huì)受到傷害。防御式編程主要思想:子程序應(yīng)該不因傳入錯(cuò)誤數(shù)據(jù)而被破壞,哪怕是有其他子程序產(chǎn)生的錯(cuò)誤數(shù)據(jù)。,4.1 對(duì)錯(cuò)誤輸入的保護(hù),檢查所有外部進(jìn)來(lái)的數(shù)據(jù) 如文件、用戶、網(wǎng)絡(luò)或其他外部接口獲
6、取數(shù)據(jù)時(shí),應(yīng)檢查獲得數(shù)據(jù),確保他在允許的范圍內(nèi)。對(duì)應(yīng)數(shù)值要要確保在允許的范圍內(nèi),對(duì)于字符串要確保其不超長(zhǎng)等。 檢查所有輸入?yún)?shù)的值 決定如何處理錯(cuò)誤的輸入數(shù)據(jù) 要根據(jù)具體的使用情況,后面會(huì)講,4.2錯(cuò)誤處理技術(shù),主要有以下幾種方法 1、返回中立值 有時(shí)候錯(cuò)誤處理的最佳方法就是繼續(xù)執(zhí)行操作并返回一個(gè)沒(méi)有危害的數(shù)值,比如數(shù)值計(jì)算可以返回0,字符串可以返回空字符串,好像我們的SPF類,再比如一個(gè)繪圖的功能,如果接收到一個(gè)錯(cuò)誤的顏色可以使用默認(rèn)顏色繼續(xù)繪制,當(dāng)然如果是癌癥病人的X光片的繪圖程序,還是不要現(xiàn)實(shí)某個(gè)“中立值”,人家會(huì)找你拼命的,這時(shí)候關(guān)閉程序會(huì)比限時(shí)錯(cuò)誤的病人數(shù)據(jù)要好。 2. 換用下一個(gè)正
7、確的數(shù)據(jù) 在處理數(shù)據(jù)流的時(shí)候返回下一個(gè)正確的數(shù)據(jù)即可。如果你在讀取數(shù)據(jù)庫(kù)時(shí)候發(fā)現(xiàn)一條數(shù)據(jù)已經(jīng)損壞,可以繼續(xù)讀下去找到正確的記錄位置。比如你以每秒100次的速度讀取體溫計(jì)的數(shù)據(jù),那么如果某一次的數(shù)據(jù)讀取錯(cuò)誤,你只需要等待1/100然后繼續(xù)讀取即可。 3、返回和上次相同的數(shù)據(jù) 比如某些情況下你沒(méi)有讀取到數(shù)據(jù),那么可以簡(jiǎn)單的返回前一次的結(jié)果。當(dāng)然如果你在管理ATM機(jī)上操作,你可能就不希望返回上一個(gè)結(jié)果了,因?yàn)槟强赡苁乔耙粋€(gè)用戶的銀行帳號(hào)。,4.2錯(cuò)誤處理技術(shù),4、換用最接近的合法值 比如體溫計(jì)的數(shù)據(jù)定義在1-100之前,如果你獲得數(shù)據(jù)小于0,你可以把他替換為0就是最接近的合法值,同樣大于100就替換
8、為100,生活中的例子就是倒車,倒車時(shí)速度表無(wú)法負(fù)的速度,所以直接顯示0。 5. 把警告信息記錄到日志文件中 在檢測(cè)到錯(cuò)誤的時(shí)候你可以在日志文件中增加一條警告信息,然后繼續(xù)執(zhí)行,方便查詢總結(jié),比如系統(tǒng)日志。 6、返回一個(gè)錯(cuò)誤代碼 7、調(diào)用錯(cuò)誤處理函數(shù)/對(duì)象 優(yōu)點(diǎn)是:集中處理,調(diào)用更簡(jiǎn)單 缺點(diǎn)是耦合性太強(qiáng),不容移植,如果出現(xiàn)安全問(wèn)題容易被攻擊。 8、錯(cuò)誤發(fā)生時(shí)顯示出錯(cuò)誤 不要破壞界面的一致性,攻擊者可能會(huì)利用這個(gè)找到漏洞,所以我們要求不能顯示.net的黃頁(yè)一樣。,4.2錯(cuò)誤處理技術(shù),9、用最妥當(dāng)?shù)姆绞皆诰植刻幚?7、關(guān)閉/停止程序 有些系統(tǒng)一旦檢查到錯(cuò)誤就會(huì)關(guān)閉,這通常是遇到比較嚴(yán)重或者安全攸關(guān)
9、的功能上,比如windows的安全日志即使?jié)M了,也會(huì)正常工作,但你可以配置windows,讓它在日志滿的時(shí)候停止服務(wù),在安全信息攸關(guān)的環(huán)境下中這樣做是明智的。,4.3異常處理,異常是把代碼中的錯(cuò)誤或者異常事件傳遞給調(diào)用方的特殊手段。如果在程序中遇到了意料之外的情況就可以拋出異常。 異常要審慎明智的使用,下面給出一些異常上的建議。 拋出異常,讓其他部分去解決問(wèn)題 只有在真正的異常才使用,不能到處try-catch 不能用異常來(lái)推卸責(zé)任,盡量局部處理 不要在構(gòu)造和析構(gòu)函數(shù)中使用異常。 5、正確的抽象級(jí)上使用異常 6、異常信息應(yīng)該包含詳細(xì)的異常數(shù)據(jù),便于解讀。 7、不要使try-catch為空,一定
10、要進(jìn)行處理,也不能讓try為空。 所以說(shuō)盡量建立集中的異常處理報(bào)告,規(guī)范化異常使用,甚至考慮不用異常,使用其他方法替換。,5、使用條件語(yǔ)句,簡(jiǎn)單的 if-else 格式 使用 if-else 雖然很簡(jiǎn)答,但是有很多細(xì)節(jié)應(yīng)該注意: 1.先寫很正常很普通的分支,再寫不尋常的分支 好處:這樣可以突出判斷的主體部分,不至于讓次要的部分混淆程序執(zhí)行的過(guò)程,使程序易讀。 2.在分支中要特別注意相等的條件,確保其正確性 使用 =來(lái)的清晰,這樣可能會(huì)犯在數(shù)組中類似的越界錯(cuò)誤,5.1、if 語(yǔ)句,3.把正常情況下執(zhí)行的代碼放在if后面,而不是防在else后面 把想要在正常情況下執(zhí)行的代碼放在前面,這樣可以使程
11、序的功 清晰易讀,清楚地了解到程序究竟是做什么功能的。,5.1、if 語(yǔ)句,5.1、if 語(yǔ)句,5.1、if 語(yǔ)句,4.If 后面的子句要有一個(gè)有意義的意思??梢允∪lse子句 bad: if(SomeTest) good: if(!SomeTest) : elseDoSomething() DoSomething() ,5.1、if 語(yǔ)句,5.考慮 else 子句 else子句盡量不要省略,以免發(fā)生沒(méi)有考慮到的錯(cuò)誤,除非在顯而易見的情況下才可以省略。 6.檢查 else 子句的正確性 檢查的重點(diǎn)應(yīng)該是程序的主要部分,即if部分,有可能的話,也 要檢查else部分 7
12、.檢查是不是把if 和 else 里的處理頁(yè)反了 這是個(gè)常見的錯(cuò)誤,一定要注意小心避免,5.1、if 語(yǔ)句,If else if else 鏈?zhǔn)讲僮?下面給出關(guān)于if- else if -else操作的一些建議 1.用返回布爾值的函數(shù)來(lái)代替復(fù)雜的邏輯表達(dá)式 如果判斷的條件是復(fù)雜的表達(dá)式的話,程序既不易讀,也不易修改。,1、if 語(yǔ)句,2.把最常見的情況放在最前面 最常見的情況放在前面可以增加程序的可讀性,使人閱讀程序時(shí)提高效率。 3.確保所有的路徑都被覆蓋 在程序的最后再加上一個(gè) else ,并且在這個(gè)判斷里面使用 斷言或者給程序員顯示警告。這里,出錯(cuò)的信息是給程序員看的,方便開發(fā)期間的
13、調(diào)試工作。 4.如果程序語(yǔ)言支持的話,使用別的機(jī)制來(lái)代替if else if-else結(jié)構(gòu) 可以使用case來(lái)代替。,5.2、Case 語(yǔ)句,Case 語(yǔ)句是很常用的,在Java C# 語(yǔ)言里,使用switch case 機(jī)制。 下面給出使用Case需要注意的一些地方 使用效率最高的 Case 的組合的順序 如果Case的分支不是很多,安排他們的順序就無(wú)關(guān)緊要,若分支太多的話,就很重要了。,5.2、Case 語(yǔ)句,1.以數(shù)字或者字母的順序來(lái)安排 如果這些分支的重要性差不多的話,就使用字母序或數(shù)字來(lái)標(biāo)記他們, 這樣一可以易讀,二可以很方便的找到該分支 2.正常情況下的分支要放在最前面 這樣可
14、以指示那些分支是正常的,哪些是不正常的。 3.把訪問(wèn)頻率高的分支放在前面,低的放在后面 這樣一可以增加可讀性,使讀者清楚看到哪個(gè)分支最為常用, 同時(shí),也提高了執(zhí)行效率,加快索引。,5.2、Case 語(yǔ)句,使用 Case 語(yǔ)句的一些建議 1.每一個(gè) Case 里的操作都應(yīng)該簡(jiǎn)單 好處:短的代碼清晰易讀,增加可讀性,如果代碼很長(zhǎng)的話,就把它們單獨(dú)放在一個(gè)模塊里。 2.不要使用容易出錯(cuò)的變量來(lái)作為條件 作為判斷的變量應(yīng)該簡(jiǎn)單,下面一個(gè)例子是以用戶輸入?yún)?shù)的第一個(gè)字母作為標(biāo)志的,(switch后面只能跟整型和字符型)這樣很容易出錯(cuò),如果非要那樣做的話,就不應(yīng)該使用if-else if-else ,然后
15、把判斷的語(yǔ)句寫全。,5.2、Case 語(yǔ)句,5.2、Case 語(yǔ)句,2、Case 語(yǔ)句,3.盡量不要使用默認(rèn)的分支來(lái)檢查合法的分支 如果沒(méi)有使用default子句,而僅僅是在case里面做一些處理的話,這樣可能會(huì)使程序以后維護(hù)起來(lái)比較麻煩,修改case 語(yǔ)句很不方便。盡量不要使用default來(lái)做檢查,而是采用多寫case的方法。 4.使用 default 子句來(lái)檢查錯(cuò)誤 如果在程序中必須要有一個(gè)case 后面的部分不會(huì)被執(zhí)行,那么default里面就寫上顯示出錯(cuò)的代碼。 5.在每一case的最后別忘了寫上break 類似于C的語(yǔ)言都必須要寫上break 以便能跳得出來(lái),如果不寫的話就會(huì)跳到下
16、一個(gè)case 里面去。 6.如果非要在程序中執(zhí)行兩個(gè)以上的case的內(nèi)容(case嵌套if)的時(shí)候,一定要注釋清楚,個(gè)人建議還是不要這樣嵌套,還不如使用if-else if-else。,5.2、使用前的提示,在使用條件判斷語(yǔ)句的時(shí)候,一定要檢查是不是符合下面的要求 If-else 語(yǔ)句: 1.主體部分是不是在 if 語(yǔ)句中清晰的表達(dá)了? 2.在檢查等號(hào)條件是不是正確的?會(huì)不會(huì)發(fā)生越界錯(cuò)誤? 3.是不是缺少else子句? 4.Else子句是不是正確的使用了? 5.If 和 else中分別需要做的工作又沒(méi)有混淆? 6.正常情況下的處理應(yīng)該由if 來(lái)完成,是不是弄到else 里了。,5.3、使用前的
17、提示,If-else if-else 結(jié)構(gòu)需要注意的地方 1.復(fù)雜的邏輯表達(dá)式是不是封裝在單獨(dú)的函數(shù)中?通過(guò)函數(shù)調(diào)用的方式來(lái)實(shí)現(xiàn)判斷而不是直接寫在if里面? 2.是不是最常見的操作放在最前面? 3.是不是所有的路徑都覆蓋了? 4.是不是整個(gè)結(jié)構(gòu)都按照合理的方式來(lái)執(zhí)行?,5.3、使用前的提示,Switch Case 語(yǔ)句 1.是不是所有的case都按照有意義的順序排列? 2.是不是每個(gè)case里的操作都很簡(jiǎn)單,通過(guò)函數(shù)調(diào)用來(lái)實(shí)現(xiàn)? 3.是不是合法的使用了default語(yǔ)句? 4.Default語(yǔ)句后面是不是有處理錯(cuò)誤和報(bào)告錯(cuò)誤的代碼? 5.在c c# java里是不是在每個(gè)case 后面跟上br
18、eak?,6、控制循環(huán),選擇循環(huán)類型 循環(huán)控制 寫循環(huán)簡(jiǎn)單的方法從內(nèi)到外,6.1 選擇循環(huán)類型,循環(huán)類型:大多數(shù)語(yǔ)言中你只能用到少數(shù)的幾種循環(huán) 計(jì)數(shù)循環(huán),執(zhí)行的次數(shù)是固定的 條件循環(huán),預(yù)先不知道會(huì)運(yùn)行多少次,他會(huì)在每次迭代時(shí)檢查。 死循環(huán),一旦啟動(dòng)就一直執(zhí)行下去,知道死亡,你可能在心臟起搏器等嵌入式系統(tǒng)能找到。 迭代循環(huán),對(duì)容器類里的每個(gè)元素都執(zhí)行一次操作比如foreach 。,6.1 選擇循環(huán)類型,什么時(shí)候用while循環(huán) 如果你不知道循環(huán)的次數(shù),那么用while While也可以loop-with-exit循環(huán)(帶退出的的循環(huán)) while(true) a++; if (符合退出條件) b
19、reak; ,6.1 選擇循環(huán)類型,什么時(shí)候用for循環(huán) 循環(huán)確切次數(shù) 若是有中間中斷的情況,或是靠條件退出,用while替代 什么時(shí)候用foreach循環(huán) Foreach循環(huán)適用于對(duì)數(shù)組或者其他容器的各項(xiàng)元素進(jìn)行操作,比如我們會(huì)使用foreach循環(huán)list中的數(shù)據(jù) Foreach(對(duì)象 in list對(duì)象) ,2 循環(huán)控制,循環(huán)易犯的錯(cuò)誤:忽略了與循環(huán)有關(guān)的變量或累加器初始化、不正確的嵌套、不正確的循環(huán)中斷、忘記給循環(huán)變量一個(gè)增量或給錯(cuò)了增量、用不正確的循環(huán)指標(biāo)訪問(wèn)數(shù)組元素。 while ( !inputFile.EndOfFile() !inputFile.EndOfFile();r
20、ecordCount++ ) inputFile.GetRecord(); recordCount++并不是控制循環(huán)的,控制循環(huán)結(jié)束的是inputFile.GetRecord();,6.2 循環(huán)控制,正確的使用方法 recordCount = 0; for ( inputFile.MoveToStart(); !inputFile.EndOfFile(); inputFile.GetRecord() ) recordCount++; inputFile.MoveToStart();對(duì)循環(huán)進(jìn)行初始化, inputFile.EndOfFile(); 檢測(cè)循環(huán)是否已經(jīng)終止, inputFile.Ge
21、tRecord() 則是把循環(huán)推向終止,while做更清晰 inputFile.MoveToStart(); recordCount = 0; while ( !inputFile.EndOfFile() ) inputFile.GetRecord(); recordCount++; ,6.2 循環(huán)控制,處理循環(huán)體的注意 用 括起循環(huán); 將循環(huán)管理(如i++)放在循環(huán)頭或尾部 每個(gè)循環(huán)只做一件事 避免空循環(huán); while ( ( inputChar = cin.get() ) != n ) ; 這里例子產(chǎn)生空循環(huán)的原因是因?yàn)閣hile表達(dá)式包含了兩項(xiàng)操作,循環(huán)工作和判斷是否終止的操作,下面的重
22、寫更加清晰 do inputChar = cin.get(); while ( inputChar != n );,6.2 循環(huán)控制,退出循環(huán)的注意 確保循環(huán)能結(jié)束,這是基本要求可以模擬設(shè)想一下。 讓循環(huán)的終止條件看起來(lái)更明顯,大概是說(shuō)不要多出設(shè)置循環(huán)的退出條件。 不要隨意改變for的循環(huán)計(jì)數(shù)器,使其提前終止,6.2 循環(huán)控制,提前退出循環(huán)小心使用break和continue 考慮用break,而不用boolean flag 不要使過(guò)多的break過(guò)于分散在循環(huán)中 用continue在循環(huán)頭部測(cè)試,一種好的方法是,在循環(huán)開始初做完條件判斷后讓代碼越過(guò)剩下的循環(huán)體繼續(xù)運(yùn)行。,如果在循環(huán)中要閱讀記錄并且要忽略掉一種記錄,那么可以這么判斷,6.2 循環(huán)控制,循環(huán)要多長(zhǎng)? 最好短的一下能看完 限制在3層嵌套 把循環(huán)內(nèi)過(guò)長(zhǎng)的部分封裝在函數(shù)內(nèi) 長(zhǎng)的循環(huán)一定要寫注釋 寫循環(huán)簡(jiǎn)單的方法從內(nèi)到外 從最本質(zhì)的工作寫起,然后加上外面的控制條件,,Thats all! Thank you!,
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 110中國(guó)人民警察節(jié)(筑牢忠誠(chéng)警魂感受別樣警彩)
- 2025正字當(dāng)頭廉字入心爭(zhēng)當(dāng)公安隊(duì)伍鐵軍
- XX國(guó)企干部警示教育片觀后感筑牢信仰之基堅(jiān)守廉潔底線
- 2025做擔(dān)當(dāng)時(shí)代大任的中國(guó)青年P(guān)PT青年思想教育微黨課
- 2025新年工作部署會(huì)圍繞六個(gè)干字提要求
- XX地區(qū)中小學(xué)期末考試經(jīng)驗(yàn)總結(jié)(認(rèn)真復(fù)習(xí)輕松應(yīng)考)
- 支部書記上黨課筑牢清廉信念為高質(zhì)量發(fā)展?fàn)I造風(fēng)清氣正的環(huán)境
- 冬季消防安全知識(shí)培訓(xùn)冬季用電防火安全
- 2025加強(qiáng)政治引領(lǐng)(政治引領(lǐng)是現(xiàn)代政黨的重要功能)
- 主播直播培訓(xùn)直播技巧與方法
- 2025六廉六進(jìn)持續(xù)涵養(yǎng)良好政治生態(tài)
- 員工職業(yè)生涯規(guī)劃方案制定個(gè)人職業(yè)生涯規(guī)劃
- 2024年XX地區(qū)黨建引領(lǐng)鄉(xiāng)村振興工作總結(jié)
- XX中小學(xué)期末考試經(jīng)驗(yàn)總結(jié)(認(rèn)真復(fù)習(xí)輕松應(yīng)考)
- 幼兒園期末家長(zhǎng)會(huì)長(zhǎng)長(zhǎng)的路慢慢地走