Шпаргалка для программистов или «мы погуглим за вас»

в 17:04, , рубрики: python, изучение языков, изучение языков программирования, Программирование, Софт, Учебный процесс в IT, шпаргалка

Введение, которое можно не читать

Современному программисту, а тем более новичку уровнем ниже junior, адово необходимо умение пользоваться поисковиком. Вроде ничего сложного в этом нет, но тем не менее на вопросниках частенько всплывают вопросы, на которые уже давно есть ответ в первой вкладке из выдачи поисковика. Почему так? Неопытность, лень — причин много. Нас интересует лень, давайте немного упростим и автоматизируем процесс «гугления».

Собственно, сама суть

Итак, представляю вам сервис «cheat.sh». Написан он на Python, так что питонисты могут заинтересоваться. Существует несколько его реализаций:

  • Через «curl» в командной строке;
  • Через браузер.
  • Через редакторы кода: Emacs, Vim, Sublime Text, VSCode.

Как использовать

Используя «curl»

Здесь нужно иметь утилиту «curl». В дистрибутивах Linux она уже есть, для Windows её нужно устанавливать отдельно. Проблем на Windows у меня не возникло.

Заходим в консоль и отправляем запрос такого типа:
curl cht.sh/[язык]/[запрос-с-дефисом-вместо-пробела]
Получаем ответ:

$ curl cht.sh/python/how-to-read-text-file
#  How to read a text file into a list or an array with Python ...
#
#  You will have to split your string into a list of values using split()
#
#  So,

lines = text_file.read().split(',')

#  [Achrome] [so/q/14676265] [cc by-sa 3.0]

Изначально утилита задумывалась как шпаргалка по командам для терминала Linux, поэтому можно искать справку по ним:

$  curl cheat.sh/tar
$  curl cht.sh/curl
$  curl https://cheat.sh/rsync
$  curl https://cht.sh/tr

Ещё можно установить консольную утилиту:

$   curl https://cht.sh/:cht.sh > ~/bin/cht.sh
$   chmod +x ~/bin/cht.sh

Пример использования здесь.
Для Windows таких команд нет, поэтому есть вариант использовать Cygwin, Git bash и так далее.
На ваш страх и риск.

Используя браузер

Просто переходим по нужной ссылке в браузере.
На примере www.cht.sh/python/how-to-read-text-file

image

Ссылку можно отправить в качестве ответа на Stackoverflow, к примеру.

Используя редакторы кода

Зачем? Чтобы не выходя из редактора получить копипастом код решения.

Плагин для Emacs,
Плагин для Sublime Text,
Плагин для Vim,
Плагин для VSCode.

Интересности

Авто-дополнение на Tab

Установка для Bash:

    $ curl https://cheat.sh/:bash_completion > ~/.bash.d/cht.sh
    $ . ~/.bash.d/cht.sh
    $ # and add . ~/.bash.d/cht.sh to ~/.bashrc

Установка для ZSH:

    $ curl https://cheat.sh/:zsh > ~/.zsh.d/_cht
    $ echo 'fpath=(~/.zsh.d/ $fpath)' >> ~/.zshrc
    $ # Open a new shell to load the plugin

Параметры ответа

Если вам не нужна подсветка синтаксиса в ответе:
curl cht.sh/python/open-file?T

Если вам нужен только код без комментариев:
curl cht.sh/python/open-file?Q

Вы можете это комбинировать:
curl chr.sh/python/open-file?QT

Стелс-режим

Открываем клиентскую версию с параметром «--shell» и используем:
$ cht.sh --shell [язык программирования]
$ stealth [параметры]
Зачем? Чтобы быстро получить ответ. Автор предлагает использовать такое на дистанционных собеседованиях. Тут лишь вопрос вашей собственной совести.

One-line решения

curl cht.sh/[язык]/1line

Тут даже для Python есть. Да-да, для языка, где разделением блоков кода является перевод строки.

Странности языков программирования

curl cht.sh/[язык]/weirdness

Посмотреть другой ответ

Если вас не устроил текущий ответ на ваш запрос, можете посмотреть другой:
curl cht.sh/[язык]/[запрос]/[номер ответа]

И что, с помощью одной утилиты можно выучить основы языка?

$ curl cht.sh/[язык]/:learn

Заключение

В общем-то, всё. Возможно, кто-то уже знает о «cht.sh» и использует, но на русском я не нашёл нормальных материалов о нём. На GitHub есть таблица полноты «cht.sh» по языкам, ссылки на плагины для редакторов и полное руководство, если кого-то не устроило моё. Спасибо, что прочли.

Автор: ZXZs

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js