Выполнение любой задачи в программировании включает в себя нескольких общих этапов:
- понимание;
- планирование;
- написание кода;
- тестирование/отладка;
- завершение работы.
Программисты тратят большую часть времени на написание кода и отладку, потому что обычно занимаются планированием во время создания кода. Поэтому каждый разработчик стремится воспользоваться специальными советами по увеличению скорости кодирования. Так, некоторые используют редакторы кода, автоматически генерирующие часто используемые фрагменты.
Взяв на вооружение решения по увеличению продуктивности, вы можете ускорить выполнение повторяющихся действий. Как правило, написание кода — это динамичная работа. Ведь, скажем, вы же не пишете сегодня снова тот же код, который писали вчера. А если вы так делаете, то вам, вероятно, следует изучить принципы шаблонов проектирования.
Чтобы увеличить скорость написания кода, нужно знать факты, влияющие на этот процесс. Один программист может написать код для ПО за час, в то время как его коллеге удастся выполнить ту же работу всего за пять минут и сохранить то же качество на выходе.
В этой статье мы дадим несколько советов, которые помогут увеличить скорость написания кода и сохранить его качество. Вы сможете применять эти советы на практике с любым языком программирования, фреймворком и библиотекой.
По возможности применяйте метапрограммирование
Обычно для хранения наборов данных используются сложные типы данных. Например, если нужно хранить и обрабатывать данные о человеке, мы не передаем и не обрабатываем отдельные переменные, такие как имя, возраст, страна проживания и т. д. Вместо этого мы создаем один класс — объект “ключ-значение” — или структуру в соответствии с используемым языком.
Предположим, что вам нужно сгенерировать SQL-запрос с объектом под названием person
. Некоторые выбирают долгий путь, обращаясь к каждой базовой переменной по имени ключа:
person.name, person.age, person.country
Если вам нужно добавить еще одно поле SQL, придется изменить функцию генератора SQL-запросов. По мере увеличения количества полей может потребоваться много времени для явного ввода имен полей.
Но если относиться к person
как к данным и извлекать всю информацию (поля и значения), необходимую для генерации SQL-запроса во время выполнения программы, можно быстро написать высокодинамичный код. Эта техника называется “метапрограммирование”, и при работе с большинством популярных языков вы можете применять ее с помощью Reflection API.
Прежде чем использовать имена полей конкретной структуры в явном виде, попробуйте мыслить как специалист в сфере метапрограммирования. Эта техника сэкономит много времени при работе с сериализацией и преобразованием данных. Однако чрезмерное использование метапрограммирования может снизить читаемость кода, а также замедлить работу программы. Так что используйте эту технику с осторожностью.
Пишите готовый к коммитам код с первой попытки
Большинство программистов стремятся прежде всего реализовать быстрое решение. После этого они часто проводят перепроектирование кода для его очистки. Кроме того, иногда требуется быстрый рефакторинг, чтобы подготовить код для повторного использования.
Между тем, есть разработчики, которые всегда стремятся реализовать чистый и многократно используемый код с первой попытки. Если вы сначала реализуете быстрое решение, вы можете оперативно проверить, работает код целиком или нет.
Однако если вы начнете терпеливо писать многократно используемый и готовый к коммитам код, вы сэкономите массу времени, которое могли бы потратить на рефакторинг. Привыкнуть к такой практике будет нелегко. К тому же иногда быстрая реализация помогает проверить техническую осуществимость проекта.
Тем не менее, если вы начнете практиковать внедрение многократно используемого, чистого и готового к коммитам кода с первой попытки, то сможете быстрее выполнять задачи, сохраняя при этом качество работы.
Изучайте новейшие возможности языка, но используйте их с осторожностью
Каждый популярный язык программирования периодически обновляется. Вместе с новыми версиями появляется новый инструментарий, улучшается структура языка и совершенствуется стандартный API. Помимо этого, из языка могут исключаться некоторые существующие функции.
Подобные изменения часто затрагивают функции, ускоряющие написание кода. Так, работа с большими многострочными строками в JavaScript с обычным строковым синтаксисом (с одинарными или двойными кавычками) занимает много времени, поскольку необходимо добавлять множество операторов конкатенации строк. Но с новыми шаблонными литералами ES6 вы можете выполнять манипулирования строками любой сложности.
Точно так же и в любом языке программирования могут появиться функции, способные повысить скорость работы. Чтобы быстрее узнавать о новых возможностях, просматривайте историю версий языка, а также читайте сообщения в блогах и репозиториях с открытым исходным кодом. Тажк учтите, что в стандартной библиотеке языка уже может быть заложена часть кода, который вы пытались реализовать с нуля.
Старайтесь не переусердствовать при разработке
Ведущие инженеры мотивируют команду писать чистый код, ориентируясь на лучшие шаблоны проектирования. Но если добавлять все шаблоны в каждый фрагмент, то код усложнится настолько, что к нему никто не захочет прикасаться.
Есть два способа писать код:
- Одни пишут его только для компилятора/интерпретатора без использования каких-либо шаблонов.
- Другие пишут слишком сложный код, чтобы показать, что они знают все шаблоны проектирования.
Разумеется, программисту нужно уметь находить баланс между этими двумя крайностями, чтобы создавать качественный и читабельный код.
Рефакторить код с малым количеством шаблонов проектирования легко. Гораздо труднее производить рефакторинг огромной перегруженной кодовой базы. Поэтому старайтесь реализовать чистый код, используя только релевантные шаблоны проектирования. Это сэкономит время вам и вашим коллегам.
Старайтесь также не переусердствовать с интеграцией библиотек, которые вам не нужны. Например, нет необходимости интегрировать сторонние решения по управлению состояниями для простого приложения на React.
Учитесь быстро печатать на клавиатуре
До этого мы приводили советы, касающиеся перестройки вашего мышления как программиста. Теперь поговорим о физических способностях, которые могут прямо повлиять на скорость. Любой код, помимо присущего ему логического значения, представляет собой текстовый документ, набранный с помощью клавиатуры. Следовательно, скорость набора текста сильно влияет на скорость написания код. Но для того, чтобы быстро писать код, не обязательно быть сверходаренным наборщиком, печатающим 100 слов в минуту.
Программисты используют клавиатуру по-разному. Некоторые набирают исходный код в виде последовательности символов. Другими словами, они вводят слова и специальные символы один за другим в правильном порядке. Между тем, другие практикуют собственные способы ввода кода, оказывающиеся на деле довольно продуктивными.
Есть программисты, использующие в редакторах расширения для автоматического закрытия скобок и расширения для автозаполнения с поддержкой искусственного интеллекта. С другой стороны, некоторые разработчики любят работать по старинке, без всяких расширений для автозаполнения. Вы должны найти свой способ, который окажется для вас максимально комфортным.
Если программист вместо указателя мыши использует клавиши со стрелками для перемещения между строками кода, у него меньше времени уходит на его написание. Вам тоже следует изобрести собственные “лайфхаки” для быстрого управления клавиатурой при наборе кода.
Читайте также:
- 8 советов по улучшению качества кода
- Всё, что должен знать разработчик ПО о качестве кода
- 6 ответов на вопрос: «почему читать код важнее, чем писать?»
Читайте нас в Telegram, VK и Дзен
Перевод статьи Shalitha Suranga: 5 Tips to Write Code Faster In Any Programming Language