Categories
程式開發

數據科學家應該了解的最佳軟件工程實踐

本文最初發表在Towards Data Science 博客,經原作者Kurtis Pykes 授權,InfoQ 中文站翻譯並分享。

我一直與朋友們熱切地研究並嘗試一些能使我成為更好的數據科學家的方法。如果不與那些幫助過我的人們分享目前的情況,我是不可能在事業上取得進步的。

最近,我在LinkedIn 上進行了一次民意調查,我驚訝地發現,很多人持有這樣的觀點:數據科學家必須懂得編程標準並遵循工程最佳實踐。…

Categories
程式開發

Android端代碼染色原理及技術實踐

導讀

高德地圖開放平台產品不斷迭代,代碼邏輯越來越複雜,現有的測試流程不能保證完全覆蓋所有業務代碼,測試不到的代碼及分支,會存在一定的風險。為了保證測試全面覆蓋,需要引入代碼覆蓋率做為測試指標,需要對SDK代碼進行染色,測試結束後可生成代碼覆蓋率報告,作為發版前的一項重要卡點指標。本文小結了Android端代碼染色原理及技術實踐。

JaCoCo工具

JaCoCo有以下優點:

  • 支持Ant和Gradle打包方式,可以自由切換。
  • 支持離線模式,更貼合SDK的使用場景。
  • JaCoCo文檔比較全面,還在持續維護,有問題便於解決。

JaCoCo主要是通過ASM技術對Java字節碼進行處理和插樁,ASM和Java字節碼技術不是本文重點,感興趣的朋友可以自行了解。下面重點介紹JaCoCo的插樁原理。…

Categories
程式開發

Let’s Encrypt實踐指北

最近剛好有個項目需要配置HTTPS,也購買了域名,尤其在知道了本文要介紹的“神器” —— Let’s Encrypt 之後,大大簡化了學習成本和時間。

初衷

一直以來,對於HTTPS證書的概念都有些含糊不清,似懂非懂。原因是自己之前比較懶,對於一些需要前置條件(買域名買證書等)才能玩的東西總是積極不起來(對!一定是窮)。而最近剛好有個項目需要配置HTTPS,也購買了域名(實踐時自己還是買了域名),尤其在知道了本文要介紹的“神器” —— 讓我們加密 之後,大大簡化了學習成本和時間。趁著一些碎片化的時間,研究了證書的一些基本概念以及使用方法,總結下來,以供參考。另外,在我查找一些相關文檔的過程中發現一個問題,就是由於這方面知識的時效性很差,出現很多信息不對等的情況,索性我將參考過的所有官網文檔鏈接貼在了最後,方便大家在看到這篇文章時,根據鏈接查看最新官方支持情況。…

Categories
程式開發

騰訊信息流熱點挖掘技術實踐

導讀: 当前各大资讯社交类APP都在显著的版面展示或者推荐热点相关内容,信息流应用能否快速发现热点、引导用户阅读热点,是影响用户体验的重要因素。本次分享主要介绍腾讯在热点挖掘方面的工作。基于搜索数据和自媒体文章,通过时序分析方法和内容聚类相结合的方法挖掘热点,并将热点聚类成事件和话题。用户搜索和媒体生产能够从消费和生产两个方面更加准确的度量热度,事件和话题同时能够辅助用户理解,做到热点的个性化下发,从而提升信息流热点体验。本文主要内容包括:

  • 項目背景
  • 相關研究方法
  • 熱點計算框架
  • 熱點挖掘
  • 熱點應用

01 項目背景

Categories
程式開發

TiDB 4.0 在 VIPKID 的应用实践

本文分享的是 TiDB 4.0 版本在 VIPKID 的应用实践,包括 TiDB 在 VIPKID 的应用场景以及

Categories
程式開發

為什麼卷積神經網絡優於傳統機器學習算法?

本文最初發表於Towards Data Science 博客,經原作者Rade Nježić 授權,InfoQ 中文站翻譯並分享。

近十年來,隨著深度學習的發現,圖像分類領域經歷了復興。傳統的機器學習方法已被更新的、更強大的深度學習算法所取代,例如卷積神經網絡。然而,要真正理解並欣賞深度學習,我們必須知道為什麼其他方法失敗了,而深度學習卻成功了。在本文中,我將試圖通過對Fashion MNIST 數據集應用不同的分類算法來回答其中一些問題。

Categories
程式開發

Netflix推薦系統如何推動業務增長?

本文最初發佈於towardsdatascience.com網站,經原作者授權由InfoQ中文站翻譯並分享。

Netflix正在將古老的電視行業帶入互聯網時代。 Netflix允許用戶隨時通過各種互聯網連接的設備流式傳輸龐大的電影和電視節目片庫中的數據。 公司的主要收入來自用戶的訂閱費用。 那麼,Netflix的推薦系統在其日益壯大的過程中扮演了什麼樣的角色呢?

Netflix是一家總部位於美國的媒體服務提供商。 它使用訂閱模式來提供影片流媒體服務。 它提供的內容包括電視節目、內部製作的內容以及電影等。 一開始,Netflix曾經出售過DVD,並通過郵件系統提供出租服務。 一年後他們不再銷售DVD了,但租賃服務繼續做了下去。 …

Categories
程式開發

實戰貼:如何使用機器學習檢測欺詐?

本文最初發表於Towards Data Science 博客,經原作者Kurtis Pykes 授權,InfoQ 中文站翻譯並分享。

機器學習是人工智能的一個子集,它賦予了系統從經驗中自動學習和改進的能力,無需進行顯式編程。 如此說來,我們(人類)已經可以向計算機提供大量的數據集,讓計算機學習模式,這樣它在面對一個或多個新實例時,能夠學習如何作出決定——當我發現這一見解時,我立即知道世界即將發生改變。

報告

Categories
程式開發

同步與異步Python有何不同?

你是否聽到人們說過,異步Python代碼比“普通(或同步)Python代碼更快?果真是那樣嗎?

“同步”和“異步”是什麼意思?

Web應用程序通常要處理許多請求,這些請求在很短的時間段內來自不同的客戶端。 為避免處理延遲,必須考慮並行處理多個請求,這通常稱為“並發”。

在本文中,我將繼續使用Web應用程序作為例子,但是要記住還有其它類型的應用程序也從並發完成多個任務中獲益,因此這個討論並不僅僅是針對Web應用程序的。

術語“同步”和“異步”指的是編寫並發應用程序的兩種方式。 所謂的“同步”服務器使用底層操作系統支持的線程和進程來實現這種並發性。 下面是同步部署的一個示意圖:

同步與異步Python有何不同? 45

在這種情況下,我們有5台客戶端,都向應用程序發送請求。 這個應用程序的訪問入口是一個Web服務器,通過將服務分配給一個服務器worker池來充當負載均衡器,這些worker可以實現為進程、線程或者兩者的結合。 …

Categories
程式開發

Flutter 完成全平台製霸:實現Windows 應用支持

Flutter 作為跨平台開發利器,一經推出便在業內贏得了不錯的口碑。 Flutter 最初是應用於iOS 和Android 應用開發的,後擴展到了Web、macOS 和Linux,現如今也可以開發Windows 應用了,補齊了全平台的最後一塊拼圖。

Flutter 作為谷歌出品的UI …