Mon approche. Le noyau est le moteur.

 

Dans ce fil, je veux parler de mon approche de la programmation. Soyez prévenu à l'avance - il n'y aura pas de discussion sur l'interface graphique ici. Si j'en parle un jour, ce sera uniquement pour illustrer le fonctionnement de mes solutions.

Au début, la POO était claire pour moi, et même proche. Je savais ce qu'était un "objet", une "structure", une "classe" dans un contexte philosophique. L'approfondissement de la programmation en matière de philosophie m'a vraiment séduit et a suscité mon intérêt. Et j'ai failli me mettre à étudier sérieusement... Mais, dans le processus, j'ai senti une résistance croissante. Un rejet de la philosophie des autres. Et ce rejet grandissait.

J'ai l'habitude de penser philosophiquement depuis que je suis enfant. Et j'ai trouvé la philosophie dans la programmation. A un moment, j'ai aimé ça. Mais, ma pensée cherchait invariablement à briser le concept de quelqu'un d'autre. Pour le vaincre. Pour faire quoi ? - Pour vaincre et établir mon propre ordre.

Depuis des siècles, les concepts philosophiques sont en guerre les uns contre les autres. Et pour moi, qui suis un philosophe né, le concept de l'OLP est devenu un défi personnel.


Mais, ce n'est qu'une préhistoire.

Et donc, tout a commencé il y a presque 4 ans.

À l'époque, dans un style procédural simple, je créais des panneaux. Et j'ai eu l'idée, de combiner les propriétés des objets graphiques dans un tableau. Je pensais que ce serait pratique. Pour faire quoi ?

  1. Pour parcourir les objets en boucle et modifier leurs propriétés.
  2. Pour lier des objets ensemble.
  3. Pour obtenir les valeurs des propriétés de l'objet par un simple accès au tableau.

C'est ainsi qu'est née l'idée du "noyau".

Dans la POO, il n'y a pas de concept de "noyau". La POO propose de construire un ensemble de classes et de structures, mais ne donne pas le centre réel du programme. Seulement un conditionnel. Les objets dans la POO sont en fait des références. Moyens de description et clés d'accès. Le faisceau de classes ressemble à un réseau complexe non centralisé. La POO est fondée sur la construction de l'architecture d'un programme. C'EST-À-DIRE QUE LA CONSTRUCTION DE L'ARCHITECTURE CORRECTE DU PROGRAMME EST LE BUT PRINCIPAL DE OOP.

Mon approche, a aussi des notions d'Objet. Cependant, l'"objet", dans mon approche, est beaucoup plus réel. Il s'agit d'un assemblage de propriétés. Ce faisant, mon approche ignore l'importance de l'Architecture spécifique du programme. L'architecture est conçue en fonction des exigences d'efficacité du programme, et non de la commodité du programmeur. Cela simplifie la syntaxe et réduit le nombre de règles.

Dans la nature, le concept de noyau est présent partout. Chaque cellule d'un organisme possède un noyau. Les corps célestes ont un noyau. La Terre, le Soleil. Dans le fruit des plantes, il existe un noyau qui donne naissance à de nouvelles plantes. Et JAMAIS dans la nature, l'archétype est placé au-dessus de l'efficacité. Par conséquent, la nature ne crée pas de lignes droites et les êtres vivants ne sont pas faits de blocs. Mais l'homme est plus faible que la nature et a besoin de schémas, d'arrangements et de classifications mémorables. L'homme perçoit le monde par fragments et le reproduit également par fragments.

Le concept de POE reflète très bien la nature humaine.

Mais, revenons à mon approche :

  • Ainsi, un OBJET est un assemblage de propriétés.
  • Le noyau est l'espace mémoire dans lequel les objets existent.

En pratique, - Le noyau est une matrice. Un objet est un vecteur.

Une matrice peut contenir plusieurs vecteurs. Et c'est la limite des règles de base de mon approche. Ensuite, je montrerai des exemples de ce que l'on peut faire avec.







 
Immédiatement une question : où est le code source ouvert ?
 
Vladimir Karputov:
Immédiatement une question : où est le code source ouvert ?

Je vais poster le code et les exemples. Il s'agit d'une préface.

 
Реter Konow:

Je vais poster le code et les exemples. Il s'agit d'une préface.

Un code source ouvert ?

 

Voilà ! Allez Peter, ton approche m'intéresse aussi, même sans codes (Vladimir, ne dérange pas l'homme, écoutons d'abord).

 
Plus d'eau dans un seau
 

J'ai une impression de déjà vu.

Mais comme il n'y a pas grand-chose à lire en ce moment, un autre sujet de Peter fera l'affaire.

 

Zhenya, Vasya, vous êtes impatient ... Laissez l'homme s'exprimer !

 
Georgiy Merts:

Zhenya, Vasya, vous êtes impatient ... Laissez l'homme s'exprimer !

Eh bien, pourquoi cette impatience. Je vous le dis - c'est tout un sujet, bien que cette conversation Peter essaie probablement de mener chaque polémique à laquelle il participe.

 

Un exemple de déclaration d'un élément graphique représenté dans le noyau :

_OBJECTS_SET,BUTTON,
//------------T------X----Y----W-----H----B_TYPE-- MOB---PXL-----------G------------C----SG--SC--OBJSCR--NEUTRAL----GRADIENT--A1--B1--C1-----------A2----B2--C2----------A3----B3--C3--------A4--B4--C4-------OBH--OBI--C5--D5--E5--------------------------------------------------------------------------------------------------------------ACT-STATUS--CURRENT-----CURRENT---LAST--------------------------------------------
//Основание кнопки--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
_NEW_OBJECT,  5,     0,   0,   100,  25,  _STRIP, _CNVS, 1,  _aw1,BUTTON,   0,_MOB,    0,    _aw1, C'245,245,245',  FR_32,  _C2C,_CNVS, 0,  FR_33,  _C2C,_CNVS, 0,   FR_32, 0,    0,   0,   A4, 0, 0,  0,    A5,0,  0,  0,  0,  0,   A6,  0,    A7, 0,       0,        0,        0,        0,       FR_32,        FR_33,       0,      0,       0,       0,         0,         0,       0,       0,   A8,  0,  0,  0,  

             A9, CLICKED_RELEASED, C'230,230,230',  0,  _C_PIXEL,  _C_PIXEL,    _C_PIXEL,    _C_PIXEL,    C'245,245,245',   _PL_END,
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//Лейбл кнопки--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
_NEW_OBJECT,  5,     0,    0,   0,  0, _LABEL, _CNVS,  0,  _aw3,BUTTON,  _EL,   0,   0,    _aw1, _NS_gr1,   A1, _X2X, _aw1,   7,   A2,  _C2C,  _aw1,  0,  A3,  0,    0,   0,   A4,  0, 0,  0,      A5,0,0, _aw1,  0,  0,   A6,  0,    A7,0,    0,        0,        0,        0,        0,        0,    0,      0,       0,       0,         0,         0,       0,       0,   A8,  0,  0,  0,  

             A9, 0, 0,   0, 0,   0,  0,    0,    0,  0,  0,  0,  0,  0,  0,     _PL_END,
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//Текст наименования кнопки --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
_NEW_OBJECT,  5,     0,   0,    0,  0,  _TEXT_, _CNVS,  0,  _aw2,BUTTON,_OCN,   0,    0,    _aw1, 0,     A1,  _C2C,_aw1,  0,   A2, _C2C,_aw1, 0,     A3,  0,    0,   0,   A4,  0, 0,  0,    A5,0,  0,  0,  0,  0,  A6,  0,  A7, 0,       0,        0,        0,        0,        0,        0,        0,      0,       0,       0,         0,         0,       0,       0,   A8,  Microsoft_JhengHei_Light, FW_NORMAL,  8,   

             A9, 0, 0,  0, C'100,100,100',   C'100,100,100',  0,    0,    0,  0,  0,  0,  0,  0,  0,   2,1,1,   1,0,  _PL_END,
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
_END_,

  1. Déclaration des éléments - _OBJECTS_SET,BUTTON,


2. déclaration d'un objet dans un élément :_NEW_OBJECT

Ensuite, après avoir déclaré l'objet, il y a les valeurs des propriétés. Dimensions, couleurs pour les différents états, liaison des objets entre eux...


Tout cela constitue un prototype d'un élément - le bouton.

Ce prototype est écrit dans le noyau au moment de la construction. Ensuite, le fichier du constructeur est lu et sur ces valeurs, les valeurs de l'utilisateur sont écrites.

L'essentiel est la forme de représentation des éléments et des objets dans mon approche. Il s'agit d'un tableau. Cela nous permet de comprimer les données de l'objet et de faire tenir beaucoup de propriétés dans un petit espace. Si cela est écrit selon les règles de la POO, cela deviendrait une énorme pagaille.




 
Реter Konow:

Dans la POO, il n'y a pas de concept de "noyau". La POO suggère de construire un ensemble de classes et de structures, mais ne donne pas le centre réel du programme...

La POO est une méthodologie très flexible, elle ne comporte donc pas d'idées a priori comme le concept de "noyau". Cependant, avec la POO, vous pouvez très bien construire le modèle de noyau en question ici. Par conséquent, l'affirmation n'est pas entièrement correcte.