Categories
程式開發

編程時來點小叛逆 是不是超愛這10種壞習慣?

這些事兒我們都乾過:比如趁媽媽不注意趕緊偷吃一塊餅乾;比如開車過急轉彎不減速。當然,編程的時候我們也愛來點小叛逆。

我們對好的編程規則不屑一顧,打出來的代碼非常糟糕——可也就這麼對付過去了,並沒有編程之神用閃電懲罰我,我們的電腦也沒有爆炸。實際上,我們的代碼已編譯完成並交付使用,客戶也似乎很滿意。

那是因為糟糕的代碼並不像摸電門或者摸老虎屁股那樣後果嚴重,大多數時候這些代碼都能用。編程規則往往只是指引或對編程風格的建議,並不會出現不遵守代碼就會完蛋的鐵律。當然,你的代碼可能會被同行嘲笑,甚至是“公開處刑“。但違反約定也是一種有點刺激的反叛行為;這種叛逆行為往往是產生優秀代碼的一種途徑,哪怕你不是故意為之。

讓事情變得更複雜的是,有時打破規則才是更好的選擇。這樣的代碼沒準兒會更清晰,甚至可以更快更簡潔。規則往往太過寬泛,熟練的程序員可以為了改進代碼而打破常規。有時候用自己的方式編程是很有意義的,不過這一條可別跟你的老闆說。

下面是10條規則列表,其中也有被認為是不可逾越的規則,但我們很多人經常會打破這些規則,而且結果還很不錯。

TOP1:粘貼複製

在學生時代,我們都知道抄襲是不對的。但在工作中,這方面的規則還很模糊。雖然有些代碼塊是不能盜用的——不要把專有代碼拷貝到你的堆棧中,尤其是這些代碼有標記版權信息。這種時候你應該編寫自己的版本,老闆付你薪水就是要做正事的。

但是當原始創作者想要共享代碼時,問題就變得複雜了。這些共享代碼也許放到了某個在線編程論壇上,也許它們是帶有許可證(BSD,MIT)的開放源代碼,允許使用一到三個函數。你使用這些共享代碼是沒有問題的,而且你上班是為了解決問題,而不是重新發明輪子。

大多數情況下,複製代碼的優勢非常明顯,小心對待的話問題也不大。至少那些從靠譜的來源獲得的代碼已經被大致“檢查“過了。

問題的複雜之處在於,這些共享代碼是否存在一些未發現的錯誤,代碼的用途或底層數據是否存在一些特別的假設。也許你的代碼混入了空指針,而原始代碼從未檢查過。如果你能解決這些問題,那麼就可以理解為你的老闆得到了兩位程序員共同努力的成果。這就是某種形式的結對編程,而且用不著什麼高大上的辦公桌。…

Categories
程式開發

2019年InfoQ最受歡迎的文章排行榜 | 技術管理篇

2019年InfoQ最受歡迎的文章排行榜來了!

本次榜單涵蓋十大熱門領域:架構、前端、編程語言、雲計算、AI、開源、技術管理、運維、區塊鏈、產業互聯網…

第一篇架構篇、第二篇前端篇、第三篇編程語言篇、第四篇云計算篇、第五篇AI、第六篇開源已發布。今天,我們來看看“技術管理”。

2019年,InfoQ一共發布了1000+篇技術管理(https://www.infoq.cn/topic/opensource?utm_source=infoq&utm_medium=article&utm_campaign=newinfoq&utm_content=language2019&utm_term=500)類的文章,總閱讀量超過300萬。

以下是前十篇最受歡迎的技術管理類文章,你絕對不能錯過!

TOP1:《阿里 P10、騰訊 T4、華為 18,互聯網公司職級、薪資、股權大揭秘》
作者:小智…

Categories
程式開發

基於CPU的AI深度優化,如何打造業內領先的MLPerf推理性能?

幾天前,英特爾正式宣布以 20 億美元收購成立僅三年的 AI 芯片公司 Habana Labs。這是繼收購 Mobileye、Nervana 之後,英特爾在 AI …

Categories
程式開發

XGBoost在攜程搜索排序中的應用

一、前言

在互聯網高速發展的今天,越來越複雜的特徵被應用到搜索中,對於檢索模型的排序,基本的業務規則排序或者人工調參的方式已經不能滿足需求了,此時由於大數據的加持,機器學習、深度學習成為了一項可以選擇的方式。

攜程主站搜索作為主要的流量入口之一,是用戶瀏覽信息的重要方式。用戶搜索方式多樣、對接業務多樣給攜程主站搜索(下文簡稱大搜)帶來了許多挑戰,如:

  • 搜索方式多樣化
  • 場景多樣化
  • 業務多樣化
  • 意圖多樣化
  • 用戶多樣化

為了更好滿足搜索的多樣化,大搜團隊對傳統機器學習和深度學習方向進行探索。

說起機器學習和深度學習,是個很大的話題,今天我們只來一起聊聊傳統機器學習中XGBoost在大搜中的排序實踐。…

Categories
程式開發

AI芯片年终盘点:有些公司年产N片,有些N年产1片都难

过去几年,人工智能产业无论是算法实现、海量数据获取和存储还是计算能力的体现都离不开目前唯一的物理基础——芯片。可以说,“无芯片不 AI”,能否开发出具有超高运算能力、符合市场需求的芯片,已成为人工智能领域可持续发展的重要因素。 年终在即,AI前线小组盘点了2019年国内外主流科技公司在AI芯片方面的进展,有些公司因为2019年没有发布新的AI芯片而未计入本次统计,统计维度分为主要特点、芯片参数和应用场景三部分,如有疏漏,欢迎各位留言。

芯片类型

在正式盘点之前,我们先来了解下芯片类型、芯片架构以及主要的应用场景(注:如果仅对盘点数据感兴趣,可以直接跳转到文章后半部分)。

从芯片技术类型来看,AI芯片主要可以分为GPU(图形处理器)、FPGA(现场可编程门阵列)、ASIC(专用集成电路) 、类脑芯片四大类。

其中,GPU和 FPGA 因为具有较为成熟的技术,已经占据了市场上的大部分份额,目前由英伟达、英特尔、AMD、赛灵思等公司所主导;ASIC的发展也不容小觑,虽然前期的投入成本较高,但因为平均性能强、功耗低等特点,ASIC …

Categories
程式開發

敏捷开发落地不实际?原因可能在于你的 IDE 工具

对于企业来说,效率就是一切。开发效率的工程化建设已经开始被各大企业提到技术管理日程中。而且现阶段,无论是框架也好、模板也好,目的都是在为提升代码开发效率而努力。随着云计算的深入,端+云的开发模式以及完全云端化的开发模式都先后上线,这些无疑都是在对传统 IDE 开发模式的挑战。云端 IDE,会是未来的趋势吗?

云时代下,万物上云正在影响企业研发效率工程化建设

万物上云,可以说已经是不可逆的大趋势。对于企业来说,只要可以提升业务交易额、降低成本、提升收益,业务是放在本地还是云端都无所谓。但是在当前快节奏的背景下,效率就是企业的一切,企业更加关注如何更加快速、高效、敏捷地提升企业交付效率与降低运维成本,这也是为什么现如今企业研发效率的工程化建设已经被越来越多的企业提上了日程。

业务上云后,可以显著提升企业的交付效率并降低运维成本,这是已经被实践所证明过的。因此当企业从原来的技术架构中切换或建设不同的云计算服务时,都会对工程效率产生影响,而受这部分影响的最直接人群就是相关业务线下的一线开发者。理念的变化与架构的调整,都使得这群开发者感觉越来越“不舒服”。

近年来,DevOps、敏捷交付等旨在提升业务研发效率的体系不断被更多人所接纳。但是理念很好,落地在实践中却往往是另一回事。对此,InfoQ采访了华为公司主任工程师、持续交付项目总架构师赵彦,从华为的一系列实践举措中,为大家总结如何实现研发体系的高效化。

赵彦认为,先进的理念往往需要配套同等理念的工具来并行,这样才能更好地支撑 DevOps …

Categories
程式開發

Facebook首席AI科學家:機器學習的殺手級應用是什麼? AR眼鏡!

想要實現理想中的AR眼鏡,還需要面臨一系列的挑戰,尤其是在能效比方面,越來越多的開發者開始去考慮低功耗的問題。近期,關於機器學習的應用場景,Facebook首席AI科學家Lann LeCun 就曾表示,AR眼鏡將是機器學習從業者的絕佳挑戰領域,它將成為高效節能的機器學習殺手級應用。

Facebook首席AI科學家:機器學習的殺手級應用是什麼? AR眼鏡! 15

Facebook AI Research首席AI科學家Lann LeCun相信增強現實眼鏡是機器學習從業者的絕佳挑戰領域,AR眼鏡將成為殺手級應用,因為這裡麵包含了一系列尚未解決的問題。

完美的AR眼鏡需要對話式AI、計算機視覺和其他復雜系統的結合,這些系統需要以一對鏡片這麼小尺寸的形態發揮作用。低功耗的AI是不可或缺的,這樣才能確保合理的電池壽命,使用戶能夠長期佩戴這種眼鏡。

今年秋天,Facebook與蘋果

Categories
程式開發

雲原生生態週報 Vol. 33:CNCF 宣布 TUF 畢業

前言

《雲原生生態週報》由阿里雲容器平台聯合螞蟻金服共同發布,每週一期。眾多一線社區專家與您一起“跟踪動態,讀懂社區”,分享雲原生社區項目進展、活動發布、精選博客等信息。以下是第三十三期雲原生生態週報的內容。

業界要聞

  1. CNCF 宣布 TUF 畢業

CNCF 宣布 TUF(The …

Categories
程式開發

為節省8億做系統遷移,13億記錄出錯,最終賠了29億

早前,英國TSB銀行籌劃了良久的遷移方案失敗,13億客戶記錄出錯,事後各類賠償總計花費約29億元人民幣。時隔一年,這家銀行終於想明白原因是缺乏嚴格的測試。

每年8億元多高額“贍養費”

2018年,英國TSB銀行陷入了一場“離婚醜聞”風波。儘管這家銀行2015年就與勞埃德銀行集團(Lloyds Banking Group)分道揚鑣了(兩家銀行最初於1995年合併),但TSB銀行還一直沿用著從勞埃德銀行集團匆忙復刻過來的IT系統,並以這種方式和“前任”之間保持著剪不斷,理還亂的關係。更悲劇的是,TSB每年還要向勞埃德銀行支付1億英鎊的“贍養費”(在撰寫本文時相當於1.27億美元,約8.9億人民幣)。

沒人願意離了婚還要再給前任“贍養費”。為此,2018年4月22日下午6點,心有不甘的TSB制定了一項籌劃了數月的方案:**將540萬客戶的數十億客戶記錄遷移到西班牙薩巴德爾銀行(Banco Sabadell)的IT系統上。 **薩巴德爾銀行於2015年3月斥資17億歐元(合22億美元,154億人民幣)收購了TSB銀行。…

Categories
程式開發

下一代 TGW 从13Mpps到50Mpps性能优化之旅

0 导语

性能优化是一条既充满挑战又充满魔力的道路,非常幸运如今基于 X86 的性能优化方法及工具已经比较成熟,在 TGW 产品架构即将变革之际,我们结合 X86 常用的性能优化方法与工具,深入分析 DPDK …