Как научить себя писать код быстрее с меньшим количеством багов?

Сегодня будет перевод статьи How do I train myself to code faster and with fewer bugs? с сайта quora.com.

Glyn Williams пишет:

Трем программистам предложили пересечь поле, и дойти до дома на другой стороне.

Программист-новичок посмотрел на короткую дистанцию и сказал, «Это не далеко! Это займет у меня десять минут»

Опытный программер посмотрел на поле, немного подумал, и сказал: «Я мог бы добраться туда за день». Новичок посмотрел на него с удивелнием.

Гуру-программист посмотрел на поле и сказал. «Кажется минут десять, но я думаю пятнадцати будет достаточно». Опытный программер рассмеялся.

Программист-новичок двинулся в путь, но в течение нескольких мгновений, начали взрываться мины, оставляя после себя большие ямы. От взрывов он отлетал назад, и ему приходилась начинать сначала снова и снова. У него ушло два дня чтобы достичь цели. К тому же он весь трясся и был ранен когда пришел.

Опытный программер пополз на четвереньках. Осторожно щупая землю и ища мины, двигаясь только если был уверен что это безопасно. Медленно и осторожно он пересек поле в течение дня. Только задев пару мин.

Гуру программист пустился в путь, и пошел прямо через поле. Целеустремленно и прямо. Он достиг цели всего за десять минут.

«Как тебе это удалось?» — спросили двое других — «Как ты умудрился не зацепить ни одной мины?»

«Легко.» — ответил он. «Я не закладывал мины на своем пути».

—————

Программирование становится сложным, когда мы(или кто-то другой) подкладывам себе бомбы. Мы пишем логические бомбы все время.
И они сидят там, скрытые под поверхностью, ждут своего часа. Часто с грандиозными и неожиданными последствиями.

С каждым новым модулем кода добавленным в проект, сложность проекта растет. Не в арифметической, а в геометрической прогрессии.

Сознание программиста — ограниченный ресурс, и взрывоопасный уровень сложности подавляет программист. В некоторых случаях все это становится трудно удержать в голове. Это поворотный момент.

Я думаю самое быстрое и надежное программирование — это такая разработка, где вы избегаете этот тип проблем.

Пишите код, который ясно описывает что он делает. Выбирайте осмысленные символьные имена, которые точны и однозначны. Будьте очень точны в обзываини схем, не используйте разные имена, для описания одних и тех же вещей.

Принимайте простейшие решениия если они доступны. Не свой код оптимизируйте для скорости. Оптимзируйте для читабельности понятности и прозрачности.

Не обманывайте себя, думая что ваш код реюзабелен(что его можно использовать снова и снова), если вы изначально не задумали написать его с учетом его повторного использования. Вместо этого начните с одноразового кода и сохраните его простоту. Если имеет смысл сделать его реюзаюбельным, будьте готовы его полностю переписать.

===================

Dylan Wilson, Craftwork Games

Я програмирую более 20 лет. Мне было 12 лет когда я написал мою первую компьютерную программу. Я кодил почти каждый день. В результате я могу кодить очень быстро, с редкими багами.

Но сейчас, когда я старше и опытнее, мой совет: кодить медленнее. Возьмите время на размышление, и подумайте о проблеме. Пишите код аккуратно, и главное, пусть он остается простым!

Обычные программисты — решают простые проблемы с помощью сложных решений.
Хорошие программисты — решают сложные проблемы с помощью сложных решений.
Отличные программисты — решают сложные проблемы с помощью простых решений.

Даже продумав, я могу писать код быстро, и я считаю что я почти всегда пишу код лучше, если я выделяю время для того чтобы подумать о том как я решу проблему написав меньше кода. Я не имею ввиду написание меньшего числа букв. Читабельность крайне важна, когда ты тратишь времени больше на чтение кода, чем на его написание. я имею ввиду лишь написание достаточно кода, чтобы решить проблему, и ни строчки больше.

comments powered by HyperComments