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

老板最怕你出这样代码。。。

每一次你处心积虑地违背编程惯例,都会迫使他必须用放大镜去仔细阅读你每一行代码。 你可能会觉得每个语言特性都可以用来代码难以维护,其实不然。你必须精心地误用它们行。...-- Roedy Green(本文作者) 编写无法维护代码另一大秘诀就是伪装艺术,即隐藏或者看起来像其他东西。很多招式有赖于这样一个事实:编译器比肉眼或文本编辑器更有分辨能力。...总是返回合理值,即使数据输入有问题或者错误。 有礼貌,无断言 避免使用 assert() 机制,因为它可能把三天debug盛宴变成10分钟快餐。 避免封装 为了提高效率,不要使用封装。...傻瓜接口 编写一个名为 "WrittenByMe" 之类空接口,然后所有类都实现。然后给所有你用到Java 内置类编写包装类。 这里思想是确保你程序里每个对象都实现这个接口。...最后,编写所有的方法,它们参数和返回类型都是这个 WrittenByMe。这样就几乎不可能搞清楚某个方法功能是什么,并且所有类型都需要好玩造型方法。

15120

“开猿节流” vs “防御性编程”

每一次你处心积虑地违背编程惯例,都会迫使他必须用放大镜去仔细阅读你每一行代码。 你可能会觉得每个语言特性都可以用来代码难以维护,其实不然。你必须精心地误用它们行。...-- Roedy Green(本文作者) 编写无法维护代码另一大秘诀就是伪装艺术,即隐藏或者看起来像其他东西。很多招式有赖于这样一个事实:编译器比肉眼或文本编辑器更有分辨能力。...令人高兴是,像Java这样语言编写这种无法维护代码变得非常容易。例如,改变一个被引用很多变量类型几乎是不可能,因为所有造型和转换功能都会出错,而且关联临时变量类型也不合适了。...有礼貌,无断言 避免使用 assert() 机制,因为它可能把三天debug盛宴变成10分钟快餐。 避免封装 为了提高效率,不要使用封装。...这里思想是确保你程序里每个对象都实现这个接口。最后,编写所有的方法,它们参数和返回类型都是这个 WrittenByMe。

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

【Linux系统编程】Linux编辑器——vim

从这篇文章开始,我们要来学习一些Linux开发工具。 这篇文章,我们先来学习一下Linux文本编辑器——vim。 1....shift + ;即:进入末行模式 那现在我们想里面的文本显示行号,怎么做呢?...b:光标回到上个”单词“开头 nb:相当于敲n次b 敲b 敲3b 文本内容大小写切换 在vim还可以快速进行大小写切换: 比如 现在想把圈出来字符小写变成大写...Shift ~:快速大小写切换(原来大写变成小写,原来小写大写) 现在光标在h位置,此时敲Shift ~ >它把h变成大写H,并且光标自动移到下一个位置 所以如果我们按着Shift...如果你不想使用了,把它从对应配置文件里面删掉就行。

17510

创建华丽 UI 7条规则  第二部分 (2019年更新)

方法一:将文本直接放置于图片上 一直在考虑要不要把这个方法算进五种方法一种,但设计上,直接将文字放置于图片上视觉效果更好是可行。 ?...方法四:模糊图片 使文本内容清晰一个神奇方法,是将背景图像一部分变得模糊。 ? 苹果确实背景变得模糊了,尽管它是在 Windows 系统中最先实现。 ?...如果你刚小学毕业,那么你很可能已经使用了一种方法来引起注意或远离我们看到文本: 尺寸(大或小) 颜色(反差较大或较小;色彩鲜明) 字重(加深或者变轻) 拼写(小写大写和标题格式) 斜体 字母间距...小、低对比度“已经过时”文本不会碍手碍脚——但是由于大写类型、大字母间距和大空白,你可以在查找时立即看到。 选中和鼠标停留样式 被选中和鼠标停留文本样式是另外一回事了——并且很难。...Montserrat 曾经犹豫是否推荐 Montserrat 字体,因为没有斜体字,字距怪异,而且厚得很难看)。但这个项目一直很活跃,Montserrat 变成了一种不可思议字体。 ?

1.1K30

谷歌最强NLP模型BERT如约开源,12小时GitHub标星破1500,即将支持中文

Labels: [MASK1] = store; [MASK2] = gallon 为了学习句子之间关系,还训练一个可以从任何单语语料库生成简单任务:给出两个句子A和B,机器判断B是A下一句,还是语料库随机句子...其中,Uncased意思是,文本在经过WordPiece token化之前,全部会调整成小写,比如“John Smith”会变成“john smith”。Uncased模型也会剔除任何重音标记。...主要有三个步骤: 文本标准化:将所有的空白字符转换为空格,在Uncased模型,要将所有字母小写,并剔除重音标记。...预训练BERT 如果你想自己预训练BERT,可以看看这份资源在任意文本语料库上完成“masked LM”和“预测下一句”任务代码。...FAQ 问:这次放出代码适用于云TPU么?GPU能用么? 答:没问题。这个仓库所有代码都能在CPU、GPU和云TPU上跑。但是,GPU训练仅适用于单GPU。 问:提示内存不足,这是什么问题?

74320

「译」按钮文本设计五大原则

在播放列表,词语“删除”会用户觉得自己歌曲会被删除掉,这里措辞是不合适,因为实际上歌曲并不会被删除。使用词语“移除”会更加严谨,因为这个操作只是将歌曲移出播放列表,但不会将其从磁盘删除。...原则 3:使用功能化表达方式 模糊且通用按钮文本用户感到困惑。由于文本是通用,这使得用户不清楚按钮具体作用。要想用户明晰操作结果是什么,必须改用功能化表达方式。...image.png 举个例子,有很多按钮文本都用到了“提交”这个词语,这实际上使得按钮作用变得很模糊。当用户看到这个时候,他们并不能确定具体会发生什么事,因为这是非功能化表达方式。...image.png 主动祈使式把动词短语变成了命令。这种表达方式可以你去除句子不必要成分,从而按钮文本更加简洁明了。你只需要在文本中使用带有副词或者直接宾语动词即可。...使用主动祈使句式时,要避免采用教学式表达告知用户如何使用他们设备。典型反面教材就是在按钮文本中使用“点击这里”表达。这个表达不仅使文本变得冗长,而且对用户来说是多余

67220

谷歌最强NLP模型BERT如约开源,12小时GitHub标星破1500,即将支持中文

Labels: [MASK1] = store; [MASK2] = gallon 为了学习句子之间关系,还训练一个可以从任何单语语料库生成简单任务:给出两个句子A和B,机器判断B是A下一句,还是语料库随机句子...其中,Uncased意思是,文本在经过WordPiece token化之前,全部会调整成小写,比如“John Smith”会变成“john smith”。Uncased模型也会剔除任何重音标记。...主要有三个步骤: 文本标准化:将所有的空白字符转换为空格,在Uncased模型,要将所有字母小写,并剔除重音标记。...预训练BERT 如果你想自己预训练BERT,可以看看这份资源在任意文本语料库上完成“masked LM”和“预测下一句”任务代码。...FAQ 问:这次放出代码适用于云TPU么?GPU能用么? 答:没问题。这个仓库所有代码都能在CPU、GPU和云TPU上跑。但是,GPU训练仅适用于单GPU。 问:提示内存不足,这是什么问题?

1.2K30

Python——变量和基本数据类型

\"" # 使用转义字符也能做,就是麻烦了一些。 print(message) 程序执行结果: ? 在程序,灵活使用单引号和双引号以及转义字符,能让书写程序变得简洁。...刚才我们输入名字有点问题,那就是首字母没有大写。不过,python内置了一个函数title可以做到将首字母变成大写,其他字母小写。下面的代码展示了如何使用title。...name = input("Please input your name:") print("Hello,",name.title()) #将用户输入每一个单词首字母变成大写。...执行这段代码,然后结果如下图所示: ? 这个函数,对于我们这样非字母文字使用者而言,用到频率可能非常低。不过,我们需要注意是使用它方式,我们是使用name.title()来使用它。...可以看到,我们输入只要是正确验证码就没有问题,无论你输入验证码字母是大写还是小写。同理,使用lower()函数也可以很容易做到。

41130

Vicuna数字孪生再现10年前自己,跨越10年对话感动无数人

如果他总结经验的话,就是项目是否成功基本取决于访谈语料库质量。...回看这个过程时,网友把这个过程看作是写日记,或者对自己一种洗脑式审查。 在这个自我评估过程,他也发现自己变得更加深思熟虑,开始学会反思。...百思不得其解网友,干脆直接去问了问模型,这是怎么回事。 有时候你回答并没有帮助,这会失望。你是训练出来大致知道你应该怎么回答。 你这些没用回答都是从哪里来怎么生成?...Huang表示,模型回应和她认为那一时期她反应惊人地相似。 之后,Huang模型向现在她提问。 米歇尔:你有什么问题要问我吗? 小米歇尔:当然有!很好奇在那些日记之后你变成什么样了。...小米歇尔:这是什么意思?是什么样艰难事? 米歇尔:比如那些你伤心经历,或者你觉得整个世界都要坍塌了时刻。 小米歇尔:哦,是的。最近也经常有这种感觉。

15730

用R语言进行文本挖掘和主题建模

1、文本检索 文本文件可以有各种格式,如PDF,DOC,HTML等。第一步是将这些文档转换为可读文本格式。接下来,必须创建一个语料库语料库只是一个或多个文档集合。...当我们在R创建语料库时,文本会被标记并可供进一步处理。...# 将每个字母变成小写 articles.corpus <- tm_map(articles.corpus, tolower) # 删除标点符号 articles.corpus <- tm_map(articles.corpus...我们也可以从我们文本中提供我们认为与我们分析无关文字。 案例折叠:案例折叠将所有大写字母转换为小写字母。 词干化:词干是将修饰词或派生词归为根过程。...以上结果表明,这两个文件主题都集中在机器学习和数据科学领域。这正是所期望,因为拿起了前两篇关于人工智能和数据科学文章。 你可以从GitHub中找到数据集和代码。

2.9K10

Hello NLP(1)——词向量Why&How

虽然,对于NLP来说,w2v技术和操作已经烂大街了,随便一个NLP任务,底层基本都要搞一个w2v,但是到底为什么需要w2v,背后思想是什么,是怎么训练得到,也许很多经常使用w2v的人都不一定很清楚...说白了,这种向量表示就是这个词在我们语料库一个index。 这种方法是很流行,在很多机器学习应用,都是对词语进行这样处理。...我们希望,这个原本来语料库这个中心词周围概率乘积越大越好,因为这个乘积就是这几个词同时出现概率,用极大似然思想,我们希望这个概率尽可能大。...而且,实际上相关内容在暑假时候,就已经学习过了,最近下笔,主要是在思考“为什么这个词向量要这么设计,为什么模型要这样设计,为什么目标函数是这个”。...这个问题到底怎么解释?为什么训练出来词向量就是反映分布相似度?是什么原因导致?这些问题,我们后面再详细探讨!

55130

【Python环境】Python自然语言处理系列(1)

一个标识符token是表示一个我们想要放在一组对待字符序列——如:hairy、his 或者:)——术语 一个词类型是指一个词在一个文本独一无二出现形式或拼写 将文本当做词链表,文本不外乎是词和标点符号序列...测试s 中所有字符是否都是数字 s.istitle() 测试s 是否首字母大写(s 中所有的词都首字母大写) 二:语料库 1,古腾堡语料库 古腾堡项目,gutenberg 文本特征:平均词长...6,标注文本语料库 文本语料库结构: ?...假设一个文本所有词都按照频率排名,频率最高在最前面。齐夫定律指出一个词类型频率与它排名成反 比(即f×r=k,k 是某个常数)。...W+', raw) 10,NLTK 正则表达式分词器 nltk.regexp_tokenize() 11,断句,分词:分词是将文本分割成基本单位或标记,例如词和标点符号 现在分词任务变成了一个搜索问题

837100

从 App 描述介绍文字中发掘 Python 文本数据预处理实例

所使用预处理“框架”主要如下: 翻译* 去除非字母字符 大写小写 分词 去除停用词 词干提取(stemming)** 数据分析 * 首先对所有简述进行翻译原因是,非字母字符正则表达式可能会将某些语言去除掉...3 大写小写 文本数据正则化另一步就是将所有字符转化为小写。这一步too simple,只需要对数据帧相应列运行str.lower()方法即可。 ? 4,5,6 分词,去停用词和词干提取 ?...这个和使用既定切分器对一个字符串运行切分函数并得到一个各个部分列表做法差不多。我们在这里使用nltk包word_tokenize()方法来进行分词。...为了给每个类别生成一个词云,为每个建立了一个清洗过应用简述语料库(或者说是集合)。比较幸运是,wordcloud包可以很方便地从一个给定语料库生成词云。 ?...通过使用一个评估词汇多样性简单公式来回答这个问题。用每个过滤列表唯一词个数除以相应简述词总数得到一个数值。这个数值越高就表示词汇多样性越高。 ?

1.1K30

外甥女问我什么是代码洁癖,是这么回答...

别担心,我会用通俗易懂语言和一些趣味对话来帮助你理解和掌握这个技能, 8 岁外甥女听了都说懂。...重构就是改进既有代码设计,更好懂、更容易维护,而不改变功能。想象一下,它就像是给代码来了个变美的化妆术,但内在还是那个代码,不会变成"不认识的人"。...因为代码是活,一天天在变大,当代码变得难以理解、难以修改时,它就像是一头头重大象,拖慢了我们前进步伐。重构就像是给大象减肥,使更轻盈、更灵活,开发速度也能提升不少!...重构步骤 露露:明白了舅舅,那重构具体步骤是什么呢? ❤:问得好,露露,看来你有认真在思考!接下来给你介绍一下重构基本步骤吧! 2....'-' 分隔 user-order 包名 全部小写,多个单词时用划线 '-' 分隔 config-sit 结构体名 首字母大写 Student 接口 采用 Restful API 命名方式,路径最后一部分是资源名词

13020

谷歌 Ngrams :大数据如何创造错觉?

大数据如果说美国人现在开始越来越以自我为中心了,你也许会想这个老家伙肯定又要嘟囔些「过去才是好日子」之类。但是,如果有着对1500亿个文本词语分析来支持这个宣称呢?...这与它最初目标完美相符:这些书本内容完全呈现于谷歌强大检索技术。尽管从社会学研究角度来说,语料库有了危险歪曲。...FIGURE 图表:主要用于标题大写字母F开头「Figure」使用频率在20世纪大幅上升,意味着语料库中科技文章开始增加。...有了数百万个检索术语后,GFT 毫无疑问开始过度诠释一些季节性词语,例如把「雪」来当做流感证据。 但是,当大数据不再被看做是万金油时,真正具有了颠覆性。...举例来说,一家当地沃尔玛也许会发布一个销售助理职位,而实际上想要招十个,或者它也许会这个发布一直在挂在那里几周,直至人满为止。

890100

程序员英语学习指南

怎么办? 本文作者于江水,前淘宝高级前端工程师,曾负责过“前端开发简单而友好”飞冰综合解决方案。在这篇文章,同为程序员于江水整理了自己学英语经验,与大家分享。...比如:表达喜欢一个梳妆台,只有最基础语料库只能说出:喜欢这个桌子上有镜子东西。 这时,看到这句话的人可能知道你想表达喜爱一张桌子和镜子东西,但不知道具体是什么。...是因为通过某个图片关联想起来吗?并不是,当你用 git 提交时,你几乎天天都遇到这个单词,同事天天交流用这个单词,正是一遍遍在你面前出现、听到你非常熟练掌握这个单词。...比如前段时间 Mac PDF Preview 在拖动鼠标选中文本时候,没有背景颜色,导致看不出选中是什么文本。...整个过程没有文本,这样可以你专注模仿声音、解析声音。有时候如果听过程可以看到文本,会更容易复述,但其实会降低听力识别的能力。

1.2K40

UI界面视觉平衡终极指南

我们再来看视觉对齐另外一种情况——文字与按钮对齐。看看下面按钮文本,它们看起来都居中是吗? ? 诀窍是,右边按钮文本向左移动了一点,因为右边边是三角形。...按钮和文字不仅有垂直对齐,也有水平对齐问题。 想介绍第一种方法适用于各种网页和APP界面,即文字高度基于大写字母最高高度。 ? 基本上,文字上下距离按钮边缘距离是相等。...下图更多案例,Cancel和OK更适合使用大写高度对齐方法。因为Cancel没有向下延伸,而OK全是大写。x高度对齐法在下图中仅适合用在Sync按钮,其文本包含了向上伸展和向下延伸。...如果你想三角形位置在视觉上更平衡,那么就把圈起来,然后将这个圆与按钮背景对齐。 ? - 要点: 具有尖锐边缘形状应该更大或更长,以便与相邻矩形保持平衡。...因为即使在当前流行图像编辑软件中用“嵌入式舍入”(就是普通布尔运算做出圆角)功能,视觉效果也不怎么好。 ? 人眼会敏锐捕捉到由直线变化为曲线那个点,所以这个圆角看上去不怎么自然。 ?

2.4K40

Linux基本工具——vim

如果想将一行字母都换成大写怎么办呢?...shift + ` = ~ 将一行字母小写换成大写大写换成小写。 例: 如果我们在写过程需要了某一行错误或者是某个字符错误,你懒得删除想直接写上去怎么办呢?...当你执行这个操作时,删除了n个单词之后会进入到插入模式你去自己更改: 例:c + w 插入模式 插入模式就是输入你要写东西,但是从命令模式——>插入模式有好几种进入方式: 命令模式下光标...那就创建一个: 然后用vim进入.vimrc: 这里面最初是什么都没有的,这也能说明为什么最初vim用起来就跟windows记事本一样了。...sudo怎么才能让普通用户使用 首先把自己变成root用户,然后用vim打开/etc/sudoers这个目录: 然后找到第100行这个位置,把这个复制粘贴到下一行,不过root要改成你信任用户名

6.8K00

Coursera NLP 课程 - 第一周 - 02 - 纯文本分类

这个过程为称为文本向量化 (Text vectorization) ,因为我们实际上用一个巨大数字向量替换文本,并且将该向量每个维度对应于我们数据库某个 token。 ?...其他以此类推。虽然 n-grams 能够解决失序问题,但同时又会产生另外一个问题--特征数量会变得庞大。为了避免特征数量变得巨大,可以移除一些高频和低频 n-grams 。...其实可以看出频率越低将会越容易被鉴别,因为在文本其能够捕获一些特殊信息。透过这个想法可以提出下面的 TF (Term Frequency,词频) 概念。...接着介绍逆文本频率 IDF (Inverse Document Frequency) 概念: N = |D| -- 用大写 N 表示语料库中所有文本数量,用大写 D 表示语料库。...TF-IDF 主要思想是:如果某个词在一篇文档中出现频率高,即 TF 高;并且在语料库其他文档很少出现,即 DF 低,也即 IDF 高,则认为这个词具有很好类别区分能力。

92030

使用BERT升级你初学者NLP项目

将单独解释每个方法,使用图来表示为什么工作,并演示如何在Python实现这些技术。...向量大小将与语料库单词数量相同。 这对于某些方法来说是好,但是我们会丢失关于在同一个句子具有不同含义单词信息,或者上下文信息。 把单词变成数字或向量,就是词嵌入。...我们将每个句子表示为一个向量,取语料库所有单词,根据是否出现在句子给每个单词一个1或0。 你可以看到,随着单词数量增加,这个数字会变得非常大。一个问题是我们向量开始变得稀疏。...我们GloVe模型性能比其他要差得多。最可能原因是这个模型不理解我们语料库许多单词。为了解决这个问题,你必须自己在语料库(或Twitter数据)上训练这个模型。 ?...实现 Doc2Vec不是Gensim库一部分,所以我在网上找到了一个版本,已经做了预处理,但是不确定是什么版本。

1.2K40
领券