Giter Site home page Giter Site logo

otus-homework-1-search-this's Introduction

OTUS Homework 1 search this

Оглавление

Домашнее задание

Создать программу-поисковик Цель: В этой самостоятельной работе тренируем умения: 1. Писать "чистый код" 2. Собирать пакеты Чтобы: Применять принципы написания чистого кода и сборку пакетов Задача: Создать программу поисковик (консольную) Пользователь вводит текст запроса, поисковую систему (google.com, yandex.ru, ...), количество результатов, рекурсивный поиск или нет, формат вывода (в консоль, в файл json, в csv) Программа находит в интернете начиная от стартовой точки все ссылки на веб-странице в заданном количестве (название ссылки и саму ссылку) Если поиск не рекурсивный, то берем ссылки только из поисковика, если рекурсивный, то берем первую ссылку, переходим, находим там ссылки, переходим, ... В зависимости от выбранного формата вывода сохраняем результат (текст ссылки: ссылка) либо в консоль либо в файл выбранного формата 0. Создать репозиторий для нового проекта (gitlab, github, ...)

  1. Решить задачу

  2. Обратить внимание на следующие принципы:

  3. декомпозиция сверху вниз

  4. srp - принцип единственной ответственности

  5. термины предметной области

  6. уменьшение зависимости

  7. чистые функции

  8. цикломатическая сложность

python3 -m mccabe --min 5 module.py
flake8 --max-complexity 5
  1. понятные названия у переменных, функций, классов, модулей

  2. контекст ближе к коду (привязка к комитам, тикетам, комменты, документация, вики)

  3. разумное использование фишек python

  4. код на английском а не на python

  5. фичеризм - не слишком гибко, не слишком жестко, обобщать когда используется 2 раза

  6. тесты демонстрирующие не очевидное поведение

  7. статический анализ кода pycodestyle, flake8, ast

  8. Добавить setup.py для сборки программы в пакет

  9. Сдать дз в виде ссылки на репозиторий Критерии оценки: Задание считается выполненным, когда: Код запускается без ошибок и программа может получать ссылки по заданному запросу. Есть возможность сборки пакета - 4 баллов

Дополнительно:

  • Проверки flake8 и flake8 --max-complexity 5 не выдают ошибок 1 балл
  • Работает рекурсивный поиск 1 балл
  • Есть возможность выбора: поисковой системы 1 балл количества результатов 1 балл рекурсивный поиск или нет 1 балл вариант вывода (консоль, json, csv) 1 балл

Итого:4 + 1 + 1 + 1 + 1 + 1 + 1 = 10 баллов Рекомендуем сдать до: 07.06.2020

Описание

Искать можно в Google и DuckDuckGo. Иногда поиск в Google занимает около двух минут, иногда выдает сразу. DuckDuckGo работает быстро, но если слишком часто делать запросы, то DuckDuckGo банит на некоторое время.

Установка

pip install search-this

Использование

$ search_this -h
usage: search_this [-h] -q QUERY [-e {google,duck}] [-c COUNT] [-l {console,json,csv}]
optional arguments:
  -h, --help            show this help message and exit
  -q QUERY, --query QUERY
                        Query for searching. Words define in qoutes.
  -e {google,duck}, --engine {google,duck}
                        Choose the search engine. Default: Google.
  -c COUNT, --count COUNT
                        Count of results. Default: 1.
  -l {console,json,csv}, --logging {console,json,csv}
                        Information ouput. Default: console.

otus-homework-1-search-this's People

Contributors

miaow2 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.