Semakin cepat Anda melupakan OOP, semakin baik untuk Anda dan program Anda.


Pemrograman berorientasi objek adalah ide yang sangat buruk yang hanya bisa muncul di California.

- Edsger Weebe Dijkstra

Mungkin ini hanya perasaan saya, tetapi pemrograman berorientasi objek tampaknya menjadi standar, paradigma desain perangkat lunak yang paling umum. Dialah yang biasanya diajarkan kepada siswa, dijelaskan dalam tutorial online dan, untuk beberapa alasan, diterapkan secara spontan bahkan ketika mereka tidak akan melakukannya.

Saya tahu betapa menariknya dia dan betapa luar biasanya ide ini muncul di permukaan. Butuh bertahun-tahun bagiku untuk menghancurkan mantranya, dan sekarang aku mengerti betapa buruknya dia dan mengapa. Berkat sudut pandang ini, saya memiliki keyakinan yang jelas bahwa orang harus menyadari kesalahan OOP dan mengetahui solusi yang dapat digunakan sebagai gantinya.

Banyak orang telah membahas masalah OOP sebelumnya, dan di akhir posting ini saya akan mencantumkan artikel dan video favorit saya. Tapi pertama-tama, saya ingin membagikan pandangan saya sendiri.

Data lebih penting daripada kode


. , .

, : -> -> . ! , , : , . . , , .

, , , . , . Customer? class Customer. ? class RenderingContext.

«» , , , . . .


, . , . FizzBuzz Enterprise Edition — , .

, — . . - , .


, . .

class Customer class Order, . class OrderManager Order, Customer. , , .

, , , .

- , - , , , . Context , - , , - Enterprise.


, . : class Player hits() class Monster, ? hp Monster attackPower Player; xp Player Monster Monster. Player.hits(Monster m) Monster.isHitBy(Player p)? class Weapon? isHitBy Player currentWeapon()?

. , , — . , , Enterprise.


:

— , , . .

, , ( ). : , , , , , . : , .

— , ADT, . , , , .

, , , API .. «»/«»/«». , (Java/Scala) / . , , , , , .

-


: , — (). .

, , , , , , . , .

- . , , , . .


, , . .

?


, « », , .

. , , , . , : ( , ) ..

, . , DataStore API, . ADT/PoD, ID (, uuid ). : Vec HashMap Index ID, «», , . , LRU .

DataStore . . : stdin, , trust manager, .. «» , .. «» DataStore.

: DataStore , .

: , , , , , Customer . : CustomerDataStore, «-» .


, — . , / . , :

Source: https://habr.com/ru/post/id451982/


All Articles