Skip to content

Instantly share code, notes, and snippets.

@codedokode
codedokode / Задача на калькулятор.md
Created October 16, 2013 10:54
Задание на калькулятор и ООП

Задача про калькулятор на ООП

  • Уровень: джуниор с широким кругозором и целеустремленностью
  • Ключевые слова для гугления подсказок: грамматики, токенайзер, парсер, recursive descent, обратная польская запись, AST
  • Время: 2-3 дня

Ты можешь использовать любой понравившийся язык и библиотеки, но, пожалуйста, не ищи готовые решения и не копипасть код (можно найти решение на другом языке, разобраться, как оно работает, и написать своими словами, если сам додуматься не смог). Гуглить и использовать алгоритмы можно.

Задание: сделать программу-калькулятор, считающую значение математического выражения. Выражение содержит целые (123) и дробные числа (13.45), скобки, операции +, -, /, *, ^ (возведение в степень). В выражении должен соблюдаться приоритет операций:

@codedokode
codedokode / задача-сайт-testhub.md
Last active January 24, 2023 14:44
Сайт для тестирования TestHub

Задача

Примечание: раньше тут были другие условия задачи. Их можно найти в предыдущих ревизиях этого задания по ссылке https://gist.github.com/codedokode/8733007/e8e73b0255b3d899cb4e17dc9446fe694a8f5f7c

Cделать сайт TestHub, который позволяет создавать и проходить тесты (с вопросами и ответами). Их могут использовать например, преподаватели для проверки знаний студентов, работодатели для отсеивания кандидатов на вакансию, маркетологи для проведения опросов. Далее мы будем называть того, кто создает тесты, экзаменатором, а того, кто сдает, студентом, это лишь условные названия.

  • Предлагаемые технологии: фреймворк (Symfony 3-4 (сложнее, но интереснее), Yii2, Laravel), MySQL или Postgres, шаблонизатор Twig, ORM Doctrine
  • Время выполнения: все зависит от тебя, но я бы смотрел на 4-6 недель
  • Уровень: очень продвинутый новичок
  • Требуемые знания: PHP, MVC, ООП, HTML/CSS, SQL, основы JS

Как отформатировать код

Код должен выглядеть аккуратно и оформляться, как принято. Почему? Ну потому, что другой человек, который будет смотреть твой код, вряд ли обрадуется, когда ему придется разбирать слипшиеся строчки, разбросанные в беспорядке скобки и написанные русскими словами названия переменных. Особенно плохо будет если это, например, код тестового задания, которое ты сделал, чтобы устроиться на работу. Если он будет неряшливым, это будет большой минус.

Не бойся, сделать код аккуратным совсем не сложно. Самый универсальный способ — вставить его на сайт http://phpformatter.com и нажать кнопку Format. Робот сам выровняет твой код в лучших традициях.

Если ты используешь для редактирования кода IDE, то все еще проще (а если не используешь, то почему бы не начать?):

  • Eclipse PDT — жми Ctrl + Shift + F для автоматического форматирования кода.
  • Netbeans for PHP — жми Alt + Shift + F
@codedokode
codedokode / Задача на клон rghost.md
Last active October 10, 2022 17:30
Задача на клон rghost, ООП и MVC

Задание на ООП и MVC

Для выполнения задания нужно: иметь представление о HTML/CSS (так как мы делаем сайт на фреймворке, а страницы сайтов пишутся на HTML), иметь представление о SQL-запросах или желание в них разобраться (так как мы будем работать с базой данных), иметь представление об ООП (так как все популярные фреймворки используют ООП).

Нужно иметь установленные и настроенные Апач/PHP/любую SQL- или NoSQL-базу данных (или денвер/XAMPP но лучше бы установить компоненты по отдельности, дает полезные навыки).

Если есть пробелы в знаниях, у меня есть паста про установку Апача и пара уроков по ООП.

Задание поможет: разобраться в MVC, научиться использовать один из фреймворков, использовать современные подходы к разработке, писать более правильный код.

@codedokode
codedokode / Задание на JS.md
Created March 9, 2014 18:20
Задание на JS

Задачка: сделай страничку, на ней текстовое поле. В него пользователь вводит название города, и по мере ввода появляются выпадающие подсказки, как в Google.

Поиск идет по первым буквам, например при вводе «Нов» появляется:

  • Нижний Новгород
  • Новогород
  • Новые Васюки

Введенная часть текста подсвечивается в подсказке.

Этот урок переехал по адресу: https://github.com/codedokode/pasta/blob/master/security/password-hashing.md

Здесь старая версия урока, которая больше не обновляется.


Итак, ты решил сделать авторизацию и регистрацию через пароли. Как максимально обезопасить пароли пользователей от взлома и от своих же любопытных сотрудников (если ты работаешь не один, а в большой компании)?

Соли @ хешируй

@codedokode
codedokode / Задание про Арканоид.md
Last active March 4, 2020 09:42
Сделай свой Арканоид!

Задача про Арканоид

Арканоид — это классическая компьютерная игра, в которой нужно разбить все кирпичи на поле при помощи шарика, который игрок может отбивать битой. Если шарик проскочит мимо биты и уйдет за нижний край поля, игра проиграна.

Видео: http://www.youtube.com/watch?v=yVf0sqqUMak
История игры: http://ru.wikipedia.org/wiki/Arkanoid

Предлагаю тебе сделать свой небольшой аналог арканоида при помощи Javascript и Canvas.

  • Нужные знания: основы javascript, основы HTML
@codedokode
codedokode / Задача и теория по SQL, MySQL, PostgreSQL и базам даннх вообще.md
Last active February 26, 2024 11:23
Задачка и теория по SQL (изучаем базы данных)

Этот урок переехал по адресу https://github.com/codedokode/pasta/blob/master/db/databases.md . Копия ниже устарела и не будет больше обновляться.


Что такое базы данных

База данных - это хранилище, в которое можно сохранять данные, а позже делать по ним поиск и загружать их. Ну например, на форуме в базе данных может храниться информация о пользователях сайта и написанных ими сообщениях. При просмотре страницы скрипт на сервере ищет в БД сообщения на определенную тему и выводит их на странице. Почти любой интерактивный сайт использует БД.

Конечно, можно попробовать сделать свое хранилище (к примеру, на файлах), но вряд ли оно будет работать так же быстро и надежно, как профессиональная база данных. Хорошая база данных гарантирует отсутствие потерь сохраненных данных, даже если неожиданно отключится питание, отсутствие проблем при одновременной работе нескольких пользователей, позволяет искать информацию по произвольным критериям.

@codedokode
codedokode / !Как установить сфинкс.md
Last active September 8, 2023 17:44
Как установить и настроить сфинкс.

Как установить и настроить сфинкс.

Скачиваем сфинкс (берем версию с MySQL и со стеммингом на 15 языков Win32 binaries w/MySQL+PgSQL+libstemmer+id64 support соответствующую битности твоей ОС), распаковываем например в d:\temp\s\

На этом установка sphinx завершена. В дебиане просто делаем sudo apt-get install sphinxsearch.

Создаем таблицы:

CREATE TABLE news 

(id INT(10) AUTO_INCREMENT PRIMARY KEY, topic INT(10) NOT NULL, header VARCHAR(200) NOT NULL,

@codedokode
codedokode / cli.md
Last active February 20, 2024 09:03
Как начать пользоваться командной строкой (linux/win/mac)

Этот урок переехал в мой гитхаб: https://github.com/codedokode/pasta/blob/master/soft/cli.md

Ниже - старая, неактуальная версия.


Как начать пользоваться командной строкой

Я не знаю, ты пользуешься Линуксом или Уиндоузом (обычно туториалы рассчитаны на линуксоидов и макосников, уиндоуз не модный среди молодежи). В макоси все практически так же как и в линуксе, в windows пошли своим путем и сделали все как в DOS.