對于采用單頁應用作為前端架構的網站來說,會面臨著一個網頁需要加載的代碼量很大的問題,因為許多功能都集中的做到了一個HTML里。這會導致網頁加載緩慢、交互卡頓,用戶體驗將非常糟糕。導致這個問題的根本原因在于一次性的加載所有功能對應的代碼,但其實用戶每一階段只可能使用其中一部分功能。所以解決以上問題的***就是用戶當前需要用什么功能就只加載這個功能對應的代碼,也就是所謂的按需加載。
在給單頁應用做按需加載優化時,一般采用以下原則:
把整個網站劃分成一個個小功能,再按照每個功能的相關程度把它們分成幾類。把每一類合并為一個Chunk,按需加載對應的Chunk。對于用戶首次打開你的網站時需要看到的畫面所對應的功能,不要對它們做按需加載,而是放到執行入口所在的Chunk中,以降低用戶能感知的網頁加載時間。對于個別依賴大量代碼的功能點,例如依賴Chart.js去畫圖表、依賴flv.js去播放視頻的功能點,可再對其進行按需加載。被分割出去的代碼的加載需要一定的時機去觸發,也就是當用戶操作到了或者即將操作到對應的功能時再去加載對應的代碼。被分割出去的代碼的加載時機需要開發者自己去根據網頁的需求去衡量和確定。
由于被分割出去進行按需加載的代碼在加載的過程中也需要耗時,你可以預言用戶接下來可能會進行的操作,并提前加載好對應的代碼,從而讓用戶感知不到網絡加載時間。
上述內容簡單地介紹了一下webpack的按需加載,引用自文章《webpack學習筆記--按需加載》,文章地址為:
https://www.cnblogs.com/joyco773/p/9051401.html
webpack打包壓縮實踐首先新建一個文件夾webpack-demo,目錄行進入文件話,通過npminit-y構建一個項目工程,安裝如下幾個工具包:
npmiwebpackwebpack-climini-css-extract-plugincss-loader完成過如下圖所示:
然后便可在文件夾根目錄新建一個webpack.config.js文件,編寫webpack配置項,如下所示:
constpath=require('path')constMiniCssExtractPlugin=require("mini-css-extract-plugin");module.exports={mode:'development',//環境模式devtool:"source-map",entry:path.resolve(__dirname,'./main.js'),//打包入口output:{path:path.resolve(__dirname,'dist'),//打包出口filename:'js/[name].js'//打包完的靜態資源文件名},module:{rules:[{test:/.css$/,use:[MiniCssExtractPlugin.loader,"css-loader"]}]},plugins:[newMiniCssExtractPlugin({filename:"[name].css",})]}目前我們還沒有編寫入口,同樣在根目錄下新建一個main.js,并且引入四個css文件,如下所示:
css文件的內容我們分別給一個象征性的樣式:
.a{font-size:12px;}.b{color:#fff;}.c{background-color:red;}.d{padding:10px;}最后一步便是在package.json添加script指令,如下所示:
{"name":"webpack-demo","version":"1.0.0","description":"","main":"index.js","scripts":{"dev":"webpack--config./webpack.config.js"},"keywords":[],"author":"","license":"ISC","dependencies":{"css-loader":"^5.2.6","mini-css-extract-plugin":"^1.6.0","webpack":"^5.39.1","webpack-cli":"^4.7.2"}}運行指令npmrundev,wepback會在根目錄新建一個dist目錄,凡是在main.js入口文件中引入的css文件,都將會被打包成一個css文件,不信你看:
此時main.css文件中,同時包含了a.css、b.css、c.css、d.css四個文件的內容,只要命名不沖突,你可以在你需要的地方,直接引入main.css文件。映射文件也保存在main.css.map文件中,如下圖所示:
本demo的下載地址:https://s.yezgea02.com/1624090152147/webpack-demo.zip,感興趣的可以下載看一下。
慕課網涉嫌抄襲和webpack按需加載有什么關系?慕課網涉嫌抄襲我的開源項目,這件事情我之前已經發布了多篇文章。最近,也一直在整理起訴的材料,我主要是根據公證材料中的內容來搜集證據。
《newbee-mall開源項目被慕課網拿去做課程,然而我毫不知情,這又是什么騷操作?》《newbee-mall開源項目被慕課網拿去做課程,項目詳細對比記錄,更多實錘看這里》《一個被慕課網拿去做Java就業班終極項目的開源商城項目,推薦給大家》《花費3680元買了一個慕課網的Java就業班課程,里面竟然有自己寫的開源項目!》《newbee-mall開源項目被慕課網拿去做課程,講師已道歉,課程卻還在售賣》《可笑!慕課網涉嫌抄襲開源項目至今沒有道歉,而且在偷偷的“毀尸滅跡”》之前已經比對了項目頁面、項目設計等等內容。律師告訴我,這些證據能夠使用,不過最好加上代碼的比對。通過項目的視覺效果和代碼的重復比例來證明存在抄襲行為,因為我國著作權法對侵犯著作權的判定規則是“接觸+實質性相似”,“侵權=接觸+實質性相似”是被普遍接受并在司法實務中執行的規則,屬于一般著作權侵權認定的通用標準。
項目的視覺效果和代碼的重復比例,如果在這兩個方面都有很直接的證據,那么證明慕課網涉嫌抄襲的項目和newbee-mall項目二者存在“實質性相似”就更為有利。所以,我不僅僅在寫文章和回復評論,近期主要的精力花在了代碼的比對上面,而比對的結果也讓人哭笑不得,因為代碼的重復度實在太高太高了,很多代碼都是直接復制過去的。
而比對代碼的時候,就牽涉到了webpack的按需加載技術。
慕課網涉嫌抄襲的課程名稱是《Java工程師》,我已經在公證的情況下購買了該課程,購買過程已被公證。同時該課程中涉嫌抄襲的項目代碼我也已經下載了,下載過程也被公證。整理證據時用到的就是這份公證后的代碼壓縮包,在解壓后,可以看到項目源碼,如下圖所示:
分別是樣式文件和頁面文件。我們可以看到,代碼都是被處理過的,如果直接打開的話,是很難進行代碼比對的。但是通過代碼的命名方式和文件大小能夠看出,其實這些代碼都是被壓縮過了,最有可能的方式就是webpack的壓縮,命名方式是[name].[hash].chunk.js,也就是在前一小節中的實踐代碼配置中,加上一個chunkFilename的配置即可。這樣的話,首頁、搜索頁、商品詳情頁、購物車頁面、訂單頁面等等頁面的樣式文件和頁面代碼文件都可以壓縮到一個文件中。作為一個開發人員,錘人的方式就比較樸素而直接,直接把原理簡單的分析一遍,然后再分析代碼。
好的,來。
慕課網涉嫌抄襲開源項目newbee-mal的代碼對比之前雖然也發布了不少文章,不過并沒有把項目的源碼比對發出來。所以,有很多網友在質疑我是炒作、說我是祥林嫂、說這次事件一定會有反轉、還說慕課網肯定會拿出證據打我的臉。好吧,我一直在等著反轉,一直在等著慕課網打我的臉,但是直到今天也沒等到,那我就繼續把證據放出來吧。這次的證據比較直接,慕課網上《Java工程師》課程終極項目的代碼涉嫌大面積的抄襲newbee-mall。通過項目視覺對比、代碼對比可知,頁面展示效果相似度達到95%以上,代碼重復度達到90%以上,展示效果的比對在之前一篇文章里,這篇文章中的內容主要是代碼比對。
好的,大家來長長眼吧!
進入imooc-mall/src/main/resources/static文件夾下,使用瀏覽器打開該文件夾下的index.html文件,效果如下圖所示:
在頁面上右鍵點擊“檢查”或者按住f12鍵,進入瀏覽器的控制臺。進入Sources面板,并依次點開文件夾至css目錄,如下圖所示,可以看到慕慕生鮮項目的頁面源代碼:
上述static/static/css目錄中的文件在源代碼中是看不到的,不過,這不代表這些文件不存在,而是代碼被壓縮了。源代碼文件中的main.9a3b9d8e.chunk.css文件就是這些文件壓縮后的文件,瀏覽器在渲染頁面時將通過main.9a3b9d8e.chunk.css.map文件對源代碼進行按需加載。所以這些源代碼并不是不存在,而是被壓縮了。main.9a3b9d8e.chunk.css.map文件就維護了文件的映射關系,打開文件可以看到映射配置:
{"version":3,"sources":["index.css","App.css","login.css","header.css","pay.css","main.9a3b9d8e.chunk.css","iconfont.css","common.css","cart.css","sweetalert.css","detail.css","index.scss","header.scss","detail.scss","personal.css","my-orders.css","bootstrap-modal.css","order-detail.css","order-settle.css","order-detail.scss","pay-select.css","personal.scss","search.css"],"names":[]所有這些源文件的代碼都被壓縮進main.9a3b9d8e.chunk.css文件中。
好的,接下來,依次通過瀏覽器點開這些文件,并與newbee-mall項目中的文件對比:
index.css代碼比對上圖中是慕慕生鮮項目中的index.css源文件,下方為newbee-mall項目中的index.css源文件:
.all-sort-list{position:relative;float:left;width:228px;border-top:none;background:#000;height:100%;}.all-sort-list.item{height:49px;border-top:1pxsolid#FFFFFF;}.all-sort-list.item.bo{border-top:none;}.all-sort-list.itemh3{height:30px;line-height:45px;font-size:15px;font-weight:normal;width:199px;overflow:hidden;}.all-sort-list.itemspan{padding:0px5px;color:#1baeae;font-family:"B8BF53";}這里只提供了前50行的代碼對比,完整的源碼對比將整理在另外的附件中,作為證據材料。
最終的比對結論:文件名稱一模一樣,代碼重復度為98%,完完全全的抄襲行為!
header.css代碼比對上圖中是慕慕生鮮項目中的header.css源文件,下方為newbee-mall項目中的header.css源文件:
#header{display:flex;justify-content:center;width:100%;height:40px;background-color:#333;}#header.center{width:1226px;height:40px;flex-shrink:0;display:flex;justify-content:space-between;align-items:center;}#header.centerullia{display:flex;align-items:center;height:12px;font-size:14px;color:#b0b0b0;padding:08px;border-right:1pxsolid#b0b0b0;}#header.centerulli:last-of-typea{border-right:none;}#header.center.fl{flex-shrink:0;display:flex;width:680px;}#header.center.fr{display:flex;height:40px;}這里只提供了前40行的代碼對比,完整的源碼對比將整理在另外的附件中,作為證據材料。
最終的比對結論:文件名稱一模一樣,代碼重復度為99%,完完全全的抄襲行為!
login.css代碼比對上圖中是慕慕生鮮項目中的login.css源文件,下方為newbee-mall項目中的login.css源文件:
body{background:#14212a;}.top{width:100%;height:100px;background:#fff;}.top.logo{width:1130px;height:160px;}.top.logoimg{border:none;margin-top:-15px;}.form{width:1130px;height:588px;background:url("../image/login_bg.png")no-repeatcentercenter;}.form.login{width:400px;height:470px;margin:30pxauto;background:#444;color:#fff;margin-right:0px;border-radius:4px;font:12px"宋體",TimesNewRoman;}這里只提供了前36行的代碼對比,完整的源碼對比將整理在另外的附件中,作為證據材料。
最終的比對結論:文件名稱一模一樣,代碼重復度為99%,完完全全的抄襲行為!
除以上列舉的代碼抄襲外,還有detail.css文件、cart.css文件、personal.css文件、common.css文件、search.css文件、my-orders.css文件、order-detail.css文件、order-settle.css文件、pay.css文件、pay-select.css文件,這些文件的代碼重復度也基本都達到了100%,完整的源碼對比將整理在另外的附件中,作為證據材料。
頁面的樣式代碼是完全的抄襲,newbee-mall項目的頁面代碼也被大面積的抄襲。
上圖中static/static/js/pages目錄中的文件就是慕慕生鮮各個頁面的源代碼,這部分代碼在源文件中也是無法直接看到的,同樣進行了壓縮處理。源代碼文件中的main.ed04a20c.chunk.js文件就是這些文件壓縮后的文件,瀏覽器在渲染頁面時將通過main.ed04a20c.chunk.js.map文件對源代碼進行按需加載。所以這些源代碼并不是不存在,而是被壓縮了。main.ed04a20c.chunk.js.map文件就維護了文件的映射關系,打開文件可以看到映射配置:
{"version":3,"sources":["assets/image/login-logo-2.png","assets/logo2.png","assets/image/pay/payOnline_zsyh.png","assets/image/pay/payOnline_gsyh.png","assets/image/pay/payOnline_jsyh.png","assets/image/pay/payOnline_jtyh.png","assets/image/pay/payOnline_zgyh.png","assets/image/pay/payOnline_gdyh.png","assets/image/pay/payOnline_xyyh.png","assets/logogif.gif","assets/11.jpg","assets/image/7d.jpg","assets/image/hua.png","assets/image/card.png","assets/image/ji.png","assets/banner10.jpg","assets/banner11.jpg","assets/banner12.jpg","assets/image/pay/payOnline_zfb.png","assets/image/pay/weixinpay.png","assets/image/pay/unionpay.png","assets/image/pay/payOnline_nyyh.png","assets/image/pay/payOnline_youzheng.png","assets/image/pay/payOnline_gfyh.png","assets/image/pay/payOnline_pufa.png","assets/image/pay/payOnline_zxyh.png","assets/image/pay/payOnline_shncsyyh.png","assets/image/pay/payOnline_jiangsshuyh.png","assets/image/pay/wxpay_qrcode.png","logo.svg","assets/image/pay/alipay_qrcode.png","assets/image/sub_banner/r4.jpg","assets/image/sub_banner/hot2.jpg","assets/image/sub_banner/hot3.jpg","assets/image/sub_banner/hot4.jpg","assets/image/sub_banner/m6.jpg","assets/image/sub_banner/headphones.jpg","assets/image/sub_banner/pc.jpg","assets/image/sub_banner/air.jpg","assets/image/sub_banner/baby-car.jpg","assets/image/sub_banner/r1.jpg","assets/image/sub_banner/r2.jpg","assets/image/sub_banner/r3.jpg","assets/image/sub_banner/r5.jpg","assets/image/sub_banner/r6.jpg","../node_modules/moment-mini/localesync/^/.//.*$","assets/image/search/right-@1x.png","http.js","api.js","pages/login.js","pages/alipay.js","pages/footer.js","pages/cart.js","pages/components/header-fragment.js","pages/components/nav-fragment.js","pages/detail.js","pages/header.js","pages/index.js","pages/personal-sidebar.js","pages/my-orders.js","pages/order-detail.js","http2.js","pages/order-settle.js","pages/pay-select.js","pages/personal.js","pages/register.js","pages/search.js","pages/wxpay.js","App.js","serviceWorker.js","index.js"]慕慕生鮮所有頁面源文件的代碼都被壓縮進main.ed04a20c.chunk.js.map文件中。
好的,接下來,依次通過瀏覽器點開這些文件,并與newbee-mall項目中的文件對比。
首頁代碼比對上圖中是慕慕生鮮項目中index頁面的源文件,下方為newbee-mall項目中index頁面的源文件:
<divid="banner"><divclass="all-sort-list"><th:blockth:each="category:${categories}"><divclass="item"><h3><span>·</span><ahref="##"><th:blockth:text="${category.categoryName}"></th:block></a></h3><divclass="item-listclearfix"><divclass="subitem"><th:blockth:each="secondLevelCategory:${category.secondLevelCategoryVOS}"><dlclass="fore1"><dt><ahref="#"><th:blockth:text="${secondLevelCategory.categoryName}"></th:block></a></dt><dd><th:blockth:each="thirdLevelCategory:${secondLevelCategory.thirdLevelCategoryVOS}"><em><ahref="#"th:href="@{'/search?goodsCategoryId='+${thirdLevelCategory.categoryId}}"><th:blockth:text="${thirdLevelCategory.categoryName}"></th:block></a></em></th:block></dd></dl></th:block></div></div></div></th:block></div><divclass="swiper-containerfl"><divclass="swiper-wrapper"><!--配置了輪播圖則顯示后臺配置的輪播圖--><th:blockth:unless="${#lists.isEmpty(carousels)}"><th:blockth:each="carousel:${carousels}"><divclass="swiper-slide"><ath:href="@{${carousel.redirectUrl}}"><imgth:src="@{${carousel.carouselUrl}}"alt=""></a></div></th:block></th:block><!--未配置輪播圖則顯示默認的三張輪播圖--><th:blockth:if="${#lists.isEmpty(carousels)}"><divclass="swiper-slide"><imgsrc="./mall/image/swiper/banner01.jpg"alt=""></div><divclass="swiper-slide"><imgsrc="./mall/image/swiper/banner02.jpg"alt=""></div><divclass="swiper-slide"><imgsrc="./mall/image/swiper/banner03.jpg"alt=""></div></th:block></div><divclass="swiper-pagination"></div><divclass="swiper-button-prev"></div><divclass="swiper-button-next"></div></div></div>這里只提供了前63行的代碼對比,完整的源碼對比將整理在另外的附件中,作為證據材料。
最終的比對結論:代碼重復度為80%以上,不僅僅抄襲頁面代碼,連開發時寫的注釋也都復制過來,這是完完全全的抄襲行為!
商品詳情頁代碼比對上圖中是慕慕生鮮項目中商品頁面的源文件,下方為newbee-mall項目中商品詳情頁面的源文件:
<divid="detail"><!--nav--><navth:replace="mall/header::nav-fragment"></nav><divclass="dc"><divclass="contentw"><divclass="titlefl">商品詳情</div><divclass="clear"></div></div></div><divclass="intromt20wclearfix"><divclass="leftfl"style="position:relative;"><divclass="swiper-containerfl"><imgth:src="@{${goodsDetail.goodsCoverImg}}"></div></div><divclass="rightfr"><divclass="h3ml20mt20"th:text="${goodsDetail.goodsName}">NewBeeMall</div><divclass="sub_titlemr40ml20mt10"th:text="${goodsDetail.goodsIntro}">NewBeeMall</div><divclass="item_pricemr40ml20mt10"><th:blockth:text="${goodsDetail.sellingPrice}+'.00元'"></th:block><del><th:blockth:text="${goodsDetail.originalPrice}+'.00元'"></th:block></del></div><divclass="order"><inputclass="car"type="button"th:onclick="'saveAndGoCart('+${goodsDetail.goodsId}+')'"value="立即選購"/><inputclass="car"type="button"th:onclick="'saveToCart('+${goodsDetail.goodsId}+')'"value="加入購物車"/></div><divclass="tb-extraml20"id="J_tbExtra"><dl><dt>承諾</dt><dd><aclass="J_Cont"title="滿足7天無理由退換貨申請的前提下,包郵商品需要買家承擔退貨郵費,非包郵商品需要買家承擔發貨和退貨郵費。"href="#"target="_blank"><imgth:src="@{/mall/image/7d.jpg}">7天無理由</a></dd></dl><dl><dt>支付</dt><dd><ahref="##"target="_blank"><imgth:src="@{/mall/image/hua.png}">螞蟻花唄</a><ahref="##"target="_blank"><imgth:src="@{/mall/image/card.png}">信用卡支付</a><ahref="##"target="_blank"><imgth:src="@{/mall/image/ji.png}">集分寶</a></dd></dl><dl><dt>支持</dt><dd>折舊變現,買新更省錢。<astyle="float:none;text-decoration:underline;"href="##">詳情</a></dd></dl></div></div><divclass="clear"></div></div><!--這里使用的是th:utext標簽,用th:text不會解析html,用th:utext會解析html--><divclass="goodsmt20wclearfix"th:utext="${goodsDetail.goodsDetailContent}"></div></div>這里只提供了前65行的代碼對比,完整的源碼對比將整理在另外的附件中,作為證據材料。
最終的比對結論:代碼重復度為90%以上,不僅僅抄襲頁面代碼,連文案也完完整整的抄襲,這是***裸的抄襲行為!
除以上列舉的代碼抄襲外,還有login.js文件、register.js文件、header.js文件、search.js文件、cart.js文件、personal.js文件、personal-sidebar.js文件、pay-select.js文件、order-settle.js文件、my-orders.js文件、order-detail.js文件、order-settle.js文件、alipay.js文件、weixin-pay.js文件,這些文件的代碼重復度也基本都達到了90%以上,完整的源碼對比將整理在另外的附件中,作為證據材料。
大家關心的問題,統一答疑開源項目不是誰都能用的嗎?這個問題還真的有不少人問。
話這么說沒錯,開源項目本身就是把所有的代碼都***了出去,所以所有人都能夠拿去用是沒錯的。包括newbee-mall這個項目也是如此,你可以下載所有的代碼、源文件,可以用來學習,也可以用來做東西。
但是,項目開源了,不代表作者把所有權利都放棄了。無規矩不成方圓,改個logo,改個名字,說是自己的項目,這就不行了。慕慕生鮮這次涉嫌抄襲的行為就是絕對有問題的,源碼拿去改掉、項目名稱改掉、項目LOGO改掉、原作者的所有版權信息刪除、聲稱是自己的原創項目,這就是犯法的行為。拿起筷子吃飯,放下筷子罵娘,這種行為是要鄙視的。
換一個角度來說,如果newbee-mall項目的作者是你,遇到這種行為,你該怎么做呢?
為什么一直在發文章?發文章有用嗎?有用啊!
不發文章,被抄襲和剽竊的痛無處抒發,我只能被人白白地欺負。
不發文章,技術圈內的人會知道這件事嗎?現在,很多人都知道這件事的前因后果了,也得到了大多數人的支持,謝謝你們。
不發文章,慕課網會刪改課程內容嗎?現在,他們怕了,已經把課程內容中涉嫌侵權的內容全部“毀尸滅跡”了。
不發文章,我會收到道歉嗎?現在,我只收到了一份疑似講師的道歉,慕課網的道歉,我等你哦!
不發文章,慕課網的法務會聯系我的律師嗎?現在,雙方已經在溝通了,不過對方還是那么的傲嬌,涉嫌犯法的是你,好不好?!!搞不清楚狀況嗎?
怎么天天看到你發的文章,就只會抱怨,怎么像祥林嫂一樣的?并沒有天天發文章,現在還是一周一篇文章的節奏,和之前一樣,順帶著會提一下這個事情。
我和祥林嫂不同的,雖然我們面對的情況都是被“惡狼”搶走了孩子,但是我一直在行動,一直在發聲。而且,并沒有抱怨,我一直在講解前因后果和過程中發生的事情,就事論事而已。另外,我從一開始就做了很多的***行動,搜集證據、公證、證據保全、找律師、準備起訴材料。所以,這并不是被抄襲和剽竊后的抱怨,大家也不能這樣理解。我的一切行為都是為了***,而且我也一直在實實在在地做***的事情。預計在7月份之前就會起訴了,這周或者下周吧。
就只會天天發文章,你就不能直接起訴嗎?路要一步一步走。
你們是不是覺得所有事情都能在瞬間就可以做完啊?起訴像是喘口氣那么簡單的嗎?
從我知道這件事情到今天也就一個月時間,前面半個月是在確認抄襲行為存不存在和找律師。實際的曝光和整理證據材料都是從六月份中旬開始做的,而且已經做了很多訴前準備,只是這些材料和證據的整理要花時間啊。整理完成后,就會實際的去法院起訴了。
就只看到你一個人說,慕課網一句話都不說,你肯定有鬼!哈哈哈哈哈哈哈哈。
這種話,雖然說的人少,但是還真的有幾個人這么給我留言了!還是統一回復下吧,我沒辦法讓慕課網說話,因為我也在等著他們的回復呢!但是他們就一直不回復啊,就硬挺著啊。
不過,我肯定會一直發聲的,他們要是能挺就一直挺著好了。我會盡我所能,讓越來越多人知道這件事,看清楚某些平臺的嘴臉。還有,他們不可能一直都不發聲的,后面起訴了,就法庭上見咯。他們在法庭上一句話也不說?不可能吧。
就你一個人在叭叭的說,肯定會反轉,等你啪啪打臉!正常人都能夠看出來我發聲的目的就是***,而不是撕逼。我只是把***的事情記錄下來,從發現被侵權,到開始***,再到***的準備工作和***的實際做法,還有***的過程,最后是***的結果和總結。我不想和任何人撕逼,我只是記錄發生在我身上的事情而已,沒有違反任何技術社區的發文規范,完全符合各個技術社區的要求,我想發多少就發多少。
其實,過程中我也有過胡思亂想的時候,就是這件事情會有反轉嗎?
目前來看,概率極小。首先是證據方面,從我自身掌握的證據以及我發布的文章中可以看出,這次慕課網涉嫌抄襲的證據越來越完整和完善。包括但不限于頁面設計抄襲、創意抄襲、代碼抄襲、文案抄襲。通過項目視覺對比、代碼對比可知,頁面展示效果相似度達到95%以上,代碼重復度達到90%以上,涉嫌抄襲的行為是蓄意且主動的,而且還刪除了該項目中關于我的版權信息并說是自己的原創項目。以上這些都是公證材料中整理出來的證據。
其次,是慕課網這段時間的行為和態度。自從我曝光這件事情后,慕課網已經連夜“升級”了《Java工程師》課程,我提到的能夠看出來的地方已經被全部刪除了。對,在我眼皮子底下做的“毀尸滅跡”,看到這種掩耳盜鈴的行為,我也是笑了挺久的。雙方行為和態度的差別,大家應該也能夠很直觀地看出來。
我會讓這件事情筆直且順利地進展下去,不會讓它發生反轉的。
總結證據、材料都快整理好了,起訴書也讓律師開始準備了。期待事件反轉的人啊,讓你們失望了。
慕課網作為國內IT教育平臺的執牛耳者,應該高高地扛起保護知識產權的大旗,應該維護原創者的合法權益,應該嚴厲地打擊抄襲、剽竊、盜版等行為,應該給同行們做好表率。千萬不要試圖以高高在上的姿態侵犯一個開發者的合法知識產權,決不能助長這種不正之風。慕課網,你手中的劍應該指向“惡龍”啊!
我是程序員十三。關于慕課網無通知無授權的情況下改造我的開源項目newbee-mall并進行上線售賣的事件,我不止寫了這一篇文章,也不止在一個平臺上發布。這些文章我已經在十三個平臺上同步發表,包括今日頭條、微信公眾號、微博、知乎、嗶哩嗶哩、掘金、博客園、CSDN、InfoQ寫作平臺、思否、51CTO、開源中國OSCHINA、騰訊云+社區,賬號名稱都是“程序員十三”。
后續我會一直在我的微信公眾號里發聲,關注我即可查看事件詳情和最新進展,畢竟在其它平臺可能文章會莫名其妙地就“沒”了。也希望各位看到文章的朋友能幫忙轉發,再次感謝大家。
如果有需要轉載的朋友,注明來源即可轉載,或者可以聯系我進行文章授權。
一直在發文章,也有很多朋友建議我做視頻發到各個視頻平臺。我只會錄屏,剪輯和視頻處理并不會,如果對這件事情有興趣且具有剪輯能力的朋友可以聯系我,我提供所有素材,對這件事進行曝光和***記錄,發布到各個視頻平臺。
2021年6月6日,是我第一次針對這次事件的發聲,之后陸陸續續共發布了六篇文章:
《newbee-mall開源項目被慕課網拿去做課程,然而我毫不知情,這又是什么騷操作?》《newbee-mall開源項目被慕課網拿去做課程,項目詳細對比記錄,更多實錘看這里》《一個被慕課網拿去做Java就業班終極項目的開源商城項目,推薦給大家》《花費3680元買了一個慕課網的Java就業班課程,里面竟然有自己寫的開源項目!》《newbee-mall開源項目被慕課網拿去做課程,講師已道歉,課程卻還在售賣》《可笑!慕課網涉嫌抄襲開源項目至今沒有道歉,而且在偷偷的“毀尸滅跡”》2021年6月21日,是我第五次針對這次事件的發聲,也就是當前各位朋友在看到這篇文章。后續我也會繼續更新這次***事件。
除注明轉載/出處外,皆為作者原創,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,否則保留追究法律責任的權利。