33K Star?这才是程序员需要的神器。。。

news2024/9/27 7:18:56

程序员宝藏库:https://gitee.com/sharetech_lee/CS-Books-Store

你想要的,这里都有!

作为程序员用的比较多的工具是什么?

我觉得搜索引擎绝对能名列前茅。

在开发过程中,总会遇到这样或者那样的问题超出我们自身的知识范围。这些问题可能是编程语言方面的,可能是Linux操作系统方面的,可能是服务部署方面的等等。

当遇到这种问题时,很多同学会选择求助于搜索引擎,懂得懂得,搜索引擎搜出的很多结果要么和问题无关、要么是个大坑。

所以,从事开发工作这么多年,我深刻意识一个道理,能够快速解决问题真的是一项非常突出的本领,哪怕是在借助于互联网的情况下。

话说回来,正是因为寻求问题的道路非常曲折繁琐,因此,网上出现了各种各样的速查表「CheatSheet」,估计有不少同学过去都看到过很多了。

但是,我认为这并没有从效率上彻底解决问题。

今天我在浏览Github时发现一款非常不错的开源工具,真的让我眼前一亮。

img

这款开源工具的名字叫做cheat.sh,目前已经33K+ Star了。

这款工具的简洁是「你唯一需要的速查表」,简单概括,这款工具把知名、权威社区的答案、资料进行了统一汇总,我们只需要这一款工具就可以快速得到最准确、最可靠的答案。

img

它背后的知识来源于tldr、StackOverflow、cheat.sheets等社区或者开源项目。

为了更加清晰的理解它的用处,下面先来看一个示例:

$ curl cht.sh/lua/table+keys
    -- lua: retrieve list of keys in a table

    local keyset={}
    local n=0

    for k,v in pairs(tab) do
      n=n+1
      keyset[n]=k
    end

    --[[
       [ Note that you cannot guarantee any order in keyset. If you want the
       [ keys in sorted order, then sort keyset with table.sort(keyset).
       [ 
       [ [lhf] [so/q/12674345] [cc by-sa 3.0]
       ]]

上面执行的curl命令包含下面几个信息:

  • cht.sh:工具名称
  • lua:编程语言
  • table+keys:要查询的问题,多个关键词用加好链接

img

通过这样,它就可以快速在终端下给出问题的答案。

如果你不想要文字描述,只想要「纯净」的答案,还可以通过参数来处理:

 $ curl cht.sh/lua/table+keys\?Q
    local keyset={}
    local n=0

    for k,v in pairs(tab) do
      n=n+1
      keyset[n]=k
    end

想必到这里,很多同学都已经知道它的用法了,概括一下这款工具的价值,主要有以下几点:

  • 简洁——它应该只包含你需要的东西,没有杂乱的信息
  • 快速——能够快速得到问题的答案,「所见即所得」
  • 全面——编程语言、操作系统等等,覆盖面非常全
  • 通用——随时随地可用,

可能很多同学还有一丝疑虑,感觉用curl每次都要输入很长的命令,太麻烦。

img

没事,前面只是一个小示例,下面系统的介绍一下如何安装并使用客户端。

安装

方式1

PATH_DIR="$HOME/bin"  # or another directory on your $PATH
mkdir -p "$PATH_DIR"
curl https://cht.sh/:cht.sh > "$PATH_DIR/cht.sh"
chmod +x "$PATH_DIR/cht.sh"

方式二

curl -s https://cht.sh/:cht.sh | sudo tee /usr/local/bin/cht.sh && sudo chmod +x /usr/local/bin/cht.sh

安装后就可以在终端下使用了。

如果想用交互式命令模式,还需要通过命令sudo apt install rlwrap安装rlwrap。

用法

通过上述命令安装客户端之后,就不用再像前面curl命令那样每次输入很长的命令,可以用更加贴近人为描述的方式查询问题答案。

举几个例子:

$ cht.sh go reverse a list
$ cht.sh python random list elements
$ cht.sh js parse json

这样看,估计很多开发同学都能够懂得它的用法了,「命令+语言+问题」。

可以看看效果:

$ cht.sh python random number
#  Try:

 from random import randrange
 print(randrange(10))

#  **Docs:**
#  https://docs.python.org/3/library/random.htmlrandom.randrange
#  
#  [kovshenin] [so/q/3996904] [cc by-sa 3.0]

再尝试一个:

$ cht.sh python matplotlib plot line
#  You can directly plot the lines you want by feeding the `plot` command
#  with the corresponding data (boundaries of the segments):
#  
#  `plot([x1, x2], [y1, y2], color='k', linestyle='-', linewidth=2)`
#  
#  (of course you can choose the color, line width, line style, etc.)
#  
#  From your example:

 import numpy as np
 import matplotlib.pyplot as plt

 np.random.seed(5)
 x = np.arange(1, 101)
 y = 20 + 3 * x + np.random.normal(0, 60, 100)
 plt.plot(x, y, "o")

 # draw vertical line from (70,100) to (70, 250)
 plt.plot([70, 70], [100, 250], 'k-', lw=2)

 # draw diagonal line from (70, 90) to (90, 200)
 plt.plot([70, 90], [90, 200], 'k-')

 plt.show()

#  ![new chart](https://i.imgur.com/76drc.png)
#  
#  [gcalmettes] [so/q/12864294] [cc by-sa 3.0]

可以看得出来,它不仅支持编程语言的基本语法,还支持查询语言基础之外的工具包的用法。

IDE+编辑器

前面介绍了它在命令行下的用法,其实,cht.sh更强大的是它不仅支持命令行,它还可以在常用的IDE、编辑器下用。

例如:

  • Vim
  • Emacs
  • Sublime
  • IDEA
  • VS Code
  • IDEA

除此之外,它还是跨平台的,在Windows、Linux、macOS下都可以用。

另外,这款工具在编辑器、IDE下功能更加丰富,甚至可以自动生成代码片段,直接补全答案。

下面看一下效果!

Sublime:

img

IDEA:

img

VS Code:

img

最后再补充一点,在知识方面,它覆盖也非常全,Python、JavaScript、Go、C++、Linux、php,我们在开发中遇到的很多问题通过cht.sh都可以快速得到答案!

传送门

建议大家有空可以多浏览Github,有很多好用的开源免费工具。但是,目前Github上项目多如牛毛,而且刷榜现在也非常严重,想要找到优质的项目变得越来越难。这里,给大家推荐Github上一个非常不错的项目《DevWeekly》,这个项目每周都会精挑细选一些优质的开源项目,涵盖C++、JAVA、JavaScript、Python、Go等不同编程语言。此外,还有一些开源工具、优秀的技术文章:

https://github.com/Jackpopc/DevWeekly

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/56293.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【愚公系列】华为云系列之ModelArts+AppCube带你识别101种西式美食【我的低代码AI体验】

文章目录前言1.ModelArts是什么2.AppCube是什么一、华为云系列之ModelArtsAppCube带你识别101种西式美食1. AI Gallery 订阅模型及部署2. 获取访问秘钥3. 使用示例安装包创建 AppCube 应用4. 创建 ModelArts 连接器前言 1.ModelArts是什么 ModelArts是面向AI开发者的一站式开…

[附源码]Python计算机毕业设计SSM考勤系统设计(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Java项目:ssm教材征订与发放管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 教材征订与发放管理系统。本系统共分三种角色,分别为管理员、老师、班长;现在分别来介绍各个角色的功能: …

java计算机毕业设计ssm魔术教学网站k304y(附源码、数据库)

java计算机毕业设计ssm魔术教学网站k304y(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。…

Springboot旅游网站管理系统毕业设计、Springboot旅游线路和景点网站设计与实现 毕设作品参考

功能清单 【后台功能】 系统设置:设置关于我们、联系我们、加入我们、法律声明 广告管理:设置小程序首页轮播图广告和链接 留言列表:所有用户留言信息列表,支持删除 会员列表:查看所有注册会员信息,支持删…

QT登录界面设计及跳转主界面

文章目录QT登录界面设计及跳转主界面界面样式创建流程界面设计所需控件界面外观设计添加底色设置密码输入框以密文显示:程序设计取消按钮登录按钮注:QT登录界面设计及跳转主界面 界面样式 先贴图 创建流程 首先创建界面: 选择无按钮界面…

[附源码]计算机毕业设计springboot校园便携系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【第 8 章 MySQL InnoDB ClusterSet 】

【第 8 章 MySQL InnoDB ClusterSet 】 文章目录【第 8 章 MySQL InnoDB ClusterSet 】本章内容本章简介本章内容 8.1 InnoDB ClusterSet 要求 8.2 InnoDB ClusterSet 限制 8.3 User Accounts for InnoDB ClusterSet 8.4 Deploying InnoDB ClusterSet 8.5 Integrating MySQL R…

VS系列多通道无线采发仪

VS101/104/208/416/432 是以振弦、温度传感信号为主的多通道无线采发仪,并可扩展其它模拟(电流、 电压、电阻)信号和数字信号(RS485、RS232)传感器通道,内置电池,可外接太阳能电池板。最多可实…

QT学习日记28——QT动态库制作和使用

学习视频链接 课时3 控件介绍,使用和样式修改_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV14t411b7EL/?p3&spm_id_from333.337.top_right_bar_window_history.content.click&vd_source0471cde1c644648fafd07b54e303c905 目录 一、动态库项目 1.1 新建工程…

[附源码]Python计算机毕业设计Django家庭医生签约服务管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

车载测试好就业?车载测试就业薪资和前景怎么样?

什么是车载智能系统测试? 车载测试,又叫车载智能系统测试,是汽车智能化重要的组成部分,由旧有的车载资通讯系统结合联网汽车技术所演进而来,随着软硬件技术的不断进步, 让车载智能系统拥有强大的运算能力及…

时序数据库-6-[IoTDB]的数据模式

1 数据模型 我们以风电场物联网场景为例,说明如何在IoTDB中创建一个正确的数据模型。 根据企业组织结构和设备实体层次结构,我们将其物联网数据模型表示为如下图所示的属性层级组织结构,即电力集团层-风电场层-实体层-物理量层。 其中ROOT…

[附源码]计算机毕业设计JAVA校园期刊网络投稿系统

[附源码]计算机毕业设计JAVA校园期刊网络投稿系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM my…

设计模式-桥接模式

桥接模式( Bridge Pattern )也称为桥梁模式、接口(Interfce)模式或柄体( Handle and Body)模 式,是将抽象部分与它的具体实现部分分离,使它们都可以独立地变化,属于结构型模式。 原文:Decouple an abstract…

【图像分割】Unet-ConvLstm利用时序信息进行视频分割

文章目录0. 介绍1. ConvLstm1.1 Lstm1.2 ConvLstm0. 介绍 文章: Exploiting Temporality for Semi-Supervised Video Segmentation 代码: https://github.com/mhashas/Exploiting-Temporality-For-Semi-Supervised-Video-Segmentation 理解:…

塔望食业洞察丨大健康黄金赛道,低GI食品风起

随着“健康中国2030”国家战略进入到第二阶段,消费者在身心健康方面的提升诉求成为刚需 。在国家政策支持、技术发展的情况下,健康产业已经迎来前所未有的发展契机,健康产业百业兴盛。根据国家数据统计显示,2020年我国健康服务业规…

【加油站会员管理小程序】02创建数据源

我们上一篇介绍了加油站会员管理小程序的原型,本篇我们推导一下需要的数据源。 推导数据源的办法是要从页面上提炼需要存放的数据,在提炼的过程中要考虑表和表的拆分,主要是考虑主子关系。 在数据源设计中有关联关系和主子表的区分,关联关系是一种组成关系,比如学生和班…

扩散模型的启发和因果推论之数据增强

🍿*★,*:.☆欢迎您/$:*.★* 🍿 正文 从因果中推导一种 数据增强的方法比如 使用相机采样的时候 随着相机的移动 采样的时间越短采样的数据越多 那么说名 数据量越大 这样虽然能达到更多数据量的目的但是如果输入是T1 输出是T2那么模型学习到的信息是确…

DSP篇--C6678功能调试系列之DDR3调试

目录 0、前言 1、硬件状态确认 2、DDR3调试 2.1 DDR3初始化 2.2 DDR3读写测试 2.3 DDR3 ECC(略) 0、前言 本来在写完《DSP篇--C6678 SPI BOOT详解及其优化实现》这篇文章后是不打算再去更新嵌入式相关的博文了(主要是换行业了&#xff0…