伴郎粗大的内捧猛烈进出第一章,羞羞漫画在线观看,亚洲国产一区二区a毛片,友田彩也香番号

全國統(tǒng)一24小時服務(wù)咨詢熱線0755-8257993612年專業(yè)網(wǎng)絡(luò)服務(wù)供應(yīng)商

行業(yè)資訊

阿里高級前端技術(shù)專家談工程師的成長密碼

1970-01-01 08:00:00 分享 瀏覽次數(shù):0次

一、自我介紹

我是不四,畢業(yè)后一直在阿里和螞蟻工作,不四是我在阿里的花名,社區(qū)中一般以另一個花名 “死馬” 出現(xiàn)。工作這 8 年多來一直專注在 Node.js 和 Web 開發(fā)領(lǐng)域,也在社區(qū)參與了一些開源項目,包括 Koa、Egg 和 cnpm 等,非常幸運在 node 出生之初就開始參與其中,算是趕上了一波由 node 帶來的大前端變革浪潮。每一個人的成長軌跡都不一樣,一路上遇到的機遇也各不相同,這次分享也僅站在一個普通工程師的角度來分享我的成長經(jīng)歷和貫穿其中的一些個人習(xí)慣。

二、成長歷程

實習(xí)

在 2011 年的夏天,大三暑假我來到了當(dāng)時的淘寶數(shù)據(jù)平臺實習(xí)。也不知道是運氣好還是運氣差,我是以 C++ 工程師的身份被招聘的,分配到的數(shù)據(jù)產(chǎn)品部卻是一個做 Web 產(chǎn)品的團(tuán)隊,還是用剛剛出生的 Node.js 作為服務(wù)端開發(fā)語言,并在實踐全棧研發(fā),還記得那時候 node 的版本才 0.4,而我是一個連 JS 和 JSP 都分不清楚的菜鳥,大學(xué)三年只寫過黑框框的 C++,連 HTTP 是什么都不知道,無比忐忑的開始悶頭學(xué)習(xí) JS 基礎(chǔ)。

多年以后和當(dāng)時看的入門教材作者成為了同事

幸運的是,當(dāng)時的團(tuán)隊大牛云集,國內(nèi)第一批 Node.js 的布道者,node party 的發(fā)起人空無、清篤、玄澄,以及國內(nèi) node 社區(qū)一直以來的核心貢獻(xiàn)者蘇千和樸靈等等都集中在了這個團(tuán)隊。跟隨者他們的腳步,我在大半年的實習(xí)時間內(nèi),順利的將 C++ 給忘光了,成為了一名新手 JS 工程師。

數(shù)據(jù)產(chǎn)品部

12 年畢業(yè)后正式入職淘寶數(shù)據(jù)產(chǎn)品部,那是大數(shù)據(jù)最火熱的年代,我們坐在淘寶數(shù)據(jù)平臺的金山上,挖掘出來了數(shù)據(jù)魔方、淘寶指數(shù)、淘寶時光機等數(shù)據(jù)產(chǎn)品。隨著我慢慢的深入業(yè)務(wù),也逐漸理解了團(tuán)隊為什么選擇 node 技術(shù)棧。大部分的數(shù)據(jù)產(chǎn)品本身的計算和業(yè)務(wù)邏輯相對不會太復(fù)雜,依賴大量后端數(shù)據(jù)源提供數(shù)據(jù),是一個典型的 IO 密集型應(yīng)用。而 JS 全棧也可以帶來更高效的研發(fā)效率。

數(shù)據(jù)魔方

淘寶時光機

隨著數(shù)據(jù)產(chǎn)品覆蓋的場景越來越多,我們需要對接到阿里集團(tuán)的各種內(nèi)部系統(tǒng)。所以我們用 node 實現(xiàn)了內(nèi)部的微服務(wù)框架、登錄系統(tǒng)、配置系統(tǒng)等中間件。而隨著 node 生態(tài)的越來越繁榮,搭建一個內(nèi)部的 npm 包管理系統(tǒng)也提上了日程。我們嘗試著用 npm 官方的解決方案搭建,但是難以運維,也不能完全滿足需求,最后我們開發(fā)了 cnpm 用來搭建內(nèi)部的 npm 包管理平臺并提供了國內(nèi)的 npm 鏡像。后來的事實證明,一個快速的 npm 包管理平臺對于促進(jìn) node 和大前端社區(qū)的繁榮起到了至關(guān)重要的作用。

剛畢業(yè)的這兩年是我技術(shù)成長非??斓臅r候,一方面是團(tuán)隊有很多大??梢詫W(xué)習(xí),另一方面也趕上了一波 node 技術(shù)初生的福利期,我也在這里完成了工作后的第一次晉升,從 P4 晉升到 P5。

天貓前端

在 14 年中的時候,由于團(tuán)隊的一些變化,我轉(zhuǎn)崗到了天貓前端團(tuán)隊。當(dāng)時的天貓前端團(tuán)隊其實沒有專職的 node 開發(fā)工程師,團(tuán)隊遇到的一個很大挑戰(zhàn)是運營活動頁面之前都是運行在 php 上,隨著 php 工程師在阿里的逐漸減少,那套年久失修的 php 系統(tǒng)已經(jīng)難以繼續(xù)支撐流量越來越夸張的雙十一活動了。所以我開始著手通過 node 實現(xiàn)新一代的頁面渲染服務(wù)。

新服務(wù)在 14 年雙十一的時候在天貓首頁進(jìn)行驗證,從性能穩(wěn)定性上比老的 php 服務(wù)高出很多。接下來我們開始基于新的服務(wù)上層實現(xiàn)了新的可視化頁面搭建系統(tǒng),非常完美的支持了 15 年的雙十一,這套系統(tǒng)也一直服務(wù)到現(xiàn)在,當(dāng)然已經(jīng)進(jìn)化的更加完備和復(fù)雜了。

當(dāng)時給 php 和 Node.js 系統(tǒng)做的 benchmark

在天貓可以說是之前那段工作經(jīng)歷積累后的爆發(fā)期,用一個全新的技術(shù)棧實現(xiàn)了一個重要的業(yè)務(wù)系統(tǒng),并取得了很大的業(yè)務(wù)價值,所以在 15 年的時候我也從 P5 晉升到了 P7。

螞蟻體驗技術(shù)部

可能還是有想做更底層一點技術(shù)的念頭,我在 16 年初的時候決定從天貓前端團(tuán)隊轉(zhuǎn)崗到螞蟻的體驗技術(shù)部給大前端團(tuán)隊做內(nèi)部的 Web 框架和 BFF 研發(fā)模式的支持。其實在去螞蟻之前,我也一直在維護(hù)者 Koa 和一些 Web 框架生態(tài)和中間件的服務(wù),到螞蟻之后參與做的第一件事情就是從當(dāng)時螞蟻的 Web 框架 Chair 中抽出來了 Egg.js,以統(tǒng)一阿里經(jīng)濟體各不同 BU 的大前端 Web 研發(fā)體系。Egg.js 也隨后面向社區(qū)開源。

Egg.js 生態(tài)

通過兩年多時間的發(fā)展,BFF 研發(fā)模式也慢慢的被螞蟻、阿里經(jīng)濟體甚至是國內(nèi)接受了。我也在這里晉升到了 P8。

語雀

隨著一次內(nèi)部組織架構(gòu)調(diào)整的機會,我來到了語雀團(tuán)隊。它是螞蟻體驗技術(shù)部內(nèi)部的一個創(chuàng)新孵化項目,為十萬阿里人提供知識協(xié)同和文檔管理的服務(wù),18 年的時候,語雀也開始對外服務(wù)。兜兜轉(zhuǎn)轉(zhuǎn)的走了一圈,我又回到了使用 JS 全棧進(jìn)行應(yīng)用開發(fā)。在語雀團(tuán)隊,我們踐行著產(chǎn)品工程師文化,高效的完成產(chǎn)品研發(fā)。

語雀產(chǎn)品工程師文化

簡短的總結(jié)畢業(yè)后的這 8 年,我在一個公司內(nèi)兜兜轉(zhuǎn)轉(zhuǎn),但是一直專注在一個技術(shù)領(lǐng)域上,并在底層技術(shù)、基礎(chǔ)服務(wù)、產(chǎn)品研發(fā)等不同的方向做探索。成長過程中可能有很多的幸運,你能遇到什么樣的團(tuán)隊和老板,可以做什么樣的事情,這些可能我們都很難完全控制,但是我們能夠控制的是作為一個工程師,你如何提升自己的技術(shù)能力,做好抓住機會的準(zhǔn)備。

三、工程師成長密碼

回過頭再來看這幾年,我在工作和社區(qū)中養(yǎng)成了一些習(xí)慣,這些習(xí)慣可能是對我的技術(shù)成長影響非常大的。

堅持寫代碼

顯而易見,作為一個工程師,我們最重要的職責(zé)就是寫代碼。熟能生巧,堅持寫代碼一定是工程師成長手冊中最重要的一點。不論是在做技術(shù)項目還是帶團(tuán)隊,寫代碼一定是我日常工作中最重要的一部分。

然而低質(zhì)量的重復(fù)是毫無意義的,我們要堅持寫代碼,更要堅持寫好代碼。

什么是好的代碼?這個問題可能不同的人眼中有不同的答案,對我而言,好的代碼起碼要滿足這三個條件:

  1. 好的代碼是簡單的,簡單的代碼架構(gòu)清晰,并且讓編碼變的更輕松;
  2. 好的代碼是給人看的,絕大部分的應(yīng)用都是要持續(xù)維護(hù)的,不給別人挖坑,也是不給未來的自己挖坑;
  3. 好的代碼是可測試的,通過編寫單元測試,既保障代碼的邏輯完備,減少 Bug,也利于后期維護(hù)與重構(gòu)。
保持代碼簡潔

先從簡單說起,簡單的代碼是容易理解的,然而想要編寫簡單的代碼,架構(gòu)起來又是更復(fù)雜的。這是給自己提出更高的要求,不斷優(yōu)化重構(gòu),在這個過程中得到成長。當(dāng)遇到一些復(fù)雜需求的時候,我始終堅信一點:如果一個邏輯我們作為實現(xiàn)者都很難梳理清楚,代碼中一堆的 if else 條件判斷,那用戶也一定是無法理解的。

所以當(dāng)遇到這種情況,我們需要從產(chǎn)品側(cè)和架構(gòu)側(cè)去思考,到底是什么原因?qū)е铝藦?fù)雜度?我們應(yīng)該是去優(yōu)化產(chǎn)品需求還是去優(yōu)化底層架構(gòu)。這也會迫使我們在產(chǎn)品和架構(gòu)上有更深入的思考。

Code Review

另外一個我和團(tuán)隊一直在堅持的習(xí)慣是 Code Review。CR 是一個非常好的提升代碼質(zhì)量的方式,它是需要團(tuán)隊投入大量精力的事情,但是一定收獲不菲。

我們直面 CR 的靈魂三問:

  1. 為什么要做 CR?業(yè)務(wù)催的那么緊,哪有時間做 CR?
  2. 誰來做 CR?是團(tuán)隊的主管、核心工程師才能幫別人 CR 嗎?
  3. CR 是一件很費精力的事情,如何才能堅持下來呢

Code Review 的主體是人, Review 的對象是代碼

  • 對于代碼提交者的人來說,當(dāng)你知道你的代碼會被其他人看到的時候,是肯定會更加注重代碼質(zhì)量的。我還記得我開始向社區(qū)成熟開源項目提交代碼的時候感受到的巨大壓力,它會讓你在提交代碼前更仔細(xì)的設(shè)計和編碼。經(jīng)過一次次的 CR 后,你會發(fā)現(xiàn)你的代碼質(zhì)量會飛速提升。
  • 對于評審人來說,每一次 CR 都可以增加你對整體代碼庫或者不同業(yè)務(wù)的熟悉程度,還可以傳授經(jīng)驗、提升團(tuán)隊影響力。
  • 最后,通過 Code Review,我們可以提升項目代碼的質(zhì)量與可維護(hù)性,統(tǒng)一團(tuán)隊的代碼風(fēng)格,并讓每一個業(yè)務(wù)邏輯都能盡量找到 back up。CR 是一件三贏的事情

CR 是一件很有意義的事情,但是我們應(yīng)該怎么去做呢?

第一步還是要從自己做起,通過自己的主動與堅持,帶動團(tuán)隊一起參與。在提交代碼的時候,寫好 commit message,做好自測,注意代碼的可讀性。抽時間來 Review 團(tuán)隊其他人的代碼,為每一行代碼負(fù)責(zé)。

但是 CR 畢竟還是一個團(tuán)隊的事情,如何保持團(tuán)隊 CR 的質(zhì)量呢?我們一定要嚴(yán)抓新人的第一次 CR。一般來說我們團(tuán)隊新人的第一個 PR 都會收到比較大的挑戰(zhàn)。新人對代碼不熟悉,編碼風(fēng)格也和團(tuán)隊可能不一致,第一次 CR 非常重要,需要讓大家都對齊對代碼質(zhì)量的標(biāo)準(zhǔn)和要求。

對新人重拳出擊

除了代碼之外,更上層的設(shè)計與架構(gòu)也需要做 Review,讓每一次系統(tǒng)功能設(shè)計、架構(gòu)升級都經(jīng)過 Review,不僅可以讓系統(tǒng)更穩(wěn)定,也可以快速提升自己的系統(tǒng)架構(gòu)能力。

Unit Tests
  • 你的代碼質(zhì)量如何度量?
  • 你是如何保證代碼質(zhì)量?
  • 你敢隨時重構(gòu)代碼嗎?
  • 你是如何確保重構(gòu)的代碼依然保持正確性?
  • 你是否有足夠信心在沒有測試的情況下隨時發(fā)布你的代碼?

如果對這些問題沒有答案,或者沒有 100% 的信心,那你需要給你的代碼做單元測試。

現(xiàn)在說起單元測試,大家其實還是有體感的。然而在 12、13 年我剛工作的時候,單元測試還是一個相對陌生的概念,但是當(dāng)時的 node 開源社區(qū)其實已經(jīng)慢慢開始流行起來寫單元測試了,當(dāng)你給其他開源項目提交代碼的時候,沒有測試是不可能被合并的。當(dāng)時高產(chǎn)的 TJ 不僅僅提供了 express connect 等 Web 框架,同時也提供了一系列底層配套的測試模塊,包括測試用例驅(qū)動器 Mocha,斷言庫 should.js,http 請求測試庫 supertest 等等。

跟隨社區(qū)一起,我們很早就把單元測試引入了我們的工作中,基本上從我正式工作開始編寫的第一行項目代碼開始就在寫單元測試了,這個習(xí)慣讓我在 8 年的工作經(jīng)歷中保持了不錯的代碼質(zhì)量,在沒有測試工程師測試過我的代碼的情況下,沒有搞出重大故障被阿里開除。

說起對業(yè)務(wù)代碼寫單元測試,可能大家的第一反應(yīng)還是哪有時間寫單元測試?。科鋵崒憜螠y真的沒有那么耗時,只要你找對工具和方法。對于單元測試來說,只需要四個步驟:

  1. 創(chuàng)建一些初始數(shù)據(jù);
  2. 對外部依賴進(jìn)行 mock;
  3. 最小粒度的執(zhí)行要測試的方法;
  4. 對結(jié)果做斷言。

剩下的就是按照這個方式構(gòu)造測試用例輸入,盡可能的覆蓋代碼中的每一個分支和邊緣場景。

Web 應(yīng)用中的單元測試更加重要,在 Web 產(chǎn)品快速迭代的時期,每個測試用例都給應(yīng)用的穩(wěn)定性提供了一層保障。API 升級,測試用例可以很好地檢查代碼是否向下兼容。對于各種可能的輸入,一旦測試覆蓋,都能明確它的輸出。代碼改動后,可以通過測試結(jié)果判斷代碼的改動是否影響已確定的結(jié)果。我們在做 Egg.js 的時候,最重要的一件事情就是給它編寫對應(yīng)的測試框架,讓業(yè)務(wù)方能夠更簡單、沒負(fù)擔(dān)的寫單測來保障代碼質(zhì)量。

而把代碼的覆蓋率提高,看到測試覆蓋率的報告全綠,不僅對上線代碼更有信心了,同時也是一件很有成就感的事情。

持續(xù)分享

如果說堅持寫代碼是練習(xí)和輸入,那另一個對我成長幫助很大的習(xí)慣就是分享,這看起來是一個對外的輸出,但在我看來它更是一個非常好的學(xué)習(xí)機會。

在我剛工作在數(shù)據(jù)產(chǎn)品部的時候,我們團(tuán)隊組織了一個 Show Me The Code 的內(nèi)部分享沙龍,是一個形式非常隨意的分享會,不需要準(zhǔn)備正式的 PPT,不需要很長的分享時長,就簡單的分享一下最近學(xué)到的新知識,看到的有趣的代碼。這個培養(yǎng)了我去分享的習(xí)慣。那時候經(jīng)常為了找一個分享的話題,去主動研究一些新的模塊,看他的源碼,自己也會去造一些小的輪子來解決實際工作中遇到的重復(fù)性工作。而現(xiàn)在在語雀團(tuán)隊,我也在組織內(nèi)部雙周分享會,已經(jīng)堅持了一年多的時間了。

再小的分享也會有收獲

工作的這些年我也陸陸續(xù)續(xù)在外面的會議進(jìn)行了不少的外部分享?;旧厦恳淮畏窒?,都需要自己先認(rèn)真的對要分享的內(nèi)容查漏補缺,并嘗試著將它準(zhǔn)備到淺顯易懂。每一次演講過后,都會讓你對這個演講主題的領(lǐng)域有更深的感受。

分享對我來說更多的是給我提供了一個非常好的階段性總結(jié)的機會,最好的學(xué)習(xí)方法就是教會別人,因為誰也不想在臺上出糗對吧。去聽一場技術(shù)分享,聽到的知識轉(zhuǎn)眼就忘了,而你認(rèn)真的去準(zhǔn)備一場演講,那場演講收獲最大的一定是你自己。

參與開源

對我的技術(shù)成長影響很大的另一個因素是開源,當(dāng)然開源本質(zhì)上也是一種分享。

現(xiàn)在是一個百花齊放的年代,開源世界的項目越來越多,根據(jù) GitHub 的數(shù)據(jù),2019 年有 4400 萬個新項目被創(chuàng)建。每一個有技術(shù)追求的工程師可能都想過要去 GitHub 上寫點什么。但是開源并不是指的在 GitHub 上提交代碼,開源更多的是一種心態(tài)。

  1. 開源意味著你要將你的代碼給所有的開發(fā)者審閱,就像前面 Code Review 的時候說的,把代碼給別人看是一件很有壓力的事情,更何況提交到 GitHub 后,所有人都能看到,你的同事、面試官都能看到。一定要認(rèn)真的對待每一行代碼,每一次提交。
  2. 同時當(dāng)有人使用你的開源項目時,意味著你要承擔(dān)起責(zé)任。盡管開源協(xié)議可能是很寬松的 MIT,但還是要對你寫的代碼負(fù)責(zé)。
  3. 開源應(yīng)該讓你感受到 “痛苦”,需要對開源代碼提出更嚴(yán)格的要求,追求最優(yōu)的代碼架構(gòu),測試完備,描述清晰,編寫高質(zhì)量代碼的過程會讓你感受到痛苦,但是會有更快的成長。

可能我們有時候很難自己想到一個很好的想法,或者很難自己實現(xiàn)一個那么高質(zhì)量的開源項目,不要著急,參與開源的門檻其實也沒那么高。

第一步,挑選一個工作中可以用到的領(lǐng)域的高質(zhì)量開源項目,為什么工作中可以用到很重要,因為這樣你才能更好的找到改進(jìn)的方向,找到痛點。例如我當(dāng)時選擇深入?yún)⑴c的開源項目是 Koa,因為我工作的重點也是在 Web 研發(fā)領(lǐng)域,而我覺得 Koa 當(dāng)時基于 co 提供的那套異步編程模型一定是未來的趨勢。

第二步,逐步參與進(jìn)去,一開始可能只是修一下文檔,找找 Bug 修復(fù)一下,補充幾個測試用例。慢慢的隨著你對代碼和周邊生態(tài)的完善,可以進(jìn)一步去實現(xiàn)一些缺失的周邊生態(tài),嘗試根據(jù)自己實際遇到的問題給項目提交一些功能改善。

國外有很多高質(zhì)量的項目,我們也可以幫他們做文檔的翻譯。不要小瞧文檔翻譯,翻譯一遍文檔就意味著你要深入理解這個項目,其實也是一件很難并且很有收獲的事情,還能夠提升社區(qū)影響力。

開源是一個成就感驅(qū)動的事情,因為你無法從中獲得看得著的收益。所以能夠持續(xù)的參與開源最重要的一點是你要能夠從中找到成就感。

四、和團(tuán)隊一起成長

說了這么多個人成長的事情,我還是想再稍微說一下團(tuán)隊。我們作為個人在團(tuán)隊中工作,只有幫助團(tuán)隊一起成長,拿到業(yè)務(wù)價值,才能將我們的技術(shù)成長 “變現(xiàn)”。而之前提到的 Code Review 亦或是單元測試,都是需要團(tuán)隊一起來配合的。

  1. 如果你的團(tuán)隊還沒有內(nèi)部的分享會,嘗試著自己去組織一個定期的內(nèi)部分享會;
  2. 從現(xiàn)在開始做 CR 和單測,用自己來影響團(tuán)隊;
  3. 嘗試著在團(tuán)隊中建立契合團(tuán)隊的工程師文化。

前兩點其實在之前的分享中都已經(jīng)提及到了,這也是我們團(tuán)隊一直在堅持和倡導(dǎo)的。我想說一下語雀的團(tuán)隊文化,在語雀我們希望每一個工程師都是產(chǎn)品工程師,他是產(chǎn)品的技術(shù)合伙人,參與產(chǎn)品討論、完成產(chǎn)品功能研發(fā),同時他也是某一個具體領(lǐng)域的技術(shù)專家,例如前端 UI 組件、編輯器領(lǐng)域、服務(wù)端領(lǐng)域等等。在我們的工作流程中,所有的工程師都是以全棧的身份參與項目研發(fā),跟進(jìn)項目從產(chǎn)品設(shè)計、到系統(tǒng)分析、研發(fā)自測,CR 以及上線的全流程。通過產(chǎn)品工程師文化,我們鼓勵每一個工程師都能夠在業(yè)務(wù)和技術(shù)上找到自己的成長方向,并陪著團(tuán)隊和業(yè)務(wù)一起快速成長。

個人成長很重要,同時想要取得好的結(jié)果得到晉升,一定要將個人的成長和團(tuán)隊的成長綁定起來。通過把自己的事情做到極致,幫助團(tuán)隊創(chuàng)造業(yè)務(wù)價值,在這個過程中提升自己在團(tuán)隊內(nèi)外的影響力。找到那個個人和團(tuán)隊雙贏的點去發(fā)力,可以得到事半功倍的效果。

免費獲取網(wǎng)站建設(shè)與網(wǎng)絡(luò)推廣方案報價

  • 關(guān)于我們

    深圳市廣雅達(dá)科技有限公司,是一家新型的全案網(wǎng)絡(luò)開發(fā)公司,作為以互聯(lián)網(wǎng)高端網(wǎng)站建設(shè)、APP開發(fā)、小程序開發(fā)為核心的專業(yè)網(wǎng)絡(luò)技術(shù)服務(wù)供應(yīng)商,廣達(dá)網(wǎng)絡(luò)致力于全面分析市場環(huán)境、衡量與預(yù)測市場需求、整合區(qū)別于行業(yè)競爭對手的絕對優(yōu)勢,結(jié)合品牌理念深度挖掘項目優(yōu)勢和產(chǎn)品價值,提升客戶品牌認(rèn)知、認(rèn)可度。

  • 我們的客戶

    廣達(dá)網(wǎng)絡(luò)歷經(jīng)十年沉淀,與國內(nèi)外數(shù)千家客戶達(dá)成合作關(guān)系。廣達(dá)網(wǎng)絡(luò)始終堅持“帷有專業(yè),才能拓展無限”的服務(wù)理念,堅持“認(rèn)真堅持細(xì)節(jié)”的優(yōu)質(zhì)服務(wù)理念,不斷完善自身,成就企業(yè),最終實現(xiàn)共贏。

  • 我們的業(yè)務(wù)

    廣達(dá)網(wǎng)絡(luò)主營業(yè)務(wù)范圍包含互聯(lián)網(wǎng)高端網(wǎng)站建設(shè)、APP開發(fā)、小程序開發(fā)、商城網(wǎng)站建設(shè)、公眾號運營以及數(shù)字營銷等,涵蓋了服務(wù)、房產(chǎn)、數(shù)碼、服裝、物流貿(mào)易等行業(yè),根據(jù)品牌現(xiàn)狀,為每個客戶量身定制項目整體服務(wù)方案,以敏銳的市場洞察力、創(chuàng)新的市場策劃能力,全面把握市場變化,為客戶實現(xiàn)從企業(yè)到消費者的價值轉(zhuǎn)換。

Designerpart Designagentur
Designerpart Designagentur
Designerpart Designagentur
Designerpart Designagentur
Designerpart Designagentur
Designerpart Designagentur