Categories
程式開發

《前端實戰總結》之使用CSS3實現酷炫的3D旋轉透視

3D動畫效果現在越來越普及,已經被廣泛的應用到了各個平台,比如阿里雲,華為雲,webpack官網等。它可以更接近於真實的展示我們的產品和介紹,帶來極強的視覺衝擊感。所以說,為了讓自己更加優秀,css3 3D動畫必不可少。

你將學到

CSS3 3D 轉換的常用API介紹CSS3 3D 應用場景CSS3 3D 實現一個立方體…

Categories
程式開發

「五大常用算法」一文搞懂分治算法

首發公眾號:bigsai 文章收錄在 大賽算法

前言

分治算法(divide and conquer)是五大常用算法(分治算法、動態規划算法、貪心算法、回溯法、分治界限法)之一,很多人在平時學習中可能只是知道分治算法,但是可能並沒有系統的學習分治算法,本篇就帶你較為全面的去認識和了解分治算法。

在學習分治算法之前,問你一個問題,相信大家小時候都有存錢罐的經歷,父母親人如果給錢都會往自己的寶藏中存錢,我們每隔一段時間都會清點清點錢。但是一堆錢讓你處理起來你可能覺得很複雜,因為數據相對於大腦有點龐大了,並且很容易算錯,你可能會將它先分成幾個小份算,然後再疊加起來計算總和就獲得這堆錢的總數了

「五大常用算法」一文搞懂分治算法 7

當然如果你覺得各個部分錢數量還是太大,你依然可以進行劃分然後合併,我們之所以這麼多是因為:…

Categories
程式開發

什麼是低代碼,到底用不用?

低代碼最近是又火了一波,到底什麼是低代碼,它有什麼用,我到底用不用?

2021年1月8-9日舉辦的QCon全球軟件技術開發大會“上,阿里前端技術專家、架構師汪鳳震將分享《探索低代碼的未來》“。他表示,“其實每個做低代碼產品的團隊都會有很多實踐和失敗經驗,他在乎的不是別人的具體實踐和坑,更在意的是,有充分依據告訴我低代碼是不是值得投入,如果要投入,側重點抓手該是怎樣的,怎麼做好一個未來化的低代碼產品。 ” 於是,InfoQ 在會前採訪了汪老師,我們一起來看看低代碼到底是什麼,自己到底要不要用低代碼。

低代碼之前的Pro

Categories
程式開發

TypeScript超越C++成第四大語言!無懼中國開源託管平台競爭:GitHub發布2020年開發者報告

GitHub於週四發布了年度開發者報告,其中一些對全球開發人員和開源社區的見解特別有趣。

自2008 年推出以來,GitHub 已經成為互聯網上最大的項目管理和開源協作平台,到今年為止,社區已經擁有5600萬開發者,去年這個數據是4000萬。假設保持這樣的增長速率,GitHub用戶預計將在2025年達到一個億。

2020年,開發人員共創建了6000萬個新repo庫,相比去年增加了35%。其中與Covid-19相關的有5646個。

預測來自中國的開源貢獻者將持續增加

TypeScript超越C++成第四大語言!無懼中國開源託管平台競爭:GitHub發布2020年開發者報告 17

2015年,大多數開源貢獻者來自美國,佔據整體數量的30.4%。其次是來自德國和英國的開發者,分別佔據7.3%和5.8%。

2020年,來自美國的開源貢獻者已降至22.7%。來自中國的開源貢獻者有了大幅提升,達到9.76%。

雖然中國加快了建設開源代碼託管平台的行動,但GitHub似乎對此並不太擔憂。他們展望2025年,認為如果開發人員達到一個億,預計來自美國的開發者會降至並穩定在16.4%,而來自中國的開源貢獻者會增加到13.3%。

開發語言

Categories
程式開發

ONES收購Tower,五源資本合夥人對話兩位創始人

日前,企业级研发管理工具ONES 收购知名协作工具 Tower,完成了今年国内为数不多的ToB 领域的整合收购。在协同领域耕耘多年的 ONES 和 Tower,为何在此时选择并购,二者合并后是否有机会成为中国的「Jira+Trello」,两家公司共同投资人——五源资本合伙人刘凯,对话了ONES 创始人王颖奇和 Tower 创始人沈学良,聊聊合并背后故事和ToB …

Categories
程式開發

什麼是KMP算法(詳解)

什麼是KMP算法:

KMP是三位大牛:DEKnuth、JHMorris和VRPratt同時發現的。其中第一位就是《計算機程序設計藝術》的作者! !

KMP算法要解決的問題就是在字符串(也叫主串)中的模式(pattern)定位問題。說簡單點就是我們平時常說的關鍵字搜索。模式串就是關鍵字(接下來稱它為P),如果它在一個主串(接下來稱為T)中出現,就返回它的具體位置,否則返回-1(常用手段)。

什麼是KMP算法(詳解) 18

首先,對於這個問題有一個很單純的想法:從左到右一個個匹配,如果這個過程中有某個字符不匹配,就跳回去,將模式串向右移動一位。這有什麼難的?

我們可以這樣初始化:

什麼是KMP算法(詳解) 19

之後我們只需要比較i指針指向的字符和j指針指向的字符是否一致。如果一致就都向後移動,如果不一致,如下圖:

什麼是KMP算法(詳解) 20

A和E不相等,那就把i指針移回第1位(假設下標從0開始),j移動到模式串的第0位,然後又重新開始這個步驟:

什麼是KMP算法(詳解) 21

基於這個想法我們可以得到以下的程序:

/**

Categories
程式開發

PRPL模式加快Web應用加載

PRPL是一種用於結構化和交付Web應用程序和漸進式Web應用(PWA)的模式,重點在於改進應用的交付和啟動性能。這個模式包含一組步驟,以實現快速、可靠、高效的加載:

Push,推送初始路由所需的所有資源,並且只推送這些資源,以確保它們儘早可用。 Render,在加載其他資源之前,渲染初始路由並使其具備交互能力。 Pre-cache,預緩存用戶可能訪問的其他路由的資源,從而在惡劣的網絡條件下盡可能提高對後續請求的響應能力和彈性。 Lazy-load,當用戶請求時,按需延遲加載路由;關鍵路由的資源應立即從緩存中加載,而相對不常用的資源可以根據請求從網絡獲取。

注意:PRPL模式是由Polymer團隊於2016年首次引入的,但已被證明適用於其他許多技術棧。

PRPL模式加快Web應用加載 37

PRPL模式加載順序

服務器和服務Worker一起為非活動路由預緩存資源。當用戶切換路由時,應用會延遲加載尚未緩存的所有必需資源,並創建所需的視圖。

Twitter.com自2017年以來就在生產中使用PRPL模式了。下面我們可以看到,他們對關鍵腳本使用了粒度代碼拆分,並使用推送腳本以盡快讓腳本可用:

PRPL模式加快Web應用加載 38

PRPL模式:預加載關鍵腳本…

Categories
程式開發

谷歌AI老大Jeff Dean惹爭議,只因開除黑人高管研究員?

北京時間12 月4 日,谷歌“倫理人工智能團隊”(Ethical AI Team)的技術聯合負責人Timnit Gebru 在個人推特上發布消息稱:自己突然遭到公司的“郵件解僱”,原因似乎與她批評谷歌的政策相關。

因批評公司政策,谷歌開除AI 倫理團隊高管

Timnit …

Categories
程式開發

Spock單元測試框架實戰指南一Spock是什麼?它和JUnit有什麼區別?

這是Spock系列的第一篇文章,整個專輯會介紹Spock的用途,為什麼使用Spock?它能給我們帶來什麼好處?它和JUnit、JMock、Mockito有什麼區別?我們平時寫單元測試代碼的常見問題和痛點,Spock又是如何解決的,Spock的代碼怎麼編寫以及Spock的優勢和缺點等內容,讓大家對Spock有個客觀的了解。

Spock是什麼?

Spock單元測試框架實戰指南一Spock是什麼?它和JUnit有什麼區別? 42

斯波克是國外一款優秀的測試框架,基於BDD思想,功能強大,能夠讓我們的測試代碼規範化,結構層次清晰,結合groovy動態語言的特點以及自身提供的各種標籤讓編寫測試代碼更加高效和簡潔,提供一種通用、簡單、結構化的描述語言

引用官網的介紹如下(http://spockframework.org”)

Spock單元測試框架實戰指南一Spock是什麼?它和JUnit有什麼區別? 43

Spock單元測試框架實戰指南一Spock是什麼?它和JUnit有什麼區別? 44

“ Spock是一個Java和Groovy應用程序的測試和規範框架。

它之所以能在人群中脫穎而出,是因為它優美而富有表現力的規範語言。

斯波克的靈感來自JUnit、RSpec、jMock、Mockito、Groovy、Scala、Vulcans …

Categories
程式開發

GraphQL 在酒店系統上的實踐

1 問題由來

關於我們Node 服務產生了什麼問題,為什麼會出現這些問題,以及為何需要採用GraphQL 去解決這些問題,是一個值得探究的過程。下面,我將從服務架構入手,簡單介紹一下項目背景,而後通過幾個案例,讓大家更形象的理解我們現在的問題是如何產生的。

1.1 服務架構簡介

GraphQL 在酒店系統上的實踐 48

左邊方框內屬於我們前端團隊的服務,右邊屬於後端服務。這裡只是比較粗糙的架構,省略了一些負載均衡等細節,對於我司國內酒店服務來說,這裡的圖示就足以解釋說明我們的問題。

而我們Node 組,是處於承接上下游的一個位置,是屬於直接服務於前端的後端,也就是所謂的BFF …