背景
目前市面上一些web前端工程在打包發(fā)布之前都會進(jìn)行代碼混淆加密。代碼混淆(Obfuscated code)是將計算機(jī)程序的代碼,轉(zhuǎn)換成一種功能上等價,但是難于閱讀和理解的形式的行為。代碼混淆可以用于程序源代碼,也可以用于程序編譯而成的中間代碼。而混淆后的代碼很難被反編譯,即使反編譯成功也很難得出程序的真正語義。通過進(jìn)行代碼混淆可以有效提升應(yīng)用被逆向破解的難度,并使其對可能別有用心的黑客無用,還可以減少文件大小、提升性能。
如果項目或客戶對現(xiàn)有的前端工程有定制化開發(fā)的需求,拿到混淆后的前端代碼也無從下手,這個時候只能申請相關(guān)前端工程源碼去做定制化開發(fā),然而這樣源碼就會對外暴露并存在泄露的風(fēng)險,還有可能會暴露出一些獨有技術(shù)或者商業(yè)信息?;谝陨项愃频膱鼍埃晏峁┝艘粋€前端無源碼定制化開發(fā)的能力。本文將從無源碼定制化開發(fā)的概念、意義,實踐和優(yōu)勢來進(jìn)行講解說明。
什么是無源碼定制化開發(fā)
想要了解什么是無源碼定制化開發(fā),首先要明白什么是源碼定制化開發(fā)。
源碼定制化開發(fā)
所謂源碼就是指編寫的最原始的程序代碼。任何一個網(wǎng)站頁面,換成源碼就是一堆按一定格式書寫的文字和符號。程序員編寫程序的過程中需要他們的“語言”,而他們的工作語言就是“源碼”了。用戶平時使用軟件時就是程序把“源碼”翻譯成用戶可以直觀看到的模樣。
定制化開發(fā),以現(xiàn)有軟件產(chǎn)品為基礎(chǔ),以客戶的個性化需求為目標(biāo)。通常,它由軟件產(chǎn)品開發(fā)人員執(zhí)行,或者由供應(yīng)商提供的第三方執(zhí)行定制化開發(fā)接口和源代碼。不同于完全定制的開發(fā),定制化開發(fā)不是從零開始開發(fā),而是基于現(xiàn)有的軟件。通俗地說就是在現(xiàn)有的軟件上進(jìn)行定制修改、擴(kuò)展功能,然后達(dá)到自己想要的功能,一般來說都不會改變原有系統(tǒng)的內(nèi)核。去做定制化開發(fā)你需要掌握以下能力:
第一,你要有這個開源產(chǎn)品的所用語言的語言基礎(chǔ),能看懂代碼是最基本的;
第二,你要對這個開源產(chǎn)品的功能能力和使用比較熟悉;
第三,你要熟悉這個開源產(chǎn)品的代碼結(jié)構(gòu),系統(tǒng)的框架結(jié)構(gòu),核心思想的代碼邏輯,以及文件目錄;
第四,你要根據(jù)項目的需求,利用開源產(chǎn)品的內(nèi)核,進(jìn)行系統(tǒng)的擴(kuò)展和修改,從而達(dá)到用戶需求。
無源碼定制化開發(fā)
無源碼定制化開發(fā)指的是在源碼編譯混淆的基礎(chǔ)上進(jìn)行定制化功能開發(fā),在不需要了解代碼結(jié)構(gòu)及不改變整體邏輯結(jié)構(gòu)的情況下從而快速達(dá)到用戶需求的開發(fā)方式,它具備成本低效率高,自定義能力強(qiáng),安全敏捷等優(yōu)點。元年無源碼定制化開發(fā)是通過開發(fā)一款yn-webpack-plugin插件,它能在使用webpack打包編譯的情況下將指定的定制化開發(fā)目標(biāo)源文件放到對應(yīng)的定制化開發(fā)目錄下,編譯發(fā)版后在不提供給用戶源碼的情況下項目也能基于發(fā)版出去的工程去做定制化開發(fā)從而快速滿足用戶的定制化開發(fā)業(yè)務(wù)需求。
無源碼定制化開發(fā)的意義
元年的平臺產(chǎn)品是一個龐大且復(fù)雜的系統(tǒng),對內(nèi)涉及的產(chǎn)品線數(shù)量多且功能復(fù)雜,對外涉及的項目也比較多,每個業(yè)務(wù)線和項目的需求又大有不同,而且變動頻繁,常常需要設(shè)計者與開發(fā)者能快速做出響應(yīng)?;跓o源碼定制化開發(fā)能力可以快速響應(yīng)每個業(yè)務(wù)線及企業(yè)的不同需求,滿足不同企業(yè)不同定制化的要求。并且每個項目在基于無源碼定制化開發(fā)能力開發(fā)的時候還能使用平臺提供的一些基礎(chǔ)能力,避免重復(fù)造輪子。在一些通用能力上只需要元年工程開發(fā)一套就能滿足所有企業(yè)都能使用,它能在以下幾點更好的滿足企業(yè)發(fā)展。
節(jié)約時間成本
使用無源碼進(jìn)行定制化開發(fā)的開發(fā)方式,可以節(jié)約很大一部分時間成本。因為程序的整體源碼邏輯已經(jīng)確定下來,開發(fā)基于無源碼定制化開發(fā)的能力不需要像很多源碼定制化開發(fā)一樣還要去了解項目結(jié)構(gòu),代碼邏輯編程思想等。開發(fā)要做的主要工作就是基于無源碼定制化開發(fā)能力,在定制化開發(fā)文件上,對原來代碼的基礎(chǔ)進(jìn)行功能的改進(jìn),基于此項目在開發(fā)周期上可以大大節(jié)省開發(fā)時間,并且能使上線時間提前。
節(jié)約人力成本
無源碼定制化開發(fā)可以節(jié)約人力成本。項目初期如果每個項目都存在一些定制化需求,那么每個項目都至少需要一個開發(fā)工程師,并且還對項目開發(fā)有一定的能力要求。無源碼定制化開發(fā)能力提供的能力可以減少項目自己去做一些重復(fù)造輪子的事情,可以基于提供的一些定制化開發(fā)能力直接使用,減少開發(fā)周期,減少人員,最后可能一個開發(fā)工程師就能支持多個項目。我們都知道,軟件開發(fā)公司最大的成本就是人力的成本,如果能夠從人力上節(jié)約成本,就能給軟件開發(fā)公司帶來更多的收益。所以無源碼定制化開發(fā),不管是對公司還是對客戶,都有很大的幫助和好處。
提升安全性
無源碼定制化開發(fā)可以提升安全性。無源碼定制化開發(fā)不需要我們提供源碼給項目上,項目只需要拿到發(fā)版物對預(yù)留的定制化開發(fā)文件做處理即可,這樣就減少了源碼暴露的風(fēng)險,在保證安全性的同時降低安全投入成本。
無源碼定制化開發(fā)能力的應(yīng)用
元年的無源碼定制化開發(fā)原理是通過插件機(jī)制來實現(xiàn)的,通過開發(fā)一款yn-webpack-plugin插件,它能在編譯發(fā)版后在不提供給項目源代碼的情況下將預(yù)留的定制化開發(fā)文件保留,項目通過去對定制化開發(fā)文件去做定制化開發(fā)從而快速滿足項目的定制化開發(fā)業(yè)務(wù)需求。項目還能避免去走申請流程申請源碼定制化開發(fā)等一系列耗時流程,直接拿到元年的發(fā)版物之后就能處理快速滿足客戶的一些需求。并且在我們發(fā)版后的定制化開發(fā)文件中也會將元年的一些基礎(chǔ)能力對外暴露,這樣項目上能直接使用基礎(chǔ)的能力,不需要再次賦能,減少項目對前端開發(fā)能力的一些要求。
無源碼定制化開發(fā)優(yōu)勢
無源碼定制化開發(fā)是通過一系列技術(shù)手段實現(xiàn)的一種開發(fā)方式,使用無源碼進(jìn)行定制化開發(fā)的開發(fā)方式,它的優(yōu)勢有以下幾點:
-
解決各個項目個性化需求難實現(xiàn)問題;
-
增強(qiáng)業(yè)務(wù)擴(kuò)展性、業(yè)務(wù)適配性;
-
降低項目上對人員的開發(fā)能力要求,更快上手;
-
降低源碼及商業(yè)信息暴露的風(fēng)險;
-
降低代碼沖突及代碼升級合版的風(fēng)險;
-
可以更好資源整合、合理分配、降低成本等。文章來源:http://www.zghlxwxcb.cn/news/detail-609349.html
綜上,無源碼定制化開發(fā)的能力不僅能滿足企業(yè)內(nèi)部業(yè)務(wù)線、外部企業(yè)更好地敏捷開發(fā),從時間、成本、人員、安全性等各個方面應(yīng)對市場的變化,還能夠快速駕馭需求的變化滿足企業(yè)的要求。文章來源地址http://www.zghlxwxcb.cn/news/detail-609349.html
到了這里,關(guān)于一種前端無源碼定制化開發(fā)能力專利解讀的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!