Объектті бағдарламалау
-
Дерек түрлері үшін математикалық модельдеу
Абстрактты дерек типі – дерек түрлерінің математикалық моделі. Құндылықтар, операциялар, мінез-құлқы анықталады. Құрылымдардан өзгеше, пайдаланушыға бағытталған.
-
Бағдарламалаудағы объектілер мен сыныптар туралы түсініктер
Класс – шаблон кода в объектно-ориентированном программировании. Объект, переменные, методы, экземпляры, метаклассы. Базовые понятия ООП.
-
Эйфель: Объектіге бағытталған бағдарламалау тілі
Eiffel бағдарламалау тілі: объектіге бағытталған, сенімді әрі жоғары сапалы бағдарлама жасау үшін құрастырылған. ISO стандарты, дизайн келісімдері.
-
Бағаналық мұрагерлік және оның мәселелері
Көп мұрагерлік: Бағдарламалауда бірнеше ата сыныптан қасиеттерді алу. Құрылымның күрделігі, "алмаз проблемасы" және шешімдері туралы біліңіз.
-
Oberon: Жалпы мақсатты бағдарламалау тілі
Oberon бағдарламалау тілі: 1987 ж. Niklaus Wirth жасаған, Pascal-дың жалғасы. Түр кеңейту арқылы күшін арттырып, күрделілігін азайтады. Мұрагерлік ұғымын енгізеді.
-
Қонақ үлгісі: Объект құрылымын өзгертпестен алгоритмді бөлу
Программалық үлгі: Зорлаушы (Visitor) – алгоритмді объект құрылымынан бөліп, кодты өзгертусіз жаңа операциялар қосуға мүмкіндік береді. Бағдарламалауда пайдалы!
-
Кодтың орындалуынан кейінгі шарттар
Программирование: пост-условия – залог корректной работы кода. Условия, которые должны выполняться после выполнения участка программы. Тестирование, документация.
-
Бағдарламалық жасақтамадағы абстракті фабрика үлгісі
Программалық жасақтамадағы "Абстракт фабрика" үлгісі: байланысты объектілерді құру, күрделілікті азайту, кодты өзгертусіз кеңейту. Бағдарламалауда тиімді шешім!
-
Java және C++ бағдарламалау тілдерінің салыстырмалы талдауы
Java мен C++ бағдарламалау тілдерінің салыстырмалы талдауы: ерекшеліктері, даму мақсаттары, өнімділік және қолданылу салалары туралы біліңіз.++
-
Компьютерлік жүйелердің күрделігін ұйымдастыру техникасы
Абстракция – компьютерлік жүйелердің күрделігін басқарудың маңызды әдісі. Деректерді, бағдарламаларды қарапайымдастыру арқылы тиімділік арттырады.
-
Прототип негізінде бағдарламалау стилі
Прототиптік бағдарламалау: Мұрагерлік объектілерді қайта пайдалану арқылы жүзеге асырылады. Классыз, прототипке бағытталған бағдарламалау туралы біліңіз.
-
Объектіге бағытталған бағдарламалаудағы Singleton үлгісі
Singleton – бұл объектіге бағытталған бағдарламалауда сыныптың бір ғана данасын құруға мүмкіндік беретін жоспар. Глобал айнымалыларға артықшылығы бар.
-
Жалпылама бағдарламалау стилі
Жалпы бағдарламалау – дерек түрлерін кейінірек анықтайтын алгоритмдерді жазу стилі. Кодты қайталауды азайтады, Ada, C++ тілдерінде қолданылады.
-
Бағдарламалық кітапханалар және олардың қолданылуы
Бағдарлама жасауда қолданылатын кітапханалар туралы ақпарат. Кітапхана – код, суреттер, мәтін жиынтығы, бағдарламаны дамытуға көмектеседі.💻📚
-
Объектілерді үнемді пайдалану үлгісі: Flyweight
Flyweight – бұл компьютерлік бағдарламалауда жадты үнемдеуге көмектесетін дизайн үлгісі. Объектілер арасында мәліметтерді бөлісу арқылы тиімділік арттырады.
-
Объект жағдайын сақтау үлгісі
Үлгі: Мemento – объектінің жасырын күйін сақтайтын бағдарламалық үлгі. Қалпына келтіру, нұсқалау, тіркеу үшін қолданылады. Өзгертулерді кері қайтаруға көмектеседі.
-
Бағдарламалау парадигмалары: Аспектке бағытталған бағдарламалау (AOP)
Аспекттік бағдарламалау – кодты өзгертусіз, бөлек модульдермен функционалдықтарды қосу арқылы бағдарлама құру парадигмасы. Модульділікті арттырады, логтауды жеңілдетеді.
-
Объектіге бағытталған бағдарламалаудағы фабрика әдісінің үлгісі
Бағдарламалаудағы Factory Method үлгісі: объектілерді класс атауын көрсетпестен жасауға көмектеседі. Мұрагерлік кластарды пайдаланып, жаңа объектілерді құруды басқару.
-
Прототип үлгісі: Объектілерді көшіру арқылы жасау
Прототип – бұл бағдарламалық жасақтамада қолданылатын жасалым үлгісі. Объектілерді прототип арқылы көшіру арқылы жасауға мүмкіндік береді, шығындарды азайтады.
-
Бағдарламалық жасақтаудағы композиция үлгісі
Бағдарламалық жасақтамадағы композиция үлгісі: объектілерді ағаш құрылымында біріктіру арқылы бөлік-бүтін иерархиясын жасау. Бірдей түрде қарауға мүмкіндік береді.
-
Объектілі бағдарламалаудағы Декоратор үлгісі
Объектілі бағдарламалаудағы Decorator үлгісі: Объектілерге динамикалық түрде жаңа мүмкіндіктер қосыңыз, кодты өзгертусіз. Жайлылық, қайта қолдану, кеңейтімділік!
-
Күй үлгісі: Объектінің күйіне қарай мінез-құлқының өзгеруі
Мемлекеттік үлгі: Объектінің ішкі күйіне қарай мінез-құлқына өзгеріс енгізетін бағдарламалық жасақтама дизайны. Құрамындағы шартты операторларды алмастырады.
-
Объектілер және объектіге бағытталған бағдарламалау
Объектілер: дерек құрылымдары, функциялар, әдістер. Объектіге бағытталған және объектіге негізделген бағдарламалау тілдерін түсіндіру. Бағдарламалау негіздері.
-
Класс айнымалысы: анықтамасы мен ерекшеліктері
Сынып айнымалылары: объектілерде ортақ болатын сынып ішінде анықталған айнымалылар. Объектіге тәуелсіз, бір ғана көшірмесі бар. Бағдарламалауда маңызды!
-
Бағдарламалау парадигмалары және тілдерінің жіктелуі
Бағдарламалау парадигмалары: түрлері, жіктелуі, ерекшеліктері. Бағдарлама құрудың жолдары мен тілдерін түсінуге көмектеседі. SEO үшін оптимизацияланған.
-
Кейбір бағдарламалау тілдерінде көптеп жіберу мүмкіндігі
Кейбір бағдарламалау тілдеріндегі көптеген жіберу (multiple dispatch) мүмкіндігі – аргументтердің түрлеріне қарай функцияны динамикалық түрде таңдау.
-
Жалпы Lisp Объект Жүйесі: CLOS және Метаобъект Протоколы
Common Lisp жүйесі (CLOS) – ANSI Common Lisp-тегі объектілі бағдарламалау құралы. Java, C++ сияқты тілдерден ерекше, күшті динамикалық жүйе.
-
Жалпы функциялар: түрлер аралық полиморфизм және қолданылуы
Жалпы функциялар: полиморфизм, тип параметрлері, компиляция кезінде типтік ақпаратты пайдаланып кодты қайта пайдалану. C++ және Java-да кең қолданылады.
-
Өзгеріссіз нысан: Объектінің күйін өзгерту мүмкін емес
Өзгермейтін объектілер: ОО және функционалдық бағдарламалауда жағдай өзгермейтін объектілер туралы. Олардың пайдасы, қалай жұмыс істейтіні, мысалдары.
-
Мұрагерлік графигінің күрделілігінен туындайтын "йо-йо" мәселесі
Бағдарламалық жасақтауда "йо-йо" мәселесі – мұрагерлік графигі күрделі кодты түсінуді қиындататын анти-үлгі. Объектілі бағдарламалауда жиі кездеседі.
-
Түр полиморфизмінің бір түрі: Төмендету (Subtyping)
Тіптер полиморфизмі: Бас типтен туындаған типтердің алмастырылу қабілеті. Қауіпсіз түрлендіру, типтік жүйелер және бағдарламалау тілдеріндегі қолданысы туралы.
-
Объектілерді көшіру әдістері: терең және беткей көшірулер
Объектілерді көшіру: бағдарламалауда жаңа объектіні қалай жасауға болады? Түрлері, тиімділігі, және түпнұсқаға әсері жоқ көшірмелер жасау туралы ақпарат.
-
Жұмыс уақытында кеңейтілетін бағдарламалау тілдері
Динамикалық бағдарламалау тілдері: кодты орындау кезінде кеңейту мүмкіндігі, жаңа код қосу, объектілерді өзгерту. Lisp тілінен бастау алған.
-
Аспекттік бағдарламалауда нүктелер кесу және оның мәні
Аспекттік бағдарламалауда pointcut – қосылу нүктелері жиыны. Кеңес қолданылатын жерді анықтайды, бизнес-логиканы модулдендіреді. Java, Perl үшін қолдау бар.
-
Объектіге бағытталған бағдарламалаудағы миксин ұғымы
Жаңа пішімдеу: Объектілі бағдарламалау тілдерінде миксиндер – кодты қайта пайдалану және мұрагерлік мәселелерін шешу үшін қолданылатын құрал. Бағдарламалау концепциясы.
-
Негізгі Objective-C Framework: Foundation жинағы
Objective-C Foundation Kit: NeXTSTEP спецификациясы, NS префиксі, негізгі класс, жадты басқару, Unicode жолдарымен жұмыс. Cocoa және Swift кітапханасы.
-
Пәрмен мен сұраныстың бөлінуі: IT архитектурасында оқу және әрекеттерді ажырату принципі
Бағдарламалау архитектурасы: Құжат сұрауларын бөлу (CQS) қағидасы. Әр әдіс әрекет орындайтын команда немесе дерек қайтаратын сұрау болуы керек. Жағымды әсерлерден қашықтану.
-
Лисковтың қолдану принципі
Лисков принципі – объектіге бағытталған бағдарламалаудың маңызды қағидасы. Түрлердің үйлесімділігін, мұрагерліктегі қателерді болдырмауға көмектеседі. LSP, сабақтау, инварианттар.
-
Объектіге бағытталған бағдарламалауда әлсіз негізгі класс мәселесі
Объектілі бағдарламалаудағы әкел сынып мәселесі: тұрақты архитектура үшін негізгі сыныптарды өзгертудің қауіпсіздігі, мұрагерліктегі бұзушылықтар, шешімдері.
-
Бағдарламалау тілдерінде мәлімет түрлерін орау және ашу концепциясы
Программирование: боксинг, анбоксинг, автобоксинг – преобразование примитивных типов в объекты и обратно. Важно для Java и эффективности кода.
-
IBM i нысандары және олардың түрлері
IBM i жүйесіндегі нысаналар: файлдық емес, нысанға негізделген құрылым. Нысана түрлері шектеулі, тек IBM жасай алады. Қауіпсіздік пен басқару артық.
-
Объектілерде динамикалық тестілеу стилі
Қазақша бағдарламалауда "үйрек тестілеу" ұғымы: нысанға қатысты бағдарламалауда типтерді тексерудің динамикалық әдісі. Объектінің қасиеттері мен әдістеріне назар аудалады.
-
Oberon 2 бағдарламалау тілінің сипаттамасы
Oberon 2: Niklaus Wirth жасаған бағдарламалау тілі. Объектілі бағдарламалау, рефлексия, FOR циклы және Modula 2 мүмкіндіктері бар. Жүктеу және үйрену!
-
Жазбадағы өрістер
Мәліметтер жазбалары мен өрістері: база деректері, бағдарламалаудағы өріс мағынасы, құрылымы, мысалдары. Деректерді ұйымдастыру туралы біліңіз!
-
Perl модульдары және олардың құрылымы
Perl модульдері: анықтамасы, құрылымы, пакеттік кеңістіктер және объектіге бағытталған бағдарламалаудағы рөлі. Perl тіліндегі бағдарламалық құрал.
-
Метакласстар: Кластардың мінез-құлқы мен құрылысы
Метакласс – бұл сыныптардың мінез-құлқына сипаттама беретін сынып. Объектілерді жасағандай, метакласс сыныптарды құрастырады. Бағдарламалауда маңызды!
-
Кластың өзгермейтін қасиеттері
Класс инварианты: тұрақты қасиеттері, объектілер күйін сақтау, құрылыс кезінде орнатылады. Бағдарламалауда маңызды тұжырым!
-
Метаобъектілер және олардың қасиеттері
Метаобъект: компьютерлік ғылымдағы объектілерді манипуляциялайтын, құрайтын, сипаттайтын және іске асыратын құрал. Өздігінен өзгеруге мүмкіндік береді.
-
Іске қосылған кезде объектінің дерек типі туралы ақпаратты ұсыну мүмкіндігі
Бағдарламалау тілдеріндегі RTTI (runtime type information) – нысанның дерек типін жұмыс істеу кезінде анықтау мүмкіндігі. C++, Ada тілдерінде қолданылады.
-
Объектілердегі делегациялау: анықтамасы мен қолданылуы
Объектілі бағдарламалауда делегация – нысан мүшелерін басқа нысан контекстінде бағалау. Explicit & implicit делегация, прототиптік бағдарламалау, Self, JavaScript.
-
Бағдарламалық ая: SOM және DSOM жүйелері
IBM жасаған SOM – объектіге бағытталған кітапхана жүйесі. Тілдер арасында өзара әрекеттесуге, кодты қайта компиляциясыз жаңартуға мүмкіндік береді.
-
Класс негізіндегі бағдарламалау: Мұрагерлік және объектілер
Сыныпқа негізделген бағдарламалау – мұрагерлік сыныптар арқылы жүзеге асылатын ЕОП стилі. Объектілер сыныптар бойынша құрылады, олар деректер мен әрекеттерді біріктіреді.
-
Динамикалық шақыруды қолдау механизмі: Виртуалды әдіс кестесі
Виртуалды әдіс кестесі (VMT) – динамикалық жіберуді қолдайтын механизм. C++, D, C# сияқты тілдерде қолданылады, код орындалғанда функцияны таңдайды.
-
Жартылай үлгінің мамандануы
C++ үлгі сыныптарын жартылай мамандандыру: аргументтердің тек бір бөлігін өзгерту арқылы кодты тиімді ету. Стандарт контейнерлер мысалы.++
-
Модульдік бағдарламалау техникасы
Модульдік бағдарламалау: бағдарламаны тәуелсіз модульдерге бөлу арқылы құрылымды, оңай өзгертілетін код жасау. Бағдарламалық жасақтаманы жобалау әдісі.
-
Объект құруға арналған арнайы функциялар
Класстық бағдарламалауда конструктор – жаңа объектіні жасауға шақырылатын арнайы функция. Объектіні пайдалануға дайындап, мүше айнымалыларын орнатады.
-
Бағдарламалаудағы "Құдай Объекті" құбылысы
Бағдарламалауда "құдай объектісі" – әртүрлі типтерді біріктіріп, көптеген функцияларды қамтитын анти-үлгі. Бөліп-басқару арқылы кодты жақсартуға болады.
-
Үлгілік бағдарламалау: таратылған объектілермен байланыс
Бағдарламалық қаңқа: бағдарлама құрылымын жоғары деңгейде жобалау, тестілеу және кеңейту әдісі. Жалған кодты пайдаланып, жүйелік қателерден аулақ болыңыз.
-
Екі жіберу: Екі нысан түріне қарай функцияны таңдау механизмі
Екі жіберу (double dispatch) – екі нысанның түріне қарай функцияны шақыру механизмі. Бағдарламалық инженерияда маңызды роль атқарады, CLOS сияқты жүйелерде қолданылады.
-
Бағдарламалау тілдеріндегі типтің өзгеруі (Бағдарламалау тілдеріндегі типтік қатынастар)
Бағдарламалау тілдеріндегі типтік жүйелер, кіші типтер және дисперсия ұғымдары. Құрама типтердің компоненттері арасындағы қатынастарды түсіндіру.
-
Айнымалыны өзгерту әдісі немесе "setter" әдісі
💻 Мутатор әдісі: өзгертуге арналған бағдарламалық функция. Жеке айнымалыны өзгертү үшін қолданылады, капсулалау принципін сақтайды.
-
Функцияларды өзгерту: кеңес беру тәсілі
Бағдарламалауда кеңес – функциялардың жұмысын өзгертетін әдіс. Көмескі болуы мүмкін, бірақ көбінесе қажеттілік тудырмайды. Lisp пакеттерінде қолданылмайды.
-
Объектілердің жекелігі және анықтамалары
Объектілердің идентификациясы: бағдарламалаудағы объектілердің өзгешелігі, қасиеттеріне қарамастан. Сілтемелер идентификацияны жүзеге асыруға көмектеседі.
-
Бағдарламалық тәсіл: Тәуелділіктерді енгізу
Бағдарламалық жасақтамада тәуелділік енгізу – бұл объектілерді құрудан пайдалануды бөліп, кодты жеңілдететін техника. Тәуелділіктерді сырттан беру арқылы программаның тұрақтылығын арттырады.
-
Класс реализациясы және интерфейсінің ажыратылуы
Класс жүзеге асыру файлы: C++ және Objective C-де әдістерді бөлу, интерфейс пен жүзеге асыруды ажырату, кодды жасыру, дизайнды көрсету. Бағдарламалау.
-
Объект жасайтын объект
Завод (Factory) – объекттік бағдарламалаудағы объектілерді құру үлгісі. Сыныптарды абстракциялайды, әртүрлі прототиптерден объектілер жасайды.
-
Объектіге негізделген және объектіге бағытталған тілдердің айырмашылығы
Объектіге бағытталған тілдер: анықтама, ерекшеліктері, мысалдары (Simula, C++, Java, Python). Объектілік және объектіге бағытталған тілдердің айырмасы.
-
Ішкі сыныптар және объектіге бағытталған бағдарламалау
Ішкі класс (nested class) – сыртқы класс ішінде жарияланған класс. Ол топ деңгейлі классқа тәуелді, жеке тұрғызылмайды. OOP негіздері.
-
Сынып мұрагерлігіндегі тұрақсыздық мәселесі
Жұмысы тоқтатылатын бағдарламалық қателер (FBI/FBC) туралы мақала. Объектілі бағдарламалау тілдеріндегі кітапхана өзгерістерінен туындайтын мәселелерді қарастырады.
-
Бағдарламалаудағы нысанның нақты көрінісі
Бағдарламалаудағы нысан (class) жасалынуы: модель негізінде жаңа контекст құру, жеке деректерді сақтау және жадты бөлу процесі. OOP маңызды аспектісі.
-
Объектілерді құрастыру және жинақтау әдістері
Объекті құрастыру, компьютер бағдарламалауда күрделі объектілерді жасау әдісі. Объектілік құрастыру, жиынтықтар, кестелер туралы біліңіз.
-
Жай ғана Java нысаны (POJO)
Жава POJO: қарапайым Java нысаны, арнайы шектеулерсіз. Бағдарламалаудағы негізгі ұғым, күрделі фреймворктардан өзгешелігі. SEO үшін жақсартылған.
-
Класс браузерлерінің даму тарихы мен мүмкіндіктері
Класс браузерлер – IDE құралы. Объектілі бағдарламалау код құрылымын қарауға, шарлауға көмектеседі. Smalltalk тілінен бастау алған, қазіргі тілдерде де қолданылады.
-
Біркелкі қолжетімділік принципі: Бағдарламалық жасақтамадағы өзгерістерді азайту жолы
Біркелкі қол жеткізу қағидасы – бағдарламалауда модуль қызметтеріне бірдей синтаксиспен қол жеткізуді ұсынады. Есептеу немесе сақтау айырмасы болмайды.
-
Андрей Александрескудың «Заманауи C++ Дизайны» кітабы
«Modern C++ Design» кітабы – Андрей Александрескудың C++ үлгілері, жалпы бағдарламалау және метапрограммалау туралы еңбек. Бағдарламашыларға арналған!
-
Қайта лақтыру арқылы қателерді басқару және себептік байланыс тізбегі
ЖException тізбектеуі – бағдарламалауда қателерді жасырусыз жоғары деңгейде қайта лақтыру арқылы өңдеу тәсілі. Қате туралы толық ақпарат сақталады.
-
Мұрагерлік және класс иерархиясы
Мұрагерлік: Объектілі бағдарламалауда жаңа сыныптарды құру, кодты қайта пайдалану және бағдарламалық жасақтаманы кеңейту жолдары. Сырға түйіндеу, иерархия құру.
-
Object orgy
-
Пассивті дерек құрылымдары және олардың ерекшеліктері
Пайсыздалған дерек құрылымдары (PDS) – объектіге қарағанда қарапайым деректер жиынтығы. Деректерді сақтау, жүйелер арасында алмасу үшін өте қолайлы.
-
Объектіге бағытталған бағдарламалауда тәуелділікті кері аудару принципі
Объектілі бағдарламалаудағы тәуелділікті кері аудару қағидасы – модульдерді байланыссыз ету әдісі. Жоғары деңгейлі модульдер енді төменгі деңгейге тәуелді емес!
-
Бағдарламалық инженерияда көп тонды үлгі
Бағдарламалық инженериядағы Multiton үлгісі – Singleton үлгісінің кеңейтілген нұсқасы. Бірнеше инстанцияны басқаруға, әрбір кілт үшін бір ғана инстанцияны қамтамасыз етуге көмектеседі.
-
Компьютер ғылымында тип жүйелері және полиморфизм
Компьютер ғылымындағы тип жүйесі: тип кластары, полиморфизм, Haskell тіліндегі қолданысы. Тип айнымалыларына шектеулер қойып, кодты тиімді етуге көмектеседі.
-
Логика және компьютер ғылымындағы әмбебап тип
Логика мен компьютер ғылымындағы әмбебап тип – барлық типтердің үлкен түрі. ⊤ символымен белгіленеді, кез келген объектіні қамтиды. Полиморфизмнің түрлері.
-
Абстракті түрлер және олардың программалау тілдеріндегі қолданылуы
Абстракт түрлер: бағдарламалау тілдеріндегі маңызды ұғым. Конкретті түрлерден өзгешелігі, тікелей құрастырылмайды, тек қосалқы түрлер арқылы қолданылады.
-
Бағдарламалау тілдеріндегі өзіндік нысан немесе класс
«this», self, Me – бағдарламалау тілдеріндегі ағымдағы кодқа қатысты нысанды/класты білдіретін кілт сөздер. Қолданылуы тілге қарай өзгеше.
-
Кодты динамикалық өзгерту әдісі: "Maymun жөндеуі"
Бағдарламалауда "маймыл жөндеуі" – кодты өзгерту әдісі. Осы техника динамикалық тілдерде кодты бастапқы көзін өзгертпестен жаңартуға мүмкіндік береді.
-
Java жинақтары: негіздер мен мүмкіндіктері
Java жинақтары: интерфейстер, сыныптар, дерек құрылымдары. Масштабталғыш, икемді жинақтарды пайдаланыңыз, массивтерден айырмашылығы – сыйымдылықты алдын ала белгілеу қажет емес.
-
Құрылымдық типтеу жүйесі
Құрылымдық типтеу жүйесі: типтердің үйлесімділігі құрылымымен анықталады, атымен емес. Басқа типтеу жүйелерінен өзгешеліктері, мысалдары мен ерекшеліктері.
-
Curiously recurring template pattern
-
Criticism of Java
-
Friend class
-
Boilerplate code
-
Initialization-on-demand holder idiom