Просто и повторяемо

@ Aaron 26 мая 2024 г.

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

·-- 26

Как обеспечить качество кода? Как обеспечить долгосрочную надежность поставки?

Ценности OpenOnion - простота и повторяемость.

Код должен быть простым, простота - это требование к читаемости и поддерживаемости. Не надо запутывать себя в коде, мы не теряем голову.

Функциональность кода должна быть повторно используемой и модульной.

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

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

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

Каждый разработчик, пишащий код, должен задавать себе несколько вопросов:

  • Достаточно ли простой код? Может ли его понять кто-то с первого взгляда?
  • Легко ли поддерживать код? Изменение одной части повлияет ли на другие части?
  • Обладает ли код возможностью повторного использования? Можно ли его модульно использовать в других местах?
  • 代码是否过度耦合? 是否实现了细节依赖抽象的原则?

Постоянно задавая себе эти вопросы, мы можем обеспечить простоту, ясность и поддерживаемость кода, реализуя наши основные ценности: простоту и повторяемость.

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

>