Чтобы овладеть языком программирования, нужно решить множество задач и написать много строк кода. На самом деле это бесконечный процесс, поэтому быть программистом так весело. Итак, практика ведет к совершенству, но где ее получить. Одно из таких мест - codewars.com, если вы еще не решаете все на своем пути, прочтите эту короткую статью, а затем подпишитесь на кодовые войны.

Почему я так люблю кодовые войны? Множество разных заданий на любой вкус. Вы называете это, у них это есть. Еще мне нравится, что, решая там задачи, я учусь писать тесты по ходу дела. И это определенно правильный способ писать код. Для более сложных задач тесты построены таким образом, что их сможет пройти только оптимизированное решение. Более того, отправив свое решение, вы можете просмотреть другие решения, и это хорошая возможность, во-первых, научиться читать чужой код и, во-вторых, увидеть способы улучшить свой собственный код. Кстати, идея для этой статьи пришла мне в голову, когда я читал и оценивал другие решения.

Я покажу вам три возможных решения довольно простой задачи из кодовых войн. Инструкции следующие. Функция принимает три аргумента: первый - это строка, текст, содержащий буквы, числа и пробелы; второй - число, максимальное значение символов, которое может иметь текст; а третий - логическое значение, указывающее, включены ли пробелы в длину текста или нет. Функция проверяет, превышает ли длина текста максимальное значение, указанное во втором аргументе. Результатом является массив, содержащий истину / ложь и измененный (усеченный до максимального значения) текст с / без пробелов в зависимости от третьего аргумента. Более подробные инструкции вы можете прочитать здесь: https://www.codewars.com/kata/character-limits-how-long-is-your-piece-of-string/train/javascript.

Итак, первое решение - это то, что, как я представлял, я придумал, когда только начал изучать Mighty and Beautiful JavaScript. Как сказал один из моих хороших друзей, с помощью цикла for и условного if / else вы можете решить 90% задач. Эти решения доступны для чтения? - это другой вопрос. Вначале основная цель - решить задачу, чтобы все прошло.

Второй - тот, который я отправил ранее, и он ни в коем случае не идеален, но именно здесь я сейчас нахожусь на пути к Javascript Guru. Как сказал Ральф Уолдо Эмерсон:

Каждый художник сначала был любителем.

И, наконец, третий вариант - это решение с изменениями, которые я внес на основе некоторых идей из решений других людей. Видите ли, в предыдущем решении я использовал пробелы === true, что не нужно. А тернарный оператор в операторе return может быть заменен массивом, где первый элемент является самим условием, а второй - измененным (или нет, в зависимости от условия) текстом.

Итак, если вы прочитали много руководств и теперь ищете способы улучшить свои навыки написания кода, вы можете попробовать кодовые войны. Но не забывайте, отправив свое решение, прочтите другие решения. И запомните, прочтите, поймите, оцените и примените.

Я хотел бы услышать ваши советы, как вы ежедневно работаете над своими навыками написания кода. Пожалуйста, поделитесь в комментариях ниже. И если вы уже являетесь одним из ниндзя кодовых войн, вы можете найти меня там как Sestri4kina.