Форум программистов, компьютерный форум, киберфорум
ООП и паттерны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/74: Рейтинг темы: голосов - 74, средняя оценка - 4.64
Заблокирован

ООП - парадигмы, паттерны, подходы - кратко и доходчиво

03.06.2020, 16:34. Показов 17712. Ответов 153
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я не проф программист и никогда им не буду (старый уже). Потихоньку что-то читал и делал на c# WPF. Получалось, работало, но это были относительно простые штуковины и собственно ОПП там особо не использовалось. Но ту взялся сделать (для себя) более сложную штуковину и увидел, что не сделал ещё и малой части, а уже приходится неоднократно переписывать почти всё заново. Чё-то не очень получается делать ладные "кирпичики", из которых будут строиться блоки программы, а из блоков постепенно усложняться большое здание программы. Постоянно что-то "подпиливаю" в кирпичиках и даже их заменяю. Если так и дальше пойдет, то я эту штуку никогда не сделаю. Оказалось, что это очень не просто правильно сделать модель предметной области, правильно определиться со способами реализациями идей, правильно разбить программу на какие-то правильно взаимодействующие части. К тому же, c# имеет богатый функционал средств. Одно и то же можно сделать по разному. Постоянно встает проблема выбора - и так можно и эдак... Код поначалу всё терпит)
В итоге оказалось, что "что-то не так" - очевидно не хватает каких-то системных знаний.
Сама задача достаточно стандартная - анализ исторических данных биржевых курсов акций, выработка и реализация торговых стратегий и т.д. Это интересно, но чувствую, что что-то идёт не так)
Забавно, что в рамках процедурного программирования достаточно быстро "слепил" один небольшой кусочек программы и частично оттестировал микроидею. Усложнять далее в рамках процедурного подхода было уже не рационально. Поэтому стал переписывать в рамках подхода ООП. Это заняло гораздо больше времени и никак не закончу). Постоянно что-то переделываю. Честно говоря, не ожидал, что возникнут такие принципиальные трудности. Одного здравого смысла и соображалки явно не достаточно. И шо же делать?)
Изучить все парадигмы, подходы, паттерны программирования, чтобы потом легко выбирать нужные? Это конечно правильный, но очень долгий путь.
Что подскажут профессионалы? Может есть какой-то не оч объемный (страниц 100 - 200) "тот самый" фолиант, или статья, или блог, или ещё что, который мне тут может помочь? Как-то подтолкнёт в нужном направлении. А далее уже методом проб и ошибок - путём набора опыта.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.06.2020, 16:34
Ответы с готовыми решениями:

Парадигмы: императивная vs ООП
Здравствуйте, форумчане. Меня мучает проблема, можно так сказать, эстетически-идеологического характера. Суть заключается в следующем: ...

Насколько распространены такие подходы ("паттерны")
Всем привет. Встретил некоторые паттерны (конечно, таковыми их можно назвать с натяжкой). Хочу узнать, в реальных (а не учебных...

Подходы к разработке ПО и их связь с ООП
Fulcrum_013, ну, если бы вы для каждой подобной задачи в своем движке городили иерархии абстрактных менеджеров адаптеров стратегий фабрик,...

153
3121 / 1710 / 273
Регистрация: 19.02.2010
Сообщений: 4,493
04.06.2020, 21:31
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от titan4ik Посмотреть сообщение
Хммм... но не всё понятно написано. Ок.
Роберт Мартин о том, в чем собственно специфика ООП:
Факт поддержки языками ОО надежного и удобного механизма полиморфизма означает, что любую зависимость исходного кода, где бы она ни находилась, можно инвертировать.
Идея инверсии зависимости непонятна?
Вот тут Общий код базового класса месяц назад разбирался такой случай.
Если правильно помню (лень Мартина листать) - ситуация/пример проще, чем у Мартина.
Плюс указано, как данный конкретный приём называется в паттернах проектирования.
0
 Аватар для vantfiles
1018 / 1921 / 177
Регистрация: 07.05.2013
Сообщений: 3,931
Записей в блоге: 12
04.06.2020, 21:40
Кстати, в довесок к паттернам не мешает ознакомиться и с антипаттернами - это тоже очень хороший опыт.

На английском тут: http://wiki.c2.com/?AntiPatternsCatalog

Если кратко, там упомянуты и спагетти и индусский и многое другое...
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10428 / 5158 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
04.06.2020, 21:48
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
Вот тут Общий код базового класса месяц назад разбирался такой случай.
Только в том примере сама модель неправильная. Если вдруг (а точнее - когда) появится животное которое не умеет есть, то будет попаболь. Вместо того, что бы пихать метод Eat в базовый класс, нужно сделать интерфейс ICanEat, и наследники Animal будут его реализовывать.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
04.06.2020, 23:31
Цитата Сообщение от titan4ik Посмотреть сообщение
Роберт Мартин о парадигмах программирования:
Парадигма — это способ программирования, не зависящий от конкретного языка. Парадигма определяет, какие структуры использовать и когда их использовать. До настоящего времени было придумано три такие парадигмы. По причинам, которые мы обсудим далее, едва ли стоит ожидать каких-то других, новых парадигм...
Как следует из текста, это:
- Структурное программирование
- Объектно-ориентированное программирование
- Функциональное программирование
А как же логическое программирование и многие другие?

Цитата Сообщение от titan4ik Посмотреть сообщение
Роберт Мартин о том, в чем собственно специфика ООП:
Факт поддержки языками ОО надежного и удобного механизма полиморфизма означает, что любую зависимость исходного кода, где бы она ни находилась, можно инвертировать.
...
При таком подходе архитекторы, работающие в системах, которые написаны на объектно-ориентированных языках, получают абсолютный контроль над направлением всех зависимостей в исходном коде. Они не ограничены только направлением потока управления. Неважно, какой модуль вызывает и какой модуль вызывается, архитектор может определить зависимость в исходном коде в любом направлении.
Какая возможность! И эту возможность открывает ОО. Собственно, это все, что дает ОО, — по крайней мере с точки зрения архитектора.
Инверсия зависимостей возможна практически в любой системе, ООП и полиморфизм подтипов тут не при чём.

Цитата Сообщение от titan4ik Посмотреть сообщение
и далее:
Заключение
Что такое ОО? Существует много взглядов и ответов на этот вопрос. Однако для программного архитектора ответ очевиден: ОО дает, посредством поддержки полиморфизма, абсолютный контроль над всеми зависимостями в исходном коде. Это позволяет архитектору создать архитектуру со сменными модулями (плагинами), в которой модули верхнего уровня не зависят от модулей нижнего уровня. Низкоуровневые детали не выходят за рамки модулей плагинов, которые можно развертывать и разрабатывать независимо от модулей верхнего уровня.
Это всё прекрасно делается и в большинстве других парадигм.

Никогда особо не «восхищался» Мартином, но тут он совсем разочаровал ограниченностью своего кругозора.
1
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
05.06.2020, 10:45
Цитата Сообщение от korvin_ Посмотреть сообщение
Инверсия зависимостей возможна практически в любой системе, ООП и полиморфизм подтипов тут не при чём.
Цитата Сообщение от korvin_ Посмотреть сообщение
Это всё прекрасно делается и в большинстве других парадигм.
Большинство ОО программистов считает, что это всё возможно только в ООП. Они даже полиморфизм подтипов называют просто полиморфизмом, как будто это единственный вид полиморфизма.

Добавлено через 12 минут
Цитата Сообщение от Storm23 Посмотреть сообщение
Только в том примере сама модель неправильная. Если вдруг (а точнее - когда) появится животное которое не умеет есть, то будет попаболь. Вместо того, что бы пихать метод Eat в базовый класс, нужно сделать интерфейс ICanEat, и наследники Animal будут его реализовывать.
Согласен, так лучше.
Ещё лучше сделать миксин, чтобы можно было наследовать интерфейс сразу вместе с дефолтной реализацией.
А ещё лучше сделать классы типов (как в Хаскеле), чтобы не нужно было прописывать это наследование при написании класса.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
05.06.2020, 11:28
Цитата Сообщение от Shamil1 Посмотреть сообщение
А ещё лучше сделать классы типов (как в Хаскеле), чтобы не нужно было прописывать это наследование при написании класса.
Классы типов всё-таки немного не то. Тут подоходящим вариантом были бы объектные типы Ocaml или интерфейсы в Go.
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
05.06.2020, 16:48
Цитата Сообщение от titan4ik Посмотреть сообщение
То есть, свалить всю логику в один класс и совершенно не заморачиваться с инкапсуляцией и т.п.
Да нет же! Причем тут вообще какие-то классы? Есть модульное программирование. оно есть даже в Си. особенно оно ярко выражено в языке Оберон и в Оберон-технологиях. Оберон прямой потомок Паскаля. Код делится на модули. Это можно (и нужно) делать без классов. Класс это жесткая иерархия. Но есть и реляционные модели разработки. То же компонентное программирование.
В ООП как описывают напримере автомобиль (часто в учебниках по ООП приводят)? Класс "автомобиль". Потом создают его потомков (ага - у автомобиля есть потомки, ну, ну..) - "двигатель", "дверь", "багажник", "кузов". Допустим от кузова порождают - "трансмиссия", от трансмиссии - "колеса"..
Обращаются к этому примерно так если хотят добраться до колес: автомобиль.кузов.трансмиссия.колесо. Можно продолжить дальше: от колеса породить "ступица", от ступицы - "подшипник". Стоп! Ведь подшипники есть и в других частях машины? Да, они есть в рулевой колонке, в двигателе и т.д.
Уже что-то не то происходит? "подшипник" надо в класс "кузов" вынести? Или в "автомобиль"? А хр.. знает.. Проблема в том, что реальный мир реляционен, а не иерархичен. А обьектная модель плохо работает в программировании реальных обьектов.
Давайте делить код на модули-компоненты, которые как можно больше независимы друг от друга. "Рука" не порождается от "тело", потому что в реальном мире тело рук не рождает. Тело рождается сразу с руками, ногами и даже с причиндалами.
И наследуют тела только такие же тела - своих потомков - сыновей, дочерей.. Вот вам реальный мир.. Обьект нельзя разделить на руки, ноги, сумки, тряпки.. В этом проблема..
Проблема в иерархических классификациях, которые все усложняют и порождает то самое спагетти-код. Для корпораций это просто находка: чем более запутаннее код, тем сложнее в нем разбираться конкурентам.
Цитата Сообщение от titan4ik Посмотреть сообщение
Вы можете дать ссылку на книженцию или что-то ещё, где растолковывается, как, например, на c# нужно писать хороший код в таком стиле процедурного программирования?
Конкретно с# заточен именно на ООП. Это объектный язык. Что познать дзен модульного подхода, нужно изучать оберон технологии. Почитать статьи Вирта и Гуткнехта, познакомится с языками которые обеспечивают модульность.
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10428 / 5158 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
05.06.2020, 17:32
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Класс "автомобиль". Потом создают его потомков (ага - у автомобиля есть потомки, ну, ну..) - "двигатель", "дверь", "багажник", "кузов". Допустим от кузова порождают - "трансмиссия", от трансмиссии - "колеса"..
Вы совершенно не понимаете смысла наследования (или делаете вид, что не понимаете, учитывая сколько раз вам на это указывали).
Наследование означает связь является. Разве дверь является автомобилем? Нет. Поэтому и не должна наследоваться от автомобиля. Дверь наследуется от автомобиля только в вашем разгоряченном воображении.

Кроме того (и это даже важнее в архитектуре) модели не строятся для "отображения реальности". Программа - это не симулятор предметной области. Модель ПО строится исходя из задач, которые ПО решает. Программа отображает только определенный аспект предметной области. Сильно упрощенный и заточенный для решения конкретной задачи.
Поэтому я сомневаюсь что в каком-то ПО вообще понадобится делать все эти подшипники и колеса внутри автомобиля.
Например, если это ПО по продаже автомобилей, то там будет только модель, цвет кузова и цена. Но там не будет список всех компонентов машины, несмотря на то, что они там в реальности есть.
Если это ПО для механика, то там скорее всего будет просто список комплектующих с названием и кодом. И т.д.
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Ведь подшипники есть и в других частях машины? Да, они есть в рулевой колонке, в двигателе и т.д.
Отношение "есть в", "содержится" выражается агрегацией, а не наследованием.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Проблема в иерархических классификациях, которые все усложняют
Классы позволяют сделать декомпозицию задачи на более простые подзадачи, принцип "разделяй и властвуй".

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Для корпораций это просто находка: чем более запутаннее код, тем сложнее в нем разбираться конкурентам.
Ну блин, ну очевидная же глупость....
1
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
05.06.2020, 17:45
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Для корпораций это просто находка: чем более запутаннее код, тем сложнее в нем разбираться конкурентам.
Напоминает теорию всемирного заговора.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Конкретно с# заточен именно на ООП. Это объектный язык.
Но модульность он обеспечивает. Так что вполне можно писать в модульном стиле. И почти в любом другом (хотя, для некоторых стилей пришлось бы фремворк писать).
0
Заблокирован
05.06.2020, 21:19  [ТС]
Цитата Сообщение от korvin_ Посмотреть сообщение
Никогда особо не «восхищался» Мартином, но тут он совсем разочаровал ограниченностью своего кругозора.
Беда) Хорошо, что я на время оставил чтение)
А вы бы кого порекомендовали вместо Мартина по архитектуре?
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
05.06.2020, 22:27
Цитата Сообщение от titan4ik Посмотреть сообщение
А вы бы кого порекомендовали вместо Мартина по архитектуре?
Архитектуре чего?
0
06.06.2020, 08:43

Не по теме:

https://ru.wikipedia.org/wiki/Готическая_архитектура

0
06.06.2020, 11:37  [ТС]

Не по теме:

vantfiles,
Мне больше избы глинобитные по душе. Мазанки такие беленькие. Об этом же речь вроде с самого начала:D

0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
06.06.2020, 14:39
Цитата Сообщение от Storm23 Посмотреть сообщение
Наследование означает связь является. Разве дверь является автомобилем? Нет.
Мне то до этого.. Я говорю о том как реально пишут свои произведения.
Цитата Сообщение от Storm23 Посмотреть сообщение
Кроме того (и это даже важнее в архитектуре) модели не строятся для "отображения реальности".
Во всех книжках по ООП пишут, что ООП есть отражение реальности. Ошибаются?
Цитата Сообщение от Storm23 Посмотреть сообщение
Программа отображает только определенный аспект предметной области.
Угу, но речь тут идет об ООП, а не о программе вообще.
Цитата Сообщение от Storm23 Посмотреть сообщение
Например, если это ПО по продаже автомобилей, то там будет только модель, цвет кузова и цена.
Конечно. Там реляционная модель. В реальности. Зачем же приводить эти бесконечные примеры: фигура-треугольник-круг, город-дома-улицы, автомобили-кузова-транссмиссии? Отцы-основатели заблуждаются, а только одни Вы лучше всего поняли сущность ООП? Ну тогда поделитесь с ТС своими наработками.
Цитата Сообщение от Storm23 Посмотреть сообщение
Отношение "есть в", "содержится" выражается агрегацией, а не наследованием.
Я же не против такого деления: авомобиль-кузов-трансмиссия. Просто не надо это жестко в структуру зашивать. Есть еще отношение "состоит из". И может выражаться более гибкой сетевой моделью помимо иерархической.
Цитата Сообщение от Storm23 Посмотреть сообщение
Классы позволяют сделать декомпозицию задачи на более простые подзадачи, принцип "разделяй и властвуй".
Процедурное как бы тоже.
Цитата Сообщение от Storm23 Посмотреть сообщение
Ну блин, ну очевидная же глупость....
Да.. Только почему-то все коммерсы пытаются обфусцировать свой код, причем даже иногда исходники. Например так делают в PHP: убирают переводы строк, пробелы, табуляцию. В итоге получается неудобочитаемая каша. Спрашивается: а на фига козе баян?. Вопрос риторический..
0
Заблокирован
06.06.2020, 18:57  [ТС]
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Во всех книжках по ООП пишут, что ООП есть отражение реальности. Ошибаются?
Всё есть отражение реальности.
Storm23 только совершенно справедливо заметил, что отражается не реальность как таковая, а реальность с точки зрения решаемой задачи. Иными словами, отражается модель реальности. А модель эта строится сообразно решаемой задачи.
Иначе можно докатиться то того, что строить иерархии вплоть до атомов и молекул. А они ведь тоже структуры.
Речь о разумной (с точки зрения критериев именно решаемой задачи) модели реальности. И эта модель и отражается в ПО.

Добавлено через 1 минуту
Но всё это уже немного не по теме. Или по теме?) Возможно)

Добавлено через 1 час 13 минут
Интересный момент.
Я там вначале писал, что только начал делать проектик, а уже переписываю. Так я опять это "начало" переписываю. И дело тут в основном в том, что изначально не вполне представлял себе эту самую модель предметной области в контексте задачи. То есть, дело не столько в самом программировании, и даже не в архитектуре ПО, дело, в основном, именно в этом - потихоньку приходит понимание модели в контексте задачи. А если контекст не понимать или не верно его понимать, то можно столько химер тупиковых наплодить даже с хор умением программировать и архитектурировать.
Вообще, правильная постановка задачи - это уже, как минимум, пол дела. Хорошее ТЗ (во всех областях деятельности) - это так редко встречается! Когда сам себе ТЗ выдаешь, то методом последовательных итераций можно придти к хор варианту без межличностных конфликтов
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
06.06.2020, 19:17
А модель к архитектуре не имеет отношения. Архитектура это о том, как структурировать различные части кода, чтобы было легче разобраться. так делают например писатели: делят роман на части, главы, разделы.. Словари структурируют по алфавитному принципу.. А код как структурировать? По какому принципу? По модели? Модель у каждой задачи своя собственная, а нам надо отыскать единый принцип. ООпщики считают, что уже его отыскали.. При этом пытаясь с переменным успехом модель натягивать на структуру..
Структурировать надо по принципу разделения ответственности и по тем состояниям в которых может находится программа..
Нажатие на одну кнопку вызывает соответственный модуль, на другую, другой. Отдельные модули разделяются на задачи, задачи на состояния.
0
Заблокирован
06.06.2020, 20:02  [ТС]
Цитата Сообщение от CoderHuligan Посмотреть сообщение
А модель к архитектуре не имеет отношения.
я бы некомпетентно сказал, что принципы архитектуры не имеют отношения к модели. Но сама архитектура конкретного ПО, на своем уровне (на своем уровне асбтракции, как это любят говорить пр-ты), тоже естественно отражает супперпозицию модель-задача.
Хотя эти архитектурные паттерны могут быть и общими у задач одного класса.
Как называются арх и прочие паттерны для реализации некой автоматики (упр процессами)?
Тут в муравьиной теме упоминалось автоматное программирование, по каким ключевым словам погуглить?
Чтобы хоть знать как правильно модули называть)
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
07.06.2020, 09:43
Цитата Сообщение от titan4ik Посмотреть сообщение
Как называются арх и прочие паттерны для реализации некой автоматики (упр процессами)?
Автоматизированная система управления - https://ru.wikipedia.org/wiki/... 0%B8%D1%8F
Полезно начинать изучение программирования именно с азов философии управления, пусть даже технологическими процессами. Она достаточно развита в научном смысле, в отличие от ООП, которое под науку до сих пор не подведено (математики нет).
Цитата Сообщение от titan4ik Посмотреть сообщение
Тут в муравьиной теме упоминалось автоматное программирование, по каким ключевым словам погуглить?
Чтобы хоть знать как правильно модули называть)
Автоматное программирование и есть та серебрянная пуля, имхо, которую все ищут, или прямой путь к ней. (Математика есть - теория конечных автоматов) Приведу несколько ссылок.
1. https://ru.wikipedia.org/wiki/... 0%B8%D0%B5
2. http://is.ifmo.ru/
3. http://is.ifmo.ru/books/_book.pdf
0
Эксперт .NET
 Аватар для Usaga
14368 / 9469 / 1360
Регистрация: 21.01.2016
Сообщений: 35,733
08.06.2020, 10:56
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Мне то до этого.. Я говорю о том как реально пишут свои произведения.
Никто так не пишет. Это вы нагло врёте, приписывая самопридуманный бред нормальным разработчикам.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Во всех книжках по ООП пишут, что ООП есть отражение реальности. Ошибаются?
Так же в этих книжках пишут о детализации такого отражения, о чём господин Storm23 прямо и сказал. "Реальность" отражается ровно настолько детально, насколько требуется для решения задачи. Если у вас приложение по учёту автомобилей на платной парковке, то моделировать автомобиль дальше класса "Аватомобиль" с набором свойств описывающих номер и владельца, не надо.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Угу, но речь тут идет об ООП, а не о программе вообще.
А ООП ничего такого, что вы ему приписываете, не требует.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Конечно. Там реляционная модель. В реальности. Зачем же приводить эти бесконечные примеры: фигура-треугольник-круг, город-дома-улицы, автомобили-кузова-транссмиссии? Отцы-основатели заблуждаются, а только одни Вы лучше всего поняли сущность ООП? Ну тогда поделитесь с ТС своими наработками.
Отцы-основатели не заблуждаются. Это вы не так всё понимаете и придумываете себе аргументы.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Я же не против такого деления: авомобиль-кузов-трансмиссия. Просто не надо это жестко в структуру зашивать. Есть еще отношение "состоит из". И может выражаться более гибкой сетевой моделью помимо иерархической.
Так никто ничего жёстко и не вшивает, если это не нужно.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Да.. Только почему-то все коммерсы пытаются обфусцировать свой код, причем даже иногда исходники. Например так делают в PHP: убирают переводы строк, пробелы, табуляцию. В итоге получается неудобочитаемая каша. Спрашивается: а на фига козе баян?. Вопрос риторический..
Обфускация нужна для защиты кода от посторонних глаз. Может быть ещё минификация, для уменьшения размера кода и ускорения его разбора парсером. Это делается не с кодом, с которым работают, а с тем, который деплоят.
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,898
08.06.2020, 17:25
Обфускация нужна, если пишешь программу из трёх строк и хочешь за неё бабла срубить. В реальных больших проектах, если баг нашёл или новая фича нужна, проще обратиться к разработчикам. Выйдет дешевле, чем делать самому, даже если тебе исходный код с комментариями предоставят.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.06.2020, 17:25

Паттерны vs ООП
Как ни странно, но одно .. конфликтует с другим. Поясню на примере, задача: Создать обобщенное хранение файлов с описаниями...

Принципы и паттерны ООП
Используя принципы и паттерны ООП разработать программу на объектно-ориентированном языке. Предусмотреть исключающие ситуацию: ...

Основы Java освоены, понятия, парадигмы, ООП. Читать код могу, понятия есть, но все бы ничего, что дальше?
Доброго времени суток товарищи Столкнулся с такой ситуацией: куда двигаться дальше? Основы Java освоены, понятия, парадигмы, ООП....

Доходчиво разъясните...
1. Я до сих пор не понимаю работу комманды LEA. Главное я не понимаю практическиое использование. Так как меня всегда волнует win32 asm...

Объясните доходчиво Exit и Halt
Ребят, я немного недопонимаю, в чем различия между Exit и Halt, если они оба завершают программу?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
Текстовый слайдер с нумерацией страниц и кроссбраузерность.
russiannick 18.07.2026
Один мой друг написал текстовый слайдер с нумерацией страниц. Сегодня я расскажу как он умудрился подружить его с кроссбраузерностью. Очевидно сложно угодить с шириной каждому браузеру. Один крадет. . .
Грибы - это мемы, дерево - это человек. Применение микоризной модели к теории меметики Докинза.
anaschu 18.07.2026
Меметический изоморфизм теории «всего»: Грибная сукцессия как модель эволюции идей Докинза Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а универсальную. . .
Грибы - это корпорации, деревья - это государства. Механизм массонского захвата власти
anaschu 18.07.2026
Макроэкономический изоморфизм теории «всего»: Грибная сукцессия как модель транснационального капитализма Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а. . .
Расчёт периметра прямоугольника по координатам вершин
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Вычислить периметр прямоугольника, заданного координатами своих вершин на плоскости. Решение: Создан документ со следующими. . .
Подсчёт частоты трёхбуквенных слов в тексте
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Выясните, сколько раз в предложенном тексте встречается каждое трехбуквенное слово. Решение: Создан документ с единственным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru