-
Що я розумію під об’єктною орієнтованістю?
Аби було зрозуміліше, я зробив дуже простий приклад на Golang. У прикладі ми бачимо реалізацію об’єкта, як структуру, що зберігає стан, зміни якого організуються у чергу (канал) і виконуються послідовно, що дозволяє безпечно використовувати об’єкт у конкурентній архітектурі. З бенчмарків ми бачимо, що ОО код повільніший у 5 разів за код з мютексами, але це…
-
Відповідність функцій принципу єдиної відповідальності
Якщо вивчати класиків, а саме Роберта Мартіна, то він сам плутається у тому, що таке принцип єдиної відповідальності (SRP – Single Responsibility Principle), тому я просто вкраду стару назву і вкладу у неї новий сенс. У цій публікації я торкнусь лише функцій, проте я вважаю функції основною будівельною одиницею і дуже доброю абстракцією в умовно…
-
Чому я ненавиджу транзакції та що я з цим роблю
Типовий приклад транзакції, що використовується майже у кожному поясненні – це переказ коштів з одного банківського рахунку на інший. У цьому прикладі передбачається, списання грошей з одного облікового запису та зарахування на інший, тобто йдеться про принаймні дві операції оновлення балансу. При цьому основною вимогою до транзакції є атомарність операцій, тобто неможливість виконання лише одного…