Рекламное объявление
Мы уже провели вас через наиболее важные принципы программирования 10 основных принципов программирования, которым должен следовать каждый программистВсегда пишите код, который может поддерживать любой, кто может закончить работу над вашим программным обеспечением. Для этого, вот несколько принципов программирования, которые помогут вам привести себя в порядок. Подробнее Вы должны знать о, но есть еще один класс принципов программирования, которые могут оказаться еще более выгодно чем те.
В то время как вышеупомянутые принципы учат вас, как быть умная с вашим кодом, следующие принципы научат вас быть мудрый с вашим кодом. Некоторые из них странные, многие из них шутливые, но все они одинаково практичны и важны. Берегись!
1. Принцип вздора
У этого есть так много изменений, что трудно выбрать один в качестве основного. Возможно, наиболее «официальной» версией является Закон разработки программного обеспечения, более часто называемый Закон Завинского, названный в честь Джейми Завински и упоминается в Искусство программирования UNIX:
«Каждая программа пытается расширяться, пока не сможет читать почту. Те программы, которые не могут расширяться, заменяются теми, которые могут ».
Речь идет о тенденции программ привлекать все больше и больше функций с течением времени и неизбежно смещаться в сторону увеличения сложности. Вы можете знать это как ползучестьЭто постоянное добавление новых функций, которые не имеют ничего общего с основной целью программы. Функция ползучести приводит к вздутию, и вздутие часто нежелательно.
Это также может относиться к производительности программного обеспечения:
«Программное обеспечение расширяется, чтобы потреблять все доступные ресурсы».
Еще в 90-х годах жесткие диски, процессоры и оперативная память были гораздо более строгими, чем сегодня, и программисты усердно трудились, чтобы уместить столько, сколько могли в рамках этих ограничений. Тем не менее, теперь, когда у нас есть большие диски и более быстрые процессоры и больше оперативной памяти, мы все еще стараемся соблюдать ограничения. Все раздувается со временем. Ваша работа - держать это под контролем.

2. Хуже менталитет
Почти как если бы в ответ на принцип «Блат» мы Хуже лучше менталитетвпервые придумал Ричард П. Габриэль в эссе он написал о качестве программного обеспечения:
«Программное обеспечение, которое является ограниченным, но простым в использовании, может быть более привлекательным для пользователя и рынка, чем наоборот».
Другими словами, целесообразно выяснить одна проблема Ваше программное обеспечение стремится решить, а затем быть отлично на это одно. Будь проще. Чем больше вы теряете сознание, тем более неуправляемым становится проект, и тем более нежелательным он становится для пользователей.
Что происходит, когда вы игнорируете это? Вы в конечном итоге с Принцип Питера:
«Слишком сложный проект со временем станет слишком сложным, чтобы его могли понять даже его собственные разработчики».
Это вытекает из более широкого принципа Питера, который гласит, что когда сотрудники повышаются в зависимости от их нынешнего компетентность, а не ожидаемая компетентность на следующей должности, все сотрудники в конечном итоге оказываются в положении некомпетентность. Возьмите этот принцип и примените его к программному обеспечению, и вы поймете, почему худшее программное обеспечение часто может быть лучше.
3. Закон Иглсона
«Любой ваш собственный код, который вы не просматривали в течение шести или более месяцев, мог бы быть написан кем-то другим».
Это, казалось бы, демотивационное высказывание на самом деле является чем-то, что нужно принять. На самом деле никто не идеален. Вы можете подумать, что вы гениальный программист сейчас, но есть всегда кое-что еще вы можете узнать, всегда больше места для роста. Если вы когда-нибудь оглянетесь на старый код и съежитесь, это, вероятно, означает с тех пор ты узнал что-то новое.
Другими словами: если вы оглядываетесь назад на старый проект и не видите ничего, что можно улучшить или сделаете иначе в следующий раз, вы, скорее всего, застыли как программист.
4. Принцип Наименьшего Удивления
«Если необходимая функция имеет высокий коэффициент удивления, может потребоваться ее перепроектирование».
Впервые опубликовано в IBM Systems Journal Еще в 1984 году этот принцип все еще удивительно актуален сегодня - возможно, даже больше, чем когда-либо прежде.
По сути, это касается тонкого баланса между инновациями и привычностью: если часть программного обеспечения слишком разные от других в своем роде и не соответствует ожиданиям пользователей, то скорее всего, они его не примут. Лучше стремиться к постепенным улучшениям, которые достаточно велики, чтобы быть впечатляющими, но достаточно малы, чтобы оставаться знакомыми.

5. Закон кибернетической энтомологии
«Всегда есть еще одна ошибка».
Часто называют Закон Любарского о кибернетической энтомологииНепонятно, кто такой этот Любарский на самом деле. Однако его принцип звучит правдоподобно для всех программистов: независимо от того, насколько четко вы пишете свой код, независимо от того, как Надежно тестируйте свои модули, независимо от того, как часто вы проводите рефакторинг ваших классов, всегда будет другая ошибка.
В каком-то смысле это принцип освобождения. Хотя мы должны определенно прилагать усилия для кода без ошибок также важно помнить, что перфекционизм - враг добра. Ищите ошибки, исправляйте их, когда они возникают, а затем двигайтесь дальше.
6. Закон Кернигана
«Отладка в два раза сложнее, чем писать код в первую очередь. Поэтому, если вы пишете код настолько умно, насколько это возможно, вы, по определению, недостаточно умны для его отладки ».
Брайан Керниган, тот самый, кто в соавторстве библия язык программирования C Почему программирование на С все еще стоит изучатьС не мертвый язык. На самом деле, журнал IEEE Spectrum назвал его лучшим языком в 2017 году. Вот пять причин, почему. Подробнее Славится этот проницательный закон. Суть этого такова: write хорошо код, напиши удобочитаемый код, напиши просто код, ничего, пока это не умный код.
Попытка напрячь свои силы в программировании с помощью сложности башни из слоновой кости является полной противоположностью того, что написать чистый и лучший код 10 советов по написанию более чистого и качественного кодаНаписание чистого кода выглядит проще, чем есть на самом деле, но преимущества того стоят. Вот как вы можете начать писать более чистый код сегодня. Подробнее . Чем сложнее понять ваш код, тем сложнее будет отлаживать его, когда он неизбежно сломается.
И как Роберт С. Мартин объясняет, что речь идет не только об отладке:
«Действительно, соотношение времени, потраченного на чтение, к письму значительно превышает 10 к 1. Мы постоянно читаем старый код как часть усилий по написанию нового кода... [Поэтому] облегчение чтения облегчает написание ».

7. Отладка резиновой утки
Этот принцип - не столько принцип, сколько методика, но он настолько полезен и странен, что мы упустим его.
Сначала сказали в Прагматичный программист, отладка резиновой утки это когда вы отлаживаете неработающее программное обеспечение, объясняя свой код неодушевленному объекту (например, резиновой утке) по одной строке за раз. Это работает, потому что акт объяснения вызывает различные части вашего мозга, и вы с большей вероятностью обнаружите несоответствия и выясните, где вы ошиблись.
По этой причине резиновая утка может быть удивительно изящный подарок для программистов Лучшие подарки для программистов: 20 идей для программистов и ботаниковИщете подарок для программиста? Здесь представлены лучшие подарки гиков, начиная от механических клавиатур и заканчивая партами. Подробнее покупаете ли вы его для себя или для своего приятеля по программированию.
8. Правило девяносто девяноста
«Первые 90 процентов кода составляют первые 90 процентов времени разработки. Оставшиеся 10 процентов кода составляют остальные 90 процентов времени разработки ».
Эта нахальная маленькая пословица Тома Каргилла объясняет, почему программирование может быть таким неприятным: независимо от того, насколько близко вы думаете к тому, чтобы закончить, вы намного дальше чем даже ваши лучшие оценки. Когда вы думаете, что вы сделали, вы только на полпути.
Это неразрывно связано с законом Хофштадтера:
«Это всегда занимает больше времени, чем вы ожидаете, даже если вы принимаете во внимание закон Хофштадтера».

9. Закон Паркинсона
«Работа расширяется, чтобы заполнить время, доступное для ее завершения».
Этот единый принцип, придуманный Сирилом Норткотом Паркинсоном, является более широким принципом, который абсолютно применим к программированию. рука об руку с правилом девяносто девяноста, приведенным выше: сколько времени вам нужно, чтобы закончить проект, это именно то, как долго он собирается брать. В разработке программного обеспечения «преждевременное завершение» - это миф.
Закон Паркинсона является причиной, по которой правильные сроки имеют решающее значение, если вы хотите закончить и отправить свое программное обеспечение. Вот почему современные профессиональные программисты часто рекомендуют принципы управления гибкими проектами Как использовать гибкие принципы управления проектами для организации своей жизниAgile, более известный как метод управления проектами, является отличной основой для управления вашей личной жизнью. Мы покажем вам, какие принципы вы можете позаимствовать - бесплатная загрузка листа включена! Подробнее и инструменты управления проектами, такие как Asana Трелло против Асана: лучший бесплатный инструмент управления проектами ...Выбор между Трелло и Асаной затруднен. Здесь мы сравниваем бесплатные планы и помогаем вам решить, какой инструмент управления проектами лучше для вашей команды. Подробнее .
10. Закон Брука
«Добавление рабочей силы в поздний программный проект делает это позже».
В следующий раз, когда вы опоздаете в проекте, что, вероятно, так как большинству программных проектов требуется больше времени, чем выделено, помните, что добавление кодировщиков не решит проблему быстрее.
На самом деле, это, вероятно, займет дольше завершить. Вам не только нужно ускорить работу нового кодера (ов), но, скорее всего, они будут конфликтовать с существующими кодерами. Нужно будет документировать больше вещей, потребуется больше бюрократии, чтобы держать всех на одной странице, и больше разногласий возникнет из-за всего опыта.
Идем вперед как программист
Теперь, когда вы знаете эти принципы, вы на самом деле лучше подходите для реальный мир программирования, а не только то, с чем вы столкнулись в школе, на веб-курсе или в буткемпе. Эти принципы основаны на многолетнем опыте и неудачах.
С этой вновь обретенной мудростью вы теперь можете карьера программиста высокого спроса 10 вакансий в области компьютерного программирования, которые сейчас востребованыПоскольку выполнение задания по программированию может быть непростым делом в текущей ситуации, подумайте о том, чтобы сосредоточиться на одной из следующих концентраций, чтобы повысить свои шансы на успех. Подробнее с более реалистичными ожиданиями. Для этого научитесь максимизируйте свои возможности карьеры программиста Как улучшить ваши карьерные возможности программированияЕсли вы надеетесь начать, перезапустить или иным образом улучшить свою карьеру программиста, это будет нелегко. Если вы в колледже, время пришло. Вот несколько советов, которые могут увести вас далеко. Подробнее . И если вы решите, что программирование не для вас, не расстраивайтесь - подумайте об одном из этих некодирующие технические задания вместо Кодирование не для всех: 9 технических заданий, которые можно получить без негоНе расстраивайтесь, если вы хотите стать частью технической области. Есть много рабочих мест для людей без навыков кодирования! Подробнее .
Какой из этих принципов кажется вам наиболее верным? Знаете какие-нибудь другие странные принципы программирования, которые мы пропустили? Дайте нам знать в комментариях ниже!
Джоэл Ли имеет степень бакалавра в области компьютерных наук и более шести лет профессионального опыта написания. Он главный редактор MakeUseOf.