首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

程序员翻车时的 30 种常见反应

“这条逻辑语句的逻辑性不是很强” if/else 循环、for 循环、while 循环、do 循环,这些都是逻辑语句,除了这些之外还有很多。在阅读示例代码时,我会反复回想我代码里的逻辑应该怎样写更好。...这是由史蒂夫·鲍尔默的古怪行为引起的,它可能只是一个酒鬼的胡言乱语。不过这有点讽刺,因为鲍尔默在微软并不是一名程序员。想我们得等别人来试验一下这个理论。 16. “谁动了的代码?”...如果你忘记添加结束分号,只是一个无心的错误,但解析器不理解这一点,它会无情地抛出一个致命错误。然后,你必须再花 20 分钟查看代码,最后你发现缺少了一个分号。也许这就是调试的“乐趣”。 23....“想知道如果请人修复犯下的错误要花多少钱?” 聘请其他开发者修复问题,这种想法很诱人,但显然财务上不允许。另外,如果你不亲自动手,怎么能从这些错误中吸取到教训呢?...这可能是一项烦人的任务,但绝对没有重建被损坏的 SQL 数据库那么烦人。 27. “要解决这个问题,最快的方案是什么?” 在经过了几个小时毫无头绪的工作之后,很明显,你可能需要尝试一种新的方法。

49510
您找到你想要的搜索结果了吗?
是的
没有找到

你的数据根本不够大,别老扯什么Hadoop了

说当然可以,但我会说需要看具体的文件格式。 他们给我一个U盘,里面存储600MB数据(他们所有的数据,而不是样本数据)。...或者想我多年解释一样: 目标:统计计算图书馆书籍的数量 Map:你统计奇数书架上书的数量,统计偶数书架上书的数量。...在Hadoop里,所有计算都必须按照一个map、一个group by、一个aggregate或者这种计算序列来写。这和穿上紧身衣一样,多憋得慌啊。许多计算用其他模型其实更适合。...买一块,加到桌面PC或者服务器上,然后装上PostgreSQL解决它 四、Hadoop << SQL或Python脚本 在计算的表达能力来说,Hadoop比SQL差。...Hadoop里能写的计算,在SQL或者简单的Python脚本都可以更轻松地写出来。 SQL一个直观的查询语言,适合做业务分析,业务分析师和程序员都很常用。

59531

一条 SQL 语句是如何执行的

sql 顺序需不需要调整。...不同的是,在 update 执行过程中涉及到两个日志,一个是 redo log,一个是 binlog redo log 首先需要明确的是,redo log 是 Inndb 存储引擎独有的,其他引擎没有...redo log 主要作用是记账 举个通俗易懂的例子,你是掌柜的,开了一家店铺,店铺生意很好,每天都有很多人,有些人都是常客,吃饭都是月结,于是你有一个账本,账本上记录了谁欠你多少钱,店铺刚开张时,客人少...这里的黑板就是 redo log,账本就是 MySQL 数据库磁盘,这么做的原因是为了提高效率,不然 MySQL 每一次操作都要写入到磁盘中,效率很低,有了 redo log 以后,每次 update 操作,需要写到内存上...redo log 是循环写的,空间固定会用完;binlog 是可以追加写入的。“追加写”是指 binlog 文件写到一定大小后会切换到下一个,并不会覆盖以前的日志。

64120

大数据那些事(7):腾飞的拉丁猪

MapReduce这个非常傻的模型的出现,让人们一下子发现原来大规模的并行计算可以这样做,写个Mapper 写个Reducer,再写个Mapper,再写个Reducer,...,搞定。...喜欢Pig是因为这个语言解决了SQL长期以来最为诟病的一个问题。...这使得我们需要写nested query的概率大大的降低了。SQL这个东西就是简单的query很简单。一旦开始nesting了,那么可以写出鬼和神仙都看不懂的SQL,当然更看不懂。...倘若设计Pig的话,想Load和Store我会保留,只是凡是和SQL功能差不多的地方都会用上SELECT FROM WHERE的样子。...想我会在Pig里一开始就引入类似HCatlog那样的东西,使得Pig有Hive一样的表的概念,但是同时并不禁止通过Load和Store直接的凭空产生数据和分析。

91570

大数据那些事(7):腾飞的拉丁猪

MapReduce这个非常傻的模型的出现,让人们一下子发现原来大规模的并行计算可以这样做,写个Mapper 写个Reducer,再写个Mapper,再写个Reducer,...,搞定。...喜欢Pig是因为这个语言解决了SQL长期以来最为诟病的一个问题。...这使得我们需要写nested query的概率大大的降低了。SQL这个东西就是简单的query很简单。一旦开始nesting了,那么可以写出鬼和神仙都看不懂的SQL,当然更看不懂。...倘若设计Pig的话,想Load和Store我会保留,只是凡是和SQL功能差不多的地方都会用上SELECT FROM WHERE的样子。...想我会在Pig里一开始就引入类似HCatlog那样的东西,使得Pig有Hive一样的表的概念,但是同时并不禁止通过Load和Store直接的凭空产生数据和分析。

828110

Mysql如何随机获取表中的数呢rand()

内存临时表 首先,我们第一时间会想到order by rand()实现 select word from words order by rand() limit 3 我们在看看这条语句是如何执行的使用...我们在来看看上面随机获取字段的sql语句是如何执行的 创建一个临时表,临时表使用的是memory引擎,表里面有两个字段,一个字段double类型,我们叫R,另一个字段varchar(64),记为W,且没有建立索引...而优先级算法,可以精准的获取最小的三个word 从临时表中获取前三行,组成一个最大堆 然后拿下一行数据,和最大堆的R比较,大于R,则丢弃,小于R,则替换 重复2的步骤,直到把10000行数据循环完成...回想我们上面有一个根据OPTIMIZER_TRACE,发现其中有个值filesort_priority_queue_optimization里面的chosen=true表示使用的就是优先级排序,所以没有使用临时文件...随机排序方法 我们简化一下问题,只需要获取一个随机的字段,我们的思路如下 获取表的主键id的最大值,和最小值 然后根据最大值和最小值,算出x=(M-N)*rand() + N; 再获取不小于X的第一行

4.5K20

MySQL(七)|MySQL中In与Exists的区别(1)

这边有两个表需要关联查询,表的情况如下: # 2759174行数据 SELECT COUNT(*) FROM tb_data t1; # 7262行数据 SELECT COUNT(*) FROM tb_task...然后实际情况是使用IN需要44.88s,使用EXISTS需要28.93s,这个是怎么回事? 一、EXISTS和IN的介绍 我们先对EXISTS和IN做一个简单的介绍。...使用了t2(B)表索引 三、结论 MySQL中的in语句是把外表和内表作join连接,而exists语句是对外表作nest loop循环,每次loop循环再对内表进行查询。...在一般情况下确实如此,这里需要考虑到索引原因。但特殊情况是什么情况呢?目前也不知道。 最后,我们来看看《高性能MySQL》这边经典的MySQL书籍对in和exists有什么见解。 ?...四、处理 说实话,想尽了所知道的办法,都没有找出这到底是怎么回事。想我是应该要去看看《MySQL技术内幕:SQL编程》啦。

15.3K71

Global Game Jam 历届主题

Global Game Jam(GGJ) 是一个全世界的年度游戏开发者的聚会,世界各地的组织者会在他们所在的城市找一个地方,可能是大学,可能是某些商业的会场,然后召集周围的游戏开发者聚会。...如果拿到这个主题的话,想我还是会设计成合作游戏,合作避免灭绝,也许未必是要灭绝的命,可以看做是一次逃亡的旅行。...有自我,无限循环,万物,生死循环,等等意向在里面。 不过拿到这个主题的话,很可能弄一款贪吃蛇出来…… 2013: sound of a heartbeat 一段心跳声。...很好的一个主题。如果拿到这个主题,想我会写一个故事,一个文字冒险游戏,每个人看到的文字会不一样,每个人做出的决策也会不一样,他们将从这个游戏里看到他们自己,也将通过这个游戏更加认识他们自己。...这个话题好哲学,想起东坡和佛印的对话,佛印说,你在眼里是一尊佛,东坡说,你在眼里是一坨屎。 如果以此为题做游戏的话,想我会做一面镜子……认真点的话,觉得做一个镜子迷宫也许是个不错的选择。

2.3K50

IIS出现System.Data.SqlClient.SqlException时的解决办法

页面提示一个500服务器错误就什么也没了。...:( Oops. 500 Internal Server Error 初步查询 在VS中调试的时候明明好好的,于是翻看了一下ASP.NET Core关于在IIS上部署的文档,上面提供了一个简单的检测错误来源的方法...照着使用dotnet myapp.dll命令测试了一下,发现的程序没问题,那么问题看来就是出在IIS上面了。但是由于IIS只给出了一个500错误,没有更详细的日志,所以我暂时没有办法。...\logs\stdout"创建logs文件夹,让IIS将日志记录到这里。修改完成之后需要在IIS中重启的程序,然后再浏览器中访问,果然出现了迫切需要的程序日志。...联想我开发时候正常,部署到IIS上却不正常了。说明还是IIS有哪里权限不够。上网在查了一下果然发现是这个原因。

1.2K20

优酷项目之 ORM(数据库对象关系映射)

前言:   我们在操作数据库时候一般都是通过sql代码操作mysql数据库中相关数据,这就需要懂得sql语句,那么怎么样才能在不懂sql语句的情况下通过我们所学的python代码实现对mysql数据库的操作...上面只是实现了么在操作表记录方面的某些功能,但是么知道还没有达到映射数据库表结构的目的   怎么做呢?想想我们的目的:在映射表结构的时候这个表结构应该有哪些东西?   ...说到自动,又说道创建类的时候,想我们可以往元类上面想了,前面学习元类的时候我们就可以拦截类的创建过程,在这个过程中加入或者修改,达到我们想要的目的。   ...答案是:元类的__new__方法 既然要拦截,肯定是不让元类的__new__生效,让我们自己定义一个__new__或者说在元类的__new__触发之前自己通过自定义__new__加入一些我们需要的然后再走元类的...改:修改表,和查一样,都是对sql语句的组合拼接,然后调用Mysql中的execute方法,达到修改目的,这里需要注意一点,修改的操作都是建立在已经查到数据对象的基础上的,因为你查不到就无从改起。

76210

堕落小白的前台sql注入cms代码审计

好家伙很快哈一个三连问,问的突然眼眶湿润默默的流下了没有技术的眼泪。 最后想了想我还是找个小的cms玩一玩吧,也许这就是菜gou挖洞的心理行动历程吧,也许这会安抚一下寂寞受伤的心灵吧。...在网上找了一个某厂商的开源的cms源代码安装好后直接访问: http://127.0.0.1/comment/api/index.php?...可以看到这里对rlist做了一些替换,这也是我们绕过sql注入的关键。 然后回到readdata函数,进入Readrlist函数: ?...此处直接拼接进了sql语句,没有引号包裹,导致注入,因回显注入不需要用sqlmap。...关于sql注入的漏洞危害我这里就不老生常谈了,此厂商php代码出现了问题导致的sql注入,个人认为首先应确保界定了你的查询中的每一个值。

56710

三层架构之我见 —— 不同于您见过的三层架构。

想我需要的是什么?执行sql语句(比如添加、修改、删除)、返回记录集(存放在DataSet等对对象里面)。的数据访问层也就是围绕这两个功能而展开。...需要传入的参数:sql语句、存储过程的名称(存储过程的参数)。 根据实际情况判断具体传入什么参数,以及使用那些函数。(这些都是调用数据访问层的地方的事情。)        ...数据访问层先说到这里,下面说说实体类         一开始是不用实体类的,因为感觉需要一个表对应一个实体类,如果是这样的话就太麻烦了。...当然在实际中又加了一个ID的属性。 //插叙结束         通用的实体类,也就是说不管是资讯还是文件下载还是其它的什么,都用具有这些属性的结构数组保存记录集。...再在数据访问层里面增加一个函数来返回结构数组(就像返回DataTable 那样的函数)。前台调用也是很方便,不仅可以绑定到控件,而且可以直接使用 for 循环显示数据(仿佛回到了asp的时代J)。

1K70

MySQL实战 | MySQL日志模块—redo log和 binlog

一个更新语句执行的时候整个过程跟查询的步骤是类似的,具体可以看之前的文章:MySQL实战 | MySQL逻辑架构—一条查询SQL是如何执行的,在一个表上有更新的时候,跟这个表有关的查询缓存会失效,所以这条语句就会把表上所有缓存结果都清空...要理解 crash-safe 这个概念,可以想想我们前面赊账记录的例子。...想你肯定会问,为什么会有两份日志呢? 因为最开始 MySQL 里并没有 InnoDB 引擎。...而 InnoDB 是另一个公司以插件形式引入 MySQL 的,既然只依靠 binlog 是没有 crash-safe 能力的,所以 InnoDB 使用另外一套日志系统——也就是 redo log 实现...redo log 是循环写的,空间固定会用完;binlog 是可以追加写入的。“追加写”是指 binlog 文件写到一定大小后会切换到下一个,并不会覆盖以前的日志。

43420

聊聊DatabricksSQL和Apache Kyuubi

新粉请关注的公众号 昨天写了一篇文章Apache Kyuubi:一个有趣的大数据开源项目,介绍了网易开源的Apache Kyuubi,是如何把Spark变成为一个数仓的。...有一些人联系,有问我是不是不知道有个产品叫Databricks SQL的,也有问我Databricks SQL和这个比起来怎么样。 有这么多问题,想我应该没办法一个一个回答。...日常工作的时候需要研究收费的东西,往往也是很少的情况下才需要。当然,如果有个公司愿意给飞总恰饭的机会,聊聊收费的产品,是很乐意的。 Databricks SQL是不是个好东西呢?...这篇文章里不想深入去分析Databricks SQL。有很多原因。其中一个原因是所有闭源的东西,的读者里面很多是不愿意花钱去用的,受众的问题。...所以除非将来Apache Kyuubi真的很牛逼了,牛逼到威胁到Databricks的生意了,否则的话,觉得两个产品就没有任何可比性。 Databricks SQL是完全云端的服务,需要交钱才能用。

69940

终于新同事了,没想到竟是噩梦的开始

为什么三年了还要带?起初以为只是说笑,想我帮新同事熟悉一下部门和自家产品,所以才这么说。 结果相处了两天发现,新同事在记忆力方面不错,讲起理论朗朗上口,跟背歌词一样。...在以前的java开发中,我们需要先for循环遍历,然后再把需要的字段打印出来,但是使用map就可以完全替换掉它。...有个List集合,它嵌套了一个订单详情的otherList,需要获取这个List集合里所有订单的总价格。...通过以前的做法可以看到,我们需要经过两次for循环才能计算内嵌的集合的值,之后加起来才是最后的总数。...它能通过Function函数对应的方法控制缓存的条件。不需要像以前一样,一种缓存方式需要一个方法。 3.结语

45120

一句玩笑之后的思考(r6笔记第68天)

如果把表的结构和sql语句结合起来,还真找不出该怎么把这种关系给描述出来,索性画了个图,一看就不满足情况吧。...image.png 玩笑归玩笑,不过自己哪根筋搭错了,突然想起一个问题,想起一个sql优化案例。...有兴趣可以参考通过图表简化sql语句的表关联 http://blog.itpub.net/23718752/viewspace-1455102/ 一个略微简单的例子,有这么一条sql语句,性能还能够接受...按照三户模型,一个客户可以对应多个用户,一个客户可以对应多个账户,而用户和账户之间没有直接的映射,而是通过一个中间的属性映射。...subscriber.customer_id=xxxx and subscriber.customer_id and account.customer_id and subscriber.xxxx 世界中的关系还真是微妙,想我们的关系就是

55250

排序6:冒泡排序及优化思想

动图演示 代码实现 逻辑:排序思想我们可以了解到,实现一定是需要双重循环的: 第一层循环控制轮数,第二层循环控制单轮中所有需要排序的数字的排序。...第一层循环:每一轮能够使得一个数字排好,那么n个元素就需要n - 1轮,因为如果n - 1个元素都正确归位了,那么最后一个也一定在正确的位置上。...我们可以使用一个for循环,其中设置一个int 类型的变量i ,i从0开始,一直到n - 1。...第二层循环:n个元素需要比较n - 1次才能取出最大值,每一轮都能比较出一个需要排序的数字组中的最大数字,所以每一次轮需要排的数字就会减少一个,最后减少到0为止。...因此,我们可以设置一个判断值exchange进行优化。

26230

【入行指导】面对IT界变幻莫测的未来,我们应该如果做到“淡定”

如果让小编倒退7年回到当初选择学习语言的时候,在已经了解了未来可能做的岗位之后,突然听说未来的岗位可能少了一半,想我一定会纠结一阵子的; 但是放到现在的,可以大胆的告诉各位将要学习一门语言的朋友们,...7、PHP 8、Ruby 9、SQL 10、MATLAB ?...; 岗位: 1.精通的学习python后可以做一些大数据处理;(当今的热门 还需要一些关于大数据的基础) 2.可以用他做web站点,动态的web网站通的功能还是非常强大的,开发也非常迅速; 3.做游戏,...(小编的梦想就是有一个自己的工作室 一个字 ”酷“) ? ? 九:SQL 数据库编程语言,用来操作数据库中的数据的语言,玩数据库的朋友都知道,试问什么程序可以离开 数据库,没有数据库哪来大数据?...语言定位:如果游戏职业中有”会计“这个行业形容他是最合适的了不过没有,非要给他一个职位的话认为是一个曾加敏捷的物品或是道具; 岗位: 这个不用想呀一定是从事与数据库相关的岗位; 精通以后再搭建数据库方面可以说前途无量

71180
领券