Форум программистов, компьютерный форум, киберфорум
ООП и паттерны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
Результаты опроса: используете ли вы ооп
да 238 86.55%
нет 37 13.45%
Голосовавшие: 275. Вы ещё не голосовали в этом опросе

 
 
Рейтинг 4.76/461: Рейтинг темы: голосов - 461, средняя оценка - 4.76
81 / 39 / 3
Регистрация: 29.01.2010
Сообщений: 386

Стоит ли использовать ООП?

09.02.2010, 13:44. Показов 97930. Ответов 793
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Возник такой вопрос: стоит ли использовать ооп. Даже не так, когда использовать ооп?
Иногда (даже чаще всего) легче написать простые функции, а не мутить с классами обектами и методами.
Раздражает инкапсуляция - какой вообще ее смысл? Чтобы получить переменную класса по правилам ооп нужно создавать метод для ее чтения? когда такой подход оправдан - ведь затрачивается куча лишнего времени.
5
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.02.2010, 13:44
Ответы с готовыми решениями:

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

Какие РЕАЛЬНО есть причины НЕ использовать ООП?
Появился такой вопрос. Все мы знаем о шумихе вокруг ООП, спорной идее наследования, других невнятных идей которых можно добиться...

Где стоит использовать bootstrap и стоит ли вообще использовать CSS фреймворки?
Здравствуйте. Лично я ужасаюсь ковырять стили, когда к сайту подключен bootstrap и мало понимаю, чем он хорош вообще. В данной теме я бы...

793
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
06.04.2018, 17:10
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Shamil1 Посмотреть сообщение
везде в системе
Конечно удобно. Однако например в си формат строки довольно ограничен и приходится изобретать нечто другое. Однако в моём случае с dms-строкой можно работать как с сишной сишными же функциями, при этом формат как бы один и тот же, хотя dms-строки и бинарно безопасные.
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
07.04.2018, 00:58
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Не требуется никаких классов тем более шаблонных
Класс - это обёртка для набора функций структуры. И операторов над структурами. Ведь написать вместо твоего кода

C++
1
2
3
s = "Hello";
s += " world!";//Hello world! 
s.overwrite(0, "Goodbye");
будет несколько проще и понятнее, чем запоминать dms_assign и dms_add, которые ни для каких структур, кроме dms_tpchar вообще не понадобятся. И которые затратно переопределить например для dms_tplong, если не делать эти функции шаблонными.

// замена с 1 позиции 5 элементов - Goodbye world!
Обычно считают не позицию, а смещение от начала. Смещение отсчитывается от нуля.

Добавлено через 4 минуты
CoderHuligan, кстати, расскажи как работаешь со структурами, в которых динамически меняется не только размер, но и содержащиеся в них блоки подструктур (разный порядок, размеры, количество). Просто интересно, не работал ни с чем таким?
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
07.04.2018, 12:29
Цитата Сообщение от TRam_ Посмотреть сообщение
Ведь написать вместо твоего кода
Цитата Сообщение от TRam_ Посмотреть сообщение
будет несколько проще и понятнее
Ой ли?
С++ настолько корявый, некрасивый и невнятный язык, что я даже смотреть в его сторону не хочу. Ну, если кто привык то ладно, привыкнуть можно к чему угодно, даже к отборному г.., когда кушать нечего.. В нём столько налепили операторов вида << >> и т. д., которые видимо из брейнфака стянули, что только диву даёшся.. Никакого единообразия нет и в помине. Чем помешала функция форматного вывода, например? В С всё единообразно и построено на функциях. В С++ налепили разных закорючек, которые засоряют листинг..
Цитата Сообщение от TRam_ Посмотреть сообщение
запоминать dms_assign и dms_add,
А чего ту запоминать. Те кто знает английский прекрасно всё поймут с первого взгляда и в голове своей сложат картинку. Можно конечно написать dms_prisvoit и dms_dobavit однако меня плохо поймут зарубежные коллеги.
Здесь всё естественно как раз.
Цитата Сообщение от TRam_ Посмотреть сообщение
которые ни для каких структур, кроме dms_tpchar вообще не понадобятся.
Они совместимы с обычным char*, ибо указатель настраивается между хэдером и массивом, как раз на стыке.
Цитата Сообщение от TRam_ Посмотреть сообщение
И которые затратно переопределить например для dms_tplong, если не делать эти функции шаблонными.
Дык для этого и создан новый тип dms_tpchar (а также dms_tppchar, dms_tuint и т. д. ) для того, чтобы можно было в один клик переопределить их в случае надобности через typedef.
Цитата Сообщение от TRam_ Посмотреть сообщение
Обычно считают не позицию, а смещение от начала. Смещение отсчитывается от нуля.
Обычно это где? В С++? И это на высшем уровне то? И это называется высокоуровневым языком?
Обьясню: "обычно" это на самом низком уровне, где манипулируют адресной арифметикой типа: *(s + 1) и т.д.
Однако на высшем уровне существуют одни позиции элементов, которые начинаются с 1(единицы) а не с 0. С 0 начинаются массивы на низшем уровне. Мне как программисту совершенно незачем производить операции вычитания 1 в уме, пусть это делает компьютер. А сколько ошибок происходит из-за того, что люди работают с массивами на самом низком уровне! К тому же если позиция начинается с 1 то легко и безопасно использовать беззнаковые величины для описания массивов и проверять их границы, так как 0 считается ошибкой. Знаковые вещи вообще нельзя использовать в таких делах, а их сплошь и рядом пихают. Мои вещи безопасны и гарантированы от выхода за пределы из-за переполнения.
Цитата Сообщение от TRam_ Посмотреть сообщение
кстати, расскажи как работаешь со структурами, в которых динамически меняется не только размер, но и содержащиеся в них блоки подструктур (разный порядок, размеры, количество).
Немного не ясен вопрос о чём конкретно идёт речь? Делал динамические списки, стеки, но это другое, и сейчас делал бы по другому.
Если речь идёт о конкретно динамических строках, то в таких случаях обычно выделяется отдельная структура типа:
C
1
2
3
4
5
6
struct string 
{
        int buflen;
        int strllen;
        char * data;
};
при этом отдельно нужно выделять память под структуру-контейнер и отдельно под массив data. Тут есть свои преимущества но и недостатки. Преимущество в том, что клиенты работают только с самой структурой, и доступ к data идёт через структуру, что уменьшает опасность поиметь висячий указатель. Однако можно потерять всю структуру целиком. К тому же неестественно работать с сишными функциями, ибо приходится делать нечто такое:
C
1
str->data[2]
вместо просто:
C
1
data[2]
это кажется неестественным. У меня можно работать просто data[2], несмотря на то, что строки имеют заголовок. Чтобы этого добится некоторые рекомендуют старый и хорошо работающий хак, который используется даже кое где в win api. Обьявить структуру так:
C
1
2
3
4
5
6
struct string 
{
        int buflen;
        int strllen;
        char data[1];
};
Что это даёт? А то, что теперь мы можем средствами С (в С++ этот номер вряд ли покатит) "натянуть" эту структуру на буфер, и работать с массивом data так, как буд-то никакой структуры нет и в помине. Выделять память отдельно для структуры нет необходимости.
C
1
2
3
string* s =  malloc (sizeof (struct string) + 100 - 1);
s->buflen = 100;
s->strllen = 0;
работают с ней также: s->data[2]='a'; Преимущество в том, что теперь у нас имеется один непрерывный буфер, хотя и с хэдером в главе.
Некоторые горячие головы идут дальше и возвращают отдельный указатель на s->data. В этом случае уже можно работать более естественно, как бы с сишной строкой s[3] а не s->data[3] Так сделано в библиотеке SDS, которая входит частью в проект Redis, представляющий собой высокопроизводительную базу данных.
Но тут есть свои заморочки, например выравнивание по границам, которое делает компилятор, когда имеет дело с любой структурой. Приходится использовать системозависимые опции компилятора(pragma) и хотя это не является проблемой, это может вызвать нежелательные зависимости в других модулях проекта. А если не отключить выравнивание, то возникнет проблема доступа к полям от базового указателя s->data, так как доступ к ним осуществляется простым вычитанием нужного количества байтов и приведением этого указателя к нужному типу данного поля.
Лично я решил эту проблему более просто. Я вообще отказался от определения какой-либо структуры, что сняло проблему выравнивания полей полностью. И хотя, тут тоже возможны системозависимые вещи, но они находятся под полным контролем, и пишутся под конкретную платформу. Я выделяю буфер, который имеет длину header+buflen,
и устанавливаю указатель на начало буфер плюс header. Вот как обеспечивается доступ к полю MAGIC:
C
1
2
3
#define DMSOFFSETMAG 8
#define dms_setmagic(x, y)((*(dms_tpuint)((x)-DMSOFFSETMAG))=(y))
#define dms_getmagic(x)   (*(dms_tpuint)((x)-DMSOFFSETMAG))
ну и например(опций много) к полю длин буфера и строки:
C
1
2
3
4
5
6
7
#define DMSOFFSETBUF 12
#define DMSOFFSETLEN 4
 
#define dms_getbuf(x)     (*(dms_tpuint)((x)-DMSOFFSETBUF))
#define dms_setbuf(x, y)  ((*(dms_tpuint)((x)-DMSOFFSETBUF))=(y))
#define dms_getlen(x)     (*(dms_tpuint)((x)-DMSOFFSETLEN))
#define dms_setlen(x, y)  ((*(dms_tpuint)((x)-DMSOFFSETLEN))=(y))
Это очень просто и эффективно: всё работает как часики.
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
07.04.2018, 13:46
CoderHuligan,
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Однако на высшем уровне существуют одни позиции элементов, которые начинаются с 1(единицы) а не с 0.
На высшем уровне обычно существует огромное стадо лук-ап таблиц. И вот если тама индексы будут с 1 начинаться а не с 0 то это будет конкретнейший говнокод с еще большей толпой никому не нужных +1 на каждом шагу.
1
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
07.04.2018, 14:06
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
И вот если тама индексы будут с 1 начинаться а не с 0 то это будет конкретнейший говнокод
Это вы привыкли низкое смешивать с высоким. Так вас приучили или выучили. И ненужно работу со строками смешивать с работой с таблицами. Хотя: так уж изначально СЛОЖИЛОСЬ и с этим приходится мириться. Но так НЕ правильно! Например в бэйсиках в строках позиции так и начинаются с 1. И функции работают именно по такой схеме. И всё в порядке никто не жалуется ибо все счастливы. Несчастливы только те, кто привык позицию под номером 3 именовать 2. Но это не позиция, а индекс, а это совершенно разные вещи господа..
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
07.04.2018, 14:08
CoderHuligan, таблица это точно такой же массив как и строка.
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
07.04.2018, 14:15
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
толпой никому не нужных +1
Есть много путей это успешно обойти, например:
C
1
2
#define PM(x) ((x)-=1)
#define PP(x) ((x)+=1)
пишем
C
1
2
3
PM(mas);
// работаем смассивом
PP(mas);
есть другие варианты в том числе и для матриц.

Добавлено через 2 минуты
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
таблица это точно такой же массив как и строка.
В курсе. Даже могу определить массив а работать с ним как с матрицей, причём позиции будут начинаться с 1. У меня много наработок..
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
07.04.2018, 14:21
CoderHuligan, и на кой оно надо? Представь эта срань где нибудь в лексере живет который и синтакс хайлайт и компиляцию обеспечивает, и отрабатывать для хайлайта должна после нажатия каждой клавиши. Сколько оно лишних тактов сожрет за час? А высокоуровневое оно потому и высокоуровневое что там где нету лукапа оно сугубо пофиг с какого номера индексация начинается. говорят код на С++ 2050 года будет выглядеть так : auto::auto.auto (auto);
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
07.04.2018, 15:00
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
и на кой оно надо?
Ради уменьшения возможных ошибок. Да и просто для удобства.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Сколько оно лишних тактов сожрет за час?
Я сравнивал производительность с вычитанием и без - с вычитанием даже быстрее вышло, хотя до сих пор понять не могу почему так?
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
говорят код на С++ 2050 года будет выглядеть так : auto::auto.auto (auto);
Тогда только повесится..
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,781
08.04.2018, 01:48
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
говорят код на С++ 2050 года будет выглядеть так : auto::auto.auto (auto);
… и сыпать килотоннами непонятных ошибок, падать с сегфолтом и форматировать раздел ФС.
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
08.04.2018, 05:59
korvin_, Дык если коомитет и дальше слушать будут из плюсов ява-скрипт сделают. а ему сам бог велел падать.
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
22.01.2019, 21:00
У нас много хороших программистов, но мало грамотных постановщиков задач. В результате программист пишет программу, но она часто делает не совсем то, что нужно. Это наблюдаешь сплошь и рядом. ООП помогает грамотно создавать модель задачи. ООП ускоряет проектирование серьезных задач, а не игрушечных (по результату использования) программок. Созданные ранее классы можно многократно использовать в новых проектах и не просто как библиотеки (которые как правило статичны), а модифицируя классы подклассами под новые задачи. На примере питона, если вы пользуетесь графикой, то графические объекты, это экземпляры классов из библиотеки tkinter. И если вы не хотите быть жестко связанными с этими заранее заданными объектами, а хотите расширить их возможности, то можете писать подклассы встроенных классов расширяющие возможности этих объектов. В общем все возможности, которые дает ООП в одном комментарии не опишешь. Читаете книги М.Лутца, те главы, которые посвящены ООП. И Вы поймете его возможности. Но для освоения ООП нужно терпение, как и для освоения любой профессии, что бы из ремесленника превратится в мастера. Ну а если Вы не стремитесь стать мастером, то ООП Вам не нужен. Так же, как если вы не собираетесь становиться профессиональным математиком, то вам не нужно изучать высшую алгебру, алгебраические кольца и т.д. и вполне достаточно школьного курса математики. То же самое и с программированием. Я уважаю профессиональных программистов на С++ и т.д., но они часто умея грамотно и быстр написать сложную программу, используя данную им постановку задачи, сами грамотно написать постановку задачи не могут, кто не владеет ООП, так как не владеют способностью структурировать сложные задачи. Именно знание ООП позволяет грамотно создавать структуру задачи для ее постановки, которую будут уже использовать программисты на С++ или других языках.
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
23.01.2019, 04:32
Цитата Сообщение от Viktorrus Посмотреть сообщение
У нас много хороших программистов, но мало грамотных постановщиков задач.
Вообще то постановка задачи - основная часть работы инженера-программиста. Хотя бы потому что для написания кода, а тем более отладки, необходимо знать и понимать предметную область на уровне точно таком же как требуется для написания постановки.
Цитата Сообщение от Viktorrus Посмотреть сообщение
В результате программист пишет программу, но она часто делает не совсем то, что нужно.
Это вообще сложно назвать программистом.
Цитата Сообщение от Viktorrus Посмотреть сообщение
Я уважаю профессиональных программистов на С++ и т.д.
Профессиональный программист не бывает какого то языка. Это специалист который способен произвести самостоятельно весь объем работ от анализа предметной области до программной реализации, выбрав для реализации язык который наиболее подходит для той или иной части задачи.
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
23.01.2019, 13:12
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Профессиональный программист не бывает какого то языка. Это специалист который способен произвести самостоятельно весь объем работ от анализа предметной области до программной реализации, выбрав для реализации язык который наиболее подходит для той или иной части задачи.
Ошибочное мнение, что один человек может все. Да, на малых предприятиях не имеют возможности держать несколько человек на одном проекте. На серьезном крупном предприятии при создании крупного проекта на постановку задачи выделяют отдельную ставку. Составление технического задания и его проекта, это отдельный этап работы и что бы его выполнить требуется специалист обладающий обширными знаниями (а не узко специализированный программист, хотя и знающий несколько языков). Постановщик задачи должен обладать знаниями как в той области, для которой решается задача, например в технологии производства предприятия, так и в возможностях программирования на разных языках включая создание баз данных. Не зная производственного процесса вы не сможете грамотно спроектировать хотя бы базу данных. И в то же время инженер хорошо знающий производство, но не знающий программирование не сможет грамотно составить техническое задание. Совместная работа инженера и программиста для создания технического задания и проекта, как делается обычно, часто не дает оптимального результата. И только постановщик задачи, способный быстро изучить технологию производства и в тоже время достаточно хорошо разбирающийся в программировании может создать наиболее качественное техническое задание и черновой проект, по которому уже будут работать профессиональные программисты.
Но многие этого не понимают, и считают, что они в единственном числе могут все.
Поэтому не буду продолжать дискуссию.
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
23.01.2019, 14:58
Цитата Сообщение от Viktorrus Посмотреть сообщение
а не узко специализированный программист, хотя и знающий несколько языков)
Человек просто знающий несколько языков еще не есть инженер-программист. Основа знаний программиста не столько языки, сколько разноплановые разделы математики, нужные для анализа любой предметной области и адаптации ее задач к машинному счету. Ну и делается это естественно не без участия специалистов из этих предметных областей. Но ни одна другая специальность эти разделы математики просто не изучает. Да и базовую математику настолько глубоко как программисты тоже. У программистов курс только мат.анализа больше чем курс всей высшей математики у других технических специальностей.
Цитата Сообщение от Viktorrus Посмотреть сообщение
На серьезном крупном предприятии при создании крупного проекта на постановку задачи выделяют отдельную ставку.
И заканчивается это настолько же большим фейлом. Потому что для написания кода, а тем более для его отладки нужно настолько же детальное знание и понимание предметной области как и для написания постановки. Наиболее лучший подход в этом плане - команда в которая как совместно анализирует задачу так и занимается ее реализацией. При этом если задача очень объемная то возможен подход разделения ее на подсистемы и каждая команда занимается своей подсистемой согласовывая промеж собой интерфейсы. Но как бы такие команды действительно очень дорого стоят и пользуются обычно только для самых сложных задач для которых конвейенрный подход к разработке вообще не работает. К примеру для задач САПР и АСУТП которые по иронии судьбы составляют порядка 75% задач индустрии.

Добавлено через 4 минуты
Цитата Сообщение от Viktorrus Посмотреть сообщение
создать наиболее качественное техническое задание и черновой проект
Техническое задание - это в общем то отправная точка с которой начинается анализ предметной области результатом которого является создание постановки задачи. Просто не надо путать понятие "формулировка задачи" и "постановка задачи" это две большие разницы. Постановка это такой документ который содержит абсолютно все (в первую очередь математические методы и обоснования их применимости к данной задаче) о том какими именно методами решать эту задачу.

Добавлено через 12 минут
Именно поэтому создать постановку задачи может только профессиональный программист.
0
 Аватар для Энтомолог
141 / 182 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
28.04.2019, 18:16
Я использую и ООП, и ГПО, и многие другие слова, о которых Вы и не слышали.

Добавлено через 1 минуту
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Именно поэтому создать постановку задачи может только профессиональный программист.
А грамотный врач объяснит её другим.

Добавлено через 4 минуты
Цитата Сообщение от Viktorrus Посмотреть сообщение
Ошибочное мнение, что один человек может все.
Цитата Сообщение от Viktorrus Посмотреть сообщение
Постановщик задачи должен обладать знаниями как в той области, для которой решается задача, например в технологии производства предприятия, так и в возможностях программирования на разных языках включая создание баз данных.
Я боюсь даже предположить, что умеет директор предприятия, если даже такой великий человек уже ничего не может.
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
28.04.2019, 20:27
Цитата Сообщение от Энтомолог Посмотреть сообщение
Я боюсь даже предположить, что умеет директор предприятия
Огромное заблуждение, что руководитель должен заниматься конкретными задачами предприятия. Грамотный руководитель это тот, который умеет так организовать работу исполнителей, что бы они выполняли тактические задачи самостоятельно. А руководитель, кроме общего контроля за результатами работы исполнителей, должен заниматься только стратегией производства. Когда же руководитель не может организовать работу исполнителей, ему приходится самому выполнять работу за исполнителей. Такой руководитель, хотя он может быть профессионалом в профессии и хорошим работником, но он плохой руководитель. Поэтому человек может быть прекрасным работником на предприятии, хорошо знающим производство и свою профессию, но при этом быть плохим руководителем. Так же можно быть прекрасным программистом, но плохим начальником. Это разные виды деятельности. Так же разные виды деятельности программист и постановщик задачи. Но многие программисты этого не понимают, поэтому сплошь и рядом клепают некачественные программные продукты. И не потому , что они плохие программисты, а потому что они не умеют грамотно сделать постановку задачи.
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
29.04.2019, 13:02
Цитата Сообщение от Viktorrus Посмотреть сообщение
Так же разные виды деятельности программист и постановщик задачи.
Чушь от слова совсем. Основное чему учат программиста в универе - это именно создание постановки задачи. Так что постановка задачи - это таки основная часть работы именно программиста, и никого более.
Но многие программисты этого не понимают, поэтому сплошь и рядом клепают некачественные программные продукты.
А куча некачественного продукта только потому что в индустрии инженеров-программистов с универским образованием только 10%. Остальное стадо горе-разрабов ни разу не программисты от слова совсем.

Добавлено через 9 минут
Цитата Сообщение от Viktorrus Посмотреть сообщение
И не потому , что они плохие программисты, а потому что они не умеют грамотно сделать постановку задачи.
Современные средства разработки позволяют совмещать часть оформления постановки (в основном раздел "информационная постановка задачи") с ее реализацией. Для систем учета к примеру этот раздел если не вся постановка, то ее львиная доля.
Так что те у кого дела с постоновкой обстоят плохо в общем то программистами являются чуть менее чем никак, c какой стороны не смотри.
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
29.04.2019, 14:16
Fulcrum_013, Я вижу Вы не понимаете, что должен знать постановщик задачи, а именно в том числе технологию производства, для которого ставиться задача, а этому в универе не учат. Для этого нужно иметь талант и опыт, быстро осваивать технологии в различных областях деятельности, до этого незнакомых.
Например мне, что бы освоиться в любой области (не путать со "стать специалистом") требуется один месяц. Проверено на опыте, так как я поменял больше 10 мест работы в разных отраслях. Везде меня цинили, но надоедало заниматься одним и тем же, и я увольнялся, что бы начать что то новое.
Не вижу смысла продолжать дискуссию. Продолжайте словесную эквилибристику без меня. Удачи.
0
 Аватар для Энтомолог
141 / 182 / 44
Регистрация: 25.04.2012
Сообщений: 2,623
Записей в блоге: 5
29.04.2019, 23:19
Viktorrus, Вы прям анекдотами разговариваете.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.04.2019, 23:19
Помогаю со студенческими работами здесь

Стоит ли учить ООП в одно время с Яп
Добрый день! Начал активно изучать c#. Читаю Шилдта в свободное от учебы время и стараюсь практиковаться и всё выходит пока нормально. Но...

Как использовать ООП в WinAvr
Класс я создал. А вот объект класса создать не получается! Полазив по интернету выяснил что оператор new не поддерживается компилятором! ...

Js class как правильно использовать ООП
Накидал вот такой простенький код, авторизация проходит, data.Access_token существует, но в this.Access_token почему то не сохраняется, не...

Когда следует использовать ООП в РНР?
Когда стоит учить ооп в РНР, если новичок в РНР? Стоит ли писать весь код в стиле ооп ?

WITH AS стоит ли использовать
Использую СУБД Postgresql, есть запрос SELECT * FROM Table1 WHERE Filed1 IN (SELECT Fileld1 FROM Table2 WHERE Fileld2='A' AND...


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

Или воспользуйтесь поиском по форуму:
780
Ответ Создать тему
Новые блоги и статьи
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано. . . .
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
Диалоги с ИИ
zorxor 23.05.2026
Насколько я понимаю - Вы - Искусственный Интеллект. Это так? Да, всё верно. Я — искусственный интеллект. Я представляю собой большую языковую модель, созданную для помощи в самых разных задачах. . . .
Модель здравосохранения 14. Собираем всю модель вместе.
anaschu 22.05.2026
Модель собрана. В будущих постах на видео я покажу, как она работает. В этом посте запускаем её, проверяем результаты и разбираем что можно с ней делать дальше. Перед запуском проверяем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru