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

То, что я болел на прошлой неделе, было чрезвычайно разочаровывающим и нервным, так как я знаю, что у меня приближаются важные дедлайны. Я пытался выжить и сделать как можно больше работы, но моя огромная усталость вкупе с затуманенным мозгом от болезни сделали меня далеко не таким продуктивным и эффективным, как мне хотелось бы. Учитывая, что мы находимся на последнем этапе перед выпускным и демонстрационным днем, время было не совсем идеальным, но иногда тело заставляет вас остановиться, сделать шаг назад и отдохнуть - нравится вам это или нет!

После разговора с моим инструктором Майклом, как тяжело было чувствовать, что я отстаю и не производю достаточно кода в это ключевое время, он порекомендовал мне почитать на выходных, когда мой мозг не бдителен или недостаточно проворен, чтобы писать код, но когда я все еще хочу быть продуктивным и сфокусированным на предмете. Книга, которую он дал мне прочитать, называется «Практический объектно-ориентированный дизайн в Ruby» Сэнди Мец.

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

Как утверждает автор во введении, книга задумана как «рассказ программиста о том, как писать код», а не как высокотехничный «академический фолиант». Безусловно, всеобъемлющий, он также организован таким образом, что позволяет читателю приходить и уходить, когда это полезно для него, и дает возможность создать много места для концептуального обзора и объяснения идей, лежащих в основе подхода OOD. Это особенно полезно для новичков, таких как я, поскольку он выводит код за пределы области механического синтаксического запоминания и использует подход, основанный на целостной картине / мышлении.

Первоначальная глава представляла обзор объектно-ориентированного дизайна и включала заголовки тем, такие как: «Хвала дизайну», «Дизайн проблемы решает», «Шаблоны дизайна», «Когда разрабатывать» и «Принципы дизайна» - в дополнение к нескольким другим.

Многие языки, включая Python, Java, PHP, C # и C ++, используют множество принципов объектно-ориентированного дизайна, которые часто суммируются с помощью S.O.L.I.D. акроним. ТВЕРДЫЙ. представляет собой принципы разной степени сложности, которые можно резюмировать следующим образом:

  • S (принцип единоличной ответственности): в классе должна быть только одна работа.
  • O (принцип закрытия пера): классы должны легко расширяться без необходимости вносить изменения в существующие функции.
  • L (принцип замещения исков): каждый подкласс должен быть связан с соответствующим родительским классом.
  • I (принцип разделения интерфейсов): клиенты никогда не должны зависеть от методов, которые они не используют.
  • D (принцип инверсии зависимости): как высокоуровневые, так и низкоуровневые модули должны зависеть от абстракций (методов, которые объявлены, но не содержат реализации).

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

Я отдыхаю на выходных, так что, надеюсь, я смогу вернуться в класс, бегая почти на 100% завтра утром. Всем счастливого воскресенья.

Песня дня: Спираль Уай Оук