Як будувати надійні об’єкти із заводськими функціями в JavaScript

Відкрийте функціональний JavaScript було визнано однією з найкращих нових книг про функціональне програмування від BookAuthority !

Пропоную взяти до уваги ці ідеї побудови надійних об’єктів у JavaScript:

  • Розділити об’єкти на дві частини: об’єкти даних та об’єкти поведінки
  • Зробіть об’єкти даних незмінними
  • Викривайте поведінку та приховуйте дані в об’єктах поведінки
  • Побудувати об’єкти поведінки, що перевіряються

Дані проти об'єктів поведінки

По суті, в додатку є два типи об’єктів:

  • Об'єкти даних - виставляти дані
  • Об'єкти поведінки - викривайте поведінку та приховуйте дані

Об'єкти даних

Об'єкти даних відкривають дані. Вони використовуються для структурування та передачі даних усередині програми.

Розглянемо випадок застосування списку справ.

Ось як може виглядати діючий об’єкт даних, отриманий із сервера:

{ id: 1, title: "This is a title", userId: 10, completed: false }

І ось як може виглядати об’єкт даних, який використовується для відображення інформації у поданні:

{ id: 1, title: "This is a title", userName: "Cristi", completed: false };

Як бачите, обидва об’єкти містять лише дані. Між ними є невелика різниця: об’єкт даних для подання має userNameзамість userId.

Об'єкти даних - це звичайні об'єкти, які зазвичай будуються за допомогою літералів об'єктів.

Об'єкти поведінки

Об'єкти поведінки виставляють методи та приховують дані.

Об'єкти поведінки діють на об'єкти даних. Вони можуть приймати об'єкти даних як вхідні дані або повертати об'єкти даних.

Я візьму справу за TodoStoreоб'єкт. Відповідальність об'єкта полягає у зберіганні та управлінні списком завдань. Це робить синхронізацію з сервером за допомогою dataServiceоб’єкта.

Прочитайте функціональну архітектуру за допомогою React та Redux і дізнайтеся, як створювати програми у стилі функцій.

Discover Functional JavaScript був названий одним ізнайкращі нові книги про функціональне програмування від BookAuthority !

Докладніше про застосування методів функціонального програмування в React погляньте на Functional React .

Ви можете знайти мене на Medium та Twitter.