精华内容
下载资源
问答
  • Go 语言也有自己命名与代码组织规则。漂亮代码,布局清晰、易读易懂,就是设计严谨 API 一样。拿到代码,用户首先看到接触就是布局、命名还有包结构。这篇文章不是为了给大家设立硬性规定,而是用...

    Go 语言也有自己的命名与代码组织规则。漂亮的代码,布局清晰、易读易懂,就像是设计严谨的 API 一样。拿到代码,用户首先看到和接触的就是布局、命名还有包的结构。

    这篇文章不是为了给大家设立硬性的规定,而是用实践引导大家形成自己的规则。因为具体问题要具体分析,通过自己的判断才能挑选出最恰当的规则。

    所有的 Go 代码都是以包的形式组织起来的。Go 中的包就是目录或文件夹里面包括一个或者多个以 .go 结尾的文件。用目录或文件夹这样的方式来管理代码,与电脑管理目录或文件夹是一样一样的。

    所有的 Go 代码都是放在包里的,且只能是通过包来进行访问。理解并且建立良好的包的习惯,可以帮助写出高效的代码。


    包的组织

    我们先聊聊如何组织 Go 代码,解释一下定位 Go 包的规范。

    使用多个文件

    一个包就是一个或者多个文件的目录。先把代码切分成符合逻辑且易读的多个文件。

    例如,根据文件处理 HTTP 的内容不一样,一个 HTTP 包可以被切分成多个文件。在下面这个例子中,一个 HTTP 包被切成下列文件:头部类型定义和代码,cookie 类型定义加代码,还有实际 HTTP 功能的实现和包说明文档。

    - doc.go       // 包说明文档
    - headers.go   // HTTP 头部类型定义和代码
    - cookies.go   // HTTP cookie 类型定义和代码
    - http.go      // HTTP 客户端实现,请求和返回类型,等等

    聚合类型定义

    首要规则是,把类型定义尽量都聚合到他们被引用的地方。这让代码的维护者(不仅仅局限于代码的原作者)更易于找到类型的定义。比如,头结构体类型最好就是放在 headers.go 文件当中。

    $ cat headers.go
    package http
    
    // Header 表示一个 Http 头部结构体定义
    type Header struct {...}

    虽然 Go 语言本身并没有严格地要求你必须在文件哪个部分定义类型,但是把核心类型的定义都放在文件的最上面是没错的。

    根据功能进行安排

    在其他语言中,通常都是把类型定义聚合到一个包里,叫作模型或者类别。在 Go 语言中,则是通过代码的功能职责来进行安排的。

    package models // 千万别叫这个名字
    
    // User 代表系统中的一个用户
    type User struct {...}
    

    不要创建一个命名为 models 的包,然后在里面定义所有的实体类型。在这个例子中,User 类型应该定义在服务层的包中。

    package mngtservice
    
    // User 代表系统中的一个客户
    type User struct {...}
    
    func UsersByQuery(ctx context.Context, q *Query) ([]*User, *Iterator, error)
    
    func UserIDByEmail(ctx context.Context, email string) (int64, error)
    

    优化 godoc

    越早使用 godoc 越好,尤其是在初期设计包的 API 的时候。使用 godoc,你可以清楚知道自己的构思用文档表达出来是个什么。有时候,可视化也对设计有影响。因为 godoc 需要放在一个独立的包里,所以可以慢慢地来进行优化,让文档越来越容易理解。执行命令 godoc -http=<hostport> 来启动本地的 godoc 文档服务。

    举几个例子说明一下

    有些情况下,你可能没办法把所有相关的类型定义都写在一个包里。因为这样做可能会很繁琐。或者你只是想发布一个实现了单个包中通用接口的具体功能,或者这些类型是由第三方包提供的。下面给出几个例子来说明和理解这些情况。

    $ godoc cloud.google.com/go/datastore
    func NewClient(ctx context.Context, projectID string, opts ...option.ClientOption) (*Client, error)
    ...

    NewClient 这个方法里有一个结构参数 option.ClientOptions,但是这个结构的定义既不在 datastore 包里,也不在提供所有 option 类型的 option 包里。

    $ godoc google.golang.org/extraoption
    func WithCustomValue(v string) option.ClientOption
    ...

    如果你设计的 API 需要引入很多非标准库的包,那么,添加 Go 示例 通常会很有用,以便为用户提供一些工作代码。

    样例可以提高藏地较深的包的暴光率。例如,datastore.NewCLient 这样的结构需要引用额外的 option 包。提供样例,就可以让用户知道,还有一个 option 包。

    不要在 main 文件中导出

    标识符可以被 导出,以允许从外部包来使用它。

    main 包是不能被导入的,所以从 main 包中导出标记符是没有必要的。如果你要把包编译成二进制文件,就不要从 main 包中导出标记符。

    这条规则也有例外,那就是 main 包被编译成了 .so 文件、.a 文件或者 Go 插件。在这种情况下,Go 代码被其他语言通过 cgo 的导出功能 使用,那标识符的导出就是必要的了。


    包的命名

    包的名字与导入路径,都是很重要的标识,它们会告诉你这个包里有哪些内容。按规则给包命名不仅可以提高你的代码的质量,也间接地提高这个包的使用者的代码水平。

    只用小写

    包的名字应只用小写。不要用下划线式,也不要用驼峰式。Go 官方博文 关于包命名的综合指南 中有多个不同情形的样例。

    简短而有意义

    包的名字需要简短,但应该唯一且有意义。用户从包的名字中就能直接理解这个包的作用。

    避免泛泛的包名,例如 "common", "util"。

    import "pkgs.org/common" // 可千万别这样写
    

    避免重名,万一用户要同时引入并使用这两个同名包。

    如果命名上确实有困难,可能是因为设计的代码结构与整体构架本身就有问题。

    精简引入路径

    避免暴露自定义的仓库结构(repository structure)给包的用户。谨遵 GOPATH 的规定。避免在引入路径中出现包含 src/, pkg/ 命名的路径。

    github.com/user/repo/src/httputil   // 可千万别这么做,不要使用 SRC !!
    
    github.com/user/repo/gosrc/httputil // 可千万别这么做,不要使用 GOSRC !!

    使用单数

    在 Go 语言中,包的名字不要使用复数。从其他语言转过来的程序员会觉得很别扭,因为在先前使用的语言中,已经形成了使用复数的习惯。给包命名的时候,用 httputil,不用 httputils!

    package httputils  // 用单数,不用复数
    

    别名也应该遵守规则

    如果你在引入多个相同名字的包,你可以在本地修改这些包的名字。别名也需要遵守本文提到的规则。并没有规则指明需要修改哪一个包的名字。如果你在修改标准库包的名字,最好加一个前缀来做区别,毕竟是 “Go 标准库” 中的包,比如,可以修改为 gourlgoioutil

    import (
        gourl "net/url"
    
        "myother.com/url"
    )
    

    强制使用虚拟 URL

    go get 支持通过另外一种 URL 来获取包,这个 URL 与包仓库的 URL 的名字不一样。这个不一样的 URL 叫做虚拟 URL,需要准备一个页面,里面包含可被 Go 工具识别的详细的元标签。你可以使用虚拟 URL 通过自定义域名和路径来提供包的服务。

    例如,

    $ go get cloud.google.com/go/datastore

    在后台去查看来自 https://code.googlesource.com/gocloud 的源码,把它加到你的工作区当中去,这个工作区是定义在 $GOPATH/src/cloud.google.com/go/datastore 下面的。

    假定 http://code.googlesource.com/gocloud 已经在包里了,那能不能通过这个 URL 来使用这个包呢?答案是 NO,因为开启了强制使用虚拟 URL。

    实际使用中,在包里添加了一个引入声明。Go 工具就不允许从任何其他路径来引入这个包,并且会给用户一个友好地错误提示。如果你没有开启强制使用虚拟 URL,那么就会有出现两个一样的包,并且因为不同的命名空间,它们不能放在一起使用。

    package datastore // import "cloud.google.com/go/datastore"
    

    包说明文档

    记得要给包写说明文档。包说明文档最可以阐明包的功能。对于非 main 包来讲,godoc 都是以 "Package {包名}" 开头,并且附上一个描述说明。对于 main 包来讲,文档就是用来说明程序的功能的。

    // Package ioutil 实现了一些输入或输出效用功能
    package ioutil
    
    // gops 命令会列出所有在系统中跑的进程
    package main
    
    // helloworld 样例来展示如何使用 x 功能
    package main
    

    使用 doc.go 文件

    有时候,包里的文档说明内容会很多,尤其是包括详细的用法说明与指导。将包的 godoc 移到 doc.go 这个文件中去。 (参考样例 doc.go.)


    展开全文
  • 编程是机器沟通,因此要用机器的语言而不是人类的语言早的程序就是01的数字,不是中文也不是英文。以前的程序员,每天写程序就是在一条长长的纸带上打孔表示01。后来发现01的二进制太麻烦了,就把01...

    首先大概的看一下中文编码:

    af2d02e7f6f6066ac0a3ae9983f7b0f3.png

    你以为会写中文就会编程吗?这就像你以为会写汉字就会写出好文章一样。编程是和机器沟通,因此要用机器的语言而不是人类的语言。最早的程序就是0和1的数字,不是中文也不是英文。以前的程序员,每天写程序就是在一条长长的纸带上打孔表示0和1。后来发现0和1的二进制太麻烦了,就把0和1压缩一下,用16进制表示,比如数字10,用二进制表示是1010,用16进制表示就是0A,这样表达起来就更简洁,但是输入电脑后,仍然要转换为二进制电脑才能明白。

    后来,科学家们用简单的英文单词表示某些功能,比如加法,就用add表示,减法就用dec表示。程序员输入add或dec后,系统会转换为对应的算法。就这样不断的给不同的代码段起名字。编程语言就是从数字编码不断压缩提高层次,最后形成了当今的各种风格的编程语言。为什么码农会讨厌中文编程?我用最流行的易语言说明。

    所谓全中文的易语言,其实就是把Visual Basic语言中每个英文单词换成了对应的中文词,其他都不变。比如Visual Basic的代码是这样:

    if True thenPrint "OK"endif

    换成了易语言,就是这样了:

    如果 真 那么打印 "OK"结束如果

    任何人都能看出来,英文写的程序更简单清晰。

    a69fa330165eb9d30696b46d2a707c1e.png

    其实从语言学的角度来说,英文是线性的一维语言,而中文是平面的二维语言。而程序恰恰是线性的一维的。也就是说,线性的英文正好能契合线性的程序。所以,中文并不适合现有的编程方式。

    然而,未来的发展可能超出你的想象。未来可能会有多维度的量子计算,也许二维的中文反而会比一维的英文更适合。

    程序员对比过中文编程和英文编程就会明白,中文编程反而会提高门槛。因为编程的核心根本就不是什么语言,而是程序化思维方式。最简单的并不是英文编程,而是数学符号编程,极度抽象,普通人很难理解,但代码量特别少。

    补充一句,其实现代的语言比如Java,都支持Unicode,也就是说可以用中文甚至世界其他语言做变量名和函数名,你可以试试看,这样看起来就基本上就相当于是中文编程了,对比一下英文编程,你就会知道哪个更好了。

    bc7261cd75d11c12d87c84faaea069de.png

    电脑能识别的只是0和1的二进制而已,那么,如果按中文的角度来考虑,那么应该从核心开始就把二进制转换为8进制,然后用八卦来表示,这样从底层构造纯中文的计算机。八卦两两组合,演化为64卦,就能表达宇宙万物。这比老外的英文编程语言不知道高级多少倍。而且,满眼全是中文,老外就算认识中文字也看不懂意思,呵呵。

    展开全文
  • 编程是机器沟通,因此要用机器的语言而不是人类的语言早的程序就是01的数字,不是中文也不是英文。以前的程序员,每天写程序就是在一条长长的纸带上打孔表示01。后来发现01的二进制太麻烦了,就把01...

    77de7d67917a13a31d5edbdebff50fd7.gif

    首先大概的看一下中文编码:

    ce7b88461f11445f5e5d86cedb5ea5fe.png

    你以为会写中文就会编程吗?这就像你以为会写汉字就会写出好文章一样。编程是和机器沟通,因此要用机器的语言而不是人类的语言。最早的程序就是0和1的数字,不是中文也不是英文。以前的程序员,每天写程序就是在一条长长的纸带上打孔表示0和1。后来发现0和1的二进制太麻烦了,就把0和1压缩一下,用16进制表示,比如数字10,用二进制表示是1010,用16进制表示就是0A,这样表达起来就更简洁,但是输入电脑后,仍然要转换为二进制电脑才能明白。

    后来,科学家们用简单的英文单词表示某些功能,比如加法,就用add表示,减法就用dec表示。程序员输入add或dec后,系统会转换为对应的算法。就这样不断的给不同的代码段起名字。编程语言就是从数字编码不断压缩提高层次,最后形成了当今的各种风格的编程语言。为什么码农会讨厌中文编程?我用最流行的易语言说明。

    所谓全中文的易语言,其实就是把Visual Basic语言中每个英文单词换成了对应的中文词,其他都不变。比如Visual Basic的代码是这样:

    if True thenPrint "OK"endif

    换成了易语言,就是这样了:

    如果 真 那么打印 "OK"结束如果

    任何人都能看出来,英文写的程序更简单清晰。

    00bbc5f72529ab48ad2e80e86fe8a420.png

    其实从语言学的角度来说,英文是线性的一维语言,而中文是平面的二维语言。而程序恰恰是线性的一维的。也就是说,线性的英文正好能契合线性的程序。所以,中文并不适合现有的编程方式。

    然而,未来的发展可能超出你的想象。未来可能会有多维度的量子计算,也许二维的中文反而会比一维的英文更适合。

    程序员对比过中文编程和英文编程就会明白,中文编程反而会提高门槛。因为编程的核心根本就不是什么语言,而是程序化思维方式。最简单的并不是英文编程,而是数学符号编程,极度抽象,普通人很难理解,但代码量特别少。

    补充一句,其实现代的语言比如Java,都支持Unicode,也就是说可以用中文甚至世界其他语言做变量名和函数名,你可以试试看,这样看起来就基本上就相当于是中文编程了,对比一下英文编程,你就会知道哪个更好了。

    7651236f35be81b75dd3856d924c694d.png

    电脑能识别的只是0和1的二进制而已,那么,如果按中文的角度来考虑,那么应该从核心开始就把二进制转换为8进制,然后用八卦来表示,这样从底层构造纯中文的计算机。八卦两两组合,演化为64卦,就能表达宇宙万物。这比老外的英文编程语言不知道高级多少倍。而且,满眼全是中文,老外就算认识中文字也看不懂意思,呵呵。

    *声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

    1242e2617b4d2215fbb4bc69aacdb3a2.png7065957097149f5119515c46c10cdd73.png

    公众号ID:tzbc666

    有趣的灵魂在等你

    长按扫码可关注

    c6f0ee7862d943b25a39850d047d4d19.png点个好看和转发也是一种支持哟!
    展开全文
  • 1. jieba江湖地位NLP(自然语言)领域现在可谓是群雄纷争,各种开源组件层出不穷,其中一支不可忽视力量便是jieba分词,号称要做最好 Python 中文分词组件。“最好”这三个字可不是空穴来风,jieba在开源社区...
    a59ca473814278aa558b45a8194c7410.png

    1. jieba的江湖地位

    NLP(自然语言)领域现在可谓是群雄纷争,各种开源组件层出不穷,其中一支不可忽视的力量便是jieba分词,号称要做最好的 Python 中文分词组件。

    ac0d8b6680daaa79ee3316198e34ea7a.png

    “最好的”这三个字可不是空穴来风,jieba在开源社区的受欢迎程度非常之高。

    jieba项目目前的github star数已经达到24k,其他热门分词组件像HanLP star数20k、ansj_seg star数5.6k、pkuseg-python star数5k。可见jieba已经稳居中文分词领域c位。

    83077e56abd65d76e083031534248e78.png

    jieba的主要功能是做中文分词,可以进行简单分词、并行分词、命令行分词,当然它的功能不限于此,目前还支持关键词提取、词性标注、词位置查询等。

    更让人愉悦的是jieba虽然立足于python,但同样支持其他语言和平台,诸如:C++、Go、R、Rust、Node.js、PHP、 iOS、Android等。所以jieba能满足各类开发者的需求。

    2. 如何学jieba

    据我所知,jieba最靠谱的文档是github项目的readme,因为它似乎还没有独立的使用文档。但由于使用起来简单,看readme也能快速上手。 https://github.com/fxsjy/jieba

    国内各大博客有关于jieba的使用教程,但需要甄别下准确度和时效性,因为jieba项目一直在更新。

    当然本文不是纯粹的种草文章,会简单介绍下jieba的使用方法。

    如果对python不了解的小伙伴,可以先学学python语法:

    3. 安装jieba

    jieba支持pip或者conda安装,直接在命令行执行:

    pip install jieba

    不出意外,应该能很快安装好。

    e4525ceeb8cc5a94f7320fb951b98016.png

    你也可以下载jieba安装包再安装,jieba的pypi地址: http://pypi.python.org/pypi/jieba/

    4. 分词初体验

    分词是NLP处理的第一步,也是最基本的任务,分词的好坏直接决定了后面语义分析的精准度。

    所谓分词就是将一段表述里的词汇进行分解,比如“我爱中国”,分解后有三个词:我、爱、中国,词性分别是名词、动词、名词。

    jieba库中用于分词的方法有三个:

    jieba.cut

    给定中文字符串,分解后返回一个迭代器,需要用for循环访问。

    参数解释:

    「strs」: 需要分词的字符串;「cut_all」:用来控制是否采用全模式;「HMM」:用来控制是否使用 HMM 模型;「use_paddle」:用来控制是否使用paddle模式下的分词模式,paddle模式采用延迟加载方式,通过enable_paddle接口安装paddlepaddle-tiny,并且import相关代码;

    这里区分全模式和精确模式,举个例子先看看区别:

    # 全模式seg_list = jieba.cut("中国上海是一座美丽的国际性大都市", cut_all=True)print("Full Mode: " + "/ ".join(seg_list))  # 返回结果Full Mode: 中国/ 上海/ 是/ 一座/ 美丽/ 的/ 国际/ 国际性/ 大都/ 大都市/ 都市# 精确模式seg_list = jieba.cut("中国上海是一座美丽的国际性大都市", cut_all=False)print("Full Mode: " + "/ ".join(seg_list))  # 返回结果Default Mode: 中国/ 上海/ 是/ 一座/ 美丽/ 的/ 国际性/ 大都市

    可以看到,全模式把句子中所有的可以成词的词语都扫描出来, 会出现一词多用、一词多意。精确模式将句子最精确的切分开,每个词都只有一种含义。

    jieba.cut方法默认是精确模式。

    还有一个参数控制paddle模式,会更加精确,使用这个的前提是你需要先安装paddlepaddle-tiny。

    安装命令:
    pip install paddlepaddle-tiny==1.6.1

    详情可以去官网看下,这里不举例。

    jieba.cut_for_search

    该方法和cut一样,分解后返回一个迭代器,需要用for循环访问。不过它是搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

    参数解释:

    「strs」:需要分词的字符串;「HMM」:是否使用 HMM 模型,默认值为 True。该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细。

    # 搜索引擎模式seg_list = jieba.cut_for_search("中国上海是一座美丽的国际性大都市,拥有复旦大学、上海交通大学等知名高等学府")  print(", ".join(seg_list))# 返回结果Search Mode: 中国, 上海, 是, 一座, 美丽, 的, 国际, 国际性, 大都, 都市, 大都市, ,, 拥有, 复旦, 大学, 复旦大学, 、, 上海, 交通, 大学, 上海交通大学, 等, 知名, 高等, 学府, 高等学府

    jieba.lcut

    和jieba.cut使用方法一样,不过返回的是列表。

    cut和cut_for_search方法都是支持繁体字的。

    5. 添加自定义词典

    如果是对专业新闻或者小说进行分词,会有很多的新词汇,jieba库里没有就没办法识别,那么就需要添加自定义的词汇,比如:奥利给。

    添加自定义词汇的方法: jieba.load_userdict(file_name) 参数是文本文件,txt、csv都可以。

    自定义词典文件的词汇格式是一个词占一行,每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。 比如:

    d33b52a63325e8d47d9298f447974d98.png

    以"奥利给,管虎执导的八佰是一部让人热血沸腾的好电影。" 这段话为例, 如果不添加自定义词典,很多词没办法识别出来。

    # 不添加自定义词典seg_list = jieba.cut("奥利给,管虎执导的八佰是一部让人热血沸腾的好电影")print("/ ".join(seg_list))  # 返回结果奥利/ 给/ ,/ 管虎/ 执导/ 的/ 八佰是/ 一部/ 让/ 人/ 热血沸腾/ 的/ 好/ 电影

    添加自定义词典后,新词、人名、电影名都可以识别出来

    # 载入词典jieba.load_userdict("dict.txt")seg_list = jieba.cut("奥利给,管虎执导的八佰是一部让人热血沸腾的好电影")print("/ ".join(seg_list))  # 返回结果奥利给/ ,/ 管虎/ 执导/ 的/ 八佰/ 是/ 一部/ 让/ 人/ 热血沸腾/ 的/ 好/ 电影

    6. 结论

    jieba无疑是一款优秀的分词工具,而且在不断地优化成长。前面讲了一些基本的使用,大家还可以尝试使用停用词、提取关键词、词性标注、词位置查询等功能,也是十分的便捷。

    展开全文
  • 目前水果软件版本是FL Studio 20.8中文版,它让你计算机就是全功能录音室,大混音盘,非常先进制作工具,让你音乐突破想象力限制。 水果用户可能最近发现了FL Studio20.8中文版更新一款叫做FLEX...
  • 在所有语言的“谢谢”里,越南语是简单,因为它完全就是一个中文词。谢谢,越南文是 Cảm ơn,用汉语拼音表示读音就是 gam3 en1。越南语“感”不读gan3,而是读 gam3,韵尾是m,一个闭口音。北方朋友会对这种...
  • 第一:中文语言包: ...一开始也不知道中文包在光盘中具体名称,只好一个光盘一个光盘去找凡是有chinesefonts字符文件全部弄出来. 最后找到这两个包,安装上就可以支持中文了. fonts-...
  • 想当初大雄信誓旦旦地说,“ 这就有小伙伴以为会写汉字就会写出好文章一样编程是机器沟通因此要用机器的语言而不是人类的语言 ”结果现在就啪啪打脸。最近有人不但是用中文进行了编程,甚至还是文言文。△ 右边...
  • 编程是机器沟通,因此要用机器的语言而不是人类的语言早的程序就是01的数字,不是中文也不是英文。以前的程序员,每天写程序就是在一条长长的纸带上打孔表示01。后来发现01的二进制太麻烦了,就把01...
  • 英文centos 5安装中文语言

    千次阅读 2010-01-29 11:49:00
    在一台机子上装了centos 5,刚开始没想到会有用到中文,所以安装时候系统语言选择了英文包.谁知道这个麻烦就来了,比如开个FTP,客户端有时候会传一些中文的资料过来,全是显示乱码.一开始也不知道中文包在...
  • 编程是机器沟通,因此要用机器的语言而不是人类的语言早的程序就是01的数字,不是中文也不是英文。以前的程序员,每天写程序就是在一条长长的纸带上打孔表示01。后来发现01的二进制太麻烦了,就把01...
  • 编程是机器沟通,因此要用机器的语言而不是人类的语言早的程序就是01的数字,不是中文也不是英文。以前的程序员,每天写程序就是在一条长长的纸带上打孔表示01。后来发现01的二进制太麻烦了,就把01...
  • 实体识别关系抽取是例如构建知识图谱等上层自然语言处理应用基础。实体识别可以简单理解为一个序列标注问题:给定一个句子,为句子序列中每一个字做标注。因为同是序列标注问题,除去实体识别之外,相同技术...
  • 最近看LeCoupa项目有所启发,感于网上中文资料缺乏乏味,且质量参差不齐,决定做一个中文的Cheatsheet项目,收集整理常用:编程语言,框架开发工具Cheatsheet进行收集整理。数量不求多,但每个表都得做好...
  • 其产生主要动力在于使生成器能够很容易分为多个拥有sendthrow方法子生成器,一个大函数可以分为多个子函数一样简单。Python生成器是协程coroutine一种形式,但它局限性在于只能向它直接调用者yield...
  • 1. jieba江湖地位NLP(自然语言)领域现在可谓是群雄纷争,各种开源组件层出不穷,其中一支不可忽视力量便是jieba分词,号称要做最好 Python 中文分词组件。“最好”这三个字可不是空穴来风,jieba在开源...
  • 更新Java是游玩Minecraft时重要事情之一,因为有些技术性漏洞只能通过更新Java来解决。...不其他语言,Java并不是直接运行在硬件上,而是运行在一个叫作JVM虚拟机里。Minecraft就是用Java编写,其被...
  • SMTP用于发送邮件,如果要收取邮件呢?收取邮件就是编写一个MUA作为客户端,...注意到POP3协议收取不是一个已经可以阅读邮件本身,而是邮件原始文本,这SMTP协议很,SMTP发送也是经过编码后一大段文本...
  • 编程是机器沟通,因此要用机器的语言而不是人类的语言早的程序就是01的数字,不是中文也不是英文。以前的程序员,每天写程序就是在一条长长的纸带上打孔表示01。后来发现01的二进制太麻烦了,就把01...
  • 随着互联网迅速发展,Internet上资源日趋丰富,基于Internet各类...中文分词准确与否,常常直接影响到对搜索结果相关度排序,在英文行文中,单词之间是空格,作为自然分界符,而中文只是字、句段都...
  • TeamViewer是一款免费可以穿透内网远程控制软件,可以实现桌面共享,文件传送等功能,简单一点说就是QQ远程协助一样,但是比QQ远程协助功能更为强大。 TeamViewer最大好处就是无需QQ远程协助那些需要...
  • 核心特点是基于模块思想,你可以平常那样创建自己模型、视图控制器,当你需要时才使用 CMS 部分,它是一个内容管理系统开发框架混合体。FUEL CMS 是从一个开发平台需求中演变而来,它首先是一个...
  • 编程是机器沟通,因此要用机器的语言而不是人类的语言早的程序就是01的数字,不是中文也不是英文。以前的程序员,每天写程序就是在一条长长的纸带上打孔表示01。后来发现01的二进制太麻烦了,就把01...
  • 编程是机器沟通,因此要用机器的语言而不是人类的语言早的程序就是01的数字,不是中文也不是英文。以前的程序员,每天写程序就是在一条长长的纸带上打孔表示01。后来发现01的二进制太麻烦了,就把01...
  • 欢迎各位学习java大数据...其实发明一门语言并不难,毕竟已经有那么多参考案例,现在都有用了十几年易语言,还有按键精灵等编程也可以是中文的,对普通人来说很容易接受一门需要是积累,就我们...
  • 编程是机器沟通,因此要用机器的语言而不是人类的语言早的程序就是01的数字,不是中文也不是英文。以前的程序员,每天写程序就是在一条长长的纸带上打孔表示01。后来发现01的二进制太麻烦了,就把01...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 511
精华内容 204
关键字:

和中文最像的语言