GithubHelp home page GithubHelp logo

alexgash8 / exams Goto Github PK

View Code? Open in Web Editor NEW

This project forked from howprogrammingworks/exams

0.0 0.0 0.0 85 KB

Exams readiness test

Home Page: http://metarhia.com

License: MIT License

JavaScript 100.00%

exams's Introduction

Экзамен по материалу SEF1

  • Для начала, каждый должен иметь github аккаунт, если нет - регистрируемся
  • Посмотрите семинары с консультациями к экзамену:
  • Посмотрите видео по антипаттернам и рефакторингу:
  • Если кто потерялся, то материалы курса тут:
  • Сделайте форк этого репозитория https://github.com/HowProgrammingWorks/Exams
  • Склонируйте репозиторий к себе на машину или вы можете делать задания прямо в веб-интерфейсе гитхаба
  • В своем форке сделайте ветку exams и в ней дальше выполните задания
  • В директории Tasks есть 38 заданий, выберите себе любые 2 из них
  • В файле с заданием написан плохой код, вам нужно его оптимизировать в несколько шагов
  • Код задания работает, и выдает правильный результат, вам нужно исправлять файл, но не сломать код
  • Дл работы с кодом вам может понадобиться:
    • Runtime - Node.js с менеджером пакетов: npm
    • Линтер - проверка стиля кода и анализ синтаксиса - ESLint
    • VCS - система контроля версий - GitHub, Git, GUI
    • IDE - редактор или среда разработки, например: Vim, Visual Studio Code
  • Используйте тесты из каталога Tests для проверки решений. Чтобы запустить пример с тестами:
    • в папке с кодом пишем, например: node size.js
    • получаем в терминале: Passed: 11 of 11 или ошибки
  • Ваша задача улучшить:
    • Понятность кода,
    • Стиль,
    • Простоту,
    • Качество,
    • Поддерживаемость,
    • Надежность,
    • Тестируемость
  • Найдите себе двух друзей из группы и сделайте перекрестный ревью кода в пул-реквестах
  • Тут чеклист частых ошибок (после ревью они точно должны быть исправлены):
    • Не модифицируйте входные параметры функций
    • Предпочитайте стрелочніе функции для JavaScript и lambda для Python
    • Используйте eslint и prettier для JavaScript с нашими настройками (см. в корне этого репозитория)
    • Предпочтительно использвать for..of или for по переменной или Array/map, и избегайте for..in и forEach
    • Используйте промежуточные идентификаторы разделяя длинные выражения
    • Предпочитайте const и в крайнем случае используйте let, но никогда не используйте var
    • Преобразуйте все магические значения в константы
    • Придерживайтесь правил именования идентификаторов
    • Хорошо подумайте над именами идентификаторов, чтобы при прочтении кода всем было понятно их содержимое
    • Не делайте слишком длнииых функций
    • Не делайте большую стопку if-выражений, вместо этого используйте массивы и объекты
  • Если вы пишете не на js, то переведите код на свой язык, насколько это возможно
  • Каждый шаг делайте отдельным коммитом, важно не переписать с нуля, а именно пошагово улучшать. На второй консультации я показал пример того, как нужно оптимизировать код
  • Когда закончите - сделайте пул-реквест в мой репозиторий и заполните форму, в которой укажите ссылку на свой форк с готовым заданием: https://forms.gle/qmbwSNCSbtDf6g4X7
  • Всем успехов в Новом Году и на экзамене!

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.