成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

從實際代碼開始編寫好的示例

開發 后端
當編寫程序時,我花費了大量時間在編寫好的示例上。我從未見過有人寫過關于如何寫出好的示例,所以我就寫了一下如何寫出一份好的示例。我將會談論兩種示例:基于真實案例的示例和奇怪的示例。

當編寫程序時,我花費了大量時間在編寫好的示例上。我從未見過有人寫過關于如何寫出好的示例,所以我就寫了一下如何寫出一份好的示例。

基礎思路就是從你寫的真實代碼開始,然后刪除不相關的細節,使其成為一個獨立的例子,而不是無中生有地想出一些例子。

我將會談論兩種示例:基于真實案例的示例和奇怪的示例

好的示例是真實的

為了說明為什么好的案例應該是真實的,我們就先討論一個不真實的案例。假設我們在試圖解釋 Python 的 lambda 函數(這只是我想到的第一個概念)。你可以舉一個例子,使用 map 和 lambda 來讓一組數字變為原先的兩倍。

  1. numbers = [1, 2, 3, 4]
  2. squares = map(lambda x: x * x, numbers)

我覺得這個示例不是真實的,有如下兩方面的原因:

  • 將一組數字作平方運算不是在真實的程序中完成的事,除非是歐拉項目或某種東西(更多的可能是針對列表的操作)
  • map 在 Python 中并不常用,即便是做這個我也更愿意寫 [x*x for x in numbers]

一個更加真實的 Python lambdas 的示例是使用 sort 函數,就像這樣:

  1. children = [{"name": "ashwin", "age": 12}, {"name": "radhika", "age": 3}]
  2. sorted_children = sorted(children, key=lambda x: x['age'])

但是這個示例是被精心設計的(為什么我們需要對這些孩子按照年齡進行排序呢?)。所以我們如何來做一個真實的示例呢?

如何讓你的示例真實起來:看你所寫實際代碼

我認為最簡單的來生成一個例子的方法就是,不是憑空出現一個例子(就像我用那個兒童的例子),而只是從真正的代碼開始!

舉一個例子吧,如果我要用 sort.+key 來編寫一串 Python 代碼,我會發現很多我按某個標準對列表進行排序的真實例子,例如:

  • tasks.sort(key=lambda task: task['completed_time'])
  • emails = reversed(sorted(emails, key=lambda x:x['receivedAt']))
  • sorted_keysizes = sorted(scores.keys(), key=scores.get)
  • shows = sorted(dates[date], key=lambda x: x['time']['performanceTime'])

在這里很容易看到一個規律——這些基本是按時間排序的!因此,你可以明白如何將按時間排序的某些對象(電子郵件、事件等)的簡單實例輕松地放在一起。

現實的例子有助于“布道”你試圖解釋的概念

當我試圖去解釋一個想法(就好比 Python Lambdas)的時候,我通常也會試圖說服讀者,說這是值得學習的想法。Python lambdas 是如此的有用!當我去試圖說服某個人 lambdas 是很好用的時候,讓他想象一下 lambdas 如何幫助他們完成一項他們將要去做的任務或是以及一項他們以前做過的任務,對說服他會很有幫助。

從真實代碼中提煉出示例可能需要很長時間

我給出如何使用 lambda 和 sort 函數的解釋例子是十分簡單的,它并不需要花費我很長時間來想出來,但是將真實的代碼提煉出為一個獨立的示例則是會需要花費很長的時間!

舉個例子,我想在這篇文章中融入一些奇怪的 CSS 行為的例子來說明創造一個奇怪的案例是十分有趣的。我花費了兩個小時來解決我這周遇到的一個實際的問題,確保我理解 CSS 的實際情況,并將其變成一個小示例。

最后,它“僅僅”用了 五行 HTML 和一點點的 CSS 來說明了這個問題,看起來并不想是我花費了好多小時寫出來的。但是最初它卻是幾百行的 JS/CSS/JavaScript,它需要花費很長時間來將所有的代碼化為核心的很少的代碼。

但我認為花點時間把示例講得非常簡單明了是值得的——如果有成百上千的人在讀你的示例,你就節省了他們這么多時間!

就這么多了!

我覺得還有更多關于示例可以去講的——幾種不同類型的有用示例,例如:

  • 可以更多的改變人的思維而不是直接提供使用的驚喜讀者的示例代碼
  • 易于復制粘貼以用作初始化的示例

也許有一天我還會再寫一些呢? :smiley: 

 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2010-04-21 13:31:11

Oracle時間

2010-04-12 12:30:44

Oracle 安裝腳本

2010-05-18 16:29:44

MySQL修改表

2010-06-02 17:46:54

MySQL 查詢緩存

2023-06-19 14:14:24

Rust程序Web

2010-05-17 09:25:34

MySql 編碼設置

2010-04-12 09:26:52

Oracle查詢分頁

2018-04-11 10:51:25

多線程進程主線程

2010-04-13 14:25:24

Oracle問題解決

2009-11-26 10:39:58

PHP字符串連接

2022-04-07 18:49:56

項目場景數據庫

2010-01-11 11:37:08

VB.NET操作CSV

2010-03-23 13:30:36

Python VIM

2010-04-19 11:37:20

Oracle數據庫

2020-04-21 16:13:29

LinuxCut命令Unix系統

2010-01-15 11:31:02

VB.NET接口實現多

2018-01-26 14:47:04

分布式緩存

2021-06-22 09:18:13

Python代碼技巧

2009-04-17 22:25:16

多核四核CPU

2010-04-19 11:21:39

Oracle視圖
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人精品一区 | 欧美v在线观看 | 久草网址 | 中文字幕在线不卡 | 综合二区 | 欧美综合在线视频 | 自拍偷拍精品 | 中国黄色毛片视频 | 91视频网址 | 日韩欧美大片 | 中文字幕 在线观看 | 久久99精品视频 | 精品国产91乱码一区二区三区 | 成人福利视频 | 午夜视频在线播放 | 天堂一区在线 | 亚洲精品不卡 | 国产精品视频久久久 | 久久久久久国产精品mv | 亚洲资源站 | 亚洲精品视频在线播放 | 精品一区二区免费视频 | 久久久婷婷 | 亚洲三区在线 | 日本在线精品视频 | 国产伦精品一区二区三毛 | 久草成人网 | 亚洲国产偷 | 久久99精品久久久 | 欧美在线视频网站 | 一区二区中文字幕 | 久久精品久久久 | 亚洲永久入口 | 国产精品美女久久久久aⅴ国产馆 | 无码日韩精品一区二区免费 | 精品一区久久 | 天堂中文在线播放 | 国产精品久久久久久52avav | 亚洲精品久久久一区二区三区 | 久久久久综合 | 天天搞天天操 |