时间走到了 1999 年,也就是 17 年前,我在 Square 新闻组里写下了我的问题: A:“我正在写 web 数据库,但是我们已经有桌面数据库了呀。”...这里是 9/11,一切都随风而逝... 我在 Google 上搜索了一下,这是那个时候硅谷人的想法,你们感受下。 我找到了一个哥们儿这样写到: "噢,我的天呐,这简直是致命的打击。...作为一个年轻的初创公司,我知道的每个人都受到了影响。我知道的大多数人都失去了工作。不久之后,我知道的大部分人都搬走了。" 在这里他写到: "泡沫时代的对比是史诗级的。...我们知道软件都有一个饱和曲线。有时候给代码添加新的特性确实很困难,所以这时候重写代码更换技术栈是完全没有问题的,但是你得注意这里的这个缺口。...你创建了一个函数来读取数据库中的某些数据,然后调用回调函数,处理返回的数据库结果,这里最好创建一个能够处理不同返回值的回调,而不要一次一次的创建。
或者,如果你在一家公司工作,它不会连接到你公司的数据库和你公司的内部知识库等等。这使得语言模型的使用受到了限制。你可以写一首诗,可以写一篇文章,可以从中得到一个很棒的笑话,可以搜索一些东西。...大多数情况下,我只想问数据库,谁是顶级用户,然后得到响应。今天终于有可能了。我们将使用 GPT,将给它一个称为 SQL 查询的函数,它只需要一个参数,即一个字符串“query”。...让我们在数据库中运行一下它。我们得到了一些结果。 当然,这是 JSON 格式的,因此用户无法渲染它。让我们把它发送回 GPT 看看它说了什么。...在某个时候,我会把公关的东西产品化。 让我们回到开始的地方。我们谈到了史蒂夫·乔布斯的名言,他说“计算机是思维的自行车”。这对我来说确实如此,对你们所有人来说也都是如此。...矢量数据库的兼容性 参会者 9:这可以与矢量数据库一起使用吗?我的想法是,我想根据我输入到向量数据库中的信息来约束信息,但它仍然能适用于函数逻辑? Eleti:是的,和以前一样好用。
如果你是一个成熟的开发者,你可能会在这里找到一些有用的链接,因为我列出了最好的资源,能给你的技能提升带来巨大好处。...C、你已经注意到了2003年和2018年之间的区别,以及我们在短短15年里取得的技术进步有多大。你想处于一个影响世界进程的行业的最前沿。...相信我,这是一个很棒的技术,有很多需求,也有一个伟大的社区。如果你不相信我,这里有一个趋势开发者技能分析。 够了,让我们开始吧。在下面,你会找到我认为的最适合你的东西,让你能够充分利用自己的时间。...因此,我们只专注于获得80%的知识,从而有效地利用我们的时间。 从这一切中获得的最大收获 技术总是在变化。Javascript尤其如此。现在事情变化得如此之快,以至于不可能知道每一个东西。...你需要知道的是,所有的东西都是如何组合在一起的,以及每种技术都在试图解决什么问题。最重要的是,你只需要知道它的存在,这样你就可以在需要的时候查看它,并找到它。程序员是解决问题的人。
我认为这里的神奇之处在于你必须二者兼顾。 您的语言设计哲学是出自自己的观点并付诸实践的吗? Anders:噢,在某种意义上是这样的。我认为你可能会,从某些指导原则开始。简易性始终是一个很好的指导原则。...译注4:第一原理(first principle),一个系统研究中的基本原理、规则或法则;该系统或体系的其他原理、规则或法则都是从它那里推导出来或从它那里得到解释,而它本身却不是从那个体系或系统中的任何其他原理或规则推导出来或得到解释的...其中有一部分从未添加到语言中,不过还是把它们维护在列表中,因为或许有一天会从其中获得一些好主意。我们知道虽然做得并不到位,但还是愿意做事的。 随后,我们逐渐地找到了问题的解决方案。...这不像有人曾经问过我们的:“我们喜欢把查询嵌入到语言里”,因为你并没有真正考虑这些你能考虑的概念。 我不愿意说我们从某种特定方式获得反馈。这是一一个有机的过程,我们可以从很多不同的地方得到它们。...对于更复杂的情况,我会使用一个调试器,因为我要看一看堆栈踪迹或者是本地出了什么问题等。不过通常情况下,你只要简单地检查一下,就能够很快地摸清底细。 设计API时,您遵循了什么原则吗?
他好像十分的忙,但是没人知道他在做什么。 小printf:"如果主数据库挂掉了,从数据库也会挂掉吗?"...(创建主从数据库是为了减少DOWN机时间,让数据库可以一直处于工作状态中) "你运行的所有东西,或早或晚都会挂掉。" 小printf:"你以往的经历告诉你这一切都会失败?" ...你不认为这才是问题的所在吗?" 那个人听完哑口无言。 第七章 ? 小printf来到了第四个地方,遇到了一个人,他的电脑几乎被便签盖满了,没有人知道他在干什么。 ...他看了一眼他的手机接着又说到:"看,cardboard.io框架又推出了3.5版本,它宣布不兼容3.4了。于此同时社区中已经有4个衍生版本了。我必须从他们之中挑一个。" ...你是第一批试用这些的技术的人,你从中得到了什么回报?" "额,并没有。当Rails壮大的时候,我就去关注另外的新鲜东西了。同样的,其他的几门技术我也是这样的(他不独宠一个,而是雨露均沾?)。
从设计单体、微服务和纳米服务中吸取的经验教训也得到了广泛应用。 开源和非开源许可正在不断发展。架构师必须意识到其代码库中包含的依赖关系的含义,采用软件物料清单(SBOM)。...我们如何衡量程序员的生产力?我们应该衡量程序员的生产力吗?我们是否真的从开发者领域的人工智能工具中获得了一些价值呢?当然我可以对自己说,是的,我已经开始使用它们,并且我发现了其中的价值。...Srini Penchikala:这些工具可以让程序员成为更好的程序员,但它们不会为你解决问题。你需要知道你需要解决什么问题。我认为这是另一种形式的复用。...有一些新的专用数据库专门用来管理这些数据,它们在这个领域受到了很多关注。看看它们如何进化将会是很有趣的事情。另外一个就是云。云始终是任何 IT 解决方案的基础。我认为多云的使用是一种持续的趋势。...多年来有过很多案例,其中人们都以为自己有了一套良好且稳定的依赖体系,但其实你并不知道你究竟依赖的是什么东西。 当我们处于闭源环境中时,所有代码都是公司自己人写的。是的,你拥有这一切。
我: 写下了我对rkt和Docker如何在磁盘上存储容器的理解 想出了几个我认为他们可能会按照他们的方式设计的原因 问“我的理解对吗?” 我得到的答案超级超级有帮助,正是我所寻找的。...问答案是事实的问题 我有很多问题一开始有点模糊,如“SQL中的连接查询JOIN如何工作?”。这个问题不是很棒,因为连接查询如何工作有很多不同的部分!那么对方怎么知道我有兴趣学习的是什么?...MySQL在进行连接查询之前是否始终将联结列排序作为第一步? 我知道Hadoop有时会“hash连接”——这是其他数据库引擎也使用的一个连接策略吗?...真诚地说出你不明白的地方 很多时候当有人向我解释某事时,他们会说一些我不明白的东西。例如,可能有人正在向我解释一些关于数据库的东西,并说“好的,我们使用MySQL的乐观锁,因此……”。...这种问题实际上有两个目的——第一,得到答案(可能这个人知道但其他人不知道的信息),但也要指出,这里有一些隐藏的信息,并且共享这些信息是有用的。
但除了没有开源之外,我感觉从这个框架中学到了很多东西,有必要在这里跟大家分享一下。 超大规模应用,以及这些应用的共同点 我们来讨论下超大规模应用,以及这些应用的共同点。当然,肯定有很多人一起开发。...只要有人参与,就会影响到编程模型,因为他们得思考这些东西。 ? (根据路由进行代码分割) 有个经过实践考验的方法能解决代码分割问题,这样人就不用考虑代码分割问题了。这种方法叫做“基于路由的代码分割”。...(Google搜索上查询“public speaking 101”的结果) 在这次演讲之前我搜索过怎样在公众场合讲话,于是我得到了这一堆蓝色的链接。...可以很肯定,这个页面只需一个单一的路由包就可以处理。 ? (Google搜索上查询“weather”的结果) 但稍后我想知道天气,因为加州的冬天很冷。结果立刻就跳到了完全不同的模块。...有没有人有过这种经历,以前写的代码,现在虽然不再使用了,但还留在代码库中? 大家都知道这个问题,而且最严重的就是CSS。一个超大的CSS,里面有各种选择器。谁知道哪个选择器还有用?
首先要考虑数据从哪来,数据背后是什么,数据获取的过程中有什么问题,这就是推断,还不严格属于计算机科学的研究范畴。即便最后得到的东西都是所谓的算法,你也必须思考背后的统计采样和总体。...这些隐私数据与你们是否相关可能并不重要,但它们的确引出了一些需要承载的问题。人们通常拥有数据,并希望这些数据发挥作用,但他们也希望他们自己的数据能得到保护,比说谁知道他们的数据。...这是一个很好的机会,但也会带来很多问题,特别是隐私问题。 如果我是一个生物医学研究者,说我可以得到你的基因吗?我知道你拥有这些基因。他会问我:首先,你要用我的这些基因数据做什么?...我说我们需要交流一下了。这里我举另外一个例子,一个来自医疗研究领域的案例。我有一些数据库中的人员信息,有他们的年龄、身高、体重、以及他们服用和不服用治疗药物的寿命,这是典型的医疗数据。...加上那个以后我们现在有了一个大型优化问题,一定空间 、一定复杂度、一定数学特性,我们做了数学演算来解决这个问题,最终得到了不少答案,不过我们算出了一个很简单的结果,得到了一个没有隐私度的统计率。
所以你有一个很棒的主意。而且你有来自大学的朋友可以帮助你开始构建你的应用程序。您也可以从早期采用者那里获得很好的反馈。所以你做任何人都会做的事。启动你的应用! 前几周一切都很完美。经验很棒。...该应用程序不断崩溃,数据库非常火爆。不是你想要的点亮。 但你的测试是积极的。你曾计划好一切。出了什么问题?你的应用程序无法扩展! 可扩展性(从技术角度来看)经常被忽略。...1)选择正确的技术 我很确定你看到了这一个。可伸缩性并不是事后的想法。它需要从最初的设计中包含在过程中。这从使用正确的技术开始。 编程语言 你做的第一个选择是编程语言。...拥有一切的多个副本。在多个服务器上运行数据库。许多支持开箱即用的复制。一个很好的例子是MongoDB。在多台服务器上运行后端代码。负载平衡器可以真正帮助你。 我知道说起来容易做起来难。...这种方法的问题在于,每次客户端发出请求时,您的服务器都必须工作。当多个这样的客户开始一起提出请求时,我们遇到了问题。 但这里还有另一个问题。我们不能相信客户。
(笑声) 现在你得到了所有的,某种程度上的,创意和创意来回。并为您处理从 ChatGPT 中获取的详细信息。我们开始吧,这不仅仅是一顿饭的主意。所以让我们看看我们会得到什么。...(笑声)所以你知道,再一次,我觉得我想从这里的机器中得到更多。我真的想让它注意到这件事,也许它有点过头了有点,神奇地推断这就是我想要的。但我注入我的意图,我提供了这条额外的指导。...我认为最重要的是让彼此截然不同的团队和谐地合作。CA:顺便问一下,我们可以喝刚带来的水吗?我认为我们将需要它,这是一个口干舌燥的话题。但是,你在这些语言模型中看到了一些东西,难道不也有一些东西吗?...我们尝试了很多东西,一个人正在训练模型,预测亚马逊评论中的下一个字符,他得到了一个结果——这是一个句法过程,你知道,该模型将预测逗号的位置,名词和动词的位置。...如果你不把它们放在一起,就会出现悬垂,这意味着如果有人这样做,或者当有人设法连接到电路时,然后你突然有了这个非常强大的东西,没有人有任何时间去调整,谁知道你得到了什么样的安全预防措施。
举例来说,有一个日益复杂的类,每个人都修改一点点,一直到最后都没有人愿意去做重构,大家的心态都是一样的:“我只修改了一点点,为什么要我去动那么大的刀,于我没有任何好处”。...我不在这里谈论这一问题的解决办法,我倒是想说,在开始阶段考虑清楚问题在多数情况下还是很有好处的,设计考虑得越是清楚,在后续阶段代码可以承受越多的变更而不腐朽。...而在他介绍这个系统设计的时候,我们留意到了其中存在一个时间条件触发的任务,任务基于两个数据库的数据执行,这两个数据库的数据同步是单独完成的,因此可能存在数据不一致的情况,并且在这里假定在数据更新的一小时以后...例子 5:单点故障问题 单点故障问题也是很常见的会导致服务失去的问题,出了问题所有人都知道原因,但是有时候就是很难在系统设计阶段识别出来。...亚马逊网站的数据都是页面服务器先从缓存服务中获取数据,通常这个命中率很高,如果获取不到数据或者数据过期以后再到数据库里查询。
瓦特:我认为,在我们工作的一些客户中,我也看到了分布式的整体,在那里有很多服务,比如实体服务反模式,我认为当你从整体分解到微服务时,只是有一些非常传统的概念。...我想这又回到了你刚才说的,克里斯,重要的一点是这些东西是如何交流的?API是什么?我知道我可以通过什么协议和这边的另一个团队交谈?我使用的团队是服务边界的同义词。我认为这似乎正在消失。...Eli Goldratt说,你需要三件事来改变一个范例。您需要做的第一件事是在现有的范例中尝试其他一切。你需要承受巨大的压力。你需要有人帮助你迈出第一步。...如何影响管理层和领导层以适应变化 瓦特:我不知道你们中是否有人读过《团队拓扑》这本书,并且随着旅程的发展,不得不改变团队。有时您可能会有一个完整的产品团队启动,但您可能会有处于不同交互模式的平台团队。...我所见过的公司中最好的例子就是制作数据库工具的Redgate,它做到了这一点,而且做得非常好。它们最初用于SQL Server,现在也可以使用其他数据库。他们做得非常成功。
因为只有完全知道、并知道自己知道一切来龙去脉的人,才能真正把一件事情讲得通通透透。 但是,你可能会怀疑,那除了能够讲清楚之外,弄清自己到底知道哪些东西还有其他什么好处吗?...不信你回忆一下你在和别人讨论问题的时候有多少次觉得“反正就是这样,我感觉得到它是对的,但是你问我,我也说不清到底怎么回事”,对此你不觉得很奇怪吗?...很多时候我们的思路出了问题并不是我们不会反思,而是不知道自己的思维中有那些隐含的假设(assumptions),如果你只感觉到答案,却不知道你大脑得到这个答案之前做了哪些推理,你又怎么知道哪一环可能出了问题呢...不过前提是你得开始,并且坚持过一开始的困难期,以后的一切便成了习惯成自然。 7) 一个长期的价值博客是一份很好的简历。...当然,肯定会对某些人没有价值,他们早就知道了,但就算你再厉害,也总是有人比你厉害的,不能说因为这些原因就不记录你自己的想法了,你自己思考了之后理解得最深刻,就算有别人想过了,总有人没有想到的。
还好 MySQL 维护着一个非常好的 bug 报告系统,让我们可以知道我些我们无法想像的事情,知道其他人也在经受同样的磨难。...这个表是十分高效的,它执行的规则也很好。突然一次,有人上传了一个使用了连字符的九位数邮编。或者还有可能,你得到了一位来自加拿大客户的信件,上面写有邮政编码。 这时,一切都乱了。...开发者需要绞尽脑汁编写查询语句,然后数据库对其进行解析。 这就是很多注重运行速度的开发者放弃数据分表转而使用不规范数据表的原因。不区分数据实体,将所有数据保存到一个大表中——以避免复杂的查询。...另一方面,我们要相信有差异——不然为什么大家都在争论它?也许它们在性能和我们查询的范围内,在两个阵营中工作方式相同?但也许他们不同-或者将来会不同。...你在这里挣到了多少钱?在社区版之上开展经营行为是否公平?企业版中额外的功能,是否只是一个噱头来引诱我们不断付费呢?这至少说明一点,它是另一组需要回答的问题。选用哪个版本?遵照哪种许可证?
就如实现类的名字,这里要用到DB。但在真实的项目中,由于资源所限,一般不会在应用中任意打开DB连接,而是会共享DB连接。...我不是要测试服务吗?做数据准备不是测试仓库的时候该做的事吗? 所以,你发现问题在哪了吗? 在你创建对象的那刻,问题就出现了。...只是因为引入一个具体实现,就需要把它周边全部东西引入,而这一切都与业务类本身的业务逻辑没一毛钱关系。...最好的解决方案就是有个框架。Java的这种组装一堆对象的东西一般被称为“容器”。 至此,一个容器就此诞生。...按照这个编程模型去写代码,整体的质量会得到大幅度的提升,也会规避掉之前的许多问题。这也是一个好的模型对项目起到的促进作用。像DI这种设计得非常好的模型,你甚至不觉得自己在用一个特定的模型在编程。
他们也都有编号,更重要的是每个人还有个标签,上面写着:硬盘、数据库、内存、网卡…… 我现在理解不了,看看操作步骤吧。 第一步:从包裹中取出参数。...离开这个车间,又来到一个大屋子,这里有很多线程在慢腾腾地喝茶,打牌。 “哥们,你们没事干了?” “你新来的吧,你不知道我在等数据库服务员给我数据啊!据说他们比我们慢好几十万倍,在这里好好歇吧。”...我这里有人在登录系统,能等这么长时间吗?” “放心,你没听说过人间一天,CPU一年吗?我们这里是用纳秒、毫秒计时的,人间等待一秒,相当于我们好几天呢,来得及。” 干脆睡一会吧。...“我们的世界规则很复杂,首先你不知道什么时候会被挑中执行;第二,在执行的过程中随时可能被打断,让出CPU车间;第三,一旦出现硬盘、数据库这样耗时的操作,也得让出CPU去等待;第四,就是数据来了,你也不一定马上执行...我看到屋子里的东西一个个的不见了,等待车间、就绪车间,甚至CPU车间都慢慢地消失了。我身边的线程兄弟也越来越少,最后只剩我自己了。 我在空旷的原野上大喊:“还有人吗?” 无人应答。
发布的第一天就有了6万用户,第二天涨到了16万,5天之后涨到了50万。同时在线人数大概1000,已经上传的截图数目接近20万,应用中还包括一个图像检测和缩放工具。...每一次请求在后台都是一个依据地理位置的查询或是搜索,这种查询搜索再加上排序和过滤对服务器的负担是很重的。 GoChat跟我们相比不同点在于聊天信息得发送给所有参与者,而且请求更频繁。...对于小型数据集其实这样查询没什么问题,但如果在生产环境用就肯定不行了。就算将查询语句进行简化也还是不行,因为数据库根本就不该一次对多个索引进行查询。...数据库方面我则是按照搜索的条件预先对图片进行了分类,比如点赞最多的、最新上传的等等。有新上传的截图或者对截图有赞踩等操作时这些类别也会检查更新,所以查询搜索时就不用查询所有图片了。...虽然我知道Mongoose代码挺多的而且我其实也不太精通,不过MVP么怎么方便怎么来。上周末有一次我的四个NodeJS进程让服务器CPU都飙到了90%以上而同时在线人数只有不到一千。
领取专属 10元无门槛券
手把手带您无忧上云