国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

五個編程原則:Rob Pike‘s 5 Rules of Programming

這篇具有很好參考價值的文章主要介紹了五個編程原則:Rob Pike‘s 5 Rules of Programming。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

原文

https://users.ece.utexas.edu/~adnan/pike.html
Rob Pike’s 5 Rules of Programming
Rule 1. You can’t tell where a program is going to spend its time. Bottlenecks occur in surprising places, so don’t try to second guess and put in a speed hack until you’ve proven that’s where the bottleneck is.
Rule 2. Measure. Don’t tune for speed until you’ve measured, and even then don’t unless one part of the code overwhelms the rest.
Rule 3. Fancy algorithms are slow when n is small, and n is usually small. Fancy algorithms have big constants. Until you know that n is frequently going to be big, don’t get fancy. (Even if n does get big, use Rule 2 first.)
Rule 4. Fancy algorithms are buggier than simple ones, and they’re much harder to implement. Use simple algorithms as well as simple data structures.
Rule 5. Data dominates. If you’ve chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming.
Pike’s rules 1 and 2 restate Tony Hoare’s famous maxim “Premature optimization is the root of all evil.” Ken Thompson rephrased Pike’s rules 3 and 4 as “When in doubt, use brute force.”. Rules 3 and 4 are instances of the design philosophy KISS. Rule 5 was previously stated by Fred Brooks in The Mythical Man-Month. Rule 5 is often shortened to “write stupid code that uses smart objects”.

翻譯

Rob Pike的編程五原則
規(guī)則1. 你無法確定程序將花費時間的具體位置。瓶頸往往出現(xiàn)在意想不到的地方,因此不要試圖預測并在證明瓶頸位置之前進行速度優(yōu)化。
規(guī)則2. 測量。在測量之前不要為了速度進行調優(yōu),即使在測量之后,也不要調優(yōu),除非代碼的某一部分壓倒了其他部分。
規(guī)則3. 在n很小時,復雜算法速度很慢,而且n通常很小。復雜算法具有很大的常數(shù)。除非你知道n經(jīng)常會變大,否則不要使用復雜算法。(即使n變大,也要先遵循規(guī)則2。)
規(guī)則4. 復雜算法比簡單算法更容易出錯,而且實現(xiàn)起來更困難。使用簡單算法以及簡單數(shù)據(jù)結構。
規(guī)則5. 數(shù)據(jù)至關重要。如果你選擇了正確的數(shù)據(jù)結構并組織得當,算法幾乎總是不言自明的。數(shù)據(jù)結構而不是算法是編程的核心。
Pike的第1和第2條規(guī)則重新闡述了Tony Hoare的著名格言“過早優(yōu)化是萬惡之源”。Ken Thompson將Pike的第3和第4條規(guī)則重新表述為“懷疑時,使用暴力法”。規(guī)則3和規(guī)則4是KISS設計哲學的實例。規(guī)則5以前由Fred Brooks在《人月神話》中提出。規(guī)則5通常縮寫為“編寫使用智能對象的愚蠢代碼”。

筆記

規(guī)則5倒是沒想到的,但我不是很認同。
反例如Dijkstra最短路徑算法,或者經(jīng)典算法都是反例。
似乎沒有經(jīng)典數(shù)據(jù)結構這個說法。

個人一直覺得是相輔相成的,都很重要,很難分先后。
當然,以數(shù)據(jù)為中心,大部分事務實際都是基礎算法的組合,將數(shù)據(jù)描述清楚了,問題都已經(jīng)解決80%了。
從這個角度(以數(shù)據(jù)為中心)來講,數(shù)據(jù)結構的確優(yōu)先于算法。文章來源地址http://www.zghlxwxcb.cn/news/detail-829739.html

到了這里,關于五個編程原則:Rob Pike‘s 5 Rules of Programming的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 編程入門:五個你必須知道的編程常識

    編程入門:五個你必須知道的編程常識

    常識1:編程不僅僅是寫代碼 當我們談論編程時,大多數(shù)人首先想到的是寫代碼。這是正確的,但并不完整。編程不僅僅是寫代碼,而是解決問題的一種方式。編程是一種工具,我們使用它來創(chuàng)建能夠解決特定問題的產(chǎn)品和服務。 比如,你想開發(fā)一個手機應用來幫助人們更有

    2024年01月23日
    瀏覽(35)
  • 【C# Programming】編程入門:方法和參數(shù)

    1、方法的定義 ????????由一系列以執(zhí)行特定的操作或計算結果語句組成。方法總是和類關聯(lián),類型將相關的方法分為一組。 方法名稱 ? 形參和實參(parameter argument) 返回值 2、命名空間 ????????一種分類機制,用于組合功能相關的所有類型。命名空間是分級的,級數(shù)可

    2024年02月09日
    瀏覽(14)
  • 【C# Programming】編程入門:數(shù)組、操作符、控制流

    【C# Programming】編程入門:數(shù)組、操作符、控制流

    目錄 一、數(shù)組 1、數(shù)組的聲明 1.1 一維數(shù)組聲明: ? ? ? 1.2 多維數(shù)組聲明:? ? ? ? 2、數(shù)組的實例化和賦值 2.1 數(shù)組在聲明時通過在花括號中使用以逗號分隔的數(shù)據(jù)項對數(shù)組賦值, 例如: 2.2 如果在聲明后賦值,則需要使用new 2.3 C# 也支持將new 作為聲明語句的一部分, 例如

    2024年02月11日
    瀏覽(13)
  • The fifth parameter of the qt slot function(qt Connect函數(shù)的第五個參數(shù))

    在Qt中,信號槽機制是允許對象之間通信的核心特性。 在處理線程時,非常必要了解信號和插槽在多線程環(huán)境中的工作方式。 關于connect函數(shù)的“第五個參數(shù)”,指的是 connect() 方法中的 Qt::ConnectionType 參數(shù)。此參數(shù)確定連接的類型,這在多線程應用程序中非常重要。 現(xiàn)在讓我

    2024年01月21日
    瀏覽(21)
  • 什么是函數(shù)式編程(functional programming)?在JavaScript中如何實現(xiàn)函數(shù)式編程的概念?

    什么是函數(shù)式編程(functional programming)?在JavaScript中如何實現(xiàn)函數(shù)式編程的概念?

    前端入門之旅:探索Web開發(fā)的奇妙世界 記得點擊上方或者右側鏈接訂閱本專欄哦 幾何帶你啟航前端之旅 歡迎來到前端入門之旅!這個專欄是為那些對Web開發(fā)感興趣、剛剛踏入前端領域的朋友們量身打造的。無論你是完全的新手還是有一些基礎的開發(fā)者,這里都將為你提供一

    2024年02月07日
    瀏覽(19)
  • 【AI+】Martin Fowler: 基于 AI 輔助的測試驅動開發(fā)的技術 | An example of LLM prompting for programming
  • 數(shù)據(jù)結構與算法 | 動態(tài)規(guī)劃算法(Dynamic Programming)

    上一篇文末已經(jīng)提到了記憶化搜索是動態(tài)規(guī)劃(Dynamic Programming)的一種形式,是一種自頂向下(Top-Down)的思考方式,通常采用遞歸的編碼形式;既然動態(tài)規(guī)劃有自頂向下(Top-Down)的遞歸形式,自然想到對應的另外一種思考方式 自底向上( Bottom-Up ) ,也就是本篇要寫的內(nèi)

    2024年02月05日
    瀏覽(24)
  • 算法——動態(tài)規(guī)劃(DP,Dynamic Programming)

    算法——動態(tài)規(guī)劃(DP,Dynamic Programming)

    動態(tài)規(guī)劃常用于解決優(yōu)化問題。 動態(tài)規(guī)劃通常以自底向上或自頂向下的方式進行求解。 自底向上的動態(tài)規(guī)劃從最簡單的子問題開始,逐步解決更復雜的問題,直到達到原始問題。 自頂向下的動態(tài)規(guī)劃則從原始問題出發(fā),分解成子問題,并逐步求解這些子問題。 動態(tài)規(guī)劃算法

    2024年02月02日
    瀏覽(17)
  • 數(shù)據(jù)結構與算法:動態(tài)規(guī)劃(Dynamic Programming)詳解

    動態(tài)規(guī)劃(Dynamic Programming,簡稱DP) 是一種在數(shù)學、管理科學、計算機科學、經(jīng)濟學和生物信息學等領域中使用的,通過把原問題分解為相對簡單的子問題的方式求解復雜問題的方法。動態(tài)規(guī)劃經(jīng)常被用于求解優(yōu)化問題。 動態(tài)規(guī)劃的核心思想是將復雜問題分解為更小的子問

    2024年04月25日
    瀏覽(27)
  • 算法設計與分析-Dynamic Programming「國科大」卜東波老師

    A robber is planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent houses have security system connected and it will automatically contact the police if two adjacent houses were broken into on the same night. (a) Given a list of non-negative integers

    2024年02月22日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包