
最近,有人问我C#中的开发与C ++中的开发有何不同。 结果,这个想法诞生了,以土豆种植过程为例来解释各种IT术语的含义。
想象一下,您需要种土豆。 您有很多方法可以解决此问题。
您会找到一个带拖拉机的人来为您种植土豆,以及一个会确保带拖拉机的人正确种植土豆的人。 他们将与他们的土豆一起来。
这是外包。
您可以找到将土豆种植在拖拉机上的人。
这是人手。
您会找到一个人来测量花园,提供多种型号的拖拉机以及拖拉机操作员的最佳操作模式。 在这种情况下,没有人会种土豆,但是您将确切地知道该怎么做。
这是研发或研究工作。
您可以打电话给邻居Kolya种植土豆,喝一瓶伏特加和两包香烟。
这是自由职业者。
您可以打电话给所有亲戚,邻居,朋友,一起种土豆。
这是众包。
您可以和朋友,邻居,亲戚四处走走,并告诉您您最能种土豆,但是为此您需要财务。 您保证,一旦您收起马铃薯,就一定会首先喂饱所有帮助过的人。
这是众筹。
您可以犁,几个桶,土豆,写一本《 21天种土豆》一书,自己种土豆。 但是,如果您需要种另一种土豆,那么您将需要再次挖掘花园。 风险:邻居可能在晚上探访并挖出您的土豆。
这是Wordpress的开发。
您可以在已经有肥料,挖洞和箭头站立的花园里用铁锹和土豆种土豆。
这是.NET / C#中的开发。
首先,您需要从头开始铲铁,然后用桶挖土,研究土壤的成分,然后手动计算土豆的数量。 然后,您需要挖出与马铃薯一样多的孔。 接下来,您需要始终用土豆填满所有坑。 不要跳过维修区,否则会感到震惊。
这是C ++开发。
您可以来到集体农场的主席那里,告诉他您最了解如何种植土豆,但是今年您不会种植它,但是明年您将100%种植它。 而且这真的很酷,收成将比邻国的收成大10倍。 因此,您现在需要钱,铁锹,拖拉机,拖拉机司机(最好是两个),五个挖掘机和一个秘书。
这是摆在投资者面前的初创企业。
你的曾祖父种土豆,祖父种土豆,父亲种土豆。 您也将继续种植马铃薯。
这是产品支持。
挖土豆,您会不时地挖出您父亲和祖父种植的马铃薯。
这是旧代码。
早上8:00,您和您的朋友,父亲和邻居将去花园讨论土豆种植的进展。 您告诉所有在场的人昨天都种了土豆,今天您也要种土豆,除了会不断叮咬您的蚊子以外,您不会遇到任何妨碍您种土豆的问题。 但这不会影响马铃薯种植的质量和速度以及未来的收获。 之后,每个人都拿铁铲,继续种土豆。
这是一场混乱的集会。
你种土豆了。 一段时间后,它开始发芽。 然后在您的马铃薯中出现了科罗拉多甲虫。 您开始中毒,手动收集它们,压碎并放火。 您设法销毁了其中大多数,但过了一会儿它们又再次出现在某些地方。
这些是代码调试和错误修复。
你种土豆了。 您的父亲来到花园,说土豆歪了,您忘了留甜菜的地方。 因此,您需要移植一部分马铃薯。 两天后,当您完成工作时,您的祖父就来说您埋没土豆的深度不够,因此您需要将整个土豆移低5厘米。 然后他和他的邻居科里亚(Kolya)和你的父亲一起喝啤酒。
这是团队负责人(Team Lead),项目经理(Project Manager)和重构(refactoring)。
你想赚点钱。 您去邻居科里亚(Kolya)说,您想帮助他种土豆。 一位邻居要求您显示您去年种植的最大马铃薯,以及您过去种植马铃薯的其他邻居的名字。 一位邻居还问您为什么要专门为他种土豆,您必须回答,您梦dream以求的一生只能在他的花园里种土豆。 然后,您将被要求解释耙子和花园剪之间的区别,告诉您必须使用的最佳耙子,并详细解释干草准备和清理井的过程。 而且只有在邻居的母亲确认她“知道这件事”之后,他们才会给你最笨的铁锹,然后你才开始种土豆。
这是对服务公司的采访。
您来到邻居科里亚(Kolya),在他的地窖里捡土豆,种在您的花园里。 您保证当马铃薯生长时,您将退还一部分或在明年帮助种植。 当然,您什么也没做,一年后,您回到邻居那里去找他的土豆。
这是开源软件。
您的村庄有一片广阔的土地,附近的人们会扔掉土豆,有时还会扔掉其他蔬菜。 有人扔烂土豆,有人-好。 因此,您决定不种土豆,而要定期去田间收集土豆。
这是StackOverflow.com。
您全家正在村里种土豆。 那时,您到市场逛逛,告诉所有人,您有亲戚可以快速而有效地种植马铃薯,他们可以在同一市场上以昂贵的价格出售马铃薯。
这是一位销售经理,负责销售他的离岸团队。
您只想私下种土豆。 但是数百名陌生人聚集在花园里。 它们不会帮助您种植马铃薯,但会仔细监控过程。 在将土豆挖入洞中之后,每个人都迅速开始写下笔记本中洞的数量,行数以及世界上还剩下多少个土豆。 然后他们交换笔记本电脑,奔向您的邻居,后者也种土豆。 没有观察者相信您只是在种土豆,直到您从其他笔记本上重写了所有信息。
这是一个区块链。
您正在打印机上打印1000张土豆的照片。 您将每张照片以1美元的价格卖给您的邻居,说种植真正的马铃薯是上个世纪,很快没人会需要这个真正的马铃薯,每个人都会有马铃薯的照片。 而且由于将来将无法打印新照片,因此这些照片的价格将会上涨。 由于每个人都有真正的土豆,而且没有人有照片,所以邻居们很高兴购买照片。 但是晚餐,他们仍然会煮真正的土豆。 目前,在附近的一个村庄中,其他人出售土豆的其他照片,并说只有这些照片才能在10年内具有价值。
这是比特币。
你有10公顷土豆。 您开始进行挖掘。 但是您对整个马铃薯不感兴趣,只有马铃薯的形状是正方形,绿色和米老鼠相似。 挖完所有土豆后,捡起十个符合条件的土豆,然后回家。
这是数据挖掘或大型数据集中的知识搜索。
您住在一个村庄,二十年来没有人种植马铃薯。 但是您确定它在某个地方。 因此,您需要铲铲并开始挖掘所有东西-花园,步道,田野,种植园,甚至是湖泊。 经过一段时间的努力,您很幸运,而且您真的可以挖土豆。 一段时间后,整个村庄开始寻找土豆,连续挖掘所有东西。
这是加密货币挖矿。
马铃薯可以说出很多有关谁饲养的马铃薯。 例如,一个有良心的房东是否种植了土地,而不是给土地施肥,他使用了什么工具,自己种植了它,还是只是从邻居那里偷走了,以及他的妻子是否也很漂亮。
在村庄的后面,有一个所有居民都应寄送马铃薯样品的地方,这样每个人都可以欣赏他们的工作。
但是随着时间的流逝,这个地方变成了垃圾填埋场。 有人根本拒绝携带土豆,有人带来了烂土豆,有人开始说他有土豆,但他不肯展示。 有些人成立了一个警卫队,并开始从任何想看土豆的人那里收钱。
随着时间的流逝,要找到特定人的马铃薯,您需要对堆积如山的垃圾进行分类。
这是开放数据。
你挖了很多土豆。 集体农场的董事长来找你,并发布了一份文件,说你挖了多少土豆。 但是要阅读此文档,您需要回到集体农场的董事长,因为他是村里唯一可以阅读的人。 其他邻居可以看到该文档,但是没人知道那里写的是什么。
这是哈希(哈希,哈希函数)。
您有关于如何种植马铃薯的说明。 它描述了如何挖洞,应该挖多深,需要在哪一侧放土豆。
您开始种土豆。 在每个埋藏的马铃薯之后,您的父亲检查是否正确地遵循了所有说明。 而且,如果至少有一条指令被违反,则需要挖出土豆,填满漏洞,然后重新开始该过程。
这是一个测试驱动的开发或TDD。
您的邻居正在挖土豆。 有人已经把挖好的土豆带到了地窖,有人挖了,但是还没有收集起来,它仍然躺在花园里。 还有其他人甚至没有开始这一过程,他们的土豆仍在地下。
您的任务是收集地窖中所有土豆的精确副本,甚至尚未挖出的副本。 此外,重要的是,您必须对每个马铃薯进行签名-马铃薯的种植者,马铃薯在哪个特定的花园中收获以及该马铃薯的种类。
另外,您需要以这样一种方式进行操作,即没有一个邻居发现您精确复制了他们的土豆并将其存储在您的地窖中。
这是抓取(数据抓取)或解析数据(数据解析)。
您来到花园,种了土豆。 最佳马铃薯大小,窖深和播种速度是根据诸如风速,湿度,温度,世界市场上马铃薯的价格以及Kartoshka Inc.库存等指标实时计算的。 在纽约证券交易所。
这就是人工智能。
您需要种土豆,但是家里没有人知道如何做。 所以你去一个邻居,看着他种土豆。 一段时间后,每个人都像邻居一样种土豆。
这是机器学习。
聚苯乙烯
您已经挖出土豆,并将其放入地窖中-每个品种都分开。 如果您的土豆错误地放在了错误的架子上,您的祖父将奔跑并开始用棍子殴打您。
这是一个关系数据库。
一旦允许您不对马铃薯进行分类,而是将其扔入地窖中。
这是一个NoSql数据库。
您不是将土豆扔到地窖中,而是放在阁楼上,然后将它们推到架子上,其中一部分被带回地窖,另一部分被带回邻居的地窖。
这是云数据存储。
你有土豆吗? 但是,您无需种下它,而是通过各种临时手段来做类似于土豆的操作。 你不能吃,但相似之处显而易见。
这是3D打印机。
在种植马铃薯的过程中,您记录了村庄,您的田地的GPS坐标,最后记录了一个特定的孔,从而获得了唯一的标识符,通过它可以轻松地计算出特定马铃薯的埋藏位置。
这是IP地址。