杭州網(wǎng)站建設(shè):演化架構(gòu)和緊急設(shè)計(jì)經(jīng)驗(yàn)談
分享 2011.09.02 瀏覽次數(shù):7437次
導(dǎo)讀:Neal Ford是全球IT咨詢公司ThoughtWorks的軟件架構(gòu)師。除了常規(guī)工作,他做的事情還包括設(shè)計(jì)和開(kāi)發(fā)應(yīng)用程序、教學(xué)材料、雜志文章、課件和視頻/DVD演示,同時(shí)還是各種技術(shù)書籍的作者或者編輯,其中包括最近的新書The Productive Programmer。他專注于設(shè)計(jì)和開(kāi)發(fā)大規(guī)模企業(yè)應(yīng)用程序,同時(shí),他也是世界開(kāi)發(fā)人員會(huì)議的國(guó)際知名演說(shuō)家。關(guān)于他的更多介紹,請(qǐng)查看他的個(gè)人站點(diǎn)。
在演化架構(gòu)與緊急設(shè)計(jì)系列文章中,Neal Ford通過(guò)介紹幫助用戶在演化架構(gòu)和緊急設(shè)計(jì)中的靈活實(shí)踐,解釋演化架構(gòu)和緊急設(shè)計(jì)的基本原則。他還對(duì)各種項(xiàng)目緊急設(shè)計(jì)的適用性,怎么確定何時(shí)制定決策以及與此相關(guān)的一些要點(diǎn)做出了自己的總結(jié)。
ThoughtWorks架構(gòu)師Neal Ford
他在文中開(kāi)頭引用了美國(guó)前國(guó)防部長(zhǎng)Donald Rumsfeld的詩(shī):世界上有已知的未知,也就是說(shuō)我們知道我們還不知道的那些事情。但是,還有未知的未知,那些我們不知道我們不知道的事情。
未知的未知數(shù)
標(biāo)簽:杭州網(wǎng)站建設(shè)
Rumsfeld對(duì)未知進(jìn)行區(qū)分,有些知道存在但是人們找不到,但是他也承認(rèn)還有一些存在是超出人們的知識(shí)和經(jīng)驗(yàn)的,人們甚至不知道要去尋找:這就是“未知的未知”。
Rumsfeld討論的是戰(zhàn)爭(zhēng)的不確定性,但也是在說(shuō)軟件。如果某人曾編寫過(guò)一些重要軟件,可能涉及過(guò)未知之未知問(wèn)題——軟件設(shè)計(jì)中最大的一個(gè)問(wèn)題。那么大家對(duì)解決方案實(shí)現(xiàn)過(guò)程中所遇到的問(wèn)題都有一個(gè)很好的理解,但是不可避免還是會(huì)出現(xiàn)一些不可預(yù)料的問(wèn)題。同一個(gè)開(kāi)源框架交互不是大家想的那么簡(jiǎn)單,問(wèn)題可能比原來(lái)所預(yù)計(jì)的更細(xì)微,需要更加精細(xì)縝密。
關(guān)鍵詞:杭州網(wǎng)站制作
不可預(yù)期的設(shè)計(jì)問(wèn)題會(huì)不斷出現(xiàn),因?yàn)檐浖娜蒎e(cuò)能力很低——比物理系統(tǒng)低很多。例如,以大家身邊的建筑物為例,構(gòu)建一個(gè)大樓是一個(gè)多人數(shù)月(甚至數(shù)年)的項(xiàng)目?,F(xiàn)在考慮類似時(shí)間段上的一個(gè)多人軟件項(xiàng)目。這些項(xiàng)目有類似的規(guī)模,但是物理建筑往往更加寬容結(jié)構(gòu)缺陷。如果一個(gè)開(kāi)關(guān)不能完全掩蓋墻上安裝電線的洞,整個(gè)大樓不會(huì)倒塌。但是軟件中的一個(gè)小問(wèn)題可能會(huì)導(dǎo)致系統(tǒng)崩潰。將其比作原子,位元的容錯(cuò)都是不可原諒的。當(dāng)然,軟件易于修復(fù):大家可以在洞上抹墻粉(修復(fù)bug)立即改造房子。
如果一個(gè)機(jī)翼脫落了,工程師首先會(huì)查看機(jī)翼連接的位置:在物理系統(tǒng)上,錯(cuò)誤和功能的臨近度通常很高。但是在軟件中,執(zhí)行一行可能導(dǎo)致不穩(wěn)定的代碼,通常會(huì)使數(shù)百行甚至幾千行似乎不相關(guān)的代碼出現(xiàn)問(wèn)題。
軟件預(yù)先設(shè)計(jì)(Design up front)比較困難,因?yàn)楦鱾€(gè)部分之間以無(wú)數(shù)種、甚至不可預(yù)期的方式相互作用。預(yù)測(cè)這些交互的實(shí)現(xiàn)目前不在能力范圍之內(nèi),緊急設(shè)計(jì)包含這些不可避免的令人驚訝的復(fù)雜性,試著減少變化的破壞。
設(shè)計(jì)波譜
標(biāo)簽:杭州精品網(wǎng)站設(shè)計(jì)
緊急設(shè)計(jì)不是一個(gè)二元狀態(tài)。不能肯定地說(shuō)某人的設(shè)計(jì)是100%敏捷的或是0敏捷的;有圖1所示的這樣一個(gè)波譜:
圖1.設(shè)計(jì)波譜
在圖1的最左邊,有傳統(tǒng)的Big Design Up Front(BDUF),具體反映在很多常見(jiàn)開(kāi)發(fā)技術(shù)中。BDUF以其優(yōu)秀的稻草人(straw-man)形式體現(xiàn)了象牙塔架構(gòu),創(chuàng)建設(shè)計(jì)工件,不作任何更改直接交給開(kāi)發(fā)人員來(lái)進(jìn)行實(shí)現(xiàn)。在nonparody格式中,該設(shè)計(jì)方法努力嘗試在編碼之前找出所感興趣的一切。這是一個(gè)預(yù)測(cè)模型,設(shè)計(jì)軟件的預(yù)測(cè)模型。
圖1右邊顯示了某人在中學(xué)時(shí)期所做的各種編碼:可以進(jìn)行修改使之運(yùn)行,然后繼續(xù)改進(jìn)。這在小范圍內(nèi)可以很好地運(yùn)行(基本上,只要這個(gè)問(wèn)題小到用腦子想想就可以解決),但是不能超出太多。
緊急設(shè)計(jì)通常在兩個(gè)極端情況下失效,但是和左邊比起來(lái)更趨向于右邊。緊急設(shè)計(jì)是一個(gè)響應(yīng)式的、被動(dòng)的軟件設(shè)計(jì)方法。
面對(duì)這么多的失敗和不被看好的項(xiàng)目,還有這么多組織機(jī)構(gòu)繼續(xù)使用BDUF,真的很令人費(fèi)解!并不是說(shuō)某人不能成功地使用BDUF。(事實(shí)上,他曾做過(guò)很多這類項(xiàng)目。)但是數(shù)十年間關(guān)于這個(gè)開(kāi)發(fā)技術(shù)的記錄很少。Fred Brooks的重要著作Mythical Man Month探討了以該模式構(gòu)建軟件存在的問(wèn)題,于1975年發(fā)布(見(jiàn)參考資料)。
團(tuán)隊(duì)想使用這種風(fēng)格進(jìn)行開(kāi)發(fā)并不奇怪,因?yàn)檫@更符合設(shè)計(jì)在傳統(tǒng)工程中的工作方式。如果開(kāi)發(fā)者正在設(shè)計(jì)小部件或iPods,必須進(jìn)行所有的預(yù)先設(shè)計(jì),因?yàn)殚_(kāi)發(fā)者不能重構(gòu)原子??纯丛嫉腎ntel Pentium處理器。在它發(fā)布之后,在浮點(diǎn)數(shù)據(jù)單元中發(fā)現(xiàn)了一個(gè)bug,需要每個(gè)操作系統(tǒng)創(chuàng)建者來(lái)編寫特定代碼解決這個(gè)問(wèn)題。一旦操作完成,就不能對(duì)硬件進(jìn)行更改。軟件截然相反:軟件項(xiàng)目的多數(shù)生命周期是在原始版本發(fā)布之后發(fā)生,通過(guò)增強(qiáng)、bug修復(fù)、以及其他“維護(hù)”活動(dòng)。開(kāi)發(fā)者處理位元而不是原子,位元的可塑性是無(wú)限的。
多少預(yù)先設(shè)計(jì)?
敏捷設(shè)計(jì)并不是要在項(xiàng)目開(kāi)始階段忽略設(shè)計(jì)。對(duì)問(wèn)題的本質(zhì)知道得越少,在此過(guò)程的早期所能做的就越少。他常常會(huì)問(wèn),“如何決定在一個(gè)項(xiàng)目開(kāi)始階段進(jìn)行多少設(shè)計(jì)合適?”不同項(xiàng)目有不同的準(zhǔn)則,它們?cè)诜N類和復(fù)雜程度上的變化比多數(shù)非技術(shù)人員所意識(shí)到的要多很多。大致上說(shuō),需要平衡兩件事:如果開(kāi)發(fā)者的早期決策足夠精準(zhǔn)可以避免日后進(jìn)行更改,那么要考慮預(yù)先設(shè)計(jì)。如果后期修改成本太大,就要考慮收益問(wèn)題。因此,需要對(duì)早期階段以及開(kāi)發(fā)技術(shù)(可能會(huì)是后期更改代價(jià)昂貴)有一個(gè)很好的了解。敏捷設(shè)計(jì)反對(duì)這個(gè)觀點(diǎn),因?yàn)槿藗儍A向于過(guò)高地估計(jì)他們?cè)谠缙谥贫ň_決策的能力,因而他們將遭受不斷擴(kuò)大的后果。
這里是一些項(xiàng)目示例,了解一下開(kāi)發(fā)者應(yīng)該為哪些項(xiàng)目做更多的預(yù)先設(shè)計(jì):
有嚴(yán)格的穩(wěn)定性需求,數(shù)年之內(nèi)沒(méi)有更改計(jì)劃的項(xiàng)目。高度隔離的環(huán)境(比如太空傲游,水底探險(xiǎn)),出于安全性考慮的項(xiàng)目。所編寫的項(xiàng)目與之前的軟件完全相同、同一組人、沒(méi)有范圍變化。(對(duì)該項(xiàng)目有一個(gè)極度精確的評(píng)估。)對(duì)環(huán)境高度約束的項(xiàng)目,比如,嵌入式系統(tǒng),確??紤]到了環(huán)境約束條件。(他仍然會(huì)盡量使行為功能性盡可能多地出現(xiàn)。)
不需要進(jìn)行太多預(yù)先設(shè)計(jì)的項(xiàng)目有:
有高度可變性、項(xiàng)目需求不斷變化的項(xiàng)目(幾個(gè)月或幾周),像多數(shù)商業(yè)應(yīng)用程序。需要響應(yīng)外部因素(比如,市場(chǎng)條件)的項(xiàng)目。還不能確定技術(shù)或業(yè)務(wù)細(xì)節(jié)的項(xiàng)目,注意這實(shí)際上包括每個(gè)項(xiàng)目,又回到Rumsfeld的“未知之未知”理論上了。從訂閱到部署都可以從中收益的項(xiàng)目,而不是那些人為地區(qū)分為“已完成的”項(xiàng)目。沒(méi)有軟件項(xiàng)目是徹底完成的,因此開(kāi)發(fā)者總是需要購(gòu)買一個(gè)訂閱,越早認(rèn)識(shí)到這一點(diǎn),就表現(xiàn)的越像。
選擇正確的時(shí)間制定決策比較困難,但很重要。所有項(xiàng)目都是獨(dú)一無(wú)二的,給出具體建議無(wú)用。但是,這有一些通用的指導(dǎo)方針:
注意當(dāng)“最簡(jiǎn)單的工作”已經(jīng)工作一段時(shí)間之后,需要解決的問(wèn)題變得更重要更復(fù)雜,例如,假設(shè)開(kāi)發(fā)者正在使用一個(gè)數(shù)據(jù)庫(kù)作為基礎(chǔ)后臺(tái)、異步活動(dòng)的一個(gè)簡(jiǎn)單消息傳遞隊(duì)列。然而現(xiàn)在,在性能變差的同時(shí)將兩個(gè)新需求添加到各種異步活動(dòng)中了?,F(xiàn)在是重新訪問(wèn)“最簡(jiǎn)單事情”決策的最佳時(shí)間,因?yàn)榻鉀Q方案不能匹配該準(zhǔn)則。在查看問(wèn)題的整體規(guī)模時(shí),試著隔離將趨向緊急設(shè)計(jì)技術(shù)的數(shù)據(jù)包。例如,假設(shè)開(kāi)發(fā)者正在處理一個(gè)需要地理編碼支持的應(yīng)用程序,開(kāi)發(fā)者不可能在此之前就使用一個(gè)地理編碼庫(kù)。應(yīng)該執(zhí)行一些spikes(簡(jiǎn)單直接的研究與開(kāi)發(fā)項(xiàng)目)來(lái)確??梢岳斫庠u(píng)估目的。盡量避免在不完全理解的基礎(chǔ)上制定架構(gòu)決策(后期很難改變),重新訪問(wèn)應(yīng)用程序其余部分和這個(gè)隔離部分之間的接口點(diǎn),看看是否能在更好理解的基礎(chǔ)上進(jìn)行改進(jìn)。試著保留應(yīng)用程序之間的交互作用點(diǎn)。Simple Object Access Protocol (SOAP) 這類協(xié)議的一個(gè)副作用是在剛性結(jié)構(gòu)和強(qiáng)類型(strong types)上的持久性。靈活性的秘密是特異性少,這種認(rèn)識(shí)推進(jìn)了Representational State Transfer (REST)和相關(guān)技術(shù)的廣泛應(yīng)用。構(gòu)建一個(gè)API時(shí),試著接受最通用的合理性,這也將應(yīng)用于集成。
演化架構(gòu)與緊急設(shè)計(jì)系列總結(jié)
他將對(duì)這18期中的主要主題做出了總結(jié):
代碼作為設(shè)計(jì)
回到“演化架構(gòu)和緊急設(shè)計(jì):利用可重用代碼,第1部分”,他引用Jack Reeves的這篇文章,他認(rèn)為軟件設(shè)計(jì)是由一個(gè)項(xiàng)目的全部源代碼構(gòu)成,而不僅僅是開(kāi)發(fā)者通常所認(rèn)為的工件(白板圖(white-board diagrams)、Unified Modeling Language,等等)。他將源代碼和工程的規(guī)劃進(jìn)行了比較,工程師的規(guī)劃指出了生產(chǎn)團(tuán)隊(duì)將設(shè)計(jì)轉(zhuǎn)換成原子所需的一切。開(kāi)發(fā)者的規(guī)劃是源代碼,編輯器將其轉(zhuǎn)換成位元。如果對(duì)代碼進(jìn)行設(shè)計(jì),那么所用的計(jì)算機(jī)語(yǔ)言和架構(gòu)就定義了開(kāi)發(fā)者可以設(shè)計(jì)的原始資料。
功能強(qiáng)大的語(yǔ)言的影響優(yōu)勢(shì)抵消了對(duì)其先進(jìn)功能的恐懼。盡管選擇和標(biāo)準(zhǔn)化有10多年歷史的語(yǔ)言很不錯(cuò),因?yàn)橛凶銐虺渥愕牡统杀鹃_(kāi)發(fā)人員,但是必須接受這個(gè)事實(shí),不能趕上競(jìng)爭(zhēng)對(duì)手,因?yàn)樗麄冇懈F(xiàn)代的語(yǔ)言和工具。很多機(jī)構(gòu)過(guò)分強(qiáng)調(diào)標(biāo)準(zhǔn)化,甚至以創(chuàng)新和穩(wěn)鍵為代價(jià)。他曾見(jiàn)過(guò)很多被迫使用標(biāo)準(zhǔn)框架的項(xiàng)目,這很可笑也不利于問(wèn)題發(fā)現(xiàn),這會(huì)妨礙任何類型的設(shè)計(jì)問(wèn)題發(fā)現(xiàn),因?yàn)闀?huì)被意外噪音所干擾。
這并不意味著就允許每個(gè)開(kāi)發(fā)人員都選擇使用自己的工具堆棧。這意味著開(kāi)發(fā)者要密切關(guān)注標(biāo)準(zhǔn)化所提供的真正價(jià)值,然后考慮合理方案。例如,或許開(kāi)發(fā)者想繼續(xù)使用Java技術(shù)開(kāi)發(fā)項(xiàng)目,可以使用更高級(jí)的工具進(jìn)行構(gòu)建、測(cè)試和其他開(kāi)發(fā)任務(wù)。軟件項(xiàng)目中代碼似乎無(wú)處不在,這一切都體現(xiàn)在設(shè)計(jì)中,不管是有意識(shí)還是無(wú)意識(shí)的。
接受不確定性
許多方法都想要避免不確定性。如果開(kāi)發(fā)者使用原子方式進(jìn)行構(gòu)建,不確定性很糟糕,因?yàn)橐坏┰颖粡?qiáng)制形成一定形狀再更改其配置代價(jià)極為昂貴。但是,如果使用位元進(jìn)行構(gòu)建,更改十分容易且十分必要。在軟件中避免更改很困難且沒(méi)有必要。
敏捷方法想要找到一種方法使得修改更為容易,使用諸如單元測(cè)試、重構(gòu)、持續(xù)集成和交互開(kāi)發(fā)之類技術(shù)。緊急設(shè)計(jì)體現(xiàn)在設(shè)計(jì)的敏捷哲學(xué)中,當(dāng)出現(xiàn)設(shè)計(jì)決策時(shí),問(wèn)自己:
現(xiàn)在需要制定這個(gè)決策嗎?可以安全地推遲這一決策嗎?能做些什么使決策可逆?
如果開(kāi)發(fā)者是在這樣一個(gè)易于重構(gòu)代碼的環(huán)境中,臨時(shí)制定一個(gè)非最佳決策并不可怕,因?yàn)榭梢暂p松地進(jìn)行修復(fù)。如果設(shè)置項(xiàng)目以適應(yīng)變化,推遲決策不會(huì)發(fā)生故障,因?yàn)榭梢詫?shí)時(shí)優(yōu)化。接受修改需要有能力客觀對(duì)待決策以及更改那些使事情糟糕的決策。
收獲慣用模式
緊急設(shè)計(jì)的另一方面是能夠看見(jiàn)代碼中的有用設(shè)計(jì)元素,然后作為慣用模式進(jìn)行保存,這是他在“演化架構(gòu)和緊急設(shè)計(jì):利用可重用代碼,第1部分”中作為已有問(wèn)題的有效解決方案定義的。這些已發(fā)現(xiàn)模式就像是某公司皇冠上的珠寶,因?yàn)樗鼈兪菍?shí)現(xiàn)公司運(yùn)行方式的設(shè)計(jì)元素。令人擔(dān)憂的是,開(kāi)發(fā)者所編寫的少量代碼囊括了惟一值:余下的大部分只是拖放到數(shù)據(jù)庫(kù)、構(gòu)建HTML,等等。慣用模式比在Joint Application Design(JAD)或象牙塔設(shè)計(jì)中編造的模式要更有價(jià)值,因?yàn)樗鼈円呀?jīng)達(dá)到了實(shí)用的關(guān)鍵條件之一:它們已經(jīng)被用來(lái)解決了一個(gè)實(shí)際問(wèn)題。
開(kāi)發(fā)者可以通過(guò)各種方法收獲慣用模式??梢詣?chuàng)建一個(gè)API,這只是很簡(jiǎn)單并沒(méi)有什么特別的—看起來(lái)和所使用的其他API沒(méi)什么兩樣。也可以捕獲一些使用元程序和屬性的慣用模式(見(jiàn)“演化架構(gòu)和緊急設(shè)計(jì):利用可重用代碼,第2部分”)。在“演化架構(gòu)和緊急設(shè)計(jì):使用DSL”、“演化架構(gòu)和緊急設(shè)計(jì):連貫接口”、“演化架構(gòu)和緊急設(shè)計(jì):使用Groovy構(gòu)建DSL”和“演化架構(gòu)和緊急設(shè)計(jì):使用JRuby構(gòu)建DSL”中,他也討論了使用特定域語(yǔ)言捕獲慣用模式。
總是想要識(shí)別有用設(shè)計(jì)元素,避免制定人工難以執(zhí)行的決策。例如,當(dāng)這些元素被添加到代碼基中,在沒(méi)有使用它們時(shí)向應(yīng)用程序(比如,可擴(kuò)展層或面向服務(wù)架構(gòu)的服務(wù))中添加架構(gòu)元素使代碼更為復(fù)雜。務(wù)必確保在正確的時(shí)間添加復(fù)雜性,因?yàn)樵谑褂盟?,它都是偶發(fā)復(fù)雜性。
-
杭州網(wǎng)站設(shè)計(jì)公司:品牌網(wǎng)站開(kāi)發(fā)助力企業(yè)成長(zhǎng)
日期:2024-12-20瀏覽次數(shù):823次
-
杭州網(wǎng)站建設(shè)公司:商城網(wǎng)站建設(shè)的六大關(guān)鍵步驟
日期:2024-12-18瀏覽次數(shù):865次
-
杭州網(wǎng)站制作:醫(yī)院網(wǎng)站設(shè)計(jì)與域名備案的復(fù)雜性探討
日期:2024-12-18瀏覽次數(shù):856次
-
杭州網(wǎng)站制作公司:打造安全可靠的醫(yī)院網(wǎng)站
日期:2024-12-11瀏覽次數(shù):1021次
-
杭州網(wǎng)站設(shè)計(jì)公司:數(shù)據(jù)庫(kù)在高端網(wǎng)站制作中的關(guān)鍵作用
日期:2024-12-11瀏覽次數(shù):992次
相關(guān)新聞
整合同類新聞,相關(guān)新聞一手掌握
-
潮州集團(tuán)app開(kāi)發(fā)的必要步驟
日期:2021-02-07瀏覽次數(shù):2107次
-
潮州app開(kāi)發(fā)依然是大勢(shì)所需
日期:2021-02-07瀏覽次數(shù):2221次
-
英文版潮州網(wǎng)站制作為什么還要收費(fèi)?
日期:2020-10-19瀏覽次數(shù):2225次
-
潮州網(wǎng)站建設(shè),如何做好營(yíng)銷型網(wǎng)站?
日期:2020-10-16瀏覽次數(shù):2335次
-
杭州網(wǎng)站設(shè)計(jì)公司所需的基礎(chǔ)常識(shí)
日期:2020-09-02瀏覽次數(shù):2129次
最新新聞
與互聯(lián)網(wǎng)同行,實(shí)時(shí)掌握網(wǎng)建行業(yè)最新動(dòng)態(tài)
-
杭州網(wǎng)站建設(shè)要注意啥
日期:2018-04-20瀏覽次數(shù):5415次
-
網(wǎng)站提高客戶終身價(jià)值的4種方法
日期:2018-12-13瀏覽次數(shù):5586次
-
杭州網(wǎng)站建設(shè)必備知識(shí)
日期:2020-08-04瀏覽次數(shù):4715次
-
到底什么才是杭州網(wǎng)站優(yōu)化?
日期:2021-02-22瀏覽次數(shù):4252次
-
杭州網(wǎng)站營(yíng)銷推廣方案怎么寫?
日期:2021-08-13瀏覽次數(shù):3996次
隨機(jī)新聞
新聞新動(dòng)態(tài),您需要的新聞管家
洞悉市場(chǎng)趨勢(shì)演變讓傳播回歸社會(huì)
免費(fèi)獲取網(wǎng)站建設(shè)與網(wǎng)絡(luò)推廣方案報(bào)價(jià)
-
關(guān)于我們
杭州帷拓科技有限公司,是一家新型的全案網(wǎng)絡(luò)開(kāi)發(fā)公司,作為以互聯(lián)網(wǎng)高端網(wǎng)站建設(shè)、APP開(kāi)發(fā)、小程序開(kāi)發(fā)為核心的專業(yè)網(wǎng)絡(luò)技術(shù)服務(wù)供應(yīng)商,帷拓科技致力于全面分析市場(chǎng)環(huán)境、衡量與預(yù)測(cè)市場(chǎng)需求、整合區(qū)別于行業(yè)競(jìng)爭(zhēng)對(duì)手的絕對(duì)優(yōu)勢(shì),結(jié)合品牌理念深度挖掘項(xiàng)目?jī)?yōu)勢(shì)和產(chǎn)品價(jià)值,提升客戶品牌認(rèn)知、認(rèn)可度。
-
我們的客戶
帷拓科技?xì)v經(jīng)十年沉淀,與國(guó)內(nèi)外上千家客戶達(dá)成合作關(guān)系,其中穩(wěn)定合作的公司有:浙江華為、浙江移動(dòng)、浙江5G產(chǎn)業(yè)聯(lián)盟、浙江省社科院、綠城足球俱樂(lè)部、娃哈哈雙語(yǔ)學(xué)校、健康中國(guó)杭州峰會(huì)、科雷機(jī)電等,帷拓科技始終堅(jiān)持“帷有專業(yè),才能拓展無(wú)限”的服務(wù)理念,堅(jiān)持“認(rèn)真堅(jiān)持細(xì)節(jié)”的優(yōu)質(zhì)服務(wù)理念,不斷完善自身,成就企業(yè),最終實(shí)現(xiàn)共贏。
-
我們的業(yè)務(wù)
帷拓科技主營(yíng)業(yè)務(wù)范圍包含互聯(lián)網(wǎng)高端網(wǎng)站建設(shè)、APP開(kāi)發(fā)、小程序開(kāi)發(fā)、商城網(wǎng)站建設(shè)、公眾號(hào)運(yùn)營(yíng)以及數(shù)字營(yíng)銷等,涵蓋了服務(wù)、房產(chǎn)、數(shù)碼、服裝、物流貿(mào)易等行業(yè),根據(jù)品牌現(xiàn)狀,為每個(gè)客戶量身定制項(xiàng)目整體服務(wù)方案,以敏銳的市場(chǎng)洞察力、創(chuàng)新的市場(chǎng)策劃能力,全面把握市場(chǎng)變化,為客戶實(shí)現(xiàn)從企業(yè)到消費(fèi)者的價(jià)值轉(zhuǎn)換。