Я предполагаю, что под «лучшими практиками» вы подразумеваете некоторый список правил, которые кто-то написал в книге. Конечно, если вы подразумеваете фразу буквально, то, конечно, вы всегда должны писать лучший код, какой только можете.
Нужно ли мне указывать, что не существует единого общепринятого набора «лучших практик»? Для любого правила, выдвигаемого одним экспертом, вы почти всегда можете найти другого эксперта с равными полномочиями, который скажет что-то другое.
Но к сути: краткий ответ: обычно, но не всегда.
Каждая область имеет свои «лучшие практики» и «решения для учебников». Они представляют собой накопленный опыт и мудрость многих, многих людей за многие годы, и их нельзя игнорировать. НО! Всегда существуют особые обстоятельства, дополнительные случаи и т. Д. Действительно способный человек в любой области знает, когда следует соблюдать правила и когда их нарушать.
Я бы сказал в целом: начните с соблюдения правил учебника. Если следование правилам учебника приводит к неприятностям - ненужной сложности, плохой производительности и т. Д., - тогда подумайте, может ли нарушение этого единственного правила на этот раз не лучшая идея.
Если вы игнорируете правила и идете туда, куда вас ведет ваша прихоть, ваш код, скорее всего, будет беспорядочным. Независимо от того, насколько вы умны, вы не первый программист в мире. Имеет смысл учиться на опыте других. Вот почему в нашей повседневной жизни у нас есть родители, учителя и проповедники: поэтому нам не нужно повторять каждую глупую ошибку, чтобы понять, что это глупая ошибка.
Но если вы неукоснительно будете следовать списку правил из какой-то книги 100% времени, вы часто будете вбивать квадратный колышек в круглое отверстие. Люди, которые написали свод правил, возможно, не сталкивались с делом, похожим на ваше. И даже если они имеют, если это достаточно редко, они, возможно, проигнорировали это. Правило, которое работает 80% времени, является превосходным правилом - если вы понимаете, что оно работает 80% времени, а не 100% времени.
Я написал книгу по проектированию баз данных, в которой есть много правил, которым я советую следовать разработчикам баз данных. (Я воздержусь от присвоения названия, поэтому я не выгляжу бесстыдно в саморекламе.) Я, конечно, призываю всех, кто хочет создать базу данных, прочитать книгу, подобную моей, и узнать из нее все, что они могут. , Но, конечно, бывают случаи, когда вы должны нарушать правила, которые я перечисляю.
Однажды я написал документ по стандартам программирования для команды разработчиков, которой руководил в то время. И последнее правило звучало примерно так: «Если у вас есть веская причина нарушить одно из вышеприведенных правил, продолжайте, НО вы должны включить в свой код комментарий, объясняющий, почему вы нарушили правило. Если вы не можете прийти Если у вас есть веская причина, тогда следуйте правилу. Если написание комментария доставляет больше хлопот, чем следования правилу, тогда следуйте правилу ». У нас было всего несколько раз, когда кто-то обнаружил, что нарушение правила стоит того, чтобы объяснить почему.