{"id":13493351,"url":"https://github.com/HowProgrammingWorks/Exams","last_synced_at":"2025-03-28T11:32:33.871Z","repository":{"id":41864700,"uuid":"275944158","full_name":"HowProgrammingWorks/Exams","owner":"HowProgrammingWorks","description":"Exams readiness test","archived":false,"fork":false,"pushed_at":"2024-01-12T22:17:55.000Z","size":89,"stargazers_count":107,"open_issues_count":3,"forks_count":226,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-08-01T19:46:14.732Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://youtube.com/@TimurShemsedinov","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HowProgrammingWorks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"patreon":"tshemsedinov"}},"created_at":"2020-06-29T22:59:03.000Z","updated_at":"2024-05-31T08:57:08.000Z","dependencies_parsed_at":"2024-01-16T09:52:01.267Z","dependency_job_id":"d2ebe612-9d4a-4d77-af10-d965d418ba31","html_url":"https://github.com/HowProgrammingWorks/Exams","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HowProgrammingWorks%2FExams","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HowProgrammingWorks%2FExams/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HowProgrammingWorks%2FExams/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HowProgrammingWorks%2FExams/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HowProgrammingWorks","download_url":"https://codeload.github.com/HowProgrammingWorks/Exams/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222376246,"owners_count":16974312,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T19:01:14.413Z","updated_at":"2024-10-31T07:31:27.848Z","avatar_url":"https://github.com/HowProgrammingWorks.png","language":"JavaScript","readme":"# Экзамен по материалу SEF1\n\n- Для начала, каждый должен иметь github аккаунт, если нет - регистрируемся\n- Посмотрите семинары с консультациями к экзамену:\n  - https://youtu.be/eYjf_WrYAqk\n  - https://youtu.be/05iTAT_t6cI\n- Посмотрите видео по антипаттернам и рефакторингу:\n  - https://www.youtube.com/playlist?list=PLHhi8ymDMrQb3PVcPFAUI-ZgtAMkpq9yV\n- Если кто потерялся, то материалы курса тут:\n  - https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Fundamentals.md\n- Сделайте форк этого репозитория https://github.com/HowProgrammingWorks/Exams\n- Склонируйте репозиторий к себе на машину или вы можете делать задания прямо в веб-интерфейсе гитхаба\n- В своем форке сделайте ветку `exams` и в ней дальше выполните задания\n- В директории `Tasks` есть 38 заданий, выберите себе любые 2 из них\n- В файле с заданием написан плохой код, вам нужно его оптимизировать в несколько шагов\n- Код задания работает, и выдает правильный результат, вам нужно исправлять файл, но не сломать код\n- Для работы с кодом вам может понадобиться:\n  - Runtime - [Node.js](https://nodejs.org/en/) с менеджером пакетов: [npm](https://www.npmjs.com/)\n  - Линтер - проверка стиля кода и анализ синтаксиса - [ESLint](http://eslint.org/)\n  - VCS - система контроля версий - [GitHub](https://github.com/), [Git](https://git-scm.com/), [GUI](https://desktop.github.com/)\n  - IDE - редактор или среда разработки, например: [Vim](http://www.vim.org/), [Visual Studio Code](https://code.visualstudio.com/)\n- Используйте тесты из каталога `Tests` для проверки решений. Чтобы запустить пример с тестами:\n  - в папке с кодом пишем, например: `node size.js`\n  - получаем в терминале: `Passed: 11 of 11` или ошибки\n- Ваша задача улучшить:\n  - Понятность кода,\n  - Стиль,\n  - Простоту,\n  - Качество,\n  - Поддерживаемость,\n  - Надежность,\n  - Тестируемость\n- Найдите себе двух друзей из группы и сделайте перекрестный ревью кода в пул-реквестах\n- Тут чеклист частых ошибок (после ревью они точно должны быть исправлены):\n  - Не модифицируйте входные параметры функций\n  - Предпочитайте стрелочніе функции для JavaScript и `lambda` для `Python`\n  - Используйте eslint и prettier для JavaScript с нашими настройками (см. в корне этого репозитория)\n  - Предпочтительно использвать `for..of` или `for` по переменной или `Array/map`, и избегайте `for..in` и `forEach`\n  - Используйте промежуточные идентификаторы разделяя длинные выражения\n  - Предпочитайте `const` и в крайнем случае используйте `let`, но никогда не используйте `var`\n  - Преобразуйте все магические значения в константы\n  - Придерживайтесь правил именования идентификаторов\n  - Хорошо подумайте над именами идентификаторов, чтобы при прочтении кода всем было понятно их содержимое\n  - Не делайте слишком длинных функций\n  - Не делайте большую стопку if-выражений, вместо этого используйте массивы и объекты\n- Если вы пишете **не** на js, то переведите код на свой язык, насколько это возможно\n- Каждый шаг делайте отдельным коммитом, важно не переписать с нуля, а именно пошагово улучшать. На второй консультации я показал пример того, как нужно оптимизировать код\n- Когда закончите - сделайте пул-реквест в мой репозиторий и заполните форму, в которой укажите ссылку на свой форк с готовым заданием: https://forms.gle/qmbwSNCSbtDf6g4X7\n- Всем успехов в Новом Году и на экзамене!\n","funding_links":["https://patreon.com/tshemsedinov"],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHowProgrammingWorks%2FExams","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FHowProgrammingWorks%2FExams","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHowProgrammingWorks%2FExams/lists"}