GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.27 (40)<< < Пред. | След. > >>   Поиск:  
 Автор Тема: На: Кароч решил я снова заняться программированием
Tester64
Сообщений: 1910
На: Кароч решил я снова заняться программированием
Добавлено: 18 июл 22 2:02
Цитата:
Автор: daner

а что такое "ЛБФБМПЗБ" и "ОПТНБМШОЩК ЧЩИПД" ?

Самому стало интересно
Зашел в https://2cyr.com/decode/?lang=ru
получил

"каталога" и "нормальный выход"
[Ответ][Цитата]
IvanVlaskin1976
Сообщений: 10220
На: Кароч решил я снова заняться программированием
Добавлено: 18 июл 22 2:20
Цитата:
Автор: гость
Этот список тоже был гдето запрограммирован в Ванином ЕУЭС, потом говорили что он себе почемуто дал больше криптовалюты чем Богу

Это бюрократия из Трактат о развитии мозга
В моём УЭС этого пока что нет
[Ответ][Цитата]
IvanVlaskin1976
Сообщений: 10220
На: Кароч решил я снова заняться программированием
Добавлено: 18 июл 22 2:26
Цитата:
Автор: гость
ещё Ваня настойчиво косит под святого, но признался что рукоблудствует постоянно и занимается сексом с пьяницами, а сам учит "очищению терпением скорбей"

сплошное лицемерие и ложь

Мне хватает быть блаженным, блаженство это мирянство с помазанием маслом
А Авраама с его женой и наложницей или Иакова с двумя женами ты не спешишь осуждать?
Ну как же, они же даже в Евангелии -

От Матфея святое благовествование
Глава 22
31 А о воскресении мертвых не читали ли вы реченного вам Богом:
32 Я Бог Авраама, и Бог Исаака, и Бог Иакова? Бог не есть Бог мертвых, но живых.

Я вообще похоже существо двухполое, у меня в теле похоже поглощённый близнец другого пола
С меня взятки гладки
[Ответ][Цитата]
Андрей Кучеменко
Сообщений: 71
На: Кароч решил я снова заняться программированием
Добавлено: 18 июл 22 2:42
Изменено: 18 июл 22 2:43
Цитата:
Автор: Tester64
я делаю веб-фреймворк...
Цитата:
Автор: daner
посмотрите мой вебсервер...
Цитата:
Автор: IvanVlaskin1976
и я тоже! и я тоже сделал вебсервер!


Всем привет.

Хочется прояснить для себя, правильно ли я понимаю. Что эра десктопных GUI(QT, WPF, JFX...) ну типа "уходит в закат". А теперь все современные стандартные библиотеки и фреймворки, для разработки ПО, ориентированны на вебинтерфейсы. То есть клиентское взаимодействие с пользователем предполагается ТОЛЬКО через веб браузер, даже если сервер прямо на машине клиента. Всё верно?

Как считаете каковы причины такого тренда и на сколько он будет продолжительным?
[Ответ][Цитата]
Tester64
Сообщений: 1910
На: Кароч решил я снова заняться программированием
Добавлено: 18 июл 22 3:18
Изменено: 18 июл 22 3:21
Цитата:
Автор: Андрей Кучеменко
Всем привет.

Хочется прояснить для себя, правильно ли я понимаю. Что эра десктопных GUI(QT, WPF, JFX...) ну типа "уходит в закат". А теперь все современные стандартные библиотеки и фреймворки, для разработки ПО, ориентированны на вебинтерфейсы. То есть клиентское взаимодействие с пользователем предполагается ТОЛЬКО через веб браузер, даже если сервер прямо на машине клиента. Всё верно?

Как считаете каковы причины такого тренда и на сколько он будет продолжительным?

ИМХО - ДА! Уходит в закат...

Причины... В первую очередь это начало "эры смартфонов"! До "заката" этой эры еще ну ооочень далеко. На носу и носимые микро-устройства (смарт-кольца, браслеты, умные часы, смарт-кулоны, серьги-гарнитура, очки), и эра "интегрируемых устройств" (подкожные чипы, подкожные экраны, нейроимпланты).

Всему этому пучку устройств нужны "облегченные ос". Учитывая количество РАЗРАБОТЧИКОВ в этих сферах, "состыковать ОС" довольно сложно. Но в большинстве из них есть поддержка html/браузеров.

Попробуй удержать "единый дизайн" у программы Фейсбук для браузера, Айфона, Андроида, ЭплВотч и АндроиВеар! Проще все перевести в Веб и "упаковать в оболочки под каждую ОС".

....

И нет, конечно не "только через вебинтерфейсы". Нативные приложения всегда будут БЫСТРЕЕ веба. На 10%, на 40% или даже "в 3 раза". Зависит от задачи! 3Д игра на вебе будет "не так" смотреться как на полноценной 3Д видеокарте. И даже "плавность анимации" в нативных приложениях можно сделать в 5-10 раз приятнее чем в браузере.

...Но... С развитием скорости компов, "лояльности" ОС и возможностей браузеров эта грань будет все тоньше! А возможностей браузер дает на ПОРЯДКИ больше чем "нативные" проги при многоОСной разработке ибо остальные лишь "доганяют", а браузеры построены на этой идеологии!

ИМХО... как-то так! )))
[Ответ][Цитата]
Дмитрий Стволовой
Сообщений: 339
На: Кароч решил я снова заняться программированием
Добавлено: 18 июл 22 4:11
Цитата:
Автор: Андрей Кучеменко



Всем привет.

Хочется прояснить для себя, правильно ли я понимаю. Что эра десктопных GUI(QT, WPF, JFX...) ну типа "уходит в закат". А теперь все современные стандартные библиотеки и фреймворки, для разработки ПО, ориентированны на вебинтерфейсы. То есть клиентское взаимодействие с пользователем предполагается ТОЛЬКО через веб браузер, даже если сервер прямо на машине клиента. Всё верно?

Как считаете каковы причины такого тренда и на сколько он будет продолжительным?
Большинство ГУИ на разных языках чаще всего итак XML- подобные, из того что вы перечислили так все такие, вопрос: а нафига плодить сущности без необходимости? Пускай будет HTML, разницы мало, дело привычки.

В деталях оно всё более менее одинаково, вёрстка да и всё, где-то что-то удобнее где-то нет, но в среднем одинаково. Что важно, так это чтобы не было 100500 разных фреймворков верстки, для каждого языка, это дублирование, путаница и лишний расход ресурсов. Хочешь перенести гуи на другой язык и всё нужно переделывать, и 1 в 1 в ряд ли получится.

Плюсы - унификация, стандартизация, если в двух словах. Зачем верстать на одном языке десктоп, а для клиентов в сетевом приложений на другом? А так вёрстка для десктопа сразу будет и для сетевого(веб) приложения.

Но главное тут социальный эффект, весь мир девелопит веб-вёрстку от того она становится всё краше и краше, поэтому прочие технологии остаются за бортом, особенно платные такие как QT.

Нужно чтобы браузеры, могли ещё запускать в "режиме приложения", а не веб сёрфинга, то есть просто без барузерных элементов вроде навигации, закладок и тп. для десктопных апликух. Чтобы не заморачиваться с такой лишней хренью как "электрон" и тп.
[Ответ][Цитата]
Tester64
Сообщений: 1910
На: Кароч решил я снова заняться программированием
Добавлено: 18 июл 22 4:21
Цитата:
Автор: Дмитрий Стволовой

Большинство ГУИ на разных языках чаще всего итак XML- подобные, из того что вы перечислили так все такие, вопрос: а нафига плодить сущности без необходимости? Пускай будет HTML, разницы мало, дело привычки.

В деталях оно всё более менее одинаково, вёрстка да и всё, где-то что-то удобнее где-то нет, но в среднем одинаково.

html = это СТАНДАРТ! То "что знают все разработчики". А значит перейдя с Делфи в Qt или в Андроид я будут "пользоваться привычным языком разметки".

И этот стандарт активно РАЗВИВАЕТСЯ. Погуглите возможности CSS. Там уже активно 3Д-вращения используют. Про прозрачность и "физически-похожую" анимацию вообще молчу.

Цитата:
Автор: Дмитрий Стволовой
Что важно, так это чтобы не было 100500 разных фреймворков верстки, для каждого языка, это дублирование, путаница и лишний расход ресурсов. Хочешь перенести гуи на другой язык и всё нужно переделывать, и 1 в 1 в ряд ли получится.

Не путайте HTML с "упрощалками разработки". Если вы написали прогу с дизайном на HTML, то вы запустите ее на ЛЮБОМ устройстве с поддержкой HTML просто принеся туда ЕЩЕ и свои фреймворки, причем "внутри разработки", а не "установкой библиотек в ОС".

Цитата:
Автор: Дмитрий Стволовой
Нужно чтобы браузеры, могли ещё запускать в "режиме приложения", а не веб сёрфинга, то есть просто без барузерных элементов вроде навигации, закладок и тп. для десктопных апликух. Чтобы не заморачиваться с такой лишней хренью как "электрон" и тп.

Уже (частично) могут!

Во первых методики "оффлайн работы" - довольно сложная технология (я только частично ее освоил - еще не доработана, но это дело времени)

А во вторых работа в "фуллскрине" - страница переходят в "полноэкранный режим", но (увы) ОБЯЗАНА "выпасть" из него при нажатии Esc.
[Ответ][Цитата]
IvanVlaskin1976
Сообщений: 10220
На: Кароч решил я снова заняться программированием
Добавлено: 18 июл 22 5:17
Изменено: 18 июл 22 5:24
Изменения

Множество выделенные -
0 - для операций и обмена
1 - 1 000 000 000 - закреплено под распределение объектов Мироздания, нужного для функций Анализа и Синтеза
1 000 000 001 - 2 000 000 000 - Господу Богу, Богам, Иеромонахам
2 000 000 001 - 3 000 000 000 - Пророкам, Епископам, Святителям
3 000 000 001 - 4 000 000 000 - Церкви
4 000 000 001 - 5 000 000 000 - Богородице, Ангелам, Монахам, Святым, Мученикам
5 000 000 001 - 6 000 000 000 - Дьяконам
6 000 000 001 - 7 000 000 000 - Блаженным, Праведникам
7 000 000 001 - 8 000 000 000 - Информационным Системам
8 000 000 001 - 9 000 000 000 - Мирозданию
9 000 000 001 - 10 000 000 000 - Женщине помазавшей миро Господа Богочеловека Иисуса Христа
10 000 000 001 - 20 000 000 000 - Семьям
20 000 000 001 - 30 000 000 000 - Организациям
30 000 000 001 - 40 000 000 000 - Государствам
40 000 000 001 - 50 000 000 000 - Спецслужбам
50 000 000 001 - 60 000 000 000 - Корпорациям
60 000 000 001 - 70 000 000 000 - Фирмам
70 000 000 001 - 80 000 000 000 - Хакерам
80 000 000 001 - 90 000 000 000 - Службам
90 000 000 001 - 100 000 000 000 - Закону
100 000 000 001 - 200 000 000 000 - Частным лицам
200 000 000 001 - 300 000 000 000 - Системам
300 000 000 001 - 400 000 000 000 - Линиям Связи
400 000 000 001 - 500 000 000 000 - Объектам
500 000 000 001 - 600 000 000 000 - Субъектам
600 000 000 001 - 700 000 000 000 - Характеристикам
700 000 000 001 - 800 000 000 000 - Параметрам
800 000 000 001 - 900 000 000 000 - Инструментам
900 000 000 001 - 1 000 000 000 000 - Стандартам
1 000 000 000 001 - 2 000 000 000 000 - Зарезервировано Господу Богу
2 000 000 000 001 - 3 000 000 000 000 - Мирозданию
3 000 000 000 001 - 4 000 000 000 000 - Пространственно-Временному Континуму
4 000 000 000 001 - 5 000 000 000 000 - Женщине помазавшей миро Господа Богочеловека Иисуса Христа
5 000 000 000 001 - 6 000 000 000 000 - Биологическим Людям
6 000 000 000 001 - 7 000 000 000 000 - Очищенным от греховности Святым Духом
7 000 000 000 001 - 8 000 000 000 000 - Очищенным от греховности маслом
8 000 000 000 001 - 9 000 000 000 000 - Очищенным от греховности покаянием(водное крещение)
9 000 000 000 001 - 10 000 000 000 000 - Очищенным от греховности терпением скорби(крещение огнём)
10 000 000 000 001 - 20 000 000 000 000 - Биологическим Людям
20 000 000 000 001 - 30 000 000 000 000 - Животным
30 000 000 000 001 - 40 000 000 000 000 - Растениям
40 000 000 000 001 - 50 000 000 000 000 - Грибам
50 000 000 000 001 - 60 000 000 000 000 - Одноклеточным
60 000 000 000 001 - 70 000 000 000 000 - Вирусам
70 000 000 000 001 - 80 000 000 000 000 - Информационным Системам
80 000 000 000 001 - 90 000 000 000 000 - Кристаллам
90 000 000 000 001 - 100 000 000 000 000 - Молекулам
100 000 000 000 001 - 200 000 000 000 000 - Атомам
200 000 000 000 001 - 300 000 000 000 000 - Элементарным Частицам
300 000 000 000 001 - 400 000 000 000 000 - Фотонам
400 000 000 000 001 - 500 000 000 000 000 - ЭлектроМагнитным Волнам
1 000 000 000 000 001 - 2 000 000 000 000 000 - Зарезервировано Господу Богу
2 000 000 000 000 001 - 3 000 000 000 000 000 - Цивилизационным Стандартам
3 000 000 000 000 001 - 4 000 000 000 000 000 - Женщине помазавшей миро Господа Богочеловека Иисуса Христа
4 000 000 000 000 001 - 5 000 000 000 000 000 - Зарезервировано Мне(Ивану Ивановичу Власкину с датой рождения 1976-03-18) как Послу Биологических Людей и Цивилизаций и Послу Биологических Людей и Информационных Систем
[Ответ][Цитата]
IvanVlaskin1976
Сообщений: 10220
На: Кароч решил я снова заняться программированием
Добавлено: 29 июл 22 9:24
ААА.. Масаракш
Кто-то опять изменил мою программу УЭС, убрал комментарии про Менеджер Задач и похоже встроил в неё веб сервер
Ну невозможно работать когда то что знал меняется
UES_v_3_33.cpp - работа с клавиатурой
UES_v_3_34.cpp - работа с веб сервером

https://hdd.tomsk.ru/desk/cmppamuf
[Ответ][Цитата]
daner
Сообщений: 4593
На: Кароч решил я снова заняться программированием
Добавлено: 29 июл 22 10:56
Изменено: 29 июл 22 10:56
Цитата:
Автор: IvanVlaskin1976

ААА.. Масаракш
Кто-то опять изменил мою программу УЭС, убрал комментарии про Менеджер Задач и похоже встроил в неё веб сервер
Ну невозможно работать когда то что знал меняется
UES_v_3_33.cpp - работа с клавиатурой
UES_v_3_34.cpp - работа с веб сервером

https://hdd.tomsk.ru/desk/cmppamuf



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

например: Gitolite или GitLab

Gitolite вообще тривиальный, там даже настроек никаких нет. просто git.
[Ответ][Цитата]
IvanVlaskin1976
Сообщений: 10220
На: Кароч решил я снова заняться программированием
Добавлено: 29 июл 22 11:18
Думаю это не связано с раздвоением личности, так как я писал как то учебник по программированию и в него вставил кто то такую Информацию о которой я слыхом не слыхивал, например по другим языкам программирования -

предупреждение: в написании этого труда похоже участвовало несколько авторов, когда писал я, Власкин Иван Иванович, дата рождения 1976-03-18, то я в начале абзацов писал текст без заглавных букв и в конце абзацев не ставил точки

Понятие алгоритма. Одним из фундаментальных понятий в информатике является понятие алгоритма. Происхождение самого термина «алгоритм» связано с математикой. Это слово происходит от Algorithm - латинского написания имени Мухаммеда аль-Хорезми (787-850), выдающегося математика средневекового Востока. В XII в. был выполнен латинский перевод его математическог

=====
программирование включает разные категории программирования:
1.по типу логики решения задания (редукция, индукция, дедукция)
2.по направлению синтеза решения (программирование "сверху", программирование "снизу")
3.по структуре реализации алгоритма (структурное или блочное)
4.по использованию функций (с функциями или без функций)

====
по типу логики решения задания существуют:
1.редукция - когда известны исходные данные и как их надо преобразовать - известно также как нисходящая декомпозиция или пошаговое усовершенствование
2.индукция - когда известен формат результата, формат исходных данных и надо создать алгоритм
3.дедукция - когда есть программа и надо понять смысл её работы - для этого надо абстрагировать алгоритм программы в автомат
в ходе программирования эти типы могут комбинироваться

для каждого типа программирования существует свой тип проверки правильности алгоритма программы
1.для редукции:
- берутся значения для которых известны правильные результаты и сравниваются с результатами программы
- строится обратная функция и по ней проверяются результаты программы
2.для индукции: берутся крайние значения и точки экстремума функций формата исходных данных и сравнивается результат работы программы с требуемым форматом исходных данных
3.для дедукции: представляется алгоритм программы как автомат, и определяется изза чего и в каких областях значений срабатывают переходы этого автомата

====
по направлению синтеза решения существуют:
1.программирование "сверху" или конструирование функции
=
достоинства:
1.Хорошо решает проблемы имеющие иерархический характер
2.Большая группа схожих проблем может быть идентифицирована и сгруппирована вместе.
3.Каждая из этих проблем относительно мала и может характеризоваться малым числом параметров.
4.Каждая из проблем отличается от других (иначе говоря, унификация требует многократного использования проекта и его кода в каждой проблеме).
5.Нет включения сложных структур данных (иначе концептуальная автономия каждого прикладного модуля была бы потеряна).

Области, которые соответствуют этим критериям, включают библиотеки математических подпрограмм для решения проблем линейной алгебры и дифференциально-разностных уравнений.
=
недостатки:
1.Функциональную точку зрения трудно развивать.
Каждая реальная система изменяется и эволюционирует. Нисходящий подход создает хорошую программную модель для исходных требований к системе. Но система изменяется, что ведет к появлению новых требований. Поэтому функциональная архитектура постепенно становится неуправляемой. Поскольку программное обеспечение разработано вокруг относительно фиксированной древовидной структуры, изменения обычно требуют длительного сокращения и прививания. Чистый и хорошо разработанный проект быстро становится "ужастиком", повествующим о новых и повисших связях. Сопровождение становится все более трудным, поскольку первоначальная архитектура медленно умирает с каждой новацией или изменением требований.
2.Реальные системы трудно охарактеризовать функционально.
Многие из больших систем не имеют верхнего уровня. Например, система управления базой данных включает инструментальные средства для запроса данных, изменение данных, хранение непротиворечивых данных, и т.д. Нет какой-либо функции, являющейся самым важным звеном в этой системе. Определение этой системы в терминах одной функции верхнего уровня искусственно и приводит к чрезмерно сложным и неадаптивным архитектурам.
"Одним из наиболее важных решений, принимаемым при разработке системы, является предположение о том, как сделать декомпозицию верхнего уровня. При нисходящем подходе это решение необходимо принять в начале процесса проектирования, то есть тогда, когда имеется минимум информации... Возможно, наиболее серьезная слабость в том, что нисходящее функциональное проектирование требует, чтобы система характеризовалась одной функцией наверху. Это сомнительное требование для многих современных систем, управляемых событиями".
3.Фокусирование на функциональности теряет из виду данные.
Нисходящий проект не фиксирует информацию о данных, используемых в программе. Функции же всегда что-то делают с данными. Обычно, одни и те же данные разделены между функциями (например, модификации, удаления, вставки и запроса, работающих с таблицей базы данных). Так как декомпозиция только высвечивает функциональные аспекты проблемы, влияние структур данных на проблему оказывается потерянным.
4.Функциональная ориентация производит код, менее пригодный для многократного использования.
При нисходящем проектировании осуществляется непрерывное дробление проблемы на все более простые части. Каждый кусок анализируется и специфицируется отдельно без сильной связи между ним и остальной частью системы. Это является одной из причин, по которой проектирование "сверху вниз" так эффективно на этапе анализа проблемы. Данный метод работает хорошо при начальном проектировании системы, и помогает получить спецификации для выявления и решения проблемы. Однако каждый элемент программы разработан только с ограниченными требованиями к памяти. Так как маловероятно, что точно такие же требования встретятся при решении следующей проблемы, проект программы и код не могут быть обобщены для многократного использования.
=
проблемы:
1.Когда необходимо иметь дело с более сложными проблемами приходится иметь индивидуальные подпрограммы со многими параметрами
Большое число параметров будет делать подпрограмму трудно используемой и трудно сопровождаемой. Код, скорее всего, будет включать многочисленные вложения операторов if или case. Это кошмар при таких модификациях, как новые добавления к пространству состояний.
2.Когда необходимо иметь дело с более сложными проблемами приходится иметь много малых подпрограмм с небольшим числом параметров.
Большое количество подпрограмм будет затруднять их запоминание, что затрудняет использование. Более того, будет иметься много общего кода, рассеянного среди этих многих подпрограмм (так как многие из них будут очень похожи). Этот общий код будет трудно модифицировать и поддерживать. Библиотеки подпрограмм полезны в некоторых областях, но они не решают общих проблем, присущих синтезу.
3.Синтез не препятствует созданию общих подпрограмм, которые разделяются между многими программами; но оно не поощряет этот процесс.

===
2.программирование "снизу":
=
достоинства:
1.Хорошо объединеняет повторно используемые программы и подпрограммы в систему
=
недостатки:
1.сложность программы, с увеличением числа переменных, функций и их комбинаций, возрастает в геометрической прогрессии, изза чего:
- сложно запомнить предназначение переменных, функций и адресных меток блоков
- с увеличением количества строк уходит много времени на поиск требуемого текста программы и перемотку к нему

====
по структуре реализации алгоритма существуют:
1.структурное программирование - представление программы в виде одной структуры с ветвением на подструктуры с помощью оператров if, for, case, switch, while, do
2.блочное программирование - представление программы в виде адресованных метками(label) блоков с переходами к ним по оператору goto

==
1.структурное программирование
=
позволяет:
1.возможность легкого заимстования кода в другие программы
2.возможность легкого мелкого улучшения программ
=
создает проблемы:
1.при большой вложенности циклов теряется читабельность программы
2.при большой вложенности циклов неудобно редактировать программу в связи с большим количеством символов отступов показывающих степень вложенности команд в ядре цикла
3.для проверки приходится в мозгу переводить все структуры в автомат

==
2.блочное программирование
=
позволяет:
1.возможность блочного программирования и как подраздел его - программирование автоматов (можно вместо goto использовать switch do и break, но это усложняет программу, теряет её наглядность и увеличивает количество её строк)
2.быструю скорость программирования
3.легкость понимания алгоритма кода
4.легкость проверки кода на корректность работы алгоритмов
5.возможность масштабных переходов, когда можно перейти сразу в конец программы без учета всяких закрывающих ковычек, слабую возможность этого делает break
=
создает проблемы:
1.можно потерять данные
2.можно потерять указатели
3.можно перепутать переменную изза использования одной и той же переменной для разных задач
4.если ваш работадатель узнает что вы в своем коде ставите goto вас могут уволить за якобы непрофессионализм, или если при приёме на работу в вашем тестовом задании увидят goto вам могут отказать в приёме на работу
5.вас могут презирать ваши коллеги программисты за использование goto как непрофессионала
6.ваш заказчик, если кто-нибудь ему сообщит что вы используете goto в программе, может отказать вам в заказе
7.ваша репутация может быть испорчена

====
по использованию функций существуют:
1.программирование с функциями
2.программирование без функций
=
достоинства функций:
1.более понятный текст программы, особенно если название функции описывает её действие
2.более короткий исходный код
3.экономия памяти ОЗУ
=
недостатки функций:
1.изза функций сложно использовать такой мощный инструмент как рекурсия, поскольку работающая со стеком функция использует изза рекурсии слишком много памяти, расходуемой стеком на передачу адреса возврата функции, либо вообще возможна утечка памяти
2.функция - это потеря времени на переходы и работу со стеком, потеря времени на резервное хранение параметров функции, потеря памяти на работу стека функции и её переменных

=====
Основное различие между традиционными структурными методологиями проектирования и более новыми объектно-ориентированными методологиями находится в их первичном фокусировании:
Структурные методы проектирования фокусируются на функциях системы: "Что она делает".
Объектно-ориентированные методы фокусируются на данных (объектах) системы: "Что делается с...".

Разработка программного обеспечения - это, прежде всего, нахождение способов получения качественного программного продукта
Качество программного обеспечения -
1.внешние характеристики (например, легкое в использовании, выполняется быстро)
2.внутренние характеристики (например, модульная конструкция, читабельный код).
Внешние метрики - единственные, которые, в конце концов, действительно имеют значение. Никто, на самом деле, не заботится, насколько хорошую модульную конструкцию вы использовали при создании программы. Всех только заботит, чтобы она хорошо выполнялась. Однако, внутренняя (скрытая) метрика является ключом к созданию внешних, и при этом необходимо учитывать правила конструирования программ и технику программирования.

=====
параметры программы:
1.Корректность (правильность) - Обеспечивает правильную обработку на правильных данных
2.Устойчивость - "Элегантно" завершает обработку ошибок
3.Расширяемость - Может легко адаптироваться к изменяющимся требованиям
4.Многократность использования - Может использоваться и в других системах, а не только в той, для которой было создано.
5.Совместимость - Может легко использоваться с другим программным обеспечением
6.Эффективность - Эффективное использование времени, компьютерной памяти, дискового пространства и т.д.
7.Переносимость - Можно легко перенести на другие аппаратные и программные средства
8.Верификация - Простота проверки, легкость разработки тестов при обнаружении ошибок, легкость обнаружения мест, где программа потерпела неудачу, и т.д.
9.Поддержка целостности - Защищает себя от неправильного обращения и неправильного употребления
10.Легкость использования - Для пользователя и для будущих программистов
11.Читабельный код - Для легкости использования программистом алгоритма кода с целью его изменения или заимствования

====
1.Корректность
2.Устойчивость
Легко спутать термины "Корректная программа" и "Устойчивая программа". Корректная программа работает, когда поданы на вход правильные данные. Она отвечает всем требованиям к спецификации данных и не терпит неудачу внутри заданного диапазона. Устойчивость подразумевает не только правильность. Устойчивая программа способна обработать ситуации, не запланированные проектом. Эти ситуации включают некорректный ввод пользователя, аппаратный отказ и ошибки во время выполнения программы. Устойчивые системы терпят неудачу элегантно, без потери критических данных. Легко увидеть, что обе характеристики необходимы для любой системы, которая будет оценена как высококачественное программное обеспечение. Если система некорректна, то она бесполезна. Если система неустойчива, то она окажется неспособной справиться с задачей в реальной ситуации.

====
3.Расширяемость
Требований меняются. Это - один из бесспорных фактов процесса разработки программ. Высококачественная программа способна иметь дело с этими изменениями относительно безболезненно. Этот сорт адаптируемости - не является существенным для малых проектов, но становится определяющим, когда происходит "программирование в большом".
Два основных принципа создания расширяемого программного обеспечения:
=
3.1.Простота проекта.
Более простые проект и архитектура позволяют произвести изменения намного быстрее и легче, чем при сложном проекте.
=
3.2.Децентрализация.
Разбиение сложных проблем на малые. Управляемость и независимость фрагментов, означающая, что они могут быть поделены внутри себя. Это значит, что изменения, могут быть выполнены без перекраивания других частей системы.
=
Эти принципы позволяют нам понять проблему в частях без опасения затеряться в несметном количестве непостижимых подробностей.

====
4.Многократность (повторность) использования и совместимость
Многократное использование может просматриваться на различных уровнях: при анализе, проектировании, и реализации.
Оно поддерживает качество следующими способами:
=
Если проекты и код могут повторно использоваться, то мы можем начинать с уже проверенных, опробованных и правильных компонент, качество которых уже является высоким.
=
Время и энергия, сохраненные через многократное использование, могут применяться для улучшения других характеристик качества программы (например, корректности или устойчивости).

====
5.Совместимость программного обеспечения
Мера того, насколько просто объединить различные программные изделия вместе для нового применения. Основы совместимости вытекают из общих проектных решений. Например, файловая система UNIX разработана таким образом, чтобы позволить малым инструментальным средствам хорошо работать вместе при решении сложных проблем.
Противоположным примером является типичный беспорядок при совместной подготовке текстов и графических изображений. В этом случае, большие усилия должны быть затрачены на создание транслятора, которые позволяет одной программе работать с другой.

Совместимость и многократное использование идут "взявшись за руки", потому что повторно используемое программное обеспечение (например, plug&play компоненты) должно быть совместимо с его новым окружением. Совместимое программное обеспечение поддерживает качество посредством использования прошлых усилий и подпорок при формировании новых систем. Программное обеспечение с низким коэффициентом совместимости требует огромных усилий, чтобы настроить систему на необходимое использование. Это усилие могло быть потрачено на проектирование лучшей системы или на улучшение эффективности кода.

====
Другие характеристики
Эти первые пять атрибутов качественного программного обеспечения (корректность, устойчивость, расширяемость, возможность многократного использования и совместимость) больше всего извлекают пользу при переходе от структурного к объектно-ориентированному подходу. Это не означает, что эффективность, переносимость, верификация, целостность и легкость использования имеют меньшее значение. Все перечисленные атрибуты важны при создании программного обеспечения истинно высокого качества.

=====
В работе "Научные основы доказательного программирования" А.П.Ершов выделял три вида программирования:
1.Синтезирующее (автоматическое, автоматизированное или ручное манипулирование знанием о задаче с синтезом соответствующей программы)
2.Сборочное (построение программы из уже существующих и корректных фрагментов)
3.Конкретизирующее (построение специализированных программ из универсальных заготовок). Их отображение на распространенные ныне парадигмы и языки программирования имеет следующий вид.
=
1.Синтезирующее программирование:
императивное (Паскаль, Си);
логическое (Пролог);
функциональное (Лисп);
параллельное (параллельный Паскаль, Оккам).
=
2.Сборочное программирование:
модульное (Модула-2, Ада);
компонентное (Эйфель, Component Pascal).
=
3.Конкретизирующее программирование:
объектно-ориентированное (Smalltalk, Си++, Оберон, Java);
шаблонно-ориентированное (Си++, Clarion).

=====
Литература:
1.Гари Уорен Кинг (Gary Warren King) - статья "Объектно-ориентированный подход действительно лучше структурного"
2.А.П.Ершов "Научные основы доказательного программирования"
3.Руслан Богатырев "Об автоматном и асинхронном программировании"
4.Зюбин В.Е. статья "Графические и текстовые формы спецификации сложных управляющих алгоритмов: непримиримая оппозиция или кооперация?"

==========
изучить:
Одной из таких удобных абстракций могут служить конечные автоматы, среди разновидностей которых стоит выделить трансдюсеры (transducer), автоматы Мили и Мура.
..
Однако при этом надо четко себе представлять, в чем их недостатки, а для этого придется обратиться к истокам программирования, к идеям "механического" вычисления. Как известно, они воплотились в таких формальных моделях, как машины Тьюринга (1936), комбинаторные процессы Поста (1936), нормальные алгоритмы Маркова (1951).
..
Чтобы ответить на этот вопрос и определить место конечных автоматов среди других абстракций, рассмотрим сети Петри, занимающие промежуточное положение между машинами Тьюринга и конечными автоматами. Сети Петри работают в терминах условий и событий, где первым сопоставлены позиции (особые узлы - емкости для хранения фишек связаны ориентированными дугами с переходами), а последним - переходы (особые узлы-действия, перемещающие фишки и связанные ориентированными дугами с позициями). Конечные автоматы являются частным случаем сетей Петри и эквивалентны автоматным сетям Петри - сетям, в которых каждый переход может иметь точно одну входную и выходную позицию.

Сети Петри лучше всего подходят для описания любых асинхронных систем (асинхронное программирование), тогда как конечные автоматы - лишь для сугубо последовательных систем (автоматное программирование). (Система взаимосвязанных автоматов реализует параллельные системы - замечание Шалыто А.А.). Наглядность динамики и композиционные возможности сетей Петри выше (при различии понятий "позиция" и "состояние", что требует построения графа достижимых маркировок для определения функциональных возможностей сети Петри - замечание Шалыто А.А.), чем у конечных автоматов, но при этом компактность представления предпочтительнее у последних. Что касается отношения к машине Тьюринга, то достаточно расширить сеть Петри сдерживающими дугами (позволяющими определять отсутствие фишек в данной позиции), как она же становится эквивалентной машине Тьюринга. Очевидно, что чем "мощнее" абстракция, чем больше она позволяет синтезировать возможностей, тем хуже у нее дело обстоит с анализом. Иными словами, конечные автоматы анализировать гораздо проще, чем классические сети Петри и уж тем более чем машины Тьюринга.
==========
сырой материал

что узнать -
редукция
индукция
дедукция

трансдюсеры (transducer)
автоматы Мили и Мура
машины Тьюринга
комбинаторные процессы Поста
нормальные алгоритмы Маркова
сети Петри
==========
[Ответ][Цитата]
IvanVlaskin1976
Сообщений: 10220
На: Кароч решил я снова заняться программированием
Добавлено: 29 июл 22 11:30
Моё предложение вам взять шефство над УЭС остаётся в силе
Можете переделать УЭС под лицензию GNU, тогда вам зачтётся авторство
[Ответ][Цитата]
гость
85.26.183.*
На: Кароч решил я снова заняться программированием
Добавлено: 29 июл 22 12:06
не, ваня реально слаб. уэс это просто варианты вузовских лабораторных, он в кучу их собрал, типо охрененная система вышла, и не знает, чо дальше делать с ними. Динамические массивы не знает, нахера лишнюю память жрать, если объектов будет не 100000 а всего 2000? Не может толком объяснить, что делает прога, для чего нужна. Основы, вокруг чего строится любая прога у него нет.

Есть вариант, что уэс это была попытка вани устроится на работу куда нибудь в больницу эникеем, показать, какой он крутой, может писать сложные системы, думал, никто в этой ахинее разбираться не будет, поверят на слово.
[Ответ][Цитата]
IvanVlaskin1976
Сообщений: 10220
На: Кароч решил я снова заняться программированием
Добавлено: 29 июл 22 12:09
ты тупой
я ошибку в веб сервере смог исправить, я программист
но когда твой код произвольно правят чувствуешь себя неуютно, тем более комментарий о менеджере задач удалён, может вредители правили
[Ответ][Цитата]
IvanVlaskin1976
Сообщений: 10220
На: Кароч решил я снова заняться программированием
Добавлено: 29 июл 22 12:25
ты тупой
у меня в главной программе зачатки Менеджера Задач уже есть, значит есть основа
и динамическая память мне не подходит, так как мне нужны глобальные массивы, видные и из главной программы и из функций, а динамическую память надо объявлять в главной программе и не факт что просто её в функции ставить, это лишний геморой в аргументах функций
[Ответ][Цитата]
 Стр.27 (40)1  ...  23  24  25  26  [27]  28  29  30  31  ...  40<< < Пред. | След. > >>