Philosophical Software Developing

Post on 29-Nov-2014

87 views 3 download

description

Philosophical Interpretation of Object-Oriented and Prototype-based Programming and their Design Patterns

transcript

1 پيش گفتار

2

Object Oriented Analysis &Design with Applications, Grady Booch

، ويل دورانت، ترجمه عباس تاريخ فلسفهزرياب خويي

www.wikipedia.org

www.philosoftware.com, Ishay Ventura

مراجع

مهندسي نرم افزار فيلسوفانه

حسين فاني92 ام ديماه 4

What if Plato is a Software Engineer

4

افالطونPlato 3ل Theory of Formsنگرش اول: م3ث گرايي شيکالس Class Object Orientationجمالت فلسفي

ارسطوAristotleنگرش دوم: شيء دسته بنديCategoryInheritanceارسطو و استاد ويتگنشتاينWittgenstein

فلسفه زبان شباهت خانوادگيFamily Resemblance

شي گرايي مبتني بر نمونه سازيPrototype-based Object Orientation

الگوهاي فلسفي طراحيPhilosophy-based Design Patterns

مطالعه مورديکارهاي آينده

الگوهاي طراحي مبتني بر نگرشهاي فلسفي

چشم انداز

5 Platoافالطون

6 Caveغار

7 کالس گرايي

…ness

?

Horseness

8 کالس گرايي

Demiurge الوهيت

Creation?Making?

Instantiation?

9 جمالت فلسفي

Meta Class

Platonic Programin

g

اسبانسان

زرد آلو

ايده آليسم

اسماء

الهي

سير انفسي

علم Staticتذکاري

Class, Propert

y

10

ارسطو Aristotle

Ethics

Politics

Art

ZoologyPhysics

Logic

Metaphysics

11

ارسطو Aristotle

12 Changeتغيير

13 Changeتغيير

14

دسته Categoryبندي

15

وراثت Inheritance

16

گسترش Extension

17ويتگنشتاين

Wittgenstein

18 Gameبازي

19Prototype-based

Programming

// JavaScript. //"ex nihilo" object creation using the literal var foo = {name: "foo", one: 1, two: 2};var bar = {two: "two", three: 3}; bar.__proto__ = foo; // foo is now the prototype of bar. bar.one // Resolves to 1.bar.three // Resolves to 3.bar.two; // Resolves to "two"

foo.name; // unaffected, resolves to "foo"bar.name; // Resolves to "foo"

// bar.[[prototype]] = foo// var bar = Object.create( foo );

20

21

Perdurantism Endurantism

الگوهاي طراحي فيلسوفانه

www.PhiloSoftware.com

History Pattern