zoukankan      html  css  js  c++  java
  • 3月份周度分享(三)

    今天的主要话题围绕这么几个方面?

    一、9个基于Java的搜索引擎框架

    二、本周学习笔记分享

    三、《测试驱动开发》知识普及

    四、VsCode推荐插件

     

     

    一、9个基于Java的搜索引擎框架

    今天分享9个基于Java的搜索引擎框架

    (1)Java 全文搜索引擎框架 Lucene

    官方网站:

    http://lucene.apache.org/

    (2)开源Java搜索引擎Nutch

    官方网站:

    http://nutch.apache.org/

    (3)分布式搜索引擎 ElasticSearch

    官方网站:

    http://www.elasticsearch.org/

    (4)实时分布式搜索引擎 Solandra

    官方网站:

    https://github.com/tjake/Solandra

    (5)IndexTank

    官方网站:

    https://github.com/linkedin/indextank-engine

    (6)搜索引擎 Compass

    官方网站:

    http://www.compass-project.org/

    (7)Java全文搜索服务器 Solr

    官方网站:

    http://lucene.apache.org/solr/

    (8)Lucene图片搜索 LIRE

    官方网站:

    http://www.semanticmetadata.net/lire/

    (9)全文本搜索引擎 Egothor

    官方网站:

    http://www.egothor.org/cms/

    关于搜索引擎框架,建议最好还是学Lucene、Solr、ElasticSearch等。这三个文档比较丰富,应用也比较多。

    当然了,有个小小的建议,最好还是系统学习一下MySQL。

    在此我推荐《高性能MySQL》这本书。

    这个系统的学习并不是指你每天都看,最好是一周抽时间看一章左右,最好还是实际操练一下里面的相关操作。当然了,如果觉得这本书看的有难度,可以去市面上找其它MySQL相关的书籍看看,比如《跟老男孩学Linux》之MySQL、《MySQL技术内幕:SQL编程》、《MySQL DBA修炼之道》等这些相关开发者朋友都可以看看。有人说最好的学习方式是工作驱动。这句话的确有道理,但是个人觉得除了工作驱动外,还有一种叫刻意学习,这种刻意学习,比如你在工作中遇到一个问题,这个问题你很快就解决了,但是你并不明白问题的根源所在,这时你可以深究一下(深究的前提,建立在你当天工作基本完成了,特别是领导分配的优先级最高任务,把优先级最高的完成了,剩下的你可以每天完成两到三个,剩下的时间你可以去深究一下,有朋友说工作中这样做会不会不好,其实不然,因为最理想的情况是“今日事,今日毕”,今天遇到的一些问题,虽然你解决了,但是你还是不明白为什么出现这个问题(没有把握问题的根源所在),初中级开发者最常见的问题就是解决了问题之后做个小记录(有一部分甚至不会做记录),然后就不管了,下次再遇到这个问题,根据以往的经验解决了,但是过一段时间还会出现这样的问题,一次两次多次时不时出现这个问题是非常有问题的。为什么就不能在问题出现三次以上就将其彻底解决呢?初中级开发者存在一个最大的问题就是问题解决就好,其它一概不管,包括我自己也会遇到这种情况(不能说这样不好,因为在很多小公司,领导基本上所要求的就是你把我的需求完成就好,至于怎么完成的,不管我的事情)。

    目前我正在让自己改变这种行为方式,但是还是会犯的,我只能尽可能的减少犯的次数。

    二、本周学习笔记分享

    每天记录一点点,不知不觉就这么多了。个人建议IT开发者们最好都养成记笔记的习惯。

    后期本人打算在个人GitHub弄一个Wiki,将自己的知识系统化。

    Node.js之mysql增删改查:

    https://www.cnblogs.com/youcong/p/10624292.html

    node.js api文档生成

    https://www.cnblogs.com/youcong/p/10624201.html

    Ubuntu16.04之安装Nutch

    https://www.cnblogs.com/youcong/p/10624622.html

    Ubuntu16.04之Solr7.7.1环境搭建

    https://www.cnblogs.com/youcong/p/10624609.html

    org.springframework.jdbc.BadSqlGrammarException

    https://www.cnblogs.com/youcong/p/10624585.html

    org.xml.sax.SAXParseException;在实体引用中, 实体名称必须紧跟在 '&' 后面

    https://www.cnblogs.com/youcong/p/10624576.html

    如何让Node.js运行在浏览器端

    https://www.cnblogs.com/youcong/p/10624571.html

    Ubuntu16.04安装和使用ElasticSearch

    https://www.cnblogs.com/youcong/p/10624567.html

    VsCode云端版本

    https://www.cnblogs.com/youcong/p/10624548.html

    普通用户使用Docker

    https://www.cnblogs.com/youcong/p/10624543.html

    Docker安装MySQL并配置远程访问

    https://www.cnblogs.com/youcong/p/10624539.html

    MySQL去除查询结果重复

    https://www.cnblogs.com/youcong/p/10624623.html

    三、《测试驱动开发》知识普及

    本人觉得TDD可以看这个Wiki,对此可以有一个大概的理解

    测试驱动开发(简称TDD): 

    https://en.wikipedia.org/wiki/Test-driven_development

    以我目前公司编写业务,通常情况下,都是把对应的DAO和Service写好后,放到src/test/java某个单元测试,不过通常我会给这个单元测试进行分类,不同的业务放在不同的包下(以Blog为例,src/test/java会有一个cn.blog.test,我会在其写一个PostJunitTest类,从这个名字可以看出,这个单元测试专门针对文章相关的功能。通常编写单元测试,做一下边界条件测试,分正常情况、异常情况,覆盖率比较低,不过这样有一个好处就是,通常单元测试没有问题,直接放到对应的Controller里面,基本上很少出现问题,这就使我养成了,喜欢单元测试的原因,单元测试对于开发者的业务逻辑也会有较大的提升。最后说一下个人的观点:不写单测的程序员,不是一个合格的程序员;写了单测的程序员是一个合格的程序员;写好单测的程序员,是一个优秀的程序员。也许观点会有不少人反对,不过以我个人的实践经验来看,单测真的节省我很多时间,同时在编写的过程中,让逻辑也更加清晰。有不少程序员在小公司里面同时兼任前后端开发+测试+运维等,特别是负责前后端,如果你后端的Controller有问题,前端改其来是无比痛苦(在我之前没有养成单测的习惯,深刻体会到这个痛苦)。

    四、VsCode推荐插件

    刷VsCode的朋友们,建议你们可以使用VsCode,在VsCode插件市场搜索LeetCode并安装对应的插件,就可以开始写算法题了(主要是在这里写,无论是提交还是测试都比较方便)。

    如图所示:

  • 相关阅读:
    CGI(通用网关接口)
    PHP简介
    SEO搜索引擎优化/URL
    使用表单标签,与用户交互
    认识<img>标签,为网页插入图片
    使用mailto在网页中链接Email地址
    使用<a>标签,链接到另一个页面
    1037. Magic Coupon (25)
    1038. Recover the Smallest Number (30)
    1034. Head of a Gang (30) -string离散化 -map应用 -并查集
  • 原文地址:https://www.cnblogs.com/youcong/p/12293290.html
Copyright © 2011-2022 走看看