博客 / 列表

京東雲開發者 - Squirrel狀態機-從原理探究到最佳實踐

作者:京東物流 鄭朋輝 1 簡介 Squirrel狀態機是一種用來進行對象行為建模的工具,主要描述對象在它的生命週期內所經歷的狀態,以及如何響應來自外界的各種事件。比如訂單的創建、已支付、發貨、收穫、取消等等狀態、狀態之間的控制、觸發事件的監聽,可以用該框架進行清晰的管理實現。使用狀態機來管理對象生命流的好處更多體現在代碼的可維護性、可測試性上,明確的狀態條件、原子的響應動作、事件驅動遷移目標狀態

生命週期 , 測試 , squirrel-sql , 程序員 , 後端

京東雲開發者 - 【團隊效率提升】Python-PyWebIO介紹

作者:京東零售 關鍵 QA快速瞭解PyWebIO Q:首先,什麼是PyWebIO? A:PyWebIO提供了一系列命令式的交互函數,能夠讓咱們用只用Python就可以編寫 Web 應用, 不需要編寫前端頁面和後端接口, 讓簡易的UI開發效率大大提高(本人非研發,用詞可能不妥,大家輕點噴)  Q:其次,我們能用來幹嘛?? 這對一個團隊的效率提升有什麼作用?? A:Pywebio的作用在於讓咱們可以

csv , 軟件 , HTML , Markdown , Python

京東雲開發者 - 從源代碼構建TensorFlow流程記錄

京東科技隱私計算產品部 曹雨晨 為什麼從源代碼構建 通常情況下,直接安裝構建好的.whl即可。不過,當需要一些特殊配置(或者閒來無事想體會 TensorFlow 構建過程到底有多麻煩)的時候,則需要選擇從源代碼構建TensorFlow。萬幸文檔混亂的 TensorFlow 還是好心地為我們提供了一整頁的文檔供參考 https://www.tensorflow.org/in... ,個人認為其中最需

github , bazel , tensorflow , pip , 源代碼

京東雲開發者 - 説透IO多路複用模型

作者:京東零售 石朝陽 在説IO多路複用模型之前,我們先來大致瞭解下Linux文件系統。在Linux系統中,不論是你的鼠標,鍵盤,還是打印機,甚至於連接到本機的socket client端,都是以文件描述符的形式存在於系統中,諸如此類,等等等等,所以可以這麼説,一切皆文件。來看一下系統定義的文件描述符説明:   從上面的列表可以看到,文件描述符0,1,2都已經被系統佔用了,當系統啓動的時候

系統 , select , Linux , poll , epoll

京東雲開發者 - Function源碼解析與實踐

作者:陳昌浩 1 導讀 if…else…在代碼中經常使用,聽説可以通過Java 8的Function接口來消滅if…else…!Function接口是什麼?如果通過Function接口接口消滅if…else…呢?讓我們一起來探索一下吧。 2 Function接口 Function接口就是一個有且僅有一個抽象方法,但是可以有多個非抽象方法的接口,Function接口可以被隱式轉換為 lambda 表

編程 , function , 編程語言 , 程序員 , 後端

京東雲開發者 - 淺談HTTP緩存與CDN緩存的那點事

HTTP緩存與CDN緩存一直是提升web性能的兩大利器,合理的緩存配置可以降低帶寬成本、減輕服務器壓力、提升用户的體驗。而不合理的緩存配置會導致資源界面無法及時更新,從而引發一系列的衍生問題。本文將分別將從HTTP緩存與cdn緩存的規則、流程、配置入手,能讓大家瞭解基礎概念的同時,可對自己的項目配置定製化的緩存調優方案,以及在遇到緩存問題時如何快速定位解決。 首先,讓我們來了解一下緩存在實際場景中

web性能優化 , http緩存 , cdn緩存 , 緩存設計

京東雲開發者 - 遺留代碼處理技巧與案例演示

1 什麼是遺留代碼 本質是一種技術債務,產生原因一方面是業務原因:如業務本身場景繁多、流程複雜等;另一方面是技術原因:如代碼不規範、設計不合理、祖傳代碼文檔註釋缺失等。它會影響我們的程序很多方面:如可讀性、可修改性、可複用性、可維護性、可測試性等。 2 遺留代碼處理過程拆解 劃分為梳理-重構/重寫-替換/驗證三個階段 2.1 梳理 遺留代碼的處理是一種逆向工程,從已有的代碼+數據模型+文檔倒推出

耦合性 , 複用 , 代碼優化 , 代碼規範 , 重構

京東雲開發者 - 京東雲開發者|深入JDK中的Optional

概述:Optional最早是Google公司Guava中的概念,代表的是可選值。Optional類從Java8版本開始加入豪華套餐,主要為了解決程序中的NPE問題,從而使得更少的顯式判空,防止代碼污染,另一方面,也使得領域模型中所隱藏的知識,得以顯式體現在代碼中。Optional類位於java.util包下,對鏈式編程風格有一定的支持。實際上,Optional更像是一個容器,其中存放的成員變量是一

空指針 , optional , java8 , JDK , JAVA

京東雲開發者 - 京東雲開發者|探尋軟件架構的本質,到底什麼是架構?

不論是開發人員還是架構師,我們都一直在跟軟件系統打交道,架構是在工作中出現最頻繁的術語之一。那麼,到底什麼是架構?你可能有自己的答案,也有可能沒有答案。對“架構”的理解需要我們不斷在實踐中思考、歸納、演繹,形成自己的認知。 1 到底什麼是軟件架構 ? 定義 ”架構是什麼“ 是件非常困難的事情,不同的組織對於軟件架構有不同的定義,每個人心中也有自身對於系統架構定義的認知。就好比我們無法百分之百表述模

架構設計 , 架構 , 架構模式 , 架構師 , 後端

京東雲開發者 - Redis數據結構(二)-List、Hash、Set及Sorted Set的結構實現

1 引言 之前介紹了Redis的數據存儲及String類型的實現,接下來再來看下List、Hash、Set及Sorted Set的數據結構的實現。 2 List List類型通常被用作異步消息隊列、文章列表查詢等;存儲有序可重複數據或做為簡單的消息推送機制時,可以使用Redis的List類型。對於這些數據的存儲通常會使用鏈表或者數組作為存儲結構。 使用數組存儲,隨機訪問節點通過索引定位時間複雜

redis , List , hash , 數據結構 , 數據庫

京東雲開發者 - Redis數據結構(一)-Redis的數據存儲及String類型的實現

1 引言 Redis作為基於內存的非關係型的K-V數據庫。因讀寫響應快速、原子操作、提供了多種數據類型String、List、Hash、Set、Sorted Set、在項目中有着廣泛的使用,今天我們來探討下下Redis的數據結構是如何實現的。 2 數據存儲 2.1 RedisDB Redis將數據存儲在redisDb中,默認0~15共16個db。每個庫都是獨立的空間,不必擔心key衝突問題,可通過

redis , 數據結構 , 數據存儲 , string

京東雲開發者 - 流程引擎的架構設計

1 什麼是流程引擎 流程引擎是一個底層支撐平台,是為提供流程處理而開發設計的。流程引擎和流程應用,以及應用程序的關係如下圖所示。 常見的支撐場景有:Workflow、BPM、流程編排等。本次分享,主要從BPM流程引擎切入,介紹流程引擎的架構設計方法。 1.1 什麼是流程 簡單來説,流程就是一系列活動的組合。比如,用於企業辦公的OA系統中,就存在大量的申請審批類的流程。在生產製造業,有大量的從銷售

workflow , 架構設計 , 架構 , 報表 , 流程

京東雲開發者 - SQL 抽象語法樹及改寫場景應用

1 背景 我們平時會寫各種各樣或簡單或複雜的sql語句,提交後就會得到我們想要的結果集。比如sql語句,”select * from t\_user where user\_id 10;”,意在從表t\_user中篩選出user\_id大於10的所有記錄。你有沒有想過從一條sql到一個結果集,這中間經歷了多少坎坷呢? 2 SQL引擎 從MySQL、Oracle、TiDB、CK,到Hive、HBa

字符串 , 數據 , 抽象語法樹 , sql語句 , SQL

京東雲開發者 - 原生Redis跨數據中心雙向同步優化實踐

一、背景 公司基於業務發展以及戰略部署,需要實現在多個數據中心單元化部署,一方面可以實現多數據中心容災,另外可以提升用户請求訪問速度。需要保證多數據中心容災或者實現用户就近訪問的話,需要各個數據中心擁有一致的全量數據,如果真正實現用户就近讀寫,也就是實現真正的業務異地多活,數據同步是異地多活的基礎,這就需要多數據中心間數據能夠雙向同步。 二、原生redis遇到的問題 1、不支持雙主同步 原生red

redis , 同步 , 數據庫 , SQL , 程序員

京東雲開發者 - 京東金融客户端用户觸達方式的探索與實踐

一、關於用户觸達 用户觸達:可以簡單理解為通過某種方式將消息傳遞給用户的行為;觸達的特定消息從功能上可分展示、引導落地兩層。用户觸達作為一種產品運營方式,已經融入我們日常生產活動的方方面面。在移動互聯網的世界裏,我們的產品離不開觸達,用户活動也離不開觸達。 二、為什麼做用户觸達 以用户使用角度來看,用户在使用 App 的過程中會有一些與用户相關的系統類的通知,比如交易物流、客服消息、賬

app , channel , widget , Android , 運營

京東雲開發者 - 一次客户需求引發的K8s網絡探究

在本次案例中,京東雲的中台技術工程師遇到了來自客户提出的打破K8s產品功能限制的特殊需求,面對這個極具挑戰的任務,攻城獅最終是否克服了重重困難,幫助客户完美實現了需求?且看本期K8s技術案例分享!(友情提示:文章篇幅較長,建議各位看官先收藏再閲讀,同時在閲讀過程中注意勞逸結合,保持身心健康!) 第一部分:“頗有個性”的需求 某日,我們京東雲的技術中台工程師接到了客户的求助。客户在雲上環境使用了託

jinja2 , 雲計算